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=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 8491 invoked from network); 22 Mar 2023 23:33:12 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 22 Mar 2023 23:33:12 -0000 Content-Type: multipart/mixed; boundary="===============4169727803340512661==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_draft=3A_ffmpeg5_split?= To: ml@inbox.vuxu.org From: zlice Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 23 Mar 2023 00:33:12 +0100 List-Id: Message-ID: <20230322233312.h9i3xL_X79k5113Qw-BWZaoYaQ1xdMPXvuIbJ2gkdEk@z> GitHub notification mails are now in MIME to allow UTF8. --===============4169727803340512661== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgemxpY2UgYWdhaW5zdCBtYXN0ZXIg b24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3psaWNl L3ZvaWQtcGFja2FnZXMgZmZtcGVnNS1zcGxpdApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvNDI5MzYKCmRyYWZ0OiBmZm1wZWc1IHNwbGl0CltjaSBza2lw XQ0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCg0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBp biB0aGlzIFBSOiAqKk5PKioNCg0KSSBoYXZlIGNvbmZsaWN0aW5nIGNoYW5nZXMgZnJvbSBbaW50 ZWwgcGFja2FnZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv cHVsbC80MTEzMikgYW5kIGRvbid0IHdhbnQgdG8gbWVzcyB3aXRoIG15IHN5c3RlbS4gSWYgaXQg bWFrZXMgc2Vuc2UgSSdsbCBtb3ZlIHRoZXNlIGNoYW5nZXMgaGVyZSBsaWtlIEkgb3JpZ2luYWxs eSBpbnRlbmRlZC4gZmZtcGVnNSBtYWtlcyBJbnRlbCB2YWFwaSBlYXNpZXIgYW5kIG9ubHkgcmVs eSBvbiBvbmVWUEwgaWlyYy4NCg0KSSBkbyBub3QgdXNlIDgwJSsgb2YgdGhlc2UgcGFja2FnZXMu IEkgbWF5IGJlIGFibGUgdG8gcnVuIEJsZW5kZXIsIGFuZCBJIHVzZSBzaG90Y3V0Lg0KDQoNCiMj IyMgTmV3IHBhY2thZ2UNCg0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcGFj a2FnZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI3BhY2thZ2UtcmVxdWlyZW1lbnRzKTog KipZRVMqKg0KDQoNCg0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQoNCi0gSSBidWlsdCB0aGlz IFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsICoqeDg2XzY0KioNCg0KDQoj IyMjIERpc2N1c3Npb24NCg0KQ29udGludWF0aW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNjMxNSAtIHRoeCB0aWJlcXVhZG9yaWFuIDopDQoN Ckl0IHdhcyBzdWdnZXN0ZWQgdG8gbWFrZSBgZmZtcGVnYCB2ZXJzaW9uIDUgYW5kICdjb3B5JyAo Y3JlYXRlIGEgbmV3PykgYGZmbXBlZzRgIHBhY2thZ2UsIGFuZCB0aGF0IHNlZW1zIHRvIHdvcmsg d2VsbC4NCg0KQXMgc3RhdGVkLCBJIGhhdmVuJ3QgYW5kIHByb2JhYmx5IHdvbid0IHRlc3QgbW9z dCBvZiB0aGVzZSBwYWNrYWdlcywgaG9waW5nIGZvciBvdGhlcnMgdG8gdm9pY2UgaW4gb24gd2hh dCdzIHdvcmtpbmcuIA0KDQpBIGZldyBtb250aHMgYmFjayAoYW5kIG5vdykgYWZhaWN0IGV2ZXJ5 dGhpbmcgaGFzIGJlZW4gY29tcGlsaW5nIHdpdGggZmZtcGVnNSBleGNlcHQgZm9yIHRoZSBmZXcg cHJvYmxlbSBwYWNrYWdlcyBzdGlsbCB1c2luZyBmZm1wZWc0IChiZWxvdykuIENhbiBhZGQgdG8g dGhlIGZmbXBlZzQgbGlzdCBhcyBhIGluY29tcGF0aWJsZSBwYWNrYWdlIGlzIGZvdW5kLg0KDQpg bGliYXZyZXNhbXBsZWAgaXMgZGVwcmVjYXRlZCwgYnV0IG1hcmtlZCBhcyBhIGRlcGVuZGVuY3kg d2hlbiB0cnlpbmcgdG8gYnVpbGQgb3RoZXIgcGFja2FnZXMgYW5kIGluc3RhbGwgYGZmbXBlZ2Ao NSkuIEkgdGhpbmsgdGhlIHJpZ2h0IHdheSB0byBoYW5kbGUgdGhpcyBpcyBtYWtlIGEgbWV0YSBw YWNrYWdlIGFuZCB0aGUgYWRkIHRvIHJlbW92YWxzPw0KDQpbZ3N0cmVhbWVyIDEuMjIuMSB1cGRh dGVzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDI4 NjEpIGNvdWxkIGdvIGJlZm9yZSB0aGlzDQoNCiMjIyMjIENvbW1pdCBuYW1pbmcgLyBtaXNjDQoN CmBmZnBtZWc0YCBpc24ndCAibmV3Iiwgbm90IHN1cmUgd2hhdCB0aGUgY29tbWl0IG1lc3NhZ2Vz IHNob3VsZCBiZSByZWFsbHkgZm9yIHRoZSA0IGFuZCA1IHNwbGl0LiBBZGRpdGlvbmFsbHkgeGxp bnQgY29tcGxhaW5zIGFib3V0IGBmZm1wZWc0YCByZXZpc2lvbiBiZWluZyAzIGFuZCBub3QgMSBi ZWNhdXNlIGl0J3MgYSAibmV3IiBwYWNrYWdlLCBJIGFzc3VtZSB0aGF0J3MgcmlnaHQgYnV0IG5v dCBzdXJlLg0KDQpOb3Qgc3VyZSBob3cgY29tbWl0cyBzaG91bGQgYmUgc2VwYXJhdGVkLiBmZm1w ZWc0LzUgY291bGQgYmUgc3BsaXQgYW5kIGFsbCB0aGUgcmV2IGJ1bXBzIGluY2x1ZGVkIChvdGhl cndpc2UgaXQncyBvdmVyIDEwMCBjb21taXRzKS4gb3BlbmN2IHdhcyB1cGRhdGVkIHRvIDQuNy4w IGZvciBmZm1wZWc1IHNvIEkgZmlndXJlZCB0aGF0IHNob3VsZCBiZSBhIHNlcGFyYXRlIGNvbW1p dD8NCg0KSSB3b3VsZG4ndCBtaW5kIG1vdmluZyB0aGUgW2ludGVsIHBhY2thZ2VzXShodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDExMzIpIGludG8gaGVy ZSB1bmRlciBhbm90aGVyIGNvbW1pdC4gVGhhdCBqdXN0IGdvdCBhIHBvdGVudGlhbCBmaXggdGhh dCBtYXkgYWxsb3cgbWVyZ2luZyBidXQgSSBpbWFnaW5lIG1vdmluZyB0byBmZm1wZWc1IHdpbGwg Y2hhbmdlIGFuZCBldmVuIHJlbW92ZSBzb21lIG9mIHRob3NlIHBhY2thZ2VzLiAoSSB3b24ndCBy ZWFsbHkgdGVzdCB0aGVzZSBjaGFuZ2VzIHdpdGhvdXQgSW50ZWwgdmFhcGkgZWl0aGVyIHdheS4p DQoNCk1haW50YWluZXIgZm9yIHByZXZpb3VzIGZmbXBlZyg0KSB3YXMgb3JwaGFuZWQsIEkgY2Fu IHB1dCBteSBuYW1lIGluIHRoZXJlIGlmIHRoYXQgbWF0dGVycywgdGhvdWdoIEkgZG9uJ3QgZXhh Y3RseSBzZWUgbXlzZWxmIGtlZXBpbmcgdXAgb24gZmZtcGVnLg0KDQoNCiMjIyMjIHN0aWxsIGZm bXBlZzQNCg0KLSBgdmxjYCAodmxjNCB3aWxsIHN1cHBvcnQgZmZtcGVnNSwgdGhlcmUncyBhIHBh dGNoIHRvIGJ1aWxkIDMueCB3aXRoIGZmbXBlZzUgYnV0IGl0IHdpbGwgbGFjayB2YWFwaSkNCi0g YG9zZ2AgKE9wZW5TY2VuZUdyYXBoIHBsdXMgYHhpbmUtbGliYCkNCi0gYHl0bWRsYCA/IG5vdCBz dXJlIGJ1dCBpdCB1c2VzIGBweXRob24zLWZmbXBlZy1weXRob25gIHdoaWNoIGJlaW5nIDYtOHly IG9sZCBJIGltYWdpbmUgaXMgZmZtcGVnNA0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDI5MzYucGF0Y2ggaXMgYXR0 YWNoZWQ= --===============4169727803340512661== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-ffmpeg5-split-42936.patch" RnJvbSBjNWE4YzA5NmUyNzU0ZTUxODRjODNhZmViMjU2NjA5NjNjMzE0OWI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB6bGljZSA8emxpY2U1NTVAZ21haWwuY29tPgpEYXRlOiBUdWUs IDIxIE1hciAyMDIzIDE4OjU4OjMxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxLzRdIGZmbXBlZ19z cGxpdAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMjYgKy0KIHNyY3BrZ3MvZmZtcGVnL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8 IDE3NiArKysrKy0tLS0KIHNyY3BrZ3MvZmZtcGVnNC1kZXZlbCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmNwa2dzL2ZmbXBlZzQvZmZtcGVnNCAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogLi4uL3tmZm1wZWcgPT4gZmZtcGVnNH0vZmlsZXMvYWx0aXZlYy5wYXRjaCAg IHwgICAwCiAuLi4vcGF0Y2hlcy9hcm12NXRlbC1mbG9hdGluZy1wb2ludC5wYXRjaCAgICAgfCAg IDAKIC4uLi93b3JrYXJvdW5kLW1lc2EtcmVhZGVvbi12YWFwaS1idWcucGF0Y2ggICB8ICAgMAog c3JjcGtncy9mZm1wZWc0L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgMjU0ICsrKysr KysrKysrKysKIC4uLkZpeC1pbmZpbml0ZS1sb29wLWluLU1lbnUtY3ljbGVpdGVtcy5wYXRjaCB8 ICA2MCArKysKIC4uLjZjNGQzMGY1YjI4OWM0MjljNWNhODhkODAwMjAwZGI0ZmM0Zi5wYXRjaCB8 ICAyMiAtLQogLi4uL01pbk92ZXJsYXBQbGFjZW1lbnQuY2NfaW1wcm92ZS5wYXRjaCAgICAgIHwg IDI5ICsrCiBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jZW50ZXIucGF0Y2ggICAgICAgICAgfCAz MDcgKysrKysrKysrKysrKysrCiBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jb250YWluZXJfbG9j a3MucGF0Y2ggfCAzMjUgKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvY29udGFpbmVyX3Jl bGF0aXZlX3JlbGF0aXZlLnBhdGNoIHwgIDE1ICsKIHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2Zs dXhfaW1wcm92ZS5wYXRjaCAgICB8IDIwNSArKysrKysrKysrCiBzcmNwa2dzL2ZsdXhib3gvcGF0 Y2hlcy9mbHV4X292ZXJzaXplLnBhdGNoICAgfCAgMjQgKysKIC4uLi9mbHV4Ym94L3BhdGNoZXMv Zm9jdXNfY2xvc2VfbWVudS5wYXRjaCAgICB8ICAxNyArCiBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hl cy9zbGl0X3JhaXNlLnBhdGNoICAgICAgfCAgMTYgKwogc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMv dG9vbGJhcl9yZWRvLnBhdGNoICAgIHwgMjI4ICsrKysrKysrKysrKwogLi4uL2ZsdXhib3gvcGF0 Y2hlcy90cmVtb3JfZ3JhYm9pZF9oZWxsLnBhdGNoIHwgMzUwICsrKysrKysrKysrKysrKysrKwog Li4uL3BhdGNoZXMvdW5jbHV0dGVyX2ZpeF93b3Jrc3BhY2VjbWQucGF0Y2ggIHwgIDY1ICsrKysK IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaCAgICAgICB8ICA4NyArKysr Kwogc3JjcGtncy9mbHV4Ym94L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsr LQogc3JjcGtncy9saWJhdmNvZGVjNCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyY3BrZ3MvbGliYXZkZXZpY2U0ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmNwa2dzL2xpYmF2ZmlsdGVyNCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj cGtncy9saWJhdmZvcm1hdDQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3Br Z3MvbGliYXZyZXNhbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtn cy9saWJhdnJlc2FtcGxlNCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3Mv bGliYXZ1dGlsNCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL2xp YnBvc3Rwcm9jNCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9saWJz d3Jlc2FtcGxlNCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3MvbGlic3dz Y2FsZTQgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL21lc2EvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzUgKy0KIDM0IGZpbGVzIGNoYW5nZWQs IDIxNjcgaW5zZXJ0aW9ucygrKSwgMTMyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTIwMDAw IHNyY3BrZ3MvZmZtcGVnNC1kZXZlbAogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvZmZtcGVn NC9mZm1wZWc0CiByZW5hbWUgc3JjcGtncy97ZmZtcGVnID0+IGZmbXBlZzR9L2ZpbGVzL2FsdGl2 ZWMucGF0Y2ggKDEwMCUpCiByZW5hbWUgc3JjcGtncy97ZmZtcGVnID0+IGZmbXBlZzR9L3BhdGNo ZXMvYXJtdjV0ZWwtZmxvYXRpbmctcG9pbnQucGF0Y2ggKDEwMCUpCiByZW5hbWUgc3JjcGtncy97 ZmZtcGVnID0+IGZmbXBlZzR9L3BhdGNoZXMvd29ya2Fyb3VuZC1tZXNhLXJlYWRlb24tdmFhcGkt YnVnLnBhdGNoICgxMDAlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmZtcGVnNC90ZW1w bGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzAwMDEtRml4 LWluZmluaXRlLWxvb3AtaW4tTWVudS1jeWNsZWl0ZW1zLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMjI4NjZjNGQzMGY1YjI4OWM0MjljNWNhODhkODAw MjAwZGI0ZmM0Zi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL01pbk92ZXJsYXBQbGFjZW1lbnQuY2NfaW1wcm92ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NlbnRlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9yZWxhdGl2ZV9y ZWxhdGl2ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVz L2ZsdXhfaW1wcm92ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9w YXRjaGVzL2ZsdXhfb3ZlcnNpemUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy9mb2N1c19jbG9zZV9tZW51LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvc2xpdF9yYWlzZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3Rvb2xiYXJfcmVkby5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hlbGwucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy91bmNsdXR0ZXJf Zml4X3dvcmtzcGFjZWNtZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJv eC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaAogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGli YXZjb2RlYzQKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYmF2ZGV2aWNlNAogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGliYXZmaWx0ZXI0CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3Jj cGtncy9saWJhdmZvcm1hdDQKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYmF2cmVzYW1w bGU0CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJhdnV0aWw0CiBjcmVhdGUgbW9kZSAx MjAwMDAgc3JjcGtncy9saWJwb3N0cHJvYzQKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xp YnN3cmVzYW1wbGU0CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJzd3NjYWxlNAoKZGlm ZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGY5NzJlZWJjNGQz YS4uYWFiNjZjODNmNGIzIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9z aGxpYnMKQEAgLTM4OSwxNSArMzg5LDIzIEBAIGxpYmlkM3RhZy5zby4wIGxpYmlkM3RhZy0wLjE1 LjFiXzEKIGxpYmdpZi5zby43IGdpZmxpYi01LjEuMF8xCiBsaWJJbWxpYjIuc28uMSBpbWxpYjIt MS40LjJfMQogbGlibXAzbGFtZS5zby4wIGxhbWUtMy45OC4yXzEKLWxpYmF2ZGV2aWNlLnNvLjU4 IGxpYmF2ZGV2aWNlLTQuMF8xCi1saWJhdmZvcm1hdC5zby41OCBsaWJhdmZvcm1hdC00LjBfMQot bGlic3dzY2FsZS5zby41IGxpYnN3c2NhbGUtNC4wXzEKLWxpYnN3cmVzYW1wbGUuc28uMyBsaWJz d3Jlc2FtcGxlLTQuMF8xCi1saWJhdnJlc2FtcGxlLnNvLjQgbGliYXZyZXNhbXBsZS00LjBfMQot bGlicG9zdHByb2Muc28uNTUgbGlicG9zdHByb2MtNC4wXzEKLWxpYmF2Y29kZWMuc28uNTggbGli YXZjb2RlYy00LjBfMQotbGliYXZ1dGlsLnNvLjU2IGxpYmF2dXRpbC00LjBfMQotbGliYXZmaWx0 ZXIuc28uNyBsaWJhdmZpbHRlci00LjBfMQorbGliYXZkZXZpY2Uuc28uNTkgbGliYXZkZXZpY2Ut NS4xLjJfMQorbGliYXZmb3JtYXQuc28uNTkgbGliYXZmb3JtYXQtNS4xLjJfMQorbGlic3dzY2Fs ZS5zby42IGxpYnN3c2NhbGUtNS4xLjJfMQorbGlic3dyZXNhbXBsZS5zby40IGxpYnN3cmVzYW1w bGUtNS4xLjJfMQorbGlicG9zdHByb2Muc28uNTYgbGlicG9zdHByb2MtNS4xLjJfMQorbGliYXZj b2RlYy5zby41OSBsaWJhdmNvZGVjLTUuMS4yXzEKK2xpYmF2dXRpbC5zby41NyBsaWJhdnV0aWwt NS4xLjJfMQorbGliYXZmaWx0ZXIuc28uOCBsaWJhdmZpbHRlci01LjEuMl8xCitsaWJhdmRldmlj ZS5zby41OCBsaWJhdmRldmljZTQtNC4wXzEKK2xpYmF2Zm9ybWF0LnNvLjU4IGxpYmF2Zm9ybWF0 NC00LjBfMQorbGlic3dzY2FsZS5zby41IGxpYnN3c2NhbGU0LTQuMF8xCitsaWJzd3Jlc2FtcGxl LnNvLjMgbGlic3dyZXNhbXBsZTQtNC4wXzEKK2xpYmF2cmVzYW1wbGUuc28uNCBsaWJhdnJlc2Ft cGxlNC00LjBfMQorbGlicG9zdHByb2Muc28uNTUgbGlicG9zdHByb2M0LTQuMF8xCitsaWJhdmNv ZGVjLnNvLjU4IGxpYmF2Y29kZWM0LTQuMF8xCitsaWJhdnV0aWwuc28uNTYgbGliYXZ1dGlsNC00 LjBfMQorbGliYXZmaWx0ZXIuc28uNyBsaWJhdmZpbHRlcjQtNC4wXzEKIGxpYlNETC0xLjIuc28u MCBTREwtMS4yLjE0XzEKIGxpYlNETF9pbWFnZS0xLjIuc28uMCBTRExfaW1hZ2UtMS4yLjEwXzEK IGxpYngyNjQuc28uMTU3IHgyNjQtMjAxOTA1MDcuMjI0NV8xCmRpZmYgLS1naXQgYS9zcmNwa2dz L2ZmbXBlZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmZtcGVnL3RlbXBsYXRlCmluZGV4IDIzYTNkNWM5 OTY3Yi4uMzg5NzhjNTA4NWEzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZmbXBlZy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2ZmbXBlZy90ZW1wbGF0ZQpAQCAtMSw0MiArMSwzNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZmZtcGVnJwogIyBhdWRhY2l0eSBhbHNvIG5lZWRzIHRvIGJlIGJ1bXBlZCB3 aGVuIGEgbmV3IGZmbXBlZyB2ZXJzaW9uIGJ1bXBzIGxpYmF2Zm9ybWF0J3Mgc29uYW1lIQogcGtn bmFtZT1mZm1wZWcKLXZlcnNpb249NC40LjMKLXJldmlzaW9uPTIKK3ZlcnNpb249NS4xLjIKK3Jl dmlzaW9uPTEKIHNob3J0X2Rlc2M9IkRlY29kaW5nLCBlbmNvZGluZyBhbmQgc3RyZWFtaW5nIHNv ZnR3YXJlIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cuZmZtcGVnLm9y ZyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0ZGbXBlZy9G Rm1wZWcvbWFzdGVyL0NoYW5nZWxvZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly93d3cuZmZtcGVnLm9y Zy9yZWxlYXNlcy9mZm1wZWctJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02YzViNmMxOTVl NjE1MzQ3NjZhMGI1ZmUxNmFjYzkxOTE3MGM4ODMzNjI2MTI4MTZkMGExYzdmNGY5NDcwMDZlCitj aGVja3N1bT02MTllNzA2ZDY2MmM4NDIwODU5ODMyZGRjMjU5Y2Q0ZDQwOTZhNDhhMmNlMWVlZmQw NTJkYjllNDQwZWVmM2RjCiAKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBwZXJsIHlhc20i Ci1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBiemlwMi1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNh LWxpYi1kZXZlbCBsaWJYZml4ZXMtZGV2ZWwKLSBsaWJYZXh0LWRldmVsIGxpYlh2TUMtZGV2ZWwg bGlieGNiLWRldmVsIGxhbWUtZGV2ZWwgbGlidGhlb3JhLWRldmVsCi0gbGlidm9yYmlzLWRldmVs IHgyNjQtZGV2ZWwgeHZpZGNvcmUtZGV2ZWwgamFjay1kZXZlbCBTREwyLWRldmVsCi0gbGliY2Rp by1wYXJhbm9pYS1kZXZlbCBsaWJydG1wLWRldmVsIGxpYm1vZHBsdWctZGV2ZWwgZ251dGxzLWRl dmVsCi0gc3BlZXgtZGV2ZWwgY2VsdC1kZXZlbCBoYXJmYnV6ei1kZXZlbCBsaWJhc3MtZGV2ZWwg b3B1cy1kZXZlbCBvY2wtaWNkLWRldmVsCi0gbGliYnMyYi1kZXZlbCBsaWJ2aWRzdGFiLWRldmVs ICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwpCi0gJCh2b3B0X2lmIHZhYXBp IGxpYnZhLWRldmVsKSAkKHZvcHRfaWYgdmRwYXUgbGlidmRwYXUtZGV2ZWwpCi0gJCh2b3B0X2lm IHgyNjUgeDI2NS1kZXZlbCkgJCh2b3B0X2lmIHY0bDIgdjRsLXV0aWxzLWRldmVsKQotICQodm9w dF9pZiBmZGtfYWFjIGZkay1hYWMtZGV2ZWwpICQodm9wdF9pZiB2cHggbGlidnB4LWRldmVsKQot ICQodm9wdF9pZiBhb20gbGliYW9tLWRldmVsKSAkKHZvcHRfaWYgc25kaW8gc25kaW8tZGV2ZWwp Ci0gJCh2b3B0X2lmIGRhdjFkIGxpYmRhdjFkLWRldmVsKSAkKHZvcHRfaWYgemltZyB6aW1nLWRl dmVsKQotICQodm9wdF9pZiB3ZWJwIGxpYndlYnAtZGV2ZWwpICQodm9wdF9pZiBzb2ZhIGxpYm15 c29mYS1kZXZlbCkKLSAkKHZvcHRfaWYgZHJtIGxpYmRybS1kZXZlbCkgJCh2b3B0X2lmIHN2dGF2 MSBsaWJzdnQtYXYxLWRldmVsKQotICQodm9wdF9pZiBzcnQgc3J0LWRldmVsKSAkKHZvcHRfaWYg cmlzdCBsaWJyaXN0LWRldmVsKQotICQodm9wdF9pZiB2dWxrYW4gJ3Z1bGthbi1sb2FkZXIgVnVs a2FuLUhlYWRlcnMnKQotICQodm9wdF9pZiBudmVuYyBudi1jb2RlYy1oZWFkZXJzKSAkKHZvcHRf aWYgbnZkZWMgbnYtY29kZWMtaGVhZGVycykiCittYWtlZGVwZW5kcz0iY2hyb21hcHJpbnQtZGV2 ZWwgbGliZ2NyeXB0LWRldmVsIGxhZHNwYS1zZGsgbGNtczItZGV2ZWwgbGliYW9tLWRldmVsCisg YWxzYS1saWItZGV2ZWwgYnppcDItZGV2ZWwgbGlieGNiLWRldmVsIGxpYmx6bWEtZGV2ZWwgU0RM Mi1kZXZlbCBzbmRpby1kZXZlbCB6bGliLWRldmVsCisgZnJlaTByLXBsdWdpbnMgbGliY2Rpby1w YXJhbm9pYS1kZXZlbCBydWJiZXJiYW5kLWRldmVsIGxpYnZpZHN0YWItZGV2ZWwgeDI2NC1kZXZl bCB4MjY1LWRldmVsCisgeHZpZGNvcmUtZGV2ZWwgZmRrLWFhYy1kZXZlbCBsaWJ0bHMtZGV2ZWwg Z21wLWRldmVsIGxpYmFzcy1kZXZlbCBsaWJibHVyYXktZGV2ZWwgbGliY2FjYS1kZXZlbAorIGNl bHQtZGV2ZWwgY29kZWMyLWRldmVsIGxpYmRhdjFkLWRldmVsIGxpYmRybS1kZXZlbCBmb250Y29u ZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsCisgZnJpYmlkaS1kZXZlbCBnbHNsYW5nLWRldmVsIFNQ SVJWLVRvb2xzLWRldmVsIGxpYmdtZS1kZXZlbCBsaWJnc20tZGV2ZWwgamFjay1kZXZlbAorIGxp Ym1vZHBsdWctZGV2ZWwgbGFtZS1kZXZlbCBsaWJvcGVuY3Y0LWRldmVsIGxpYm9wZW5qcGVnMi1k ZXZlbCBsaWJvcGVubXB0LWRldmVsIG9wdXMtZGV2ZWwKKyBsaWJwbGFjZWJvLWRldmVsIGxpYnB1 bHNlYXVkaW8gcmFiYml0bXEtYy1kZXZlbCBsaWJyaXN0LWRldmVsIGxpYnJzdmctZGV2ZWwgbGli cnRtcC1kZXZlbAorIHNuYXBweS1kZXZlbCBsaWJzb3hyLWRldmVsIHNwZWV4LWRldmVsIHNydC1k ZXZlbCBsaWJzc2gtZGV2ZWwgbGlidGhlb3JhLWRldmVsIHR3b2xhbWUtZGV2ZWwKKyBsaWJ2b3Ji aXMtZGV2ZWwgbGlidnB4Ni1kZXZlbCBsaWJ3ZWJwLWRldmVsIGxpYnhtbDItZGV2ZWwgemltZy1k ZXZlbCBsaWx2LWRldmVsIGx2MgorIGxpYm9wZW5hbC1kZXZlbCBtZXNhIG9wZW5zc2wtZGV2ZWwg dmFwb3Vyc3ludGgtZGV2ZWwgb2NsLWljZC1kZXZlbCBsaWJteXNvZmEtZGV2ZWwgdnVsa2FuLWxv YWRlcgorICQodm9wdF9pZiB2YWFwaSBsaWJ2YS1kZXZlbCkKKyAkKHZvcHRfaWYgdmRwYXUgbGli dmRwYXUtZGV2ZWwpCisgJCh2b3B0X2lmIG52ZW5jIG52LWNvZGVjLWhlYWRlcnMpCisgJCh2b3B0 X2lmIG52ZGVjIG52LWNvZGVjLWhlYWRlcnMpCisgJCh2b3B0X2lmIHN2dGF2MSBsaWJzdnQtYXYx LWRldmVsKQorIgogZGVwZW5kcz0iZmZwbGF5Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1i dWlsZF9vcHRpb25zPSJ4MjY1IHY0bDIgdmFhcGkgdmRwYXUgdnB4IGZka19hYWMgYW9tIG52ZW5j IHNuZGlvIHB1bHNlYXVkaW8KLSBkYXYxZCB6aW1nIHdlYnAgc29mYSB2dWxrYW4gZHJtIHN2dGF2 MSBzcnQgcmlzdCBudmRlYyIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0ieDI2NSB2NGwyIHZweCBh b20gc25kaW8gcHVsc2VhdWRpbyBkYXYxZCB3ZWJwIHZ1bGthbiBkcm0gc3J0IHJpc3QiCi1kZXNj X29wdGlvbl9zcnQ9IkVuYWJsZSBzdXBwb3J0IGZvciBTUlQgKFNlY3VyZSwgUmVsaWFibGUsIFRy YW5zcG9ydCkiCi1kZXNjX29wdGlvbl9yaXN0PSJFbmFibGUgc3VwcG9ydCBmb3IgUklTVCAoUmVs aWFibGUgSW50ZXJuZXQgU3RyZWFtIFRyYW5zcG9ydCkiCi1kZXNjX29wdGlvbl9zb2ZhPSJFbmFi bGUgc3VwcG9ydCBmb3IgQUVTIFNPRkEiCi1kZXNjX29wdGlvbl93ZWJwPSJFbmFibGUgc3VwcG9y dCBmb3IgV2ViUCIKK2J1aWxkX29wdGlvbnM9InZhYXBpIHZkcGF1IG52ZW5jIG52ZGVjIHN2dGF2 MSIKIAogY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJaTY4Nip8eDg2XzY0KikgYnVp bGRfb3B0aW9uc19kZWZhdWx0Kz0iIHZhYXBpIHZkcGF1IG52ZW5jIG52ZGVjIjs7CkBAIC01Miwy MiArNDYsNiBAQCBpZiBbICIkWEJQU19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgogCW1ha2Vk ZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2Nh bCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFt ZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFt ZX1fZG9uZQotCWZpCi19Ci0KLXBvc3RfcGF0Y2goKSB7Ci0JY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCi0JCXBwYzY0bGUqKSA7OwotCQlwcGMqKSBfYXBwbHlfcGF0Y2ggLXAxICR7RklM RVNESVJ9L2FsdGl2ZWMucGF0Y2ggOzsKLQllc2FjCi19Ci0KIGRvX2NvbmZpZ3VyZSgpIHsKIAkj IEZpeCBnY2Mgb24geDg2XzY0LW11c2wgb25seQogCWlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiA9ICJ4ODZfNjQtbXVzbCIgXTsgdGhlbgpAQCAtOTgsMzkgKzc2LDQ3IEBAIGRvX2NvbmZpZ3Vy ZSgpIHsKIAkJX2FyZ3MrPSIgLS1leHRyYS1saWJzPS1sYXRvbWljIgogCWZpCiAKLQkuL2NvbmZp Z3VyZSAtLXByZWZpeD0vdXNyIC0tZGlzYWJsZS1kZWJ1ZyAtLWVuYWJsZS1ncGwgLS1lbmFibGUt Z251dGxzIFwKKwkuL2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PScvdXNyJyBcCisJCS0tZXh0cmEt Y2ZsYWdzPSctSS9vcHQvY3VkYS9pbmNsdWRlJyBcCisJCS0tZXh0cmEtbGRmbGFncz0nLUwvb3B0 L2N1ZGEvbGliNjQnIFwKIAkJLS1kaXNhYmxlLXN0cmlwcGluZyBcCi0JCS0tZW5hYmxlLWxpYmNk aW8gLS1lbmFibGUtdmVyc2lvbjMgLS1lbmFibGUtcnVudGltZS1jcHVkZXRlY3QgXAotCQktLWVu YWJsZS1saWJtcDNsYW1lIC0tZW5hYmxlLWxpYnZvcmJpcyAtLWVuYWJsZS1saWJ4dmlkIFwKLQkJ LS1lbmFibGUtbGlieDI2NCAkKHZvcHRfZW5hYmxlIHZweCBsaWJ2cHgpIC0tZW5hYmxlLWxpYnRo ZW9yYSBcCi0JCS0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS1zdGF0aWMgLS1lbmFibGUtbGlieGNi IFwKLQkJJCh2b3B0X2VuYWJsZSBwdWxzZWF1ZGlvIGxpYnB1bHNlKSAtLWVuYWJsZS1saWJmcmVl dHlwZSAtLWVuYWJsZS1saWJtb2RwbHVnIFwKLQkJLS1lbmFibGUtbGlic3BlZXggLS1lbmFibGUt bGliY2VsdCAtLWVuYWJsZS1saWJhc3MgXAotCQktLWVuYWJsZS1saWJvcHVzIC0tZW5hYmxlLWxp YnJ0bXAgLS1lbmFibGUtbGliamFjayBcCi0JCSQodm9wdF9pZiBmZGtfYWFjICctLWVuYWJsZS1u b25mcmVlIC0tZW5hYmxlLWxpYmZkay1hYWMnKSBcCi0JCS0tZGlzYWJsZS1saWJvcGVuY29yZV9h bXJuYiAtLWRpc2FibGUtbGlib3BlbmNvcmVfYW1yd2IgXAotCQktLWRpc2FibGUtbGlib3Blbmpw ZWcgXAotCQktLWVuYWJsZS1wb3N0cHJvYyAtLWVuYWJsZS1vcGVuY2wgJHtfYXJnc30gXAotCQkk KHZvcHRfZW5hYmxlIHgyNjUgbGlieDI2NSkgXAotCQkkKHZvcHRfZW5hYmxlIHY0bDIgbGlidjRs MikgXAotCQkkKHZvcHRfZW5hYmxlIGFvbSBsaWJhb20pICQodm9wdF9lbmFibGUgdmFhcGkpICQo dm9wdF9lbmFibGUgdmRwYXUpIFwKLQkJLS1lbmFibGUtbGliYnMyYiAtLWVuYWJsZS1hdnJlc2Ft cGxlIC0tZW5hYmxlLWxpYnZpZHN0YWIgXAotCQkkKHZvcHRfZW5hYmxlIGRhdjFkIGxpYmRhdjFk KSBcCi0JCSQodm9wdF9lbmFibGUgemltZyBsaWJ6aW1nKSBcCi0JCSQodm9wdF9lbmFibGUgd2Vi cCBsaWJ3ZWJwKSBcCi0JCSQodm9wdF9lbmFibGUgc29mYSBsaWJteXNvZmEpIFwKLQkJJCh2b3B0 X2VuYWJsZSB2dWxrYW4pIFwKLQkJJCh2b3B0X2VuYWJsZSBkcm0gbGliZHJtKSBcCi0JCSQodm9w dF9lbmFibGUgc3Z0YXYxIGxpYnN2dGF2MSkgXAotCQkkKHZvcHRfZW5hYmxlIHNydCBsaWJzcnQp IFwKLQkJJCh2b3B0X2VuYWJsZSByaXN0IGxpYnJpc3QpIFwKKwkJLS1lbmFibGUtc2hhcmVkIC0t ZW5hYmxlLXN0YXRpYyBcCisJCS0tZW5hYmxlLW5vbmZyZWUgLS1lbmFibGUtZ3BsIFwKKwkJLS1l bmFibGUtdmVyc2lvbjMgLS1lbmFibGUtbGlieGNiIFwKKwkJLS1lbmFibGUtZnJlaTByIC0tZW5h YmxlLWxpYmNkaW8gXAorCQktLWVuYWJsZS1saWJydWJiZXJiYW5kIC0tZW5hYmxlLWxpYnZpZHN0 YWIgXAorCQktLWVuYWJsZS1saWJ4MjY0IC0tZW5hYmxlLWxpYngyNjUgLS1lbmFibGUtbGlieHZp ZCBcCisJCS0tZW5hYmxlLWxpYmZkay1hYWMgLS1lbmFibGUtbGlidGxzIC0tZW5hYmxlLWdtcCBc CisJCS0tZW5hYmxlLWNocm9tYXByaW50IC0tZW5hYmxlLWdjcnlwdCAtLWVuYWJsZS1sYWRzcGEg XAorCQktLWVuYWJsZS1sY21zMiAtLWVuYWJsZS1saWJhb20gLS1lbmFibGUtbGliYXNzIFwKKwkJ LS1lbmFibGUtbGliYmx1cmF5IC0tZW5hYmxlLWxpYmNhY2EgLS1lbmFibGUtbGliY2VsdCBcCisJ CS0tZW5hYmxlLWxpYmNvZGVjMiAtLWVuYWJsZS1saWJkYXYxZCAtLWVuYWJsZS1saWJkcm0gXAor CQktLWVuYWJsZS1saWJmb250Y29uZmlnIC0tZW5hYmxlLWxpYmZyZWV0eXBlIFwKKwkJLS1lbmFi bGUtbGliZnJpYmlkaSAtLWVuYWJsZS1saWJnbHNsYW5nIFwKKwkJLS1lbmFibGUtbGliZ21lIC0t ZW5hYmxlLWxpYmdzbSBcCisJCS0tZW5hYmxlLXZhcG91cnN5bnRoIC0tZW5hYmxlLW9wZW5zc2wg LS1lbmFibGUtb3BlbmdsIFwKKwkJLS1lbmFibGUtb3BlbmFsIC0tZW5hYmxlLWx2MiAtLWVuYWJs ZS1saWJ6aW1nIFwKKwkJLS1lbmFibGUtbGlieG1sMiAtLWVuYWJsZS1saWJ3ZWJwIC0tZW5hYmxl LWxpYnZvcmJpcyBcCisJCS0tZW5hYmxlLWxpYnR3b2xhbWUgLS1lbmFibGUtbGlidGhlb3JhIC0t ZW5hYmxlLWxpYnNzaCBcCisJCS0tZW5hYmxlLWxpYnNydCAtLWVuYWJsZS1saWJzcGVleCAtLWVu YWJsZS1saWJzb3hyIFwKKwkJLS1lbmFibGUtbGlicnRtcCAtLWVuYWJsZS1saWJyc3ZnIC0tZW5h YmxlLWxpYnJpc3QgXAorCQktLWVuYWJsZS1saWJyYWJiaXRtcSAtLWVuYWJsZS1saWJwdWxzZSAt LWVuYWJsZS1saWJwbGFjZWJvIFwKKwkJLS1lbmFibGUtbGlib3B1cyAtLWVuYWJsZS1saWJvcGVu bXB0IC0tZW5hYmxlLWxpYm9wZW5qcGVnIFwKKwkJLS1lbmFibGUtbGlibXAzbGFtZSAtLWVuYWJs ZS1saWJtb2RwbHVnIC0tZW5hYmxlLWxpYmphY2sgXAorCQktLWVuYWJsZS1vcGVuY2wgLS1lbmFi bGUtbGlidnB4IC0tZW5hYmxlLWxpYm15c29mYSBcCisJCSQodm9wdF9lbmFibGUgdmFhcGkpIFwK KwkJJCh2b3B0X2VuYWJsZSB2ZHBhdSkgXAogCQkkKHZvcHRfaWYgbnZlbmMgJy0tZW5hYmxlLW52 ZW5jJykgXAotCQkkKHZvcHRfaWYgbnZkZWMgJy0tZW5hYmxlLW52ZGVjJykKKwkJJCh2b3B0X2lm IG52ZGVjICctLWVuYWJsZS1udmRlYycpIFwKKwkJJCh2b3B0X2VuYWJsZSBzdnRhdjEgbGlic3Z0 YXYxKQogfQorCiBkb19idWlsZCgpIHsKIAltYWtlICR7bWFrZWpvYnN9CiAJbWFrZSBkb2MvZmZ7 bXBlZyxwbGF5fS4xCiB9CisKIGRvX2luc3RhbGwoKSB7CiAJbWFrZSBERVNURElSPSR7REVTVERJ Un0gaW5zdGFsbCBpbnN0YWxsLW1hbgogfQpAQCAtMTQ3LDEyICsxMzMsNiBAQCBsaWJhdmRldmlj ZV9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJhdmRldmljZS5zby4qIgogCX0KIH0K LWxpYmF2cmVzYW1wbGVfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjPSJGRm1wZWcgYXVkaW8gcmVz YW1wbGluZyBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJh dnJlc2FtcGxlLnNvLioiCi0JfQotfQogbGliYXZmb3JtYXRfcGFja2FnZSgpIHsKIAlzaG9ydF9k ZXNjPSJGRm1wZWcgZmlsZSBmb3JtYXQgbGlicmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKQEAgLTE5 OCw5ICsxNzgsNDkgQEAgZmZtcGVnLWRldmVsX3BhY2thZ2UoKSB7CiAJCWxpYmF2ZmlsdGVyPj0k e3ZlcnNpb259XyR7cmV2aXNpb259CiAJCWxpYnBvc3Rwcm9jPj0ke3ZlcnNpb259XyR7cmV2aXNp b259CiAJCWxpYnN3c2NhbGU+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KLQkJbGlic3dyZXNhbXBs ZT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQotCQlsaWJhdnJlc2FtcGxlPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgorCQlsaWJzd3Jlc2FtcGxlPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNo b3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlhbHRlcm5hdGl2ZXM9IgorCSBmZm1w ZWctZGV2ZWw6bGliYXZjb2RlYy4zOi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZjb2RlYzUuMwor CSBmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2UuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2ZGV2 aWNlNS4zCisJIGZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci4zOi91c3Ivc2hhcmUvbWFuL21hbjMv bGliYXZmaWx0ZXI1LjMKKwkgZmZtcGVnLWRldmVsOmxpYmxpYmF2Zm9ybWF0LjM6L3Vzci9zaGFy ZS9tYW4vbWFuMy9saWJhdmZvcm1hdDUuMworCSBmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLjM6L3Vz ci9zaGFyZS9tYW4vbWFuMy9saWJhdnV0aWw1LjMKKwkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1w bGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3cmVzYW1wbGU1LjMKKwkgZmZtcGVnLWRldmVs OmxpYnN3c2NhbGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3c2NhbGU1LjMKKwkgZmZtcGVn LWRldmVsOmxpYmF2Y29kZWM6L3Vzci9pbmNsdWRlL2xpYmF2Y29kZWM1CisJIGZmbXBlZy1kZXZl bDpsaWJhdmRldmljZTovdXNyL2luY2x1ZGUvbGliYXZkZXZpY2U1CisJIGZmbXBlZy1kZXZlbDps aWJhdmZvcm1hdDovdXNyL2luY2x1ZGUvbGliYXZmb3JtYXQ1CisJIGZmbXBlZy1kZXZlbDpsaWJh dnV0aWw6L3Vzci9pbmNsdWRlL2xpYmF2dXRpbDUKKwkgZmZtcGVnLWRldmVsOmxpYmF2cG9zdHBy b2M6L3Vzci9pbmNsdWRlL2xpYmF2cG9zdHByb2M1CisJIGZmbXBlZy1kZXZlbDpsaWJzd3Jlc2Ft cGxlOi91c3IvaW5jbHVkZS9saWJzd3Jlc2FtcGxlNQorCSBmZm1wZWctZGV2ZWw6bGlic3djYWFs ZTovdXNyL2luY2x1ZGUvbGlic3dzY2FsZTUKKwkgZmZtcGVnLWRldmVsOmxpYmF2Y29kZWMucGM6 L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2Y29kZWM1LnBjCisJIGZmbXBlZy1kZXZlbDpsaWJhdmRl dmljZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZkZXZpY2U1LnBjCisJIGZmbXBlZy1kZXZl bDpsaWJhdmZpbHRlci5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmaWx0ZXI1LnBjCisJIGZm bXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmb3JtYXQ1 LnBjCisJIGZmbXBlZy1kZXZlbDpsaWJhdnV0aWwucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2 dXRpbDUucGMKKwkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnBjOi91c3IvbGliL3BrZ2NvbmZp Zy9saWJwb3N0cHJvYzUucGMKKwkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUucGM6L3Vzci9s aWIvcGtnY29uZmlnL2xpYnN3cmVzYW1wbGU1LnBjCisJIGZmbXBlZy1kZXZlbDpsaWJzd3NjYWxl LnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJzd3NjYWxlNS5wYworCSBmZm1wZWctZGV2ZWw6bGli YXZjb2RlYy5hOi91c3IvbGliL2xpYmF2Y29kZWM1LmEKKwkgZmZtcGVnLWRldmVsOmxpYmF2Y29k ZWMuc286L3Vzci9saWIvbGliYXZjb2RlYzUuc28KKwkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNl LmE6L3Vzci9saWIvbGliYXZkZXZpY2U1LmEKKwkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlLnNv Oi91c3IvbGliL2xpYmF2ZGV2aWNlNS5zbworCSBmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuYTov dXNyL2xpYi9saWJhdmZpbHRlcjUuYQorCSBmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuc286L3Vz ci9saWIvbGliYXZmaWx0ZXI1LnNvCisJIGZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5hOi91c3Iv bGliL2xpYmF2Zm9ybWF0NS5hCisJIGZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5zbzovdXNyL2xp Yi9saWJhdmZvcm1hdDUuc28KKwkgZmZtcGVnLWRldmVsOmxpYmF2dXRpbC5hOi91c3IvbGliL2xp YmF2dXRpbDUuYQorCSBmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLnNvOi91c3IvbGliL2xpYmF2dXRp bDUuc28KKwkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLmE6L3Vzci9saWIvbGlicG9zdHByb2M1 LmEKKwkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnNvOi91c3IvbGliL2xpYnBvc3Rwcm9jNS5z bworCSBmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS5hOi91c3IvbGliL2xpYnN3cmVzYW1wbGU1 LmEKKwkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUuc286L3Vzci9saWIvbGlic3dyZXNhbXBs ZTUuc28KKwkgZmZtcGVnLWRldmVsOmxpYnN3c2NhbGUuYTovdXNyL2xpYi9saWJzd3NjYWxlNS5h CisJIGZmbXBlZy1kZXZlbDpsaWJzd3NjYWxlLnNvOi91c3IvbGliL2xpYnN3c2NhbGU1LnNvCisJ IGZmbXBlZy1kZXZlbDpmZm1wZWc6L3Vzci9zaGFyZS9mZm1wZWc1CisJIgogCXBrZ19pbnN0YWxs KCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwpAQCAt MjExLDcgKzIzMSw3IEBAIGZmbXBlZy1kZXZlbF9wYWNrYWdlKCkgewogCX0KIH0KIGZmcGxheV9w YWNrYWdlKCkgewotCXNob3J0X2Rlc2M9IlNpbXBsZSB2aWRlbyBwbGF5ZXIgdXNpbmcgRkZtcGVn IGFuZCBTREwyIgorCXNob3J0X2Rlc2M9IlNpbXBsZSBtZWRpYSBwbGF5ZXIgdXNpbmcgRkZtcGVn IGFuZCBTREwyIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvYmluL2ZmcGxheQogCQl2 bW92ZSAidXNyL3NoYXJlL21hbi9tYW4xL2ZmcGxheSoiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Zm bXBlZzQtZGV2ZWwgYi9zcmNwa2dzL2ZmbXBlZzQtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAK aW5kZXggMDAwMDAwMDAwMDAwLi44ODdmMzU0ZTdjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2ZmbXBlZzQtZGV2ZWwKQEAgLTAsMCArMSBAQAorZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmZtcGVnNC9mZm1wZWc0IGIvc3JjcGtn cy9mZm1wZWc0L2ZmbXBlZzQKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAw Li44ODdmMzU0ZTdjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZmbXBlZzQvZmZtcGVn NApAQCAtMCwwICsxIEBACitmZm1wZWc0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9mZm1wZWcvZmlsZXMvYWx0aXZlYy5wYXRjaCBiL3NyY3BrZ3MvZmZt cGVnNC9maWxlcy9hbHRpdmVjLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJv bSBzcmNwa2dzL2ZmbXBlZy9maWxlcy9hbHRpdmVjLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2Zm bXBlZzQvZmlsZXMvYWx0aXZlYy5wYXRjaApkaWZmIC0tZ2l0IGEvc3JjcGtncy9mZm1wZWcvcGF0 Y2hlcy9hcm12NXRlbC1mbG9hdGluZy1wb2ludC5wYXRjaCBiL3NyY3BrZ3MvZmZtcGVnNC9wYXRj aGVzL2FybXY1dGVsLWZsb2F0aW5nLXBvaW50LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpy ZW5hbWUgZnJvbSBzcmNwa2dzL2ZmbXBlZy9wYXRjaGVzL2FybXY1dGVsLWZsb2F0aW5nLXBvaW50 LnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2ZmbXBlZzQvcGF0Y2hlcy9hcm12NXRlbC1mbG9hdGlu Zy1wb2ludC5wYXRjaApkaWZmIC0tZ2l0IGEvc3JjcGtncy9mZm1wZWcvcGF0Y2hlcy93b3JrYXJv dW5kLW1lc2EtcmVhZGVvbi12YWFwaS1idWcucGF0Y2ggYi9zcmNwa2dzL2ZmbXBlZzQvcGF0Y2hl cy93b3JrYXJvdW5kLW1lc2EtcmVhZGVvbi12YWFwaS1idWcucGF0Y2gKc2ltaWxhcml0eSBpbmRl eCAxMDAlCnJlbmFtZSBmcm9tIHNyY3BrZ3MvZmZtcGVnL3BhdGNoZXMvd29ya2Fyb3VuZC1tZXNh LXJlYWRlb24tdmFhcGktYnVnLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2ZmbXBlZzQvcGF0Y2hl cy93b3JrYXJvdW5kLW1lc2EtcmVhZGVvbi12YWFwaS1idWcucGF0Y2gKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZmZtcGVnNC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmZtcGVnNC90ZW1wbGF0ZQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNkOTE1NDk3OGIzZQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZmZtcGVnNC90ZW1wbGF0ZQpAQCAtMCwwICsxLDI1NCBAQAorIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZmZtcGVnNCcKKyMgYXVkYWNpdHkgYWxzbyBuZWVkcyB0byBiZSBi dW1wZWQgd2hlbiBhIG5ldyBmZm1wZWcgdmVyc2lvbiBidW1wcyBsaWJhdmZvcm1hdCdzIHNvbmFt ZSEKK3BrZ25hbWU9ZmZtcGVnNAordmVyc2lvbj00LjQuMworcmV2aXNpb249Mworc2hvcnRfZGVz Yz0iZmZtcGVnNCBsaWJyYXJpZXMgb25seSAtIERlY29kaW5nLCBlbmNvZGluZyBhbmQgc3RyZWFt aW5nIHNvZnR3YXJlIgorbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3Jn PiIKK2xpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cuZmZt cGVnLm9yZyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0ZG bXBlZy9GRm1wZWcvbWFzdGVyL0NoYW5nZWxvZyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly93d3cuZmZt cGVnLm9yZy9yZWxlYXNlcy9mZm1wZWctJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT02YzVi NmMxOTVlNjE1MzQ3NjZhMGI1ZmUxNmFjYzkxOTE3MGM4ODMzNjI2MTI4MTZkMGExYzdmNGY5NDcw MDZlCisKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBwZXJsIHlhc20iCittYWtlZGVwZW5k cz0iemxpYi1kZXZlbCBiemlwMi1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbCBs aWJYZml4ZXMtZGV2ZWwKKyBsaWJYZXh0LWRldmVsIGxpYlh2TUMtZGV2ZWwgbGlieGNiLWRldmVs IGxhbWUtZGV2ZWwgbGlidGhlb3JhLWRldmVsCisgbGlidm9yYmlzLWRldmVsIHgyNjQtZGV2ZWwg eHZpZGNvcmUtZGV2ZWwgamFjay1kZXZlbCBTREwyLWRldmVsCisgbGliY2Rpby1wYXJhbm9pYS1k ZXZlbCBsaWJydG1wLWRldmVsIGxpYm1vZHBsdWctZGV2ZWwgZ251dGxzLWRldmVsCisgc3BlZXgt ZGV2ZWwgY2VsdC1kZXZlbCBoYXJmYnV6ei1kZXZlbCBsaWJhc3MtZGV2ZWwgb3B1cy1kZXZlbCBv Y2wtaWNkLWRldmVsCisgbGliYnMyYi1kZXZlbCBsaWJ2aWRzdGFiLWRldmVsICQodm9wdF9pZiBw dWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwpCisgJCh2b3B0X2lmIHZhYXBpIGxpYnZhLWRldmVs KSAkKHZvcHRfaWYgdmRwYXUgbGlidmRwYXUtZGV2ZWwpCisgJCh2b3B0X2lmIHgyNjUgeDI2NS1k ZXZlbCkgJCh2b3B0X2lmIHY0bDIgdjRsLXV0aWxzLWRldmVsKQorICQodm9wdF9pZiBmZGtfYWFj IGZkay1hYWMtZGV2ZWwpICQodm9wdF9pZiB2cHggbGlidnB4LWRldmVsKQorICQodm9wdF9pZiBh b20gbGliYW9tLWRldmVsKSAkKHZvcHRfaWYgc25kaW8gc25kaW8tZGV2ZWwpCisgJCh2b3B0X2lm IGRhdjFkIGxpYmRhdjFkLWRldmVsKSAkKHZvcHRfaWYgemltZyB6aW1nLWRldmVsKQorICQodm9w dF9pZiB3ZWJwIGxpYndlYnAtZGV2ZWwpICQodm9wdF9pZiBzb2ZhIGxpYm15c29mYS1kZXZlbCkK KyAkKHZvcHRfaWYgZHJtIGxpYmRybS1kZXZlbCkgJCh2b3B0X2lmIHN2dGF2MSBsaWJzdnQtYXYx LWRldmVsKQorICQodm9wdF9pZiBzcnQgc3J0LWRldmVsKSAkKHZvcHRfaWYgcmlzdCBsaWJyaXN0 LWRldmVsKQorICQodm9wdF9pZiB2dWxrYW4gJ3Z1bGthbi1sb2FkZXIgVnVsa2FuLUhlYWRlcnMn KQorICQodm9wdF9pZiBudmVuYyBudi1jb2RlYy1oZWFkZXJzKSAkKHZvcHRfaWYgbnZkZWMgbnYt Y29kZWMtaGVhZGVycykiCisKK2J1aWxkX29wdGlvbnM9IngyNjUgdjRsMiB2YWFwaSB2ZHBhdSB2 cHggZmRrX2FhYyBhb20gbnZlbmMgc25kaW8gcHVsc2VhdWRpbworIGRhdjFkIHppbWcgd2VicCBz b2ZhIHZ1bGthbiBkcm0gc3Z0YXYxIHNydCByaXN0IG52ZGVjIgorYnVpbGRfb3B0aW9uc19kZWZh dWx0PSJ4MjY1IHY0bDIgdnB4IGFvbSBzbmRpbyBwdWxzZWF1ZGlvIGRhdjFkIHdlYnAgdnVsa2Fu IGRybSBzcnQgcmlzdCIKKworZGVzY19vcHRpb25fc3J0PSJFbmFibGUgc3VwcG9ydCBmb3IgU1JU IChTZWN1cmUsIFJlbGlhYmxlLCBUcmFuc3BvcnQpIgorZGVzY19vcHRpb25fcmlzdD0iRW5hYmxl IHN1cHBvcnQgZm9yIFJJU1QgKFJlbGlhYmxlIEludGVybmV0IFN0cmVhbSBUcmFuc3BvcnQpIgor ZGVzY19vcHRpb25fc29mYT0iRW5hYmxlIHN1cHBvcnQgZm9yIEFFUyBTT0ZBIgorZGVzY19vcHRp b25fd2VicD0iRW5hYmxlIHN1cHBvcnQgZm9yIFdlYlAiCisKK2Nhc2UgIiRYQlBTX1RBUkdFVF9N QUNISU5FIiBpbgorCWk2ODYqfHg4Nl82NCopIGJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiB2YWFw aSB2ZHBhdSBudmVuYyBudmRlYyI7OworCXBwYzY0KikgYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0i IHZhYXBpIHZkcGF1Ijs7CisJbWlwcyopIENGTEFHUz0iLW1uYW49bGVnYWN5Ijs7Citlc2FjCisK K2lmIFsgIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgIT0gIjMyIiBdOyB0aGVuCisJYnVpbGRfb3B0 aW9uc19kZWZhdWx0Kz0iIHN2dGF2MSIKK2ZpCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9OT19BVE9N SUM4IiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliYXRvbWljLWRldmVsIgorZmkKKworX2Fw cGx5X3BhdGNoKCkgeworCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCisK KwlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCisJCXBhdGNoIC1OICRhcmdzIC1p ICQyCisJCXRvdWNoIC4ke3BuYW1lfV9kb25lCisJZmkKK30KKworcG9zdF9wYXRjaCgpIHsKKwlj YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjRsZSopIDs7CisJCXBwYyopIF9h cHBseV9wYXRjaCAtcDEgJHtGSUxFU0RJUn0vYWx0aXZlYy5wYXRjaCA7OworCWVzYWMKK30KKwor ZG9fY29uZmlndXJlKCkgeworCSMgRml4IGdjYyBvbiB4ODZfNjQtbXVzbCBvbmx5CisJaWYgWyAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gIng4Nl82NC1tdXNsIiBdOyB0aGVuCisJCXNlZCAtaSBj b25maWd1cmUgLWUgInM7X2NmbGFnc19zcGVlZD0nLU8zJztfY2ZsYWdzX3NwZWVkPSctTzInOyIK KwlmaQorCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCQkJYXJtKikgX2FyY2g9ImFybSI7OworCQkJYWFyY2g2NCopIF9hcmNo PSJhYXJjaDY0Ijs7CisJCQltaXBzKikgX2FyY2g9Im1pcHMiOzsKKwkJCXBwYzY0KikgX2FyY2g9 InBwYzY0Ijs7CisJCQlwcGMqKSBfYXJjaD0icHBjIjs7CisJCQkqKSBfYXJjaD0iJHtYQlBTX1RB UkdFVF9NQUNISU5FJSUtbXVzbH0iOzsKKwkJZXNhYworCisJCV9hcmdzKz0iIC0tZW5hYmxlLWNy b3NzLWNvbXBpbGUKKwkJCS0tc3lzcm9vdD0kWEJQU19DUk9TU19CQVNFCisJCQktLWNyb3NzLXBy ZWZpeD0ke1hCUFNfQ1JPU1NfVFJJUExFVH0tCisJCQktLXRhcmdldC1vcz1saW51eCAtLWFyY2g9 JHtfYXJjaH0iCisJZmkKKworCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGN8 cHBjLW11c2wpIF9hcmdzKz0iIC0tZGlzYWJsZS1hbHRpdmVjIjs7CisJZXNhYworCisJaWYgWyAi JFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF07IHRoZW4KKwkJX2FyZ3MrPSIgLS1leHRyYS1saWJz PS1sYXRvbWljIgorCWZpCisKKwkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIC0tZGlzYWJsZS1k ZWJ1ZyAtLWVuYWJsZS1ncGwgLS1lbmFibGUtZ251dGxzIFwKKwkJLS1kaXNhYmxlLXN0cmlwcGlu ZyBcCisJCS0tZW5hYmxlLWxpYmNkaW8gLS1lbmFibGUtdmVyc2lvbjMgLS1lbmFibGUtcnVudGlt ZS1jcHVkZXRlY3QgXAorCQktLWVuYWJsZS1saWJtcDNsYW1lIC0tZW5hYmxlLWxpYnZvcmJpcyAt LWVuYWJsZS1saWJ4dmlkIFwKKwkJLS1lbmFibGUtbGlieDI2NCAkKHZvcHRfZW5hYmxlIHZweCBs aWJ2cHgpIC0tZW5hYmxlLWxpYnRoZW9yYSBcCisJCS0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS1z dGF0aWMgLS1lbmFibGUtbGlieGNiIFwKKwkJJCh2b3B0X2VuYWJsZSBwdWxzZWF1ZGlvIGxpYnB1 bHNlKSAtLWVuYWJsZS1saWJmcmVldHlwZSAtLWVuYWJsZS1saWJtb2RwbHVnIFwKKwkJLS1lbmFi bGUtbGlic3BlZXggLS1lbmFibGUtbGliY2VsdCAtLWVuYWJsZS1saWJhc3MgXAorCQktLWVuYWJs ZS1saWJvcHVzIC0tZW5hYmxlLWxpYnJ0bXAgLS1lbmFibGUtbGliamFjayBcCisJCSQodm9wdF9p ZiBmZGtfYWFjICctLWVuYWJsZS1ub25mcmVlIC0tZW5hYmxlLWxpYmZkay1hYWMnKSBcCisJCS0t ZGlzYWJsZS1saWJvcGVuY29yZV9hbXJuYiAtLWRpc2FibGUtbGlib3BlbmNvcmVfYW1yd2IgXAor CQktLWRpc2FibGUtbGlib3BlbmpwZWcgXAorCQktLWVuYWJsZS1wb3N0cHJvYyAtLWVuYWJsZS1v cGVuY2wgJHtfYXJnc30gXAorCQkkKHZvcHRfZW5hYmxlIHgyNjUgbGlieDI2NSkgXAorCQkkKHZv cHRfZW5hYmxlIHY0bDIgbGlidjRsMikgXAorCQkkKHZvcHRfZW5hYmxlIGFvbSBsaWJhb20pICQo dm9wdF9lbmFibGUgdmFhcGkpICQodm9wdF9lbmFibGUgdmRwYXUpIFwKKwkJLS1lbmFibGUtbGli YnMyYiAtLWVuYWJsZS1hdnJlc2FtcGxlIC0tZW5hYmxlLWxpYnZpZHN0YWIgXAorCQkkKHZvcHRf ZW5hYmxlIGRhdjFkIGxpYmRhdjFkKSBcCisJCSQodm9wdF9lbmFibGUgemltZyBsaWJ6aW1nKSBc CisJCSQodm9wdF9lbmFibGUgd2VicCBsaWJ3ZWJwKSBcCisJCSQodm9wdF9lbmFibGUgc29mYSBs aWJteXNvZmEpIFwKKwkJJCh2b3B0X2VuYWJsZSB2dWxrYW4pIFwKKwkJJCh2b3B0X2VuYWJsZSBk cm0gbGliZHJtKSBcCisJCSQodm9wdF9lbmFibGUgc3Z0YXYxIGxpYnN2dGF2MSkgXAorCQkkKHZv cHRfZW5hYmxlIHNydCBsaWJzcnQpIFwKKwkJJCh2b3B0X2VuYWJsZSByaXN0IGxpYnJpc3QpIFwK KwkJJCh2b3B0X2lmIG52ZW5jICctLWVuYWJsZS1udmVuYycpIFwKKwkJJCh2b3B0X2lmIG52ZGVj ICctLWVuYWJsZS1udmRlYycpCit9Citkb19idWlsZCgpIHsKKwltYWtlICR7bWFrZWpvYnN9CisJ bWFrZSBkb2MvZmZ7bXBlZyxwbGF5fS4xCit9Citkb19pbnN0YWxsKCkgeworCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwgaW5zdGFsbC1tYW4KKwlybSAtcmYgJHtERVNURElSfS91c3Iv YmluCit9CisKK2xpYmF2Y29kZWM0X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYz0iRkZtcGVnIGNv ZGVjIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmF2Y29k ZWMuc28uKiIKKwl9Cit9CitsaWJhdmRldmljZTRfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjPSJG Rm1wZWcgZGV2aWNlIGhhbmRsaW5nIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3Zl ICJ1c3IvbGliL2xpYmF2ZGV2aWNlLnNvLioiCisJfQorfQorbGliYXZyZXNhbXBsZTRfcGFja2Fn ZSgpIHsKKwlzaG9ydF9kZXNjPSJGRm1wZWcgYXVkaW8gcmVzYW1wbGluZyBsaWJyYXJ5IgorCXBr Z19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJhdnJlc2FtcGxlLnNvLioiCisJfQor fQorbGliYXZmb3JtYXQ0X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYz0iRkZtcGVnIGZpbGUgZm9y bWF0IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmF2Zm9y bWF0LnNvLioiCisJfQorfQorbGliYXZ1dGlsNF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2M9IkZG bXBlZyB1dGlsaXR5IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGli L2xpYmF2dXRpbC5zby4qIgorCX0KK30KK2xpYmF2ZmlsdGVyNF9wYWNrYWdlKCkgeworCXNob3J0 X2Rlc2M9IkZGbXBlZyBhdWRpby92aWRlbyBmaWx0ZXIgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJdm1vdmUgInVzci9saWIvbGliYXZmaWx0ZXIuc28uKiIKKwl9Cit9CitsaWJwb3N0cHJv YzRfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjPSJGRm1wZWcgdmlkZW8gcG9zdHByb2Nlc3Npbmcg bGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGlicG9zdHByb2Mu c28uKiIKKwl9Cit9CitsaWJzd3NjYWxlNF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2M9IkZGbXBl ZyB2aWRlbyBzY2FsaW5nIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3Iv bGliL2xpYnN3c2NhbGUuc28uKiIKKwl9Cit9CitsaWJzd3Jlc2FtcGxlNF9wYWNrYWdlKCkgewor CXNob3J0X2Rlc2M9IkZGbXBlZyB2aWRlbyByZXNhbXBsaW5nIGxpYnJhcnkiCisJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYnN3cmVzYW1wbGUuc28uKiIKKwl9Cit9CitmZm1w ZWc0LWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iCisJCWxpYmF2Y29kZWM0Pj0ke3ZlcnNp b259XyR7cmV2aXNpb259CisJCWxpYmF2ZGV2aWNlND49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQor CQlsaWJhdmZvcm1hdDQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KKwkJbGliYXZ1dGlsND49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufQorCQlsaWJhdmZpbHRlcjQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0KKwkJbGlicG9zdHByb2M0Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259CisJCWxpYnN3c2NhbGU0 Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259CisJCWxpYnN3cmVzYW1wbGU0Pj0ke3ZlcnNpb259XyR7 cmV2aXNpb259CisJCWxpYmF2cmVzYW1wbGU0Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNo b3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlhbHRlcm5hdGl2ZXM9IgorCQlmZm1w ZWctZGV2ZWw6bGliYXZjb2RlYy4zOi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZjb2RlYzQuMwor CQlmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2UuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2ZGV2 aWNlNC4zCisJCWZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci4zOi91c3Ivc2hhcmUvbWFuL21hbjMv bGliYXZmaWx0ZXI0LjMKKwkJZmZtcGVnLWRldmVsOmxpYmxpYmF2Zm9ybWF0LjM6L3Vzci9zaGFy ZS9tYW4vbWFuMy9saWJhdmZvcm1hdDQuMworCQlmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLjM6L3Vz ci9zaGFyZS9tYW4vbWFuMy9saWJhdnV0aWw0LjMKKwkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1w bGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3cmVzYW1wbGU0LjMKKwkJZmZtcGVnLWRldmVs OmxpYnN3c2NhbGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3c2NhbGU0LjMKKwkJZmZtcGVn LWRldmVsOmxpYmF2Y29kZWM6L3Vzci9pbmNsdWRlL2xpYmF2Y29kZWM0CisJCWZmbXBlZy1kZXZl bDpsaWJhdmRldmljZTovdXNyL2luY2x1ZGUvbGliYXZkZXZpY2U0CisJCWZmbXBlZy1kZXZlbDps aWJhdmZvcm1hdDovdXNyL2luY2x1ZGUvbGliYXZmb3JtYXQ0CisJCWZmbXBlZy1kZXZlbDpsaWJh dnV0aWw6L3Vzci9pbmNsdWRlL2xpYmF2dXRpbDQKKwkJZmZtcGVnLWRldmVsOmxpYmF2cG9zdHBy b2M6L3Vzci9pbmNsdWRlL2xpYmF2cG9zdHByb2M0CisJCWZmbXBlZy1kZXZlbDpsaWJzd3Jlc2Ft cGxlOi91c3IvaW5jbHVkZS9saWJzd3Jlc2FtcGxlNAorCQlmZm1wZWctZGV2ZWw6bGlic3djYWFs ZTovdXNyL2luY2x1ZGUvbGlic3dzY2FsZTQKKwkJZmZtcGVnLWRldmVsOmxpYmF2Y29kZWMucGM6 L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2Y29kZWM0LnBjCisJCWZmbXBlZy1kZXZlbDpsaWJhdmRl dmljZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZkZXZpY2U0LnBjCisJCWZmbXBlZy1kZXZl bDpsaWJhdmZpbHRlci5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmaWx0ZXI0LnBjCisJCWZm bXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmb3JtYXQ0 LnBjCisJCWZmbXBlZy1kZXZlbDpsaWJhdnV0aWwucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2 dXRpbDQucGMKKwkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnBjOi91c3IvbGliL3BrZ2NvbmZp Zy9saWJwb3N0cHJvYzQucGMKKwkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUucGM6L3Vzci9s aWIvcGtnY29uZmlnL2xpYnN3cmVzYW1wbGU0LnBjCisJCWZmbXBlZy1kZXZlbDpsaWJzd3NjYWxl LnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJzd3NjYWxlNC5wYworCQlmZm1wZWctZGV2ZWw6bGli YXZjb2RlYy5hOi91c3IvbGliL2xpYmF2Y29kZWM0LmEKKwkJZmZtcGVnLWRldmVsOmxpYmF2Y29k ZWMuc286L3Vzci9saWIvbGliYXZjb2RlYzQuc28KKwkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNl LmE6L3Vzci9saWIvbGliYXZkZXZpY2U0LmEKKwkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlLnNv Oi91c3IvbGliL2xpYmF2ZGV2aWNlNC5zbworCQlmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuYTov dXNyL2xpYi9saWJhdmZpbHRlcjQuYQorCQlmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuc286L3Vz ci9saWIvbGliYXZmaWx0ZXI0LnNvCisJCWZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5hOi91c3Iv bGliL2xpYmF2Zm9ybWF0NC5hCisJCWZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5zbzovdXNyL2xp Yi9saWJhdmZvcm1hdDQuc28KKwkJZmZtcGVnLWRldmVsOmxpYmF2dXRpbC5hOi91c3IvbGliL2xp YmF2dXRpbDQuYQorCQlmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLnNvOi91c3IvbGliL2xpYmF2dXRp bDQuc28KKwkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLmE6L3Vzci9saWIvbGlicG9zdHByb2M0 LmEKKwkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnNvOi91c3IvbGliL2xpYnBvc3Rwcm9jNC5z bworCQlmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS5hOi91c3IvbGliL2xpYnN3cmVzYW1wbGU0 LmEKKwkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUuc286L3Vzci9saWIvbGlic3dyZXNhbXBs ZTQuc28KKwkJZmZtcGVnLWRldmVsOmxpYnN3c2NhbGUuYTovdXNyL2xpYi9saWJzd3NjYWxlNC5h CisJCWZmbXBlZy1kZXZlbDpsaWJzd3NjYWxlLnNvOi91c3IvbGliL2xpYnN3c2NhbGU0LnNvCisJ CWZmbXBlZy1kZXZlbDpmZm1wZWc6L3Vzci9zaGFyZS9mZm1wZWc0CisJIgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2 bW92ZSB1c3IvbGliLyouYQorCQl2bW92ZSB1c3IvbGliLyouc28KKwkJdm1vdmUgdXNyL3NoYXJl L2ZmbXBlZy9leGFtcGxlcworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMKKwl9Cit9CmRpZmYg LS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8wMDAxLUZpeC1pbmZpbml0ZS1sb29wLWlu LU1lbnUtY3ljbGVpdGVtcy5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzAwMDEtRml4 LWluZmluaXRlLWxvb3AtaW4tTWVudS1jeWNsZWl0ZW1zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGM0NTBmZDQ1YmZiCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMDAwMS1GaXgtaW5maW5pdGUtbG9vcC1pbi1NZW51LWN5 Y2xlaXRlbXMucGF0Y2gKQEAgLTAsMCArMSw2MCBAQAorRnJvbSA5ZDgyMDJmMzIzMzhhM2YwOGQz ZmEzOTA1N2RjNWVlYzVkOTdiZTRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF0 aGlhcyBHdW16IDxha2lyYUBmbHV4Ym94Lm9yZz4KK0RhdGU6IFNhdCwgMjggTWF5IDIwMjIgMTE6 MTM6NDMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IGluZmluaXRlIGxvb3AgaW4gTWVudTo6 Y3ljbGVpdGVtcygpCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1doZW4g YSBtZW51IGNvbnRhaW5zIG5vIHNlbGVjdGFibGUgaXRlbSAoZXhhbXBsZSBnaXZlbjogYSAibGlz dCIgb2YgdXNlcgorc3R5bGVzIGFuZCB0aGUgb25seSBhdmFpbGFibGUgb25lIGlzIGFscmVhZHkg c2VsZWN0ZWQpLCBjeWNsaW5nIHRocm91Z2gKK3RoZSBtZW51IHdpbGwgbGVhZCB0byBhbiBpbmZp bml0ZSBsb29wIGFuZCB0aHVzIGEgZGlzZnVuY3Rpb25hbCBmbHV4Ym94LgorCitUaGlzIGNvbW1p dCBhZGRyZXNzZXMgdGhlIGlzc3VlIGJ5IGNoZWNraW5nIGlmIHRoZXJlIGlzIGFueSBzZWxlY3Rh YmxlCitpdGVtIGJlZm9yZSBlbnRlcmluZyB0aGUgY3ljbGluZyBzdGFnZS4KKworRGlzY292ZXJl ZCBieSBTw6liYXN0aWVuIEJhbGxldFsxXS4KKworWzFdOiBodHRwczovL3NvdXJjZWZvcmdlLm5l dC9wL2ZsdXhib3gvYnVncy8xMTg1LworLS0tCisgc3JjL0ZiVGsvTWVudS5jYyB8IDIxICsrKysr KysrKysrKysrKy0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL0ZiVGsvTWVudS5jYyBiL3NyYy9GYlRrL01l bnUuY2MKK2luZGV4IDZiMmRiM2E0Li5mZjA0MGJhZSAxMDA2NDQKKy0tLSBhL3NyYy9GYlRrL01l bnUuY2MKKysrKyBiL3NyYy9GYlRrL01lbnUuY2MKK0BAIC0zMjAsMTUgKzMyMCwyNCBAQCB2b2lk IE1lbnU6Omxvd2VyKCkgeworIAorIHZvaWQgTWVudTo6Y3ljbGVJdGVtcyhib29sIHJldmVyc2Up IHsKKyAKKy0gICAgaWYgKG1faXRlbXMuZW1wdHkoKSkKKy0gICAgICAgIHJldHVybjsKKy0KKy0g ICAgaW50IG9mZnNldCA9IHJldmVyc2UgPyAtMSA6IDE7CisgICAgIGludCBsID0gbV9pdGVtcy5z aXplKCk7CistICAgIGludCBpID0gbV9hY3RpdmVfaW5kZXg7CisrICAgIGludCBpOworKyAgICBp bnQgb2Zmc2V0ID0gcmV2ZXJzZSA/IC0xIDogMTsKKyAgICAgc2l6ZV90IGlnbm9yZTsKKyAKKy0g ICAgZm9yIChpICs9IG9mZnNldDsgaSAhPSBtX2FjdGl2ZV9pbmRleDsgaSArPSBvZmZzZXQgKSB7 CisrICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIF9hbnlfIHNlbGVjdGFibGUgaXRlbQorKyAgICBm b3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7CisrICAgICAgICBpZiAoaXNJdGVtU2VsZWN0YWJsZShp KSkgeworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIC8v IG5vIHNlbGVjdGFibGUgaXRlbQorKyAgICBpZiAoaSA+PSBsKSB7CisrICAgICAgICByZXR1cm47 CisrICAgIH0KKysKKysgICAgZm9yIChpID0gbV9hY3RpdmVfaW5kZXggKyBvZmZzZXQ7IGkgIT0g bV9hY3RpdmVfaW5kZXg7IGkgKz0gb2Zmc2V0ICkgeworICAgICAgICAgaWYgKGkgPCAwKSB7Cisg ICAgICAgICAgICAgaSA9IGwgLSAxOworICAgICAgICAgfSBlbHNlIGlmIChpID49IGwpIHsKKy0t IAorMi4zOS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzIyODY2YzRk MzBmNWIyODljNDI5YzVjYTg4ZDgwMDIwMGRiNGZjNGYucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gv cGF0Y2hlcy8yMjg2NmM0ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4MDAyMDBkYjRmYzRmLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzE1MTY0M2NiNDUuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8yMjg2NmM0ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4 MDAyMDBkYjRmYzRmLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotRnJvbSAy Mjg2NmM0ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4MDAyMDBkYjRmYzRmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogSm9obiBTZW5uZXNhZWwgPGpvaG5AYW1pbmtpbmcuY29tPgotRGF0ZTog TW9uLCAyIE5vdiAyMDE1IDE1OjE0OjMyIC0wNjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeGVzIGJ1 ZyAjMTEzOAotCi0tLS0KLSB1dGlsL2ZsdXhib3gtcmVtb3RlLmNjIHwgMiArLQotIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdXRp bC9mbHV4Ym94LXJlbW90ZS5jYyBiL3V0aWwvZmx1eGJveC1yZW1vdGUuY2MKLWluZGV4IDU5ODUy ZTZhNy4uNTA0MDE1YjUwIDEwMDY0NAotLS0tIGEvdXRpbC9mbHV4Ym94LXJlbW90ZS5jYwotKysr IGIvdXRpbC9mbHV4Ym94LXJlbW90ZS5jYwotQEAgLTczLDcgKzczLDcgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gICAgIGlmIChzdHJjbXAoY21kLCAicmVzdWx0IikgPT0g MCkgewotICAgICAgICAgWFRleHRQcm9wZXJ0eSB0ZXh0X3Byb3A7Ci0gICAgICAgICBpZiAoWEdl dFRleHRQcm9wZXJ0eShkaXNwLCByb290LCAmdGV4dF9wcm9wLCBhdG9tX3Jlc3VsdCkgIT0gMAot LSAgICAgICAgICAgICYmIHRleHRfcHJvcC52YWx1ZSA+IDAKLSsgICAgICAgICAgICAmJiB0ZXh0 X3Byb3AudmFsdWUgIT0gMAotICAgICAgICAgICAgICYmIHRleHRfcHJvcC5uaXRlbXMgPiAwKSB7 Ci0gCi0gICAgICAgICAgICAgcHJpbnRmKCIlcyIsIHRleHRfcHJvcC52YWx1ZSk7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9NaW5PdmVybGFwUGxhY2VtZW50LmNjX2ltcHJv dmUucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9NaW5PdmVybGFwUGxhY2VtZW50LmNj X2ltcHJvdmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41 YjY0YjExYWIyYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9N aW5PdmVybGFwUGxhY2VtZW50LmNjX2ltcHJvdmUucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorLS0t IGEvc3JjL01pbk92ZXJsYXBQbGFjZW1lbnQuY2MgIDIwMTUtMDItMDggMDU6NDQ6MzQuMDAwMDAw MDAwIC0wNTAwCisrKysgYi9zcmMvTWluT3ZlcmxhcFBsYWNlbWVudC5jYyAgMjAyMi0wNy0xOCAx NToxNDo0MS4wMTIyNzUyMDAgLTA0MDAKK0BAIC0xOTYsMTkgKzE5NiwyMSBAQAorICAgICBzdGQ6 OnNldDxBcmVhPjo6aXRlcmF0b3IgbWluX3JlZyA9IGFyZWFzLmVuZCgpOworCisgICAgIHN0ZDo6 c2V0PEFyZWE+OjppdGVyYXRvciBhcl9pdCA9IGFyZWFzLmJlZ2luKCk7CisrICAgIGludCBvdmVy bGFwID0gMCwgbWluX3JpZ2h0ID0gMCwgbWluX2JvdHRvbSA9IDAsIG1heF9sZWZ0ID0gMCwgbWF4 X3RvcCA9IDA7CisrCisgICAgIGZvciAoOyBhcl9pdCAhPSBhcmVhcy5lbmQoKTsgKythcl9pdCkg eworCistICAgICAgICBpbnQgb3ZlcmxhcCA9IDA7CisrICAgICAgICBvdmVybGFwID0gMDsKKyAg ICAgICAgIGl0ID0gY29uc3Rfd2luZG93bGlzdC5yYmVnaW4oKTsKKyAgICAgICAgIGZvciAoOyBp dCAhPSBpdF9lbmQ7ICsraXQpIHsKKworICAgICAgICAgICAgIGdldFdpbmRvd0RpbWVuc2lvbnMo KigqaXQpLCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOworCisgICAgICAgICAgICAgLy8gZ2V0 IHRoZSBjb29yZGluYXRlcyBvZiB0aGUgb3ZlcmxhcCByZWdpb24KKy0gICAgICAgICAgICBpbnQg bWluX3JpZ2h0ID0gc3RkOjptaW4ocmlnaHQsIGFyX2l0LT54ICsgd2luX3cpOworLSAgICAgICAg ICAgIGludCBtaW5fYm90dG9tID0gc3RkOjptaW4oYm90dG9tLCBhcl9pdC0+eSArIHdpbl9oKTsK Ky0gICAgICAgICAgICBpbnQgbWF4X2xlZnQgPSBzdGQ6Om1heChsZWZ0LCBhcl9pdC0+eCk7Cist ICAgICAgICAgICAgaW50IG1heF90b3AgPSBzdGQ6Om1heCh0b3AsIGFyX2l0LT55KTsKKysgICAg ICAgICAgICBtaW5fcmlnaHQgPSBzdGQ6Om1pbihyaWdodCwgYXJfaXQtPnggKyB3aW5fdyk7Cisr ICAgICAgICAgICAgbWluX2JvdHRvbSA9IHN0ZDo6bWluKGJvdHRvbSwgYXJfaXQtPnkgKyB3aW5f aCk7CisrICAgICAgICAgICAgbWF4X2xlZnQgPSBzdGQ6Om1heChsZWZ0LCBhcl9pdC0+eCk7Cisr ICAgICAgICAgICAgbWF4X3RvcCA9IHN0ZDo6bWF4KHRvcCwgYXJfaXQtPnkpOworCisgICAgICAg ICAgICAgLy8gbm93IGNvbXB1dGUgdGhlIG92ZXJsYXAgYW5kIGFkZCB0byBydW5uaW5nIHRvdGFs CisgICAgICAgICAgICAgaWYgKG1pbl9yaWdodCA+IG1heF9sZWZ0ICYmIG1pbl9ib3R0b20gPiBt YXhfdG9wKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNo IGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzllM2U0YzdmMzdlCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNoCkBAIC0wLDAgKzEsMzA3IEBACitG cm9tIGVjODM5OTNjMjM2ZGU5Yzk0NDJlMmZjZDMxYzA4YWFlODUyYTVhMTYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiB6bGljZSA8emxpY2U1NTVAZ21haWwuY29tPgorRGF0ZTogRnJp LCAyMiBKdWwgMjAyMiAyMToyMTozMyAtMDQwMAorU3ViamVjdDogW1BBVENIIDEvMl0gd2hpdGVz cGFjZSBjbGVhbnVwCisKKy0tLQorIGRvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dCB8ICA4ICsrKyst LS0tCisgc3JjL1NjcmVlblBsYWNlbWVudC5jYyAgIHwgMTIgKysrKysrLS0tLS0tCisgc3JjL1Nj cmVlblBsYWNlbWVudC5oaCAgIHwgMTAgKysrKystLS0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kb2MvYXNjaWlk b2MvZmx1eGJveC50eHQgYi9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQKK2luZGV4IDk1NjI0ODQy Li4wZTNmMjdiOSAxMDA2NDQKKy0tLSBhL2RvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dAorKysrIGIv ZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0CitAQCAtNCw3ICs0LDcgQEAgSGVucmlrIEtpbm51bmVu IDxmbHV4Z2VuQGZsdXhib3gub3JnPgorIHYxLjMuNywgMDggRmVicnVhcnkgMjAxNQorIDptYW4g c291cmNlOiAgIGZsdXhib3gudHh0CisgOm1hbiB2ZXJzaW9uOiAge3JldmlzaW9ufQorLTptYW4g bWFudWFsOiAgIEZsdXhib3ggTWFudWFsICAKKys6bWFuIG1hbnVhbDogICBGbHV4Ym94IE1hbnVh bAorIAorIE5BTUUKKyAtLS0tCitAQCAtNDc1LDcgKzQ3NSw3IEBAIEJ5IGRlZmF1bHQsIHRoaXMg bWVudSBjb250YWluczoKKyAKKyAqUmVtZW1iZXIuLi4qOjo6CisgU3BlY2lmeSB3aGljaCB3aW5k b3cgc2V0dGluZ3Mgc2hvdWxkIGJlIHN0b3JlZCBpbiB0aGUgYGFwcHMnIGZpbGUgYW5kCistcmVz dW1lZCB0aGUgbmV4dCB0aW1lIHRoaXMgd2luZG93IGlzIG9wZW5lZC4gCisrcmVzdW1lZCB0aGUg bmV4dCB0aW1lIHRoaXMgd2luZG93IGlzIG9wZW5lZC4KKyArCisgU3BlY2lmaWNhbGx5IHRoZSBz ZXR0aW5nIHlvdSBtYXkgc3RvcmUgYXJlOgorICsKK0BAIC03NDAsNyArNzQwLDcgQEAgVGhlcmUg YXJlIHRocmVlIG1vcmUgc2V0dGluZ3MgaW4gdGhlIGBgRm9jdXMgTW9kZWwnJyBtZW51OgorIAor IFRBQiBPUFRJT05TCisgLS0tLS0tLS0tLS0KKy1UaGlzIHNlY3Rpb24gb2YgZmx1eGJveCBjb25m aWd1cmF0aW9uIG1lbnUgbGV0cyB5b3UgY29uZmlndXJlIG1hbnkgZmVhdHVyZXMgb2YgCisrVGhp cyBzZWN0aW9uIG9mIGZsdXhib3ggY29uZmlndXJhdGlvbiBtZW51IGxldHMgeW91IGNvbmZpZ3Vy ZSBtYW55IGZlYXR1cmVzIG9mCisgdGFicy4gSW5zaWRlIG9mIGl0IHRoZXJlIGFyZSB0aHJlZSBt YWluIG9wdGlvbnM6CisgCisgKlBsYWNlbWVudCo6OjoKK0BAIC0xMDYwLDcgKzEwNjAsNyBAQCB3 aGVuZXZlciB0aGUgbW91c2UgbW92ZXMgb3ZlciB0aGVtLCBidXQgb25seSB3aGVuIHRoZSBtb3Vz ZSBpcyBtb3ZpbmcuIFdpdGgKKyBhcmVhLCBldmVuIGlmIHRoaXMgaXMgZHVlIHRvIGxheWVyIGNo YW5nZXMsIHdpbmRvdyBtb3ZlbWVudCwgY2hhbmdpbmcgZGVza3RvcHMsIGNsb3Npbmcgd2luZG93 cywgZXRjLgorICsKKyBEZWZhdWx0OiAqQ2xpY2tUb0ZvY3VzKgorLSAgICAgIAorKworICpzZXNz aW9uLnNjcmVlbjAuYXV0b1JhaXNlKjogJ2Jvb2xlYW4nOjoKKyBXaGVuIFRydWUsIHRoaXMgc2V0 dGluZyBhdXRvbWF0aWNhbGx5IHJhaXNlcyBhbnkgd2luZG93IHRoYXQgZ2FpbnMgZm9jdXMuCisg KworZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuY2MgYi9zcmMvU2NyZWVuUGxhY2Vt ZW50LmNjCitpbmRleCAxOWRkZjc4YS4uY2E1OGQ4M2YgMTAwNjQ0CistLS0gYS9zcmMvU2NyZWVu UGxhY2VtZW50LmNjCisrKysgYi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCitAQCAtNDMsMTQgKzQz LDE0IEBAIHVzaW5nIHN0ZDo6Y2VycjsKKyB1c2luZyBzdGQ6OmVuZGw7CisgCisgU2NyZWVuUGxh Y2VtZW50OjpTY3JlZW5QbGFjZW1lbnQoQlNjcmVlbiAmc2NyZWVuKToKKy0gICAgbV9yb3dfZGly ZWN0aW9uKHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgTEVGVFJJR0hULCAKKy0gICAgICAgICAg ICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi5yb3dQbGFjZW1lbnREaXJlY3Rpb24iLCAKKysgICAg bV9yb3dfZGlyZWN0aW9uKHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgTEVGVFJJR0hULAorKyAg ICAgICAgICAgICAgICAgICAgc2NyZWVuLm5hbWUoKSsiLnJvd1BsYWNlbWVudERpcmVjdGlvbiIs CisgICAgICAgICAgICAgICAgICAgICBzY3JlZW4uYWx0TmFtZSgpKyIuUm93UGxhY2VtZW50RGly ZWN0aW9uIiksCistICAgIG1fY29sX2RpcmVjdGlvbihzY3JlZW4ucmVzb3VyY2VNYW5hZ2VyKCks IFRPUEJPVFRPTSwgCistICAgICAgICAgICAgICAgICAgICBzY3JlZW4ubmFtZSgpKyIuY29sUGxh Y2VtZW50RGlyZWN0aW9uIiwgCisrICAgIG1fY29sX2RpcmVjdGlvbihzY3JlZW4ucmVzb3VyY2VN YW5hZ2VyKCksIFRPUEJPVFRPTSwKKysgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkr Ii5jb2xQbGFjZW1lbnREaXJlY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgc2NyZWVuLmFs dE5hbWUoKSsiLkNvbFBsYWNlbWVudERpcmVjdGlvbiIpLAorLSAgICBtX3BsYWNlbWVudF9wb2xp Y3koc2NyZWVuLnJlc291cmNlTWFuYWdlcigpLCBST1dNSU5PVkVSTEFQUExBQ0VNRU5ULCAKKy0g ICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi53aW5kb3dQbGFjZW1lbnQiLCAK KysgICAgbV9wbGFjZW1lbnRfcG9saWN5KHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgUk9XTUlO T1ZFUkxBUFBMQUNFTUVOVCwKKysgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkr Ii53aW5kb3dQbGFjZW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuLmFsdE5h bWUoKSsiLldpbmRvd1BsYWNlbWVudCIpLAorICAgICBtX29sZF9wb2xpY3koUk9XU01BUlRQTEFD RU1FTlQpLAorICAgICBtX3NjcmVlbihzY3JlZW4pCitkaWZmIC0tZ2l0IGEvc3JjL1NjcmVlblBs YWNlbWVudC5oaCBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKK2luZGV4IDBmMjEwZDk0Li5mMTIz NDk4MyAxMDA2NDQKKy0tLSBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKKysrKyBiL3NyYy9TY3Jl ZW5QbGFjZW1lbnQuaGgKK0BAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEJTY3JlZW47CisgCisgLyoq CisgICogTWFpbiBjbGFzcyBmb3Igc3RyYXRlZ3kgaGFuZGxpbmcKKy0gKiBUaGlzIGlzIGEgYnJp ZGdlIGJldHdlZW4gc2NyZWVuIGFuZCAKKysgKiBUaGlzIGlzIGEgYnJpZGdlIGJldHdlZW4gc2Ny ZWVuIGFuZAorICAqIHRoZSByZWFsIHBsYWNlbWVudCBzdHJhdGVneSAocm93Y29sLCB1bmRlcm1v dXNlIGV0YykKKyAgKiBUaGUgcGxhY2VXaW5kb3cgZnVuY3Rpb24gaW4gdGhpcyBjbGFzcyBpcyBn dWFyYW50ZWVkIHRvIHN1Y2NlZWQuCisgICogSXQgaG9sZHMgYSBwb2ludGVyIHRvIHRoZSByZWFs IHBsYWNlbWVudCBzdHJhdGVneSB3aGljaCBpcworQEAgLTQyLDggKzQyLDggQEAgY2xhc3MgQlNj cmVlbjsKKyAgKi8KKyBjbGFzcyBTY3JlZW5QbGFjZW1lbnQ6IHB1YmxpYyBQbGFjZW1lbnRTdHJh dGVneSB7CisgcHVibGljOgorLSAgICBlbnVtIFBsYWNlbWVudFBvbGljeSB7IAorLSAgICAgICAg Uk9XU01BUlRQTEFDRU1FTlQsIAorKyAgICBlbnVtIFBsYWNlbWVudFBvbGljeSB7CisrICAgICAg ICBST1dTTUFSVFBMQUNFTUVOVCwKKyAgICAgICAgIENPTFNNQVJUUExBQ0VNRU5ULAorICAgICAg ICAgQ09MTUlOT1ZFUkxBUFBMQUNFTUVOVCwKKyAgICAgICAgIFJPV01JTk9WRVJMQVBQTEFDRU1F TlQsCitAQCAtNTIsMTEgKzUyLDExIEBAIHB1YmxpYzoKKyAgICAgICAgIEFVVE9UQUJQTEFDRU1F TlQKKyAgICAgfTsKKyAKKy0gICAgZW51bSBSb3dEaXJlY3Rpb24geyAKKysgICAgZW51bSBSb3dE aXJlY3Rpb24geworICAgICAgICAgTEVGVFJJR0hULCAvLy88IGZyb20gbGVmdCB0byByaWdodAor ICAgICAgICAgUklHSFRMRUZUICAvLy88IGZyb20gcmlnaHQgdG8gbGVmdAorICAgICB9OworLSAg ICBlbnVtIENvbHVtbkRpcmVjdGlvbiB7IAorKyAgICBlbnVtIENvbHVtbkRpcmVjdGlvbiB7Cisg ICAgICAgICBUT1BCT1RUT00sICAvLy88IGZyb20gdG9wIHRvIGJvdHRvbQorICAgICAgICAgQk9U VE9NVE9QICAgLy8vPCBmcm9tIGJvdHRvbSB0byB0b3AKKyAgICAgfTsKKy0tIAorMi4zNy4xCisK KworRnJvbSA2ZTA1ZjQ0Yzk0ZmE0YmZjMGU0NGU4ZjQyYTlkMjQ2NjVhOTU4NDBmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogemxpY2UgPHpsaWNlNTU1QGdtYWlsLmNvbT4KK0RhdGU6 IEZyaSwgMjIgSnVsIDIwMjIgMjE6Mjc6MjUgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIG5l dyBmZWF0dXJlOiBDZW50ZXJQbGFjZW1lbnQuIFBsYWNlcyBuZXcgd2luZG93cyBpbgorIGNlbnRl ciBvZiB0aGUgY3VycmVudCB3b3Jrc3BhY2UKKworLS0tCisgZG9jL2FzY2lpZG9jL2ZsdXhib3gu dHh0IHwgIDEgKworIHNyYy9DZW50ZXJQbGFjZW1lbnQuY2MgICB8IDQzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKKyBzcmMvQ2VudGVyUGxhY2VtZW50LmhoICAgfCAz NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL01ha2Vtb2R1bGUuYW0g ICAgICAgIHwgIDIgKysKKyBzcmMvU2NyZWVuUGxhY2VtZW50LmNjICAgfCAgOCArKysrKysrKwor IHNyYy9TY3JlZW5QbGFjZW1lbnQuaGggICB8ICAxICsKKyA2IGZpbGVzIGNoYW5nZWQsIDkyIGlu c2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL0NlbnRlclBsYWNlbWVudC5jYwor IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvQ2VudGVyUGxhY2VtZW50LmhoCisKK2RpZmYgLS1naXQg YS9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQgYi9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQKK2lu ZGV4IDBlM2YyN2I5Li40NmNhMjg2MSAxMDA2NDQKKy0tLSBhL2RvYy9hc2NpaWRvYy9mbHV4Ym94 LnR4dAorKysrIGIvZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0CitAQCAtMTE0MSw2ICsxMTQxLDcg QEAgQXZhaWxhYmxlIHN0cmF0ZWdpZXM6OzsKKyAtIFJvd1NtYXJ0UGxhY2VtZW50OiB0cmllcyB0 byBwbGFjZSB3aW5kb3dzIGluIHJvd3Mgd2l0aG91dCBvdmVybGFwcGluZworIC0gQ29sU21hcnRQ bGFjZW1lbnQ6IHRyaWVzIHRvIHBsYWNlIHdpbmRvd3MgaW4gY29sdW1ucyB3aXRob3V0IG92ZXJs YXBwaW5nCisgLSBDYXNjYWRlUGxhY2VtZW50OiBwbGFjZXMgd2luZG93cyBiZWxvdyB0aGUgdGl0 bGViYXIgb2YgdGhlIHByZXZpb3VzIG9uZQorKy0gQ2VudGVyUGxhY2VtZW50OiBwbGFjZXMgd2lu ZG93cyBpbiB0aGUgY2VudGVyIG9mIHRoZSBjdXJyZW50IHdvcmtzcGFjZQorIC0gVW5kZXJNb3Vz ZVBsYWNlbWVudDogcGxhY2VzIG5ldyB3aW5kb3dzIHVuZGVybmVhdGggdGhlIG1vdXNlCisgLSBS b3dNaW5PdmVybGFwUGxhY2VtZW50OiBwbGFjZSB3aW5kb3dzIGluIHJvd3Mgd2l0aCBtaW5pbWFs IG92ZXJsYXBwaW5nCisgLSBDb2xNaW5PdmVybGFwUGxhY2VtZW50OiBwbGFjZSB3aW5kb3dzIGlu IGNvbHVtbnMgd2l0aCBtaW5pbWFsIG92ZXJsYXBwaW5nCitkaWZmIC0tZ2l0IGEvc3JjL0NlbnRl clBsYWNlbWVudC5jYyBiL3NyYy9DZW50ZXJQbGFjZW1lbnQuY2MKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwMC4uZWZhZjc2YjkKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9D ZW50ZXJQbGFjZW1lbnQuY2MKK0BAIC0wLDAgKzEsNDMgQEAKKysvLyBDZW50ZXJQbGFjZW1lbnQu Y2MKKysvLyBDb3B5cmlnaHQgKGMpIDIwMDYgRmx1eGJveCBUZWFtIChmbHV4Z2VuIGF0IGZsdXhi b3ggZG90IG9yZykKKysvLworKy8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisrLy8gY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwKKysvLyB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisrLy8gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisrLy8gYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCisrLy8gU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysvLworKy8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisrLy8g YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisrLy8K KysvLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorKy8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorKy8vIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAorKy8vIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisrLy8gTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKysvLyBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SIE9USEVSCisrLy8gREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorKworKyNpbmNsdWRlICJD ZW50ZXJQbGFjZW1lbnQuaGgiCisrCisrI2luY2x1ZGUgIkZiVGsvQXBwLmhoIgorKyNpbmNsdWRl ICJTY3JlZW4uaGgiCisrI2luY2x1ZGUgIldpbmRvdy5oaCIKKysKKytib29sIENlbnRlclBsYWNl bWVudDo6cGxhY2VXaW5kb3coY29uc3QgRmx1eGJveFdpbmRvdyAmd2luLCBpbnQgaGVhZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAmcGxhY2VfeCwgaW50ICZw bGFjZV95KSB7CisrCisrICAgIGludCBjZW50X3ggPSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4 UmlnaHQoaGVhZCkgLSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4TGVmdChoZWFkKTsKKysgICAg aW50IGNlbnRfeSA9IChzaWduZWQpIHdpbi5zY3JlZW4oKS5tYXhCb3R0b20oaGVhZCkgLSAoc2ln bmVkKSB3aW4uc2NyZWVuKCkubWF4VG9wKGhlYWQpOworKworKyAgICAvLyBib3JkZXIgb24gMSBz aWRlLCBkaXZpZGluZyBpbiBoYWxmCisrICAgIC8vIHdpdGggcm91bmRpbmcsIHRoaXMgd2lsbCBw cm9iYWJseSBmYXZvciB0b3AgbGVmdAorKyAgICBpbnQgd2luX2hhbGZfdyA9ICh3aW4ud2lkdGgo KSAvIDIpICsgd2luLmZiV2luZG93KCkuYm9yZGVyV2lkdGgoKSwKKysgICAgICAgIHdpbl9oYWxm X2ggPSAod2luLmhlaWdodCgpIC8gMikgKyB3aW4uZmJXaW5kb3coKS5ib3JkZXJXaWR0aCgpOwor KworKyAgICBwbGFjZV94ID0gY2VudF94IC0gd2luX2hhbGZfdzsKKysgICAgcGxhY2VfeSA9IGNl bnRfeSAtIHdpbl9oYWxmX2g7CisrCisrICAgIHJldHVybiB0cnVlOworK30KK2RpZmYgLS1naXQg YS9zcmMvQ2VudGVyUGxhY2VtZW50LmhoIGIvc3JjL0NlbnRlclBsYWNlbWVudC5oaAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi45ZjcwYTZjOAorLS0tIC9kZXYvbnVsbAor KysrIGIvc3JjL0NlbnRlclBsYWNlbWVudC5oaAorQEAgLTAsMCArMSwzNyBAQAorKy8vIENlbnRl clBsYWNlbWVudC5oaAorKy8vIENvcHlyaWdodCAoYykgMjAwNyBGbHV4Ym94IFRlYW0gKGZsdXhn ZW4gYXQgZmx1eGJveCBkb3Qgb3JnKQorKy8vCisrLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKysvLyBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLAorKy8vIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKysvLyB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KysvLyBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl cnNvbnMgdG8gd2hvbSB0aGUKKysvLyBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1 YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKy8vCisrLy8gVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk ZWQgaW4KKysvLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4KKysvLworKy8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisrLy8gSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisr Ly8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g IElOIE5PIEVWRU5UIFNIQUxMCisrLy8gVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKysvLyBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORworKy8vIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIKKysvLyBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisrCisr I2lmbmRlZiBDRU5URVJQTEFDRU1FTlRfSEgKKysjZGVmaW5lIENFTlRFUlBMQUNFTUVOVF9ISAor KworKyNpbmNsdWRlICJTY3JlZW5QbGFjZW1lbnQuaGgiCisrCisrY2xhc3MgQ2VudGVyUGxhY2Vt ZW50OiBwdWJsaWMgUGxhY2VtZW50U3RyYXRlZ3kgeworK3B1YmxpYzoKKysgICAgQ2VudGVyUGxh Y2VtZW50KCkgeyB9OworKworKyAgICBib29sIHBsYWNlV2luZG93KGNvbnN0IEZsdXhib3hXaW5k b3cgJndpbiwgaW50IGhlYWQsCisrICAgICAgICAgICAgICAgICAgICAgaW50ICZwbGFjZV94LCBp bnQgJnBsYWNlX3kpOworKworK3ByaXZhdGU6CisrfTsKKysKKysjZW5kaWYgLy8gQ0VOVEVSUExB Q0VNRU5UX0hICitkaWZmIC0tZ2l0IGEvc3JjL01ha2Vtb2R1bGUuYW0gYi9zcmMvTWFrZW1vZHVs ZS5hbQoraW5kZXggNWJlNTY5MmMuLjUzZDM1ZThlIDEwMDY0NAorLS0tIGEvc3JjL01ha2Vtb2R1 bGUuYW0KKysrKyBiL3NyYy9NYWtlbW9kdWxlLmFtCitAQCAtMTY1LDYgKzE2NSw4IEBAIGZsdXhi b3hfU09VUkNFUyA9IFwKKyAJc3JjL0F0dGVudGlvbk5vdGljZUhhbmRsZXIuaGggXAorIAlzcmMv Q2FzY2FkZVBsYWNlbWVudC5jYyBcCisgCXNyYy9DYXNjYWRlUGxhY2VtZW50LmhoIFwKKysJc3Jj L0NlbnRlclBsYWNlbWVudC5jYyBcCisrCXNyYy9DZW50ZXJQbGFjZW1lbnQuaGggXAorIAlzcmMv Q2xpZW50TWVudS5jYyBcCisgCXNyYy9DbGllbnRNZW51LmhoIFwKKyAJc3JjL0NsaWVudFBhdHRl cm4uY2MgXAorZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuY2MgYi9zcmMvU2NyZWVu UGxhY2VtZW50LmNjCitpbmRleCBjYTU4ZDgzZi4uY2U0N2E5MTAgMTAwNjQ0CistLS0gYS9zcmMv U2NyZWVuUGxhY2VtZW50LmNjCisrKysgYi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCitAQCAtMjQs NiArMjQsNyBAQAorICNpbmNsdWRlICJSb3dTbWFydFBsYWNlbWVudC5oaCIKKyAjaW5jbHVkZSAi TWluT3ZlcmxhcFBsYWNlbWVudC5oaCIKKyAjaW5jbHVkZSAiVW5kZXJNb3VzZVBsYWNlbWVudC5o aCIKKysjaW5jbHVkZSAiQ2VudGVyUGxhY2VtZW50LmhoIgorICNpbmNsdWRlICJDb2xTbWFydFBs YWNlbWVudC5oaCIKKyAjaW5jbHVkZSAiQ2FzY2FkZVBsYWNlbWVudC5oaCIKKyAKK0BAIC04Miw2 ICs4Myw5IEBAIGJvb2wgU2NyZWVuUGxhY2VtZW50OjpwbGFjZVdpbmRvdyhjb25zdCBGbHV4Ym94 V2luZG93ICZ3aW4sIGludCBoZWFkLAorICAgICAgICAgY2FzZSBVTkRFUk1PVVNFUExBQ0VNRU5U OgorICAgICAgICAgICAgIG1fc3RyYXRlZ3kucmVzZXQobmV3IFVuZGVyTW91c2VQbGFjZW1lbnQo KSk7CisgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIENFTlRFUlBMQUNFTUVOVDoK KysgICAgICAgICAgICBtX3N0cmF0ZWd5LnJlc2V0KG5ldyBDZW50ZXJQbGFjZW1lbnQoKSk7Cisr ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIEFVVE9UQUJQTEFDRU1FTlQ6CisgICAg ICAgICAgICAgbV9zdHJhdGVneS5yZXNldCgwKTsKKyAgICAgICAgICAgICBicmVhazsKK0BAIC0x OTcsNiArMjAxLDggQEAgc3RkOjpzdHJpbmcgRmJUazo6UmVzb3VyY2U8U2NyZWVuUGxhY2VtZW50 OjpQbGFjZW1lbnRQb2xpY3k+OjpnZXRTdHJpbmcoKSBjb25zdAorICAgICAgICAgcmV0dXJuICJD b2xNaW5PdmVybGFwUGxhY2VtZW50IjsKKyAgICAgY2FzZSBTY3JlZW5QbGFjZW1lbnQ6OlVOREVS TU9VU0VQTEFDRU1FTlQ6CisgICAgICAgICByZXR1cm4gIlVuZGVyTW91c2VQbGFjZW1lbnQiOwor KyAgICBjYXNlIFNjcmVlblBsYWNlbWVudDo6Q0VOVEVSUExBQ0VNRU5UOgorKyAgICAgICAgcmV0 dXJuICJDZW50ZXJQbGFjZW1lbnQiOworICAgICBjYXNlIFNjcmVlblBsYWNlbWVudDo6Q0FTQ0FE RVBMQUNFTUVOVDoKKyAgICAgICAgIHJldHVybiAiQ2FzY2FkZVBsYWNlbWVudCI7CisgICAgIGNh c2UgU2NyZWVuUGxhY2VtZW50OjpBVVRPVEFCUExBQ0VNRU5UOgorQEAgLTIxOCw2ICsyMjQsOCBA QCB2b2lkIEZiVGs6OlJlc291cmNlPFNjcmVlblBsYWNlbWVudDo6UGxhY2VtZW50UG9saWN5Pjo6 c2V0RnJvbVN0cmluZyhjb25zdCBjaGFyCisgICAgICAgICAqKCp0aGlzKSA9IFNjcmVlblBsYWNl bWVudDo6Q09MTUlOT1ZFUkxBUFBMQUNFTUVOVDsKKyAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcCgi VW5kZXJNb3VzZVBsYWNlbWVudCIsIHN0cikgPT0gMCkKKyAgICAgICAgICooKnRoaXMpID0gU2Ny ZWVuUGxhY2VtZW50OjpVTkRFUk1PVVNFUExBQ0VNRU5UOworKyAgICBlbHNlIGlmIChzdHJjYXNl Y21wKCJDZW50ZXJQbGFjZW1lbnQiLCBzdHIpID09IDApCisrICAgICAgICAqKCp0aGlzKSA9IFNj cmVlblBsYWNlbWVudDo6Q0VOVEVSUExBQ0VNRU5UOworICAgICBlbHNlIGlmIChzdHJjYXNlY21w KCJDYXNjYWRlUGxhY2VtZW50Iiwgc3RyKSA9PSAwKQorICAgICAgICAgKigqdGhpcykgPSBTY3Jl ZW5QbGFjZW1lbnQ6OkNBU0NBREVQTEFDRU1FTlQ7CisgICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAo IkF1dG90YWJQbGFjZW1lbnQiLCBzdHIpID09IDApCitkaWZmIC0tZ2l0IGEvc3JjL1NjcmVlblBs YWNlbWVudC5oaCBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKK2luZGV4IGYxMjM0OTgzLi5hNWM5 Yjg4NSAxMDA2NDQKKy0tLSBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKKysrKyBiL3NyYy9TY3Jl ZW5QbGFjZW1lbnQuaGgKK0BAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKKyAgICAgICAgIFJPV01J Tk9WRVJMQVBQTEFDRU1FTlQsCisgICAgICAgICBDQVNDQURFUExBQ0VNRU5ULAorICAgICAgICAg VU5ERVJNT1VTRVBMQUNFTUVOVCwKKysgICAgICAgIENFTlRFUlBMQUNFTUVOVCwKKyAgICAgICAg IEFVVE9UQUJQTEFDRU1FTlQKKyAgICAgfTsKKyAKKy0tIAorMi4zNy4xCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaCBiL3NyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ5OGFiNDRhMjNjNgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaApAQCAtMCwwICsxLDMy NSBAQAorZGlmZiAtLWdpdCBhL3NyYy9GYldpbkZyYW1lLmNjIGIvc3JjL0ZiV2luRnJhbWUuY2MK K2luZGV4IDAwYmMxMTg3Li5mOGE0YzQ3NSAxMDA2NDQKKy0tLSBhL3NyYy9GYldpbkZyYW1lLmNj CisrKysgYi9zcmMvRmJXaW5GcmFtZS5jYworQEAgLTE0OCw2ICsxNDgsMTEgQEAgRmJXaW5GcmFt ZTo6RmJXaW5GcmFtZShCU2NyZWVuICZzY3JlZW4sIHVuc2lnbmVkIGludCBjbGllbnRfZGVwdGgs CisgICAgIG1fYnV0dG9uX3NpemUoMSksCisgICAgIG1fc2hhcGUobV93aW5kb3csIHRoZW1lLT5z aGFwZVBsYWNlKCkpIHsKKyAKKysgICAgbV9sb2NrZXJfdGltZXIuc2V0VGltZW91dCh0aW1lclZh bCgpICk7IC8vIDEwbWlsbGlzZWMKKysgICAgbV9sb2NrZXJfdGltZXIuZmlyZU9uY2UodHJ1ZSk7 CisrICAgIEZiVGs6OlJlZkNvdW50PEZiVGs6OkNvbW1hbmQ8dm9pZD4gPiB1c2lnKG5ldyBGYlRr OjpTaW1wbGVDb21tYW5kPEZiV2luRnJhbWU+KCp0aGlzLCAmRmJXaW5GcmFtZTo6dW5sb2NrU2ln KSk7CisrICAgIG1fbG9ja2VyX3RpbWVyLnNldENvbW1hbmQodXNpZyk7CisrCisgICAgIGluaXQo KTsKKyB9CisgCitAQCAtMTU2LDYgKzE2MSwyNyBAQCBGYldpbkZyYW1lOjp+RmJXaW5GcmFtZSgp IHsKKyAgICAgcmVtb3ZlQWxsQnV0dG9ucygpOworIH0KKyAKKysvLyBmb3IgaW5jcmVtZW50YWwg Y2hhbmdlcywgYmFjayBvZmYgZm9yIGEgYml0CisrLy8gcHJldmVudHMgc2xvd2Rvd24gZnJvbSBz YXksIG1ha2luZyAyMDAgd2luZG93cworK3ZvaWQgRmJXaW5GcmFtZTo6cmVzZXRMb2NrKCkgewor KyAgICBtX2xvY2tfZ2Z4ID0gdHJ1ZTsKKysgICAgbV9sb2NrZXJfdGltZXIuc3RhcnQoKTsKKyt9 CisrCisrdm9pZCBGYldpbkZyYW1lOjp1bmxvY2tTaWcoKSB7CisrICAgIG1fbG9ja19nZnggPSBm YWxzZTsKKysgICAgLy8gdGhpcyBpcyB3aGF0IHdlIHdhbnRlZCB0byBkbworKyAgICBGYlRrOjpD b250YWluZXImIHRhYnMgPSB0YWJjb250YWluZXIoKTsKKysgICAgdGFicy5zZXRVcGRhdGVMb2Nr KG1fbG9ja19nZngpOworKyAgICByZW5kZXJUYWJDb250YWluZXIoKTsKKysgICAgYXBwbHlUYWJD b250YWluZXIoKTsKKysKKysgICAgdGFicy5jbGVhcigpOworKyAgICB0YWJzLnJhaXNlKCk7Cisr ICAgIHRhYnMuc2hvdygpOworK30KKysKKysKKyBib29sIEZiV2luRnJhbWU6OnNldFRhYk1vZGUo VGFiTW9kZSB0YWJtb2RlKSB7CisgICAgIGlmIChtX3RhYm1vZGUgPT0gdGFibW9kZSkKKyAgICAg ICAgIHJldHVybiBmYWxzZTsKK0BAIC0xODcsNiArMjEzLDcgQEAgYm9vbCBGYldpbkZyYW1lOjpz ZXRUYWJNb2RlKFRhYk1vZGUgdGFibW9kZSkgeworIAorICAgICB9IGVsc2UgeworICAgICAgICAg dGFicy5zZXRVcGRhdGVMb2NrKHRydWUpOworKyAgICAgICAgcmVzZXRMb2NrKCk7CisgCisgICAg ICAgICB0YWJzLnNldEFsaWdubWVudChGYlRrOjpDb250YWluZXI6OlJFTEFUSVZFKTsKKyAgICAg ICAgIHRhYnMuc2V0T3JpZW50YXRpb24oRmJUazo6Uk9UMCk7CitAQCAtMjAwLDkgKzIyNywxMiBA QCBib29sIEZiV2luRnJhbWU6OnNldFRhYk1vZGUoVGFiTW9kZSB0YWJtb2RlKSB7CisgICAgICAg ICB9CisgICAgICAgICB0YWJzLnNldEJvcmRlcldpZHRoKDApOworICAgICAgICAgdGFicy5zZXRN YXhUb3RhbFNpemUoMCk7CistICAgICAgICB0YWJzLnNldFVwZGF0ZUxvY2soZmFsc2UpOworKyAg ICAgICAgdGFicy5zZXRVcGRhdGVMb2NrKG1fbG9ja19nZngpOworICAgICAgICAgdGFicy5zZXRN YXhTaXplUGVyQ2xpZW50KDApOworIAorKyAgICAgICAgaWYgKG1fbG9ja19nZngpCisrICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworKworICAgICAgICAgcmVuZGVyVGFiQ29udGFpbmVyKCk7Cisg ICAgICAgICBhcHBseVRhYkNvbnRhaW5lcigpOworIAorZGlmZiAtLWdpdCBhL3NyYy9GYldpbkZy YW1lLmhoIGIvc3JjL0ZiV2luRnJhbWUuaGgKK2luZGV4IDYxN2I5YjkxLi43MjVjODRhMCAxMDA2 NDQKKy0tLSBhL3NyYy9GYldpbkZyYW1lLmhoCisrKysgYi9zcmMvRmJXaW5GcmFtZS5oaAorQEAg LTMzLDYgKzMzLDcgQEAKKyAjaW5jbHVkZSAiRmJUay9Db250YWluZXIuaGgiCisgI2luY2x1ZGUg IkZiVGsvU2hhcGUuaGgiCisgI2luY2x1ZGUgIkZiVGsvU2lnbmFsLmhoIgorKyNpbmNsdWRlICJG YlRrL1RpbWVyLmhoIgorIAorICNpbmNsdWRlIDx2ZWN0b3I+CisgI2luY2x1ZGUgPG1lbW9yeT4K K0BAIC0xNzYsNiArMTc3LDEyIEBAIHB1YmxpYzoKKyAgICAgdm9pZCBzZXRTaGFwaW5nQ2xpZW50 KEZiVGs6OkZiV2luZG93ICp3aW4sIGJvb2wgYWx3YXlzX3VwZGF0ZSk7CisgICAgIHZvaWQgdXBk YXRlU2hhcGUoKSB7IG1fc2hhcGUudXBkYXRlKCk7IH0KKyAKKysgICAgdm9pZCByZXNldExvY2so KTsKKysgICAgdm9pZCB1bmxvY2tTaWcoKTsKKysgICAgRmJUazo6VGltZXIgbV9sb2NrZXJfdGlt ZXI7CisrICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGltZXJWYWwoKSB7IHJldHVybiAxMCAqIEZi VGs6OkZiVGltZTo6SU5fTUlMTElTRUNPTkRTOyB9CisrICAgIGJvb2wgbV9sb2NrX2dmeCA9IGZh bHNlOworKworICAgICAvKioKKyAgICAgICAgQG5hbWUgYWNjZXNzb3JzCisgICAgICovCitkaWZm IC0tZ2l0IGEvc3JjL0ljb25CdXR0b24uY2MgYi9zcmMvSWNvbkJ1dHRvbi5jYworaW5kZXggMTI5 MGMyYWEuLjJlYTdhZjllIDEwMDY0NAorLS0tIGEvc3JjL0ljb25CdXR0b24uY2MKKysrKyBiL3Ny Yy9JY29uQnV0dG9uLmNjCitAQCAtNzEsOCArNzEsOCBAQCBJY29uQnV0dG9uOjpJY29uQnV0dG9u KGNvbnN0IEZiVGs6OkZiV2luZG93ICZwYXJlbnQsCisgCisgICAgIEZiVGs6OkV2ZW50TWFuYWdl cjo6aW5zdGFuY2UoKS0+YWRkKCp0aGlzLCBtX2ljb25fd2luZG93KTsKKyAKKy0gICAgcmVjb25m aWdUaGVtZSgpOworLSAgICByZWZyZXNoRXZlcnl0aGluZyhmYWxzZSk7CisrICAgIC8vcmVjb25m aWdUaGVtZSgpOworKyAgICAvL3JlZnJlc2hFdmVyeXRoaW5nKGZhbHNlKTsKKyB9CisgCisgSWNv bkJ1dHRvbjo6fkljb25CdXR0b24oKSB7CitAQCAtMTYzLDEyICsxNjMsMTIgQEAgdm9pZCBJY29u QnV0dG9uOjpyZWNvbmZpZ1RoZW1lKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp ZHRoKCksIGhlaWdodCgpLCBtX3RoZW1lLT50ZXh0dXJlKCksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb3JpZW50YXRpb24oKSkpOworICAgICAgICAgc2V0QmFja2dyb3VuZFBpeG1hcCht X3BtKTsKKy0gICAgfSBlbHNleworKyAgICB9IGVsc2UgeworICAgICAgICAgbV9wbS5yZXNldCgw KTsKKyAgICAgICAgIHNldEJhY2tncm91bmRDb2xvcihtX3RoZW1lLT50ZXh0dXJlKCkuY29sb3Io KSk7CisgICAgIH0KKyAKKy0gICAgdXBkYXRlQmFja2dyb3VuZChmYWxzZSk7CisrICAgIC8vdXBk YXRlQmFja2dyb3VuZChmYWxzZSk7CisgfQorIAorIHZvaWQgSWNvbkJ1dHRvbjo6cmVjb25maWdB bmRDbGVhcigpIHsKK0BAIC0xODEsNyArMTgxLDggQEAgdm9pZCBJY29uQnV0dG9uOjpyZWZyZXNo RXZlcnl0aGluZyhib29sIHNldHVwKSB7CisgICAgIERpc3BsYXkgKmRpc3BsYXkgPSBGYlRrOjpB cHA6Omluc3RhbmNlKCktPmRpc3BsYXkoKTsKKyAgICAgaW50IHNjcmVlbiA9IG1fd2luLnNjcmVl bigpLnNjcmVlbk51bWJlcigpOworIAorLSAgICBpZiAobV91c2VfcGl4bWFwICYmIG1fd2luLmlj b24oKS5waXhtYXAoKS5kcmF3YWJsZSgpICE9IE5vbmUpIHsKKysgICAgaWYgKG1fdXNlX3BpeG1h cCAmJiBtX3dpbi5pY29uKCkucGl4bWFwKCkuZHJhd2FibGUoKSAhPSBOb25lICYmCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCkgPiBtX2ljb25fd2luZG93Lndp ZHRoKCkgKSB7CisgICAgICAgICAvLyBzZXR1cCBpY29uIHdpbmRvdworICAgICAgICAgbV9pY29u X3dpbmRvdy5zaG93KCk7CisgICAgICAgICB1bnNpZ25lZCBpbnQgdyA9IHdpZHRoKCk7CitAQCAt MjQyLDcgKzI0Myw2IEBAIHZvaWQgSWNvbkJ1dHRvbjo6cmVmcmVzaEV2ZXJ5dGhpbmcoYm9vbCBz ZXR1cCkgeworICAgICAgICAgbV9pY29uX3dpbmRvdy5jbGVhcigpOworICAgICB9CisgCistCisg fQorIAorIHZvaWQgSWNvbkJ1dHRvbjo6Y2xpZW50VGl0bGVDaGFuZ2VkKCkgeworQEAgLTI1MSwy NCArMjUxLDMwIEBAIHZvaWQgSWNvbkJ1dHRvbjo6Y2xpZW50VGl0bGVDaGFuZ2VkKCkgeworIAor ICAgICBpZiAobV9oYXNfdG9vbHRpcCkKKyAgICAgICAgIHNob3dUb29sdGlwKCk7CisrCisgfQor IAorIHZvaWQgSWNvbkJ1dHRvbjo6c2V0dXBXaW5kb3coKSB7CisgICAgIG1faWNvbl93aW5kb3cu Y2xlYXIoKTsKKysgICAgLy9GYlRrOjpGYlN0cmluZyB0aXRsZSA9ICJ3dGYyIjsKKyAgICAgRmJU azo6RmJTdHJpbmcgdGl0bGUgPSBtX3dpbi50aXRsZSgpLmxvZ2ljYWwoKTsKKy0gICAgaWYgKG1f d2luLmZid2luZG93KCkgJiYgbV93aW4uZmJ3aW5kb3coKS0+aXNJY29uaWMoKSkKKy0gICAgICAg IHRpdGxlID0gSWNvbmJhclRvb2w6Omljb25pZmllZFByZWZpeCgpICsgdGl0bGUgKyBJY29uYmFy VG9vbDo6aWNvbmlmaWVkU3VmZml4KCk7CisrICAgIC8vI2lmIFVTRV9UT09MQkFSCisrICAgIC8v aWYgKG1fd2luLmZid2luZG93KCkgJiYgbV93aW4uZmJ3aW5kb3coKS0+aXNJY29uaWMoKSkKKysg ICAgLy8gICAgdGl0bGUgPSBJY29uYmFyVG9vbDo6aWNvbmlmaWVkUHJlZml4KCkgKyB0aXRsZSAr IEljb25iYXJUb29sOjppY29uaWZpZWRTdWZmaXgoKTsKKysgICAgLy8jZW5kaWYKKyAgICAgc2V0 VGV4dCh0aXRsZSk7CisgICAgIEZiVGs6OlRleHRCdXR0b246OmNsZWFyKCk7CisgfQorIAorIHZv aWQgSWNvbkJ1dHRvbjo6ZHJhd1RleHQoaW50IHgsIGludCB5LCBGYlRrOjpGYkRyYXdhYmxlICpk cmF3YWJsZSkgeworIAorLSAgICAvLyBvZmZzZXQgdGV4dAorLSAgICBpZiAobV9pY29uX3BpeG1h cC5kcmF3YWJsZSgpICE9IDApCistICAgICAgICBGYlRrOjpUZXh0QnV0dG9uOjpkcmF3VGV4dCht X2ljb25fd2luZG93LngoKSArIG1faWNvbl93aW5kb3cud2lkdGgoKSArIDEsIHksIGRyYXdhYmxl KTsKKy0gICAgZWxzZQorLSAgICAgICAgRmJUazo6VGV4dEJ1dHRvbjo6ZHJhd1RleHQoMSwgeSwg ZHJhd2FibGUpOworKyAgICBpZiAod2lkdGgoKSA+IG1faWNvbl93aW5kb3cud2lkdGgoKSApIHsK KysgICAgICAvLyBvZmZzZXQgdGV4dAorKyAgICAgIGlmIChtX2ljb25fcGl4bWFwLmRyYXdhYmxl KCkgIT0gMCkKKysgICAgICAgICAgRmJUazo6VGV4dEJ1dHRvbjo6ZHJhd1RleHQobV9pY29uX3dp bmRvdy54KCkgKyBtX2ljb25fd2luZG93LndpZHRoKCkgKyAxLCB5LCBkcmF3YWJsZSk7CisrICAg ICAgZWxzZQorKyAgICAgICAgICBGYlRrOjpUZXh0QnV0dG9uOjpkcmF3VGV4dCgxLCB5LCBkcmF3 YWJsZSk7CisrICAgIH0KKyB9CisgCisgYm9vbCBJY29uQnV0dG9uOjpzZXRPcmllbnRhdGlvbihG YlRrOjpPcmllbnRhdGlvbiBvcmllbnQpIHsKK2RpZmYgLS1naXQgYS9zcmMvSWNvbmJhclRvb2wu Y2MgYi9zcmMvSWNvbmJhclRvb2wuY2MKK2luZGV4IDAyN2FiMWM2Li5mNjRhNGNmNiAxMDA2NDQK Ky0tLSBhL3NyYy9JY29uYmFyVG9vbC5jYworKysrIGIvc3JjL0ljb25iYXJUb29sLmNjCitAQCAt MzAwLDYgKzMwMCwxMSBAQCBJY29uYmFyVG9vbDo6SWNvbmJhclRvb2woY29uc3QgRmJUazo6RmJX aW5kb3cgJnBhcmVudCwgSWNvbmJhclRoZW1lICZ0aGVtZSwKKyAgICAgRmJUazo6UmVmQ291bnQ8 RmJUazo6Q29tbWFuZDx2b2lkPiA+IGVycyhuZXcgRmJUazo6U2ltcGxlQ29tbWFuZDxJY29uYmFy VG9vbD4oKnRoaXMsICZJY29uYmFyVG9vbDo6ZW1pdFJlc2l6ZVNpZykpOworICAgICBtX3Jlc2l6 ZVNpZ190aW1lci5zZXRDb21tYW5kKGVycyk7CisgCisrICAgIG1fbG9ja2VyX3RpbWVyLnNldFRp bWVvdXQoSWNvbkJ1dHRvbjo6dXBkYXRlTGF6aW5lc3MoKSAvIDEwKTsgLy8gMTBtaWxsaXNlYwor KyAgICBtX2xvY2tlcl90aW1lci5maXJlT25jZSh0cnVlKTsKKysgICAgRmJUazo6UmVmQ291bnQ8 RmJUazo6Q29tbWFuZDx2b2lkPiA+IHVzaWcobmV3IEZiVGs6OlNpbXBsZUNvbW1hbmQ8SWNvbmJh clRvb2w+KCp0aGlzLCAmSWNvbmJhclRvb2w6OnVubG9ja1NpZykpOworKyAgICBtX2xvY2tlcl90 aW1lci5zZXRDb21tYW5kKHVzaWcpOworKworICAgICB0aGVtZVJlY29uZmlndXJlZCgpOworIH0K KyAKK0BAIC0zMjUsNyArMzMwLDcgQEAgdm9pZCBJY29uYmFyVG9vbDo6dXBkYXRlTWF4U2l6ZXMo dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KSB7CisgCisgdm9pZCBJY29u YmFyVG9vbDo6cmVzaXplKHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCkg eworICAgICBtX2ljb25fY29udGFpbmVyLnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKy0gICAgdXBk YXRlTWF4U2l6ZXMod2lkdGgsIGhlaWdodCk7CisrICAgIC8vdXBkYXRlTWF4U2l6ZXMod2lkdGgs IGhlaWdodCk7CisgICAgIHJlbmRlclRoZW1lKCk7CisgfQorIAorQEAgLTMzMyw3ICszMzgsNyBA QCB2b2lkIEljb25iYXJUb29sOjptb3ZlUmVzaXplKGludCB4LCBpbnQgeSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdo dCkgeworIAorICAgICBtX2ljb25fY29udGFpbmVyLm1vdmVSZXNpemUoeCwgeSwgd2lkdGgsIGhl aWdodCk7CistICAgIHVwZGF0ZU1heFNpemVzKHdpZHRoLCBoZWlnaHQpOworKyAgICAvL3VwZGF0 ZU1heFNpemVzKHdpZHRoLCBoZWlnaHQpOworICAgICByZW5kZXJUaGVtZSgpOworIH0KKyAKK0BA IC0zOTMsNiArMzk4LDI1IEBAIHZvaWQgSWNvbmJhclRvb2w6OnNldE1vZGUoc3RyaW5nIG1vZGUp IHsKKyAgICAgbV9tZW51LnJlY29uZmlndXJlKCk7CisgfQorIAorKy8vIGZvciBpbmNyZW1lbnRh bCBjaGFuZ2VzLCBiYWNrIG9mZiBmb3IgYSBiaXQKKysvLyBwcmV2ZW50cyBzbG93ZG93biBmcm9t IHNheSwgbWFraW5nIDIwMCB3aW5kb3dzCisrdm9pZCBJY29uYmFyVG9vbDo6cmVzZXRMb2NrKCkg eworKyAgICBtX2xvY2tfZ2Z4ID0gdHJ1ZTsKKysgICAgbV9sb2NrZXJfdGltZXIuc3RhcnQoKTsK Kyt9CisrCisrdm9pZCBJY29uYmFyVG9vbDo6dW5sb2NrU2lnKCkgeworKyAgICBtX2xvY2tfZ2Z4 ID0gZmFsc2U7CisrICAgIC8vcmVzaXplU2lnKCkuZW1pdCgpOworKyAgICAvLyB0aGlzIGlzIHdo YXQgd2Ugd2FudGVkIHRvIGRvCisrICAgIG1faWNvbl9jb250YWluZXIuc2V0VXBkYXRlTG9jayhm YWxzZSk7CisrICAgIG1faWNvbl9jb250YWluZXIudXBkYXRlKCk7CisrICAgIG1faWNvbl9jb250 YWluZXIuc2hvd1N1YndpbmRvd3MoKTsKKysgICAgcmVuZGVyVGhlbWUoKTsKKysgICAgdXBkYXRl KEFMSUdOLCBOVUxMKTsKKysgICAgbV9yZXNpemVTaWdfdGltZXIuc3RhcnQoKTsKKyt9CisrCisg dm9pZCBJY29uYmFyVG9vbDo6ZW1pdFJlc2l6ZVNpZygpIHsKKyAgICAgcmVzaXplU2lnKCkuZW1p dCgpOworIH0KK0BAIC00NDEsOSArNDY1LDExIEBAIHZvaWQgSWNvbmJhclRvb2w6OnVwZGF0ZShV cGRhdGVSZWFzb24gcmVhc29uLCBGb2N1c2FibGUgKndpbikgeworICAgICBzd2l0Y2gocmVhc29u KSB7CisgICAgICAgICBjYXNlIExJU1RfQUREOiBjYXNlIExJU1RfT1JERVI6CisgICAgICAgICAg ICAgaW5zZXJ0V2luZG93KCp3aW4pOworKyAgICAgICAgICAgIHJlc2V0TG9jaygpOworICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBMSVNUX1JFTU9WRToKKyAgICAgICAgICAgICBy ZW1vdmVXaW5kb3coKndpbik7CisrICAgICAgICAgICAgcmVzZXRMb2NrKCk7CisgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICBjYXNlIExJU1RfUkVTRVQ6CisgICAgICAgICAgICAgcmVzZXQo KTsKK0BAIC00NTUsNiArNDgxLDEwIEBAIHZvaWQgSWNvbmJhclRvb2w6OnVwZGF0ZShVcGRhdGVS ZWFzb24gcmVhc29uLCBGb2N1c2FibGUgKndpbikgeworICAgICBtX3Jlc2l6ZVNpZ190aW1lci5z dGFydCgpOworIAorICAgICB1cGRhdGVNYXhTaXplcyh3aWR0aCgpLCBoZWlnaHQoKSk7CisrCisr ICAgIGlmIChtX2xvY2tfZ2Z4KQorKyAgICAgICAgcmV0dXJuOworKworICAgICAvLyB1bmxvY2sg Y29udGFpbmVyIGFuZCB1cGRhdGUgZ3JhcGhpY3MKKyAgICAgbV9pY29uX2NvbnRhaW5lci5zZXRV cGRhdGVMb2NrKGZhbHNlKTsKKyAgICAgbV9pY29uX2NvbnRhaW5lci51cGRhdGUoKTsKK0BAIC00 OTYsMTMgKzUyNiwxMyBAQCB2b2lkIEljb25iYXJUb29sOjppbnNlcnRXaW5kb3coRm9jdXNhYmxl ICZ3aW4sIGludCBwb3MpIHsKKyAgICAgICAgIGJ1dHRvbiA9IG1ha2VCdXR0b24od2luKTsKKyAg ICAgaWYgKCFidXR0b24pIHJldHVybjsKKyAKKy0gICAgaWYgKHBvcyA9PSAtMikgeworLSAgICAg ICAgcG9zID0gMDsKKy0gICAgICAgIGxpc3Q8Rm9jdXNhYmxlICo+OjppdGVyYXRvciBpdCA9IG1f d2lubGlzdC0+Y2xpZW50TGlzdCgpLmJlZ2luKCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaXRfZW5kID0gbV93aW5saXN0LT5jbGllbnRMaXN0KCkuZW5kKCk7CistICAg ICAgICBmb3IgKDsgaXQgIT0gaXRfZW5kICYmICppdCAhPSAmd2luOyArK2l0KQorLSAgICAgICAg ICAgIHBvcysrOworLSAgICB9CisrICAgIC8vaWYgKHBvcyA9PSAtMikgeworKyAgICAvLyAgICBw b3MgPSAwOworKyAgICAvLyAgICBsaXN0PEZvY3VzYWJsZSAqPjo6aXRlcmF0b3IgaXQgPSBtX3dp bmxpc3QtPmNsaWVudExpc3QoKS5iZWdpbigpLAorKyAgICAvLyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaXRfZW5kID0gbV93aW5saXN0LT5jbGllbnRMaXN0KCkuZW5kKCk7CisrICAg IC8vICAgIGZvciAoOyBpdCAhPSBpdF9lbmQgJiYgKml0ICE9ICZ3aW47ICsraXQpCisrICAgIC8v ICAgICAgICBwb3MrKzsKKysgICAgLy99CisgCisgICAgIG1faWNvbl9jb250YWluZXIuaW5zZXJ0 SXRlbShidXR0b24sIHBvcyk7CisgICAgIG1fdHJhY2tlci5qb2luKGJ1dHRvbi0+dGl0bGVDaGFu Z2VkKCksIEZiVGs6Ok1lbUZ1bihtX3Jlc2l6ZVNpZ190aW1lciwgJkZiVGs6OlRpbWVyOjpzdGFy dCkpOworQEAgLTUxNyw5ICs1NDcsOSBAQCB2b2lkIEljb25iYXJUb29sOjp1cGRhdGVTaXppbmco KSB7CisgICAgIG1faWNvbl9jb250YWluZXIuc2V0Qm9yZGVyV2lkdGgobV90aGVtZS5ib3JkZXIo KS53aWR0aCgpKTsKKyAgICAgbV9pY29uX2NvbnRhaW5lci5zZXRCb3JkZXJDb2xvcihtX3RoZW1l LmJvcmRlcigpLmNvbG9yKCkpOworIAorLSAgICBGYlRrOjpTVExVdGlsOjpmb3JBbGwobV9pY29u cywgCistICAgICAgICAgICAgRmJUazo6Q29tcG9zZShzdGQ6Om1lbV9mdW4oJkljb25CdXR0b246 OnJlY29uZmlnVGhlbWUpLCAKKy0gICAgICAgICAgICAgICAgRmJUazo6U2VsZWN0Mm5kPEljb25N YXA6OnZhbHVlX3R5cGU+KCkpKTsKKysgICAgLy9GYlRrOjpTVExVdGlsOjpmb3JBbGwobV9pY29u cywgCisrICAgIC8vICAgICAgICBGYlRrOjpDb21wb3NlKHN0ZDo6bWVtX2Z1bigmSWNvbkJ1dHRv bjo6cmVjb25maWdUaGVtZSksIAorKyAgICAvLyAgICAgICAgICAgIEZiVGs6OlNlbGVjdDJuZDxJ Y29uTWFwOjp2YWx1ZV90eXBlPigpKSk7CisgCisgfQorIAorQEAgLTU2MCw3ICs1OTAsNyBAQCB2 b2lkIEljb25iYXJUb29sOjpyZW5kZXJCdXR0b24oSWNvbkJ1dHRvbiAmYnV0dG9uLCBib29sIGNs ZWFyKSB7CisgCisgICAgIGJ1dHRvbi5zZXRQaXhtYXAoKm1fcmNfdXNlX3BpeG1hcCk7CisgICAg IGJ1dHRvbi5zZXRUZXh0UGFkZGluZygqbV9yY19jbGllbnRfcGFkZGluZyk7CistICAgIGJ1dHRv bi5yZWNvbmZpZ1RoZW1lKCk7CisrICAgIC8vYnV0dG9uLnJlY29uZmlnVGhlbWUoKTsKKyAgICAg aWYgKGNsZWFyKQorICAgICAgICAgYnV0dG9uLmNsZWFyKCk7IC8vIHRoZSBjbGVhciBhbHNvIHVw ZGF0ZXMgdHJhbnNwYXJlbnQKKyB9CitkaWZmIC0tZ2l0IGEvc3JjL0ljb25iYXJUb29sLmhoIGIv c3JjL0ljb25iYXJUb29sLmhoCitpbmRleCBkZjZkOWE2NS4uMWMyMTAxYWMgMTAwNjQ0CistLS0g YS9zcmMvSWNvbmJhclRvb2wuaGgKKysrKyBiL3NyYy9JY29uYmFyVG9vbC5oaAorQEAgLTEwNiw2 ICsxMDYsOSBAQCBwcml2YXRlOgorIAorICAgICB2b2lkIHRoZW1lUmVjb25maWd1cmVkKCk7Cisg CisrICAgIHZvaWQgcmVzZXRMb2NrKCk7CisrICAgIHZvaWQgdW5sb2NrU2lnKCk7CisrICAgIEZi VGs6OlRpbWVyIG1fbG9ja2VyX3RpbWVyOworICAgICBGYlRrOjpUaW1lciBtX3Jlc2l6ZVNpZ190 aW1lcjsKKyAgICAgdm9pZCBlbWl0UmVzaXplU2lnKCk7CisgCitAQCAtMTI4LDYgKzEzMSw3IEBA IHByaXZhdGU6CisgICAgIEZiTWVudSBtX21lbnU7CisgICAgIGludCBtX2FscGhhOworICAgICBz dGF0aWMgc3RkOjpzdHJpbmcgc19pY29uaWZpZWREZWNvcmF0aW9uWzJdOworKyAgICBib29sIG1f bG9ja19nZnggPSBmYWxzZTsKKyB9OworIAorICNlbmRpZiAvLyBJQ09OQkFSVE9PTF9ISApkaWZm IC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29udGFpbmVyX3JlbGF0aXZlX3JlbGF0 aXZlLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29udGFpbmVyX3JlbGF0aXZlX3Jl bGF0aXZlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGMz ZGRiNTE4MWI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29u dGFpbmVyX3JlbGF0aXZlX3JlbGF0aXZlLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK2RpZmYgLS1n aXQgYS9zcmMvRmJUay9Db250YWluZXIuY2MgYi9zcmMvRmJUay9Db250YWluZXIuY2MKK2luZGV4 IGNlYTc2MWIzLi4wZTA1MGEwYiAxMDA2NDQKKy0tLSBhL3NyYy9GYlRrL0NvbnRhaW5lci5jYwor KysrIGIvc3JjL0ZiVGsvQ29udGFpbmVyLmNjCitAQCAtMzY1LDYgKzM2NSw5IEBAIHZvaWQgQ29u dGFpbmVyOjpyZXBvc2l0aW9uSXRlbXMoKSB7CisgICAgIGNvbnN0IEl0ZW1MaXN0OjppdGVyYXRv ciBpdF9lbmQgPSBlbmQoKTsKKworICAgICBpbnQgcm91bmRpbmdfZXJyb3IgPSAwOworKyAgICBp ZiAoYWxpZ24gPT0gUkVMQVRJVkUgfHwgdG90YWxfd2lkdGggPT0gbV9tYXhfdG90YWxfc2l6ZSkg eworKyAgICAgICAgcm91bmRpbmdfZXJyb3IgPSB0b3RhbF93aWR0aCAtICgobWF4X3dpZHRoX3Bl cl9jbGllbnQgKyBib3JkZXJXKSogbnVtX2l0ZW1zIC0gYm9yZGVyVyk7CisrICAgIH0KKworICAg ICBpbnQgbmV4dF94ID0gLWJvcmRlclc7IC8vIHplcm8gc28gdGhlIGJvcmRlciBvZiB0aGUgZmly c3Qgc2hvd3MKKyAgICAgaW50IGV4dHJhID0gMDsKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvZmx1eF9pbXByb3ZlLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMv Zmx1eF9pbXByb3ZlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMTNhMWFlYmE2MjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvZmx1eF9pbXByb3ZlLnBhdGNoCkBAIC0wLDAgKzEsMjA1IEBACitkaWZmIC0tZ2l0IGEvc3Jj L0V3bWguY2MgYi9zcmMvRXdtaC5jYworaW5kZXggZTEyYTc5MjMuLmRiMWRkZDQ1IDEwMDY0NAor LS0tIGEvc3JjL0V3bWguY2MKKysrKyBiL3NyYy9Fd21oLmNjCitAQCAtMTA5NiwxNSArMTA5Niwx OSBAQCBib29sIEV3bWg6OmNoZWNrQ2xpZW50TWVzc2FnZShjb25zdCBYQ2xpZW50TWVzc2FnZUV2 ZW50ICZjZSwKKyAgICAgICAgIC8vIGNlLmRhdGEubFswXSA9IHRoZSBhY3Rpb24gKHJlbW92ZSwg YWRkIG9yIHRvZ2dsZSkKKyAgICAgICAgIC8vIGNlLmRhdGEubFsxXSA9IHRoZSBmaXJzdCBwcm9w ZXJ0eSB0byBhbHRlcgorICAgICAgICAgLy8gY2UuZGF0YS5sWzJdID0gc2Vjb25kIHByb3BlcnR5 IHRvIGFsdGVyIChjYW4gYmUgemVybykKKy0gICAgICAgIGlmIChjZS5kYXRhLmxbMF0gPT0gU1RB VEVfUkVNT1ZFKSB7CistICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0sIGZh bHNlLCAqd2luY2xpZW50KTsKKy0gICAgICAgICAgICBzZXRTdGF0ZSh3aW4sIGNlLmRhdGEubFsy XSwgZmFsc2UsICp3aW5jbGllbnQpOworLSAgICAgICAgfSBlbHNlIGlmIChjZS5kYXRhLmxbMF0g PT0gU1RBVEVfQUREKSB7CistICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0s IHRydWUsICp3aW5jbGllbnQpOworLSAgICAgICAgICAgIHNldFN0YXRlKHdpbiwgY2UuZGF0YS5s WzJdLCB0cnVlLCAqd2luY2xpZW50KTsKKy0gICAgICAgIH0gZWxzZSBpZiAoY2UuZGF0YS5sWzBd ID09IFNUQVRFX1RPR0dMRSkgeworLSAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0 YS5sWzFdKTsKKy0gICAgICAgICAgICB0b2dnbGVTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSk7Cisr ICAgICAgICBib29sIGFkZHJlbW92ZSA9IGZhbHNlOyAvLyBhZGQgdHJ1ZSwgcmVtb3ZlIGZhbHNl CisrCisrICAgICAgICBzd2l0Y2ggKGNlLmRhdGEubFswXSkgeworKyAgICAgICAgICBjYXNlIFNU QVRFX1RPR0dMRToKKysgICAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0YS5sWzFd KTsKKysgICAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0YS5sWzJdKTsKKysgICAg ICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICBjYXNlIFNUQVRFX0FERDoKKysgICAgICAgICAg ICAgIGFkZHJlbW92ZSA9IHRydWU7CisrICAgICAgICAgIGNhc2UgU1RBVEVfUkVNT1ZFOgorKyAg ICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0sIGFkZHJlbW92ZSwgKndpbmNs aWVudCk7CisrICAgICAgICAgICAgICBzZXRTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSwgYWRkcmVt b3ZlLCAqd2luY2xpZW50KTsKKysgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorICAg ICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0gZWxzZSBpZiAoY2UubWVzc2FnZV90eXBlID09IG1f bmV0LT5udW1iZXJfb2ZfZGVza3RvcHMpIHsKK2RpZmYgLS1naXQgYS9zcmMvRmJNZW51UGFyc2Vy LmNjIGIvc3JjL0ZiTWVudVBhcnNlci5jYworaW5kZXggNzE2Y2VkMjkuLjVhNTZlNmY1IDEwMDY0 NAorLS0tIGEvc3JjL0ZiTWVudVBhcnNlci5jYworKysrIGIvc3JjL0ZiTWVudVBhcnNlci5jYwor QEAgLTMzLDkgKzMzLDkgQEAgYm9vbCBGYk1lbnVQYXJzZXI6Om9wZW4oY29uc3Qgc3RkOjpzdHJp bmcgJmZpbGVuYW1lKSB7CisgfQorIAorIEZiVGs6OlBhcnNlciAmRmJNZW51UGFyc2VyOjpvcGVy YXRvciA+PiAoRmJUazo6UGFyc2VyOjpJdGVtICZvdXQpIHsKKy0gICAgaWYgKGVvZigpKSB7ICAg ICAgICAKKysgICAgaWYgKGVvZigpKSB7CisgICAgICAgICBvdXQgPSBGYlRrOjpQYXJzZXI6OnNf ZW1wdHlfaXRlbTsKKy0gICAgICAgIHJldHVybiAqdGhpczsgCisrICAgICAgICByZXR1cm4gKnRo aXM7CisgICAgIH0KKyAKKyAgICAgaWYgKG1fY3Vycl9saW5lLmVtcHR5KCkpCitAQCAtNjksMjAg KzY5LDI2IEBAIEZiVGs6OlBhcnNlciAmRmJNZW51UGFyc2VyOjpvcGVyYXRvciA+PiAoRmJUazo6 UGFyc2VyOjpJdGVtICZvdXQpIHsKKyAgICAgICAgIHJldHVybiAoKnRoaXMpPj5vdXQ7CisgICAg ICAgICBicmVhazsKKyAgICAgfQorLSAgICAKKysKKyAgICAgc3RkOjpzdHJpbmcga2V5OworICAg ICBpbnQgZXJyID0gRmJUazo6U3RyaW5nVXRpbDo6CisgICAgICAgICBnZXRTdHJpbmdCZXR3ZWVu KGtleSwgbV9jdXJyX2xpbmUuY19zdHIoKSArIG1fY3Vycl9wb3MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgIGZpcnN0LCBzZWNvbmQpOworLSAgICBpZiAoZXJyIDw9IDApIHsgICAgICAgIAor LSAgICAgICAgaWYgKG1fY3Vycl90b2tlbiA9PSBUWVBFKQorKyAgICBpZiAoZXJyIDw9IDApIHsK KysgICAgICAgIHN3aXRjaCAobV9jdXJyX3Rva2VuKSB7CisrICAgICAgICAgIGNhc2UgVFlQRToK KyAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBOQU1FOworLSAgICAgICAgZWxzZSBpZiAobV9j dXJyX3Rva2VuID09IE5BTUUpCisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGNhc2Ug TkFNRToKKyAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBBUkdVTUVOVDsKKy0gICAgICAgIGVs c2UgaWYgKG1fY3Vycl90b2tlbiA9PSBBUkdVTUVOVCkKKysgICAgICAgICAgICBicmVhazsKKysg ICAgICAgICAgY2FzZSBBUkdVTUVOVDoKKyAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBJQ09O OworLSAgICAgICAgZWxzZSBpZiAobV9jdXJyX3Rva2VuID09IElDT04pCisrICAgICAgICAgICAg YnJlYWs7CisrICAgICAgICAgIGNhc2UgSUNPTjoKKyAgICAgICAgICAgICBtX2N1cnJfdG9rZW4g PSBET05FOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorIAorICAgICAgICAgb3V0 ID0gRmJUazo6UGFyc2VyOjpzX2VtcHR5X2l0ZW07CisgICAgICAgICByZXR1cm4gKnRoaXM7Citk aWZmIC0tZ2l0IGEvc3JjL1JlbWVtYmVyLmNjIGIvc3JjL1JlbWVtYmVyLmNjCitpbmRleCA0OWU2 MTA2Mi4uNGYwYmEzZGIgMTAwNjQ0CistLS0gYS9zcmMvUmVtZW1iZXIuY2MKKysrKyBiL3NyYy9S ZW1lbWJlci5jYworQEAgLTgwMiwzOSArODAyLDQxIEBAIHZvaWQgUmVtZW1iZXI6OnJlbG9hZCgp IHsKKyAgICAgICAgICAgICBpbnQgcG9zID0gZ2V0U3RyaW5nQmV0d2VlbihrZXksIGxpbmUuY19z dHIoKSwgJ1snLCAnXScpOworICAgICAgICAgICAgIHN0cmluZyBsY19rZXkgPSB0b0xvd2VyKGtl eSk7CisgCistICAgICAgICAgICAgaWYgKHBvcyA+IDAgJiYgKGxjX2tleSA9PSAiYXBwIiB8fCBs Y19rZXkgPT0gInRyYW5zaWVudCIpKSB7CistICAgICAgICAgICAgICAgIENsaWVudFBhdHRlcm4g KnBhdCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxpbmUuY19zdHIoKSArIHBvcyk7CistICAgICAgICAg ICAgICAgIGlmICghaW5fZ3JvdXApIHsKKy0gICAgICAgICAgICAgICAgICAgIGlmICgoZXJyID0g cGF0LT5lcnJvcigpKSA9PSAwKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB0cmFu c2llbnQgPSAobGNfa2V5ID09ICJ0cmFuc2llbnQiKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBBcHBsaWNhdGlvbiAqYXBwID0gZmluZE1hdGNoaW5nUGF0dGVybnMocGF0LAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX3BhdHMsIHRyYW5zaWVu dCwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHApIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXBwLT5yZXNldCgpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXVzZWRfYXBwcy5pbnNlcnQoYXBwKTsKKysgICAgICAgICAgICBpZiAocG9zID4g MCkgeworKyAgICAgICAgICAgICAgICBpZiAobGNfa2V5ID09ICJhcHAiIHx8IGxjX2tleSA9PSAi dHJhbnNpZW50IikgeworKyAgICAgICAgICAgICAgICAgICAgQ2xpZW50UGF0dGVybiAqcGF0ID0g bmV3IENsaWVudFBhdHRlcm4obGluZS5jX3N0cigpICsgcG9zKTsKKysgICAgICAgICAgICAgICAg ICAgIGlmICghaW5fZ3JvdXApIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGVyciA9 IHBhdC0+ZXJyb3IoKSkgPT0gMCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IHRyYW5zaWVudCA9IChsY19rZXkgPT0gInRyYW5zaWVudCIpOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBcHBsaWNhdGlvbiAqYXBwID0gZmluZE1hdGNoaW5nUGF0dGVybnMocGF0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9w YXRzLCB0cmFuc2llbnQsIGZhbHNlKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGFwcCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLT5yZXNldCgpOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV1c2VkX2FwcHMuaW5zZXJ0KGFwcCk7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcHAgPSBuZXcgQXBwbGljYXRpb24odHJhbnNpZW50LCBmYWxzZSk7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbV9wYXRzLT5wdXNoX2JhY2sobWFrZV9wYWlyKHBhdCwgYXBwKSk7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJvdyArPSBwYXJzZUFwcChhcHBzX2ZpbGUsICphcHApOwor ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFwcCA9IG5ldyBBcHBsaWNhdGlvbih0cmFuc2llbnQsIGZhbHNlKTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2Vycjw8IkVycm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxp bmUgIjw8cm93PDwiLCBjb2x1bW4gIjw8KGVycitwb3MpPDwiLiI8PGVuZGw7CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXQ7IC8vIHNpbmNlIGl0IGRpZG4ndCB3b3JrCisg ICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIG1f cGF0cy0+cHVzaF9iYWNrKG1ha2VfcGFpcihwYXQsIGFwcCkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIHJvdyArPSBwYXJzZUFwcChhcHBzX2ZpbGUsICphcHApOworICAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjZXJyPDwiRXJyb3IgcmVh ZGluZyBhcHBzIGZpbGUgYXQgbGluZSAiPDxyb3c8PCIsIGNvbHVtbiAiPDwoZXJyK3Bvcyk8PCIu Ijw8ZW5kbDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGF0OyAvLyBzaW5jZSBp dCBkaWRuJ3Qgd29yaworKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwZWRfcGF0cy5wdXNo X2JhY2socGF0KTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfSBl bHNlIHsKKy0gICAgICAgICAgICAgICAgICAgIGdyb3VwZWRfcGF0cy5wdXNoX2JhY2socGF0KTsK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0gZWxzZSBpZiAocG9zID4gMCAmJiBs Y19rZXkgPT0gInN0YXJ0dXAiICYmIGZiLmlzU3RhcnR1cCgpKSB7CistICAgICAgICAgICAgICAg IGlmICghaGFuZGxlU3RhcnR1cEl0ZW0obGluZSwgcG9zKSkgeworLSAgICAgICAgICAgICAgICAg ICAgY2Vycjw8IkVycm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLiI8PGVu ZGw7CisrICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGNfa2V5ID09ICJzdGFydHVwIiAmJiBm Yi5pc1N0YXJ0dXAoKSkgeworKyAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVTdGFydHVw SXRlbShsaW5lLCBwb3MpKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgY2Vycjw8IkVycm9y IHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLiI8PGVuZGw7CisrICAgICAgICAg ICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBpdGVtIGV2ZW4g aWYgaXQgd2FzIGJhZCAoYXJlbid0IHdlIG5pY2UpCisrICAgICAgICAgICAgICAgICAgICBtX3N0 YXJ0dXBzLnB1c2hfYmFjayhsaW5lLnN1YnN0cihwb3MpKTsKKysgICAgICAgICAgICAgICAgfSBl bHNlIGlmIChsY19rZXkgPT0gImdyb3VwIikgeworKyAgICAgICAgICAgICAgICAgICAgaW5fZ3Jv dXAgPSB0cnVlOworKyAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUuZmluZCgnKCcpICE9IHN0 cmluZzo6bnBvcykKKysgICAgICAgICAgICAgICAgICAgICAgICBwYXQgPSBuZXcgQ2xpZW50UGF0 dGVybihsaW5lLmNfc3RyKCkgKyBwb3MpOworICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIC8vIHNhdmUgdGhlIGl0ZW0gZXZlbiBpZiBpdCB3YXMgYmFkIChhcmVuJ3Qgd2Ugbmlj ZSkKKy0gICAgICAgICAgICAgICAgbV9zdGFydHVwcy5wdXNoX2JhY2sobGluZS5zdWJzdHIocG9z KSk7CistICAgICAgICAgICAgfSBlbHNlIGlmIChwb3MgPiAwICYmIGxjX2tleSA9PSAiZ3JvdXAi KSB7CistICAgICAgICAgICAgICAgIGluX2dyb3VwID0gdHJ1ZTsKKy0gICAgICAgICAgICAgICAg aWYgKGxpbmUuZmluZCgnKCcpICE9IHN0cmluZzo6bnBvcykKKy0gICAgICAgICAgICAgICAgICAg IHBhdCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxpbmUuY19zdHIoKSArIHBvcyk7CisgICAgICAgICAg ICAgfSBlbHNlIGlmIChpbl9ncm91cCkgeworICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2Ug YXNzdW1lIHRoYXQgaXQgaXMgdGhlIHN0YXJ0IG9mIHRoZSBhdHRyaWJ1dGVzCisgICAgICAgICAg ICAgICAgIEFwcGxpY2F0aW9uICphcHAgPSAwOworZGlmZiAtLWdpdCBhL3NyYy9TeXN0ZW1UcmF5 LmNjIGIvc3JjL1N5c3RlbVRyYXkuY2MKK2luZGV4IDhjNDI4NzdhLi4xZmMyYjBhOCAxMDA2NDQK Ky0tLSBhL3NyYy9TeXN0ZW1UcmF5LmNjCisrKysgYi9zcmMvU3lzdGVtVHJheS5jYworQEAgLTU1 MCwxMCArNTUwLDEyIEBAIHZvaWQgU3lzdGVtVHJheTo6cmVhcnJhbmdlQ2xpZW50cygpIHsKKyAg ICAgQ2xpZW50TGlzdDo6aXRlcmF0b3IgY2xpZW50X2l0ID0gbV9jbGllbnRzLmJlZ2luKCk7Cisg ICAgIENsaWVudExpc3Q6Oml0ZXJhdG9yIGNsaWVudF9pdF9lbmQgPSBtX2NsaWVudHMuZW5kKCk7 CisgICAgIGludCBuZXh0X3ggPSBidzsKKysgICAgaW50IHgsIHk7CisgICAgIGZvciAoOyBjbGll bnRfaXQgIT0gY2xpZW50X2l0X2VuZDsgKytjbGllbnRfaXQpIHsKKyAgICAgICAgIGlmICghKCpj bGllbnRfaXQpLT5pc1Zpc2libGUoKSkKKyAgICAgICAgICAgICBjb250aW51ZTsKKy0gICAgICAg IGludCB4ID0gbmV4dF94LCB5ID0gYnc7CisrICAgICAgICB4ID0gbmV4dF94OworKyAgICAgICAg eSA9IGJ3OworICAgICAgICAgbmV4dF94ICs9IGhfcm90MCtidzsKKyAgICAgICAgIHRyYW5zbGF0 ZUNvb3JkcyhvcmllbnRhdGlvbigpLCB4LCB5LCB3X3JvdDAsIGhfcm90MCk7CisgICAgICAgICB0 cmFuc2xhdGVQb3NpdGlvbihvcmllbnRhdGlvbigpLCB4LCB5LCBoX3JvdDAsIGhfcm90MCwgMCk7 CitkaWZmIC0tZ2l0IGEvc3JjL1dpbmRvdy5jYyBiL3NyYy9XaW5kb3cuY2MKK2luZGV4IDM0MmU0 ODg1Li43MTNkMTUxMCAxMDA2NDQKKy0tLSBhL3NyYy9XaW5kb3cuY2MKKysrKyBiL3NyYy9XaW5k b3cuY2MKK0BAIC0zMjY3LDE0ICszMjY3LDE4IEBAIHZvaWQgRmx1eGJveFdpbmRvdzo6ZG9TbmFw cGluZyhpbnQgJm9yaWdfbGVmdCwgaW50ICZvcmlnX3RvcCwgYm9vbCByZXNpemUpIHsKKyBGbHV4 Ym94V2luZG93OjpSZWZlcmVuY2VDb3JuZXIgRmx1eGJveFdpbmRvdzo6Z2V0UmVzaXplRGlyZWN0 aW9uKGludCB4LCBpbnQgeSwKKyAgICAgICAgIFJlc2l6ZU1vZGVsIG1vZGVsLCBpbnQgY29ybmVy X3NpemVfcHgsIGludCBjb3JuZXJfc2l6ZV9wYykgY29uc3QKKyB7CistICAgIGlmIChtb2RlbCA9 PSBUT1BMRUZUUkVTSVpFKSAgICAgcmV0dXJuIExFRlRUT1A7CistICAgIGlmIChtb2RlbCA9PSBU T1BSRVNJWkUpICAgICAgICAgcmV0dXJuIFRPUDsKKy0gICAgaWYgKG1vZGVsID09IFRPUFJJR0hU UkVTSVpFKSAgICByZXR1cm4gUklHSFRUT1A7CistICAgIGlmIChtb2RlbCA9PSBMRUZUUkVTSVpF KSAgICAgICAgcmV0dXJuIExFRlQ7CistICAgIGlmIChtb2RlbCA9PSBSSUdIVFJFU0laRSkgICAg ICAgcmV0dXJuIFJJR0hUOworLSAgICBpZiAobW9kZWwgPT0gQk9UVE9NTEVGVFJFU0laRSkgIHJl dHVybiBMRUZUQk9UVE9NOworLSAgICBpZiAobW9kZWwgPT0gQk9UVE9NUkVTSVpFKSAgICAgIHJl dHVybiBCT1RUT007CistICAgIGlmIChtb2RlbCA9PSBDRU5URVJSRVNJWkUpICAgICAgcmV0dXJu IENFTlRFUjsKKysgICAgc3dpdGNoIChtb2RlbCkgeworKyAgICBjYXNlIFRPUExFRlRSRVNJWkU6 ICAgICByZXR1cm4gTEVGVFRPUDsKKysgICAgY2FzZSBUT1BSRVNJWkU6ICAgICAgICAgcmV0dXJu IFRPUDsKKysgICAgY2FzZSBUT1BSSUdIVFJFU0laRTogICAgcmV0dXJuIFJJR0hUVE9QOworKyAg ICBjYXNlIExFRlRSRVNJWkU6ICAgICAgICByZXR1cm4gTEVGVDsKKysgICAgY2FzZSBSSUdIVFJF U0laRTogICAgICAgcmV0dXJuIFJJR0hUOworKyAgICBjYXNlIEJPVFRPTUxFRlRSRVNJWkU6ICBy ZXR1cm4gTEVGVEJPVFRPTTsKKysgICAgY2FzZSBCT1RUT01SRVNJWkU6ICAgICAgcmV0dXJuIEJP VFRPTTsKKysgICAgY2FzZSBDRU5URVJSRVNJWkU6ICAgICAgcmV0dXJuIENFTlRFUjsKKysgICAg ZGVmYXVsdDoKKysgICAgYnJlYWs7CisrICAgIH0KKyAKKyAgICAgaWYgKG1vZGVsID09IEVER0VP UkNPUk5FUlJFU0laRSkKKyAgICAgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvZmx1eF9vdmVyc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhfb3Zl cnNpemUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45OGQ3 MGQzYjAzN2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4 X292ZXJzaXplLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK2RpZmYgLS1naXQgYS9zcmMvV2luZG93 LmNjIGIvc3JjL1dpbmRvdy5jYworaW5kZXggMzQyZTQ4ODUuLjAyZDEwZTkwIDEwMDY0NAorLS0t IGEvc3JjL1dpbmRvdy5jYworKysrIGIvc3JjL1dpbmRvdy5jYworQEAgLTUzMiwxOSArNTMyLDE0 IEBAIHZvaWQgRmx1eGJveFdpbmRvdzo6aW5pdCgpIHsKKyAgICAgaWYgKCFtX3N0YXRlLmZ1bGxz Y3JlZW4pIHsKKyAgICAgICAgIHVuc2lnbmVkIGludCBuZXdfd2lkdGggPSAwLCBuZXdfaGVpZ2h0 ID0gMDsKKyAgICAgICAgIGlmIChtX2NsaWVudC0+d2lkdGgoKSA+PSBzY3JlZW4oKS53aWR0aCgp KSB7CistICAgICAgICAgICAgbV9zdGF0ZS5tYXhpbWl6ZWQgfD0gV2luZG93U3RhdGU6Ok1BWF9I T1JaOworICAgICAgICAgICAgIG5ld193aWR0aCA9IDIgKiBzY3JlZW4oKS53aWR0aCgpIC8gMzsK KyAgICAgICAgIH0KKyAgICAgICAgIGlmIChtX2NsaWVudC0+aGVpZ2h0KCkgPj0gc2NyZWVuKCku aGVpZ2h0KCkpIHsKKy0gICAgICAgICAgICBtX3N0YXRlLm1heGltaXplZCB8PSBXaW5kb3dTdGF0 ZTo6TUFYX1ZFUlQ7CisgICAgICAgICAgICAgbmV3X2hlaWdodCA9IDIgKiBzY3JlZW4oKS5oZWln aHQoKSAvIDM7CisgICAgICAgICB9CisgICAgICAgICBpZiAobmV3X3dpZHRoIHx8IG5ld19oZWln aHQpIHsKKy0gICAgICAgICAgICBjb25zdCBpbnQgbWF4aW1pemVkID0gbV9zdGF0ZS5tYXhpbWl6 ZWQ7CistICAgICAgICAgICAgbV9zdGF0ZS5tYXhpbWl6ZWQgPSBXaW5kb3dTdGF0ZTo6TUFYX05P TkU7CisgICAgICAgICAgICAgcmVzaXplKG5ld193aWR0aCA/IG5ld193aWR0aCA6IHdpZHRoKCks IG5ld19oZWlnaHQgPyBuZXdfaGVpZ2h0IDogaGVpZ2h0KCkpOworICAgICAgICAgICAgIG1fcGxh Y2VkID0gZmFsc2U7CistICAgICAgICAgICAgbV9zdGF0ZS5tYXhpbWl6ZWQgPSBtYXhpbWl6ZWQ7 CisgICAgICAgICB9CisgICAgIH0KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL2ZvY3VzX2Nsb3NlX21lbnUucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mb2N1 c19jbG9zZV9tZW51LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMDE4MzBjZjUzNDYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvZm9jdXNfY2xvc2VfbWVudS5wYXRjaApAQCAtMCwwICsxLDE3IEBACitkaWZmIC0tZ2l0IGEv c3JjL0ZvY3VzQ29udHJvbC5jYyBiL3NyYy9Gb2N1c0NvbnRyb2wuY2MKK2luZGV4IDU0YzNkNDZj Li43ZTQ5ZmY1MSAxMDA2NDQKKy0tLSBhL3NyYy9Gb2N1c0NvbnRyb2wuY2MKKysrKyBiL3NyYy9G b2N1c0NvbnRyb2wuY2MKK0BAIC0yNDcsMTEgKzI0Nyw3IEBAIHZvaWQgRm9jdXNDb250cm9sOjpz dG9wQ3ljbGluZ0ZvY3VzKCkgeworIAorICAgICAvLyBwdXQgY3VycmVudGx5IGZvY3VzZWQgd2lu ZG93IHRvIHRvcAorICAgICBpZiAoc19mb2N1c2VkX3dpbmRvdykgeworLSAgICAgICAgLy8gcmUt Zm9jdXMgbGFzdCB3aW5kb3cgdG8gZ2l2ZSB0aGUgY2xpZW50IGEgY2hhbmNlIHRvIHJlZGlzdHJp YnV0ZSB0aGUKKy0gICAgICAgIC8vIGZvY3VzIGludGVybmFsbHkgKGNsaWVudC1zaWRlIG9ubHkg bW9kYWxpdHkpCistICAgICAgICBzX2ZvY3VzZWRfd2luZG93LT5mb2N1cygpOworLSAgICAgICAg aWYgKHNfZm9jdXNlZF93aW5kb3cpCistICAgICAgICAgICAgc2V0U2NyZWVuRm9jdXNlZFdpbmRv dygqc19mb2N1c2VkX3dpbmRvdyk7CisrICAgICAgICBzZXRTY3JlZW5Gb2N1c2VkV2luZG93KCpz X2ZvY3VzZWRfd2luZG93KTsKKyAgICAgICAgIGlmIChzX2ZvY3VzZWRfZmJ3aW5kb3cpCisgICAg ICAgICAgICAgc19mb2N1c2VkX2Zid2luZG93LT5yYWlzZSgpOworICAgICB9IGVsc2UKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2UucGF0Y2ggYi9zcmNwa2dz L2ZsdXhib3gvcGF0Y2hlcy9zbGl0X3JhaXNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uYTNiYzAxYzdhYzg1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9mbHV4Ym94L3BhdGNoZXMvc2xpdF9yYWlzZS5wYXRjaApAQCAtMCwwICsxLDE2IEBACitkaWZm IC0tZ2l0IGEvc3JjL1NsaXQuY2MgYi9zcmMvU2xpdC5jYworaW5kZXggOWJhZWNmMjEuLjYzZWQ4 MjY5IDEwMDY0NAorLS0tIGEvc3JjL1NsaXQuY2MKKysrKyBiL3NyYy9TbGl0LmNjCitAQCAtOTU4 LDggKzk1OCw4IEBAIHZvaWQgU2xpdDo6YnV0dG9uUHJlc3NFdmVudChYQnV0dG9uRXZlbnQgJmJl KSB7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKworLSAgICBpZiAoYmUuYnV0dG9uID09IDEp CistICAgICAgICBmcmFtZS53aW5kb3cucmFpc2UoKTsKKysgICAgLy9pZiAoYmUuYnV0dG9uID09 IDEpCisrICAgIC8vICAgIGZyYW1lLndpbmRvdy5yYWlzZSgpOworCisgICAgIGlmIChiZS5idXR0 b24gIT0gQnV0dG9uMykgeworICAgICAgICAgWEFsbG93RXZlbnRzKGRweSwgUmVwbGF5UG9pbnRl ciwgQ3VycmVudFRpbWUpOworCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90 b29sYmFyX3JlZG8ucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90b29sYmFyX3JlZG8u cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jYTk1NDg2NTgz Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90b29sYmFyX3Jl ZG8ucGF0Y2gKQEAgLTAsMCArMSwyMjggQEAKK2RpZmYgLS1naXQgYS9zcmMvVG9vbGJhci5jYyBi L3NyYy9Ub29sYmFyLmNjCitpbmRleCBhYTliYzEyMS4uZWU4YjhiZmMgMTAwNjQ0CistLS0gYS9z cmMvVG9vbGJhci5jYworKysrIGIvc3JjL1Rvb2xiYXIuY2MKK0BAIC03NCw3ICs3NCw3IEBAIHVz aW5nIEZiVGs6OlNUTFV0aWw6OmZvckFsbDsKKyAKKyBuYW1lc3BhY2UgeworIAorLWNvbnN0IHN0 cnVjdCB7IAorK2NvbnN0IHN0cnVjdCB7CisgICAgIFRvb2xiYXI6OlBsYWNlbWVudCBwbGFjZW1l bnQ7CisgICAgIGNvbnN0IGNoYXIqIHN0cjsKKyAgICAgRmJUazo6T3JpZW50YXRpb24gb3JpZW50 OworQEAgLTM2MiwxMyArMzYyLDE2IEBAIHZvaWQgVG9vbGJhcjo6bG93ZXIoKSB7CisgfQorIAor IHZvaWQgVG9vbGJhcjo6c2NyZWVuQ2hhbmdlZChCU2NyZWVuICZzY3JlZW4pIHsKKy0gICAgcmVj b25maWd1cmUoKTsKKysgICAgLy9yZWNvbmZpZ3VyZSgpOworIH0KKyAKKyB2b2lkIFRvb2xiYXI6 OnJlbGF5b3V0KCkgeworLSAgICBmb3JBbGwobV9pdGVtX2xpc3QsIHN0ZDo6bWVtX2Z1bigmVG9v bGJhckl0ZW06OnVwZGF0ZVNpemluZykpOworLSAgICByZWFycmFuZ2VJdGVtcygpOworLSAgICBm b3JBbGwobV9pdGVtX2xpc3QsIHN0ZDo6YmluZDJuZChzdGQ6Om1lbV9mdW4oJlRvb2xiYXJJdGVt OjpyZW5kZXJUaGVtZSksIGFscGhhKCkpKTsKKysgICAgLy9mb3IgKGF1dG8gaXQgOiBtX2l0ZW1f bGlzdCkgICAgKCppdGVtX2l0KS0+dXBkYXRlU2l6aW5nKCk7CisrICAgIC8vcmVhcnJhbmdlSXRl bXMoKTsKKysgICAgLy9mb3IgKGF1dG8gaXQgOiBtX2l0ZW1fbGlzdCkgICAgKCppdGVtX2l0KS0+ cmVuZGVyVGhlbWUoYWxwaGEoKSk7CisrICAgIC8vZm9yQWxsKG1faXRlbV9saXN0LCBzdGQ6Om1l bV9mdW4oJlRvb2xiYXJJdGVtOjp1cGRhdGVTaXppbmcpKTsKKysgICAgLy9yZWFycmFuZ2VJdGVt cygpOworKyAgICAvL2ZvckFsbChtX2l0ZW1fbGlzdCwgc3RkOjpiaW5kMm5kKHN0ZDo6bWVtX2Z1 bigmVG9vbGJhckl0ZW06OnJlbmRlclRoZW1lKSwgYWxwaGEoKSkpOworIH0KKyAKKyB2b2lkIFRv b2xiYXI6OnJlY29uZmlndXJlKCkgeworQEAgLTU1NywxMiArNTYwLDE2IEBAIHZvaWQgVG9vbGJh cjo6YnV0dG9uUHJlc3NFdmVudChYQnV0dG9uRXZlbnQgJmJlKSB7CisgfQorIAorIHZvaWQgVG9v bGJhcjo6dXBkYXRlQ3Jvc3NpbmdTdGF0ZSgpIHsKKy0gICAgV2luZG93IHdyLCB3YzsKKy0gICAg aW50IHJ4LCByeSwgeCwgeTsKKysgICAgLy9XaW5kb3cgd3IsIHdjOworKyAgICAvL2ludCByeCwg cnksIHgsIHk7CisrICAgIC8vdW5zaWduZWQgaW50IG1hc2s7CisrICAgIFdpbmRvdyB3cmM7Cisr ICAgIGludCByeHksIHgsIHk7CisgICAgIHVuc2lnbmVkIGludCBtYXNrOworICAgICBjb25zdCBp bnQgYncgPSAtdGhlbWUoKS0+Ym9yZGVyKCkud2lkdGgoKTsKKyAgICAgYm9vbCBob3ZlcmVkID0g ZmFsc2U7CistICAgIGlmIChYUXVlcnlQb2ludGVyKEZsdXhib3g6Omluc3RhbmNlKCktPmRpc3Bs YXkoKSwgd2luZG93KCkud2luZG93KCksICZ3ciwgJndjLCAmcngsICZyeSwgJngsICZ5LCAmbWFz aykpCisrICAgIC8vaWYgKFhRdWVyeVBvaW50ZXIoRmx1eGJveDo6aW5zdGFuY2UoKS0+ZGlzcGxh eSgpLCB3aW5kb3coKS53aW5kb3coKSwgJndyLCAmd2MsICZyeCwgJnJ5LCAmeCwgJnksICZtYXNr KSkKKysgICAgaWYgKFhRdWVyeVBvaW50ZXIoRmx1eGJveDo6aW5zdGFuY2UoKS0+ZGlzcGxheSgp LCB3aW5kb3coKS53aW5kb3coKSwgJndyYywgJndyYywgJnJ4eSwgJnJ4eSwgJngsICZ5LCAmbWFz aykpCisgICAgICAgICBob3ZlcmVkID0geCA+PSBidyAmJiB5ID49IGJ3ICYmIHggPCBpbnQod2lk dGgoKSkgJiYgeSA8IGludChoZWlnaHQoKSk7CisgICAgIGlmIChob3ZlcmVkKSB7CisgICAgICAg ICBpZiAobV9yY19hdXRvX3JhaXNlKQorQEAgLTkxMCwyNSArOTE3LDI2IEBAIHZvaWQgVG9vbGJh cjo6cmVhcnJhbmdlSXRlbXMoKSB7CisgICAgIC8vIGxvY2sgdGhpcworICAgICBtX3Jlc2l6ZV9s b2NrID0gdHJ1ZTsKKyAgICAgLy8gY2FsY3VsYXRlIHNpemUgZm9yIGZpeGVkIGl0ZW1zCistICAg IEl0ZW1MaXN0OjppdGVyYXRvciBpdGVtX2l0ID0gbV9pdGVtX2xpc3QuYmVnaW4oKTsKKy0gICAg SXRlbUxpc3Q6Oml0ZXJhdG9yIGl0ZW1faXRfZW5kID0gbV9pdGVtX2xpc3QuZW5kKCk7CisrICAg IC8vSXRlbUxpc3Q6Oml0ZXJhdG9yIGl0ZW1faXQgPSBtX2l0ZW1fbGlzdC5iZWdpbigpOworKyAg ICAvL0l0ZW1MaXN0OjppdGVyYXRvciBpdGVtX2l0X2VuZCA9IG1faXRlbV9saXN0LmVuZCgpOwor ICAgICBpbnQgYmV2ZWxfd2lkdGggPSB0aGVtZSgpLT5iZXZlbFdpZHRoKCk7CisgICAgIGludCBm aXhlZF93aWR0aCA9IGJldmVsX3dpZHRoOyAvLyBjb21iaW5lZCBzaXplIG9mIGFsbCBmaXhlZCBp dGVtcworICAgICBpbnQgcmVsYXRpdmVfd2lkdGggPSAwOyAvLyBjb21iaW5lZCAqZGVzaXJlZCog c2l6ZSBvZiBhbGwgcmVsYXRpdmUgaXRlbXMKKy0gICAgaW50IHN0cmV0Y2hfaXRlbXMgPSAwOwor ICAgICBpbnQgcmVsYXRpdmVfaXRlbXMgPSAwOworICAgICBpbnQgbGFzdF9idyA9IDA7IC8vIHdl IHNob3cgdGhlIGxhcmdlc3QgYm9yZGVyIG9mIGFkam9pbmluZyBpdGVtcworICAgICBib29sIGZp cnN0ID0gdHJ1ZTsKKysgICAgaW50IGxlZnRvdmVyX3dpZHRoID0gMDsKKyAKKyAgICAgdW5zaWdu ZWQgaW50IHdpZHRoID0gdGhpcy0+d2lkdGgoKSwgaGVpZ2h0ID0gdGhpcy0+aGVpZ2h0KCk7Cisg ICAgIHVuc2lnbmVkIGludCB0bXB3LCB0bXBoOworICAgICBGYlRrOjp0cmFuc2xhdGVTaXplKG9y aWVudCwgd2lkdGgsIGhlaWdodCk7CisgCistICAgIGZvciAoOyBpdGVtX2l0ICE9IGl0ZW1faXRf ZW5kOyArK2l0ZW1faXQpIHsKKy0gICAgICAgIGlmICghKCppdGVtX2l0KS0+YWN0aXZlKCkpCisr ICAgIC8vZm9yICg7IGl0ZW1faXQgIT0gaXRlbV9pdF9lbmQ7ICsraXRlbV9pdCkgeworKyAgICBm b3IgKGF1dG8gaXRlbV9pdCA6IG1faXRlbV9saXN0KSB7CisrICAgICAgICBpZiAoISgqaXRlbV9p dCkuYWN0aXZlKCkpCisgICAgICAgICAgICAgY29udGludWU7CisgCistICAgICAgICBpbnQgYm9y ZGVyVyA9ICgqaXRlbV9pdCktPmJvcmRlcldpZHRoKCk7CisrICAgICAgICBpbnQgYm9yZGVyVyA9 ICgqaXRlbV9pdCkuYm9yZGVyV2lkdGgoKTsKKyAKKyAgICAgICAgIGlmIChiZXZlbF93aWR0aCA+ IDApIHsKKyAgICAgICAgICAgICAvLyB0aGUgYmV2ZWwgYW5kIGJvcmRlciBhcmUgZml4ZWQgd2hl dGhlciByZWxhdGl2ZSBvciBub3QKK0BAIC05NDMsMzUgKzk1MSwzNSBAQCB2b2lkIFRvb2xiYXI6 OnJlYXJyYW5nZUl0ZW1zKCkgeworIAorICAgICAgICAgbGFzdF9idyA9IGJvcmRlclc7CisgCist ICAgICAgICB0bXB3ID0gKCppdGVtX2l0KS0+cHJlZmVycmVkV2lkdGgoKTsKKy0gICAgICAgIHRt cGggPSAoKml0ZW1faXQpLT5oZWlnaHQoKTsKKysgICAgICAgIHRtcHcgPSAoKml0ZW1faXQpLnBy ZWZlcnJlZFdpZHRoKCk7CisrICAgICAgICB0bXBoID0gKCppdGVtX2l0KS5oZWlnaHQoKTsKKyAg ICAgICAgIEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCB0bXB3LCB0bXBoKTsKKyAKKy0gICAg ICAgIGlmICgoKml0ZW1faXQpLT50eXBlKCkgPT0gVG9vbGJhckl0ZW06OkZJWEVEKSB7CistICAg ICAgICAgICAgZml4ZWRfd2lkdGggKz0gdG1wdzsKKy0gICAgICAgIH0gZWxzZSBpZiAoKCppdGVt X2l0KS0+dHlwZSgpID09IFRvb2xiYXJJdGVtOjpTUVVBUkUpIHsKKy0gICAgICAgICAgICBmaXhl ZF93aWR0aCArPSBoZWlnaHQ7CistICAgICAgICAgICAgaWYgKGJldmVsX3dpZHRoKQorLSAgICAg ICAgICAgICAgICBmaXhlZF93aWR0aCAtPSAyKihib3JkZXJXICsgYmV2ZWxfd2lkdGgpOworLSAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICArK3JlbGF0aXZlX2l0ZW1zOworLSAgICAgICAg ICAgIHJlbGF0aXZlX3dpZHRoICs9IHRtcHc7CistICAgICAgICAgICAgaWYgKCF0bXB3KQorLSAg ICAgICAgICAgICAgICArK3N0cmV0Y2hfaXRlbXM7CisrICAgICAgICBzd2l0Y2ggKCAoKml0ZW1f aXQpLnR5cGUoKSApIHsKKysgICAgICAgICAgICBjYXNlIFRvb2xiYXJJdGVtOjpGSVhFRDoKKysg ICAgICAgICAgICAgICAgZml4ZWRfd2lkdGggKz0gdG1wdzsKKysgICAgICAgICAgICAgICAgYnJl YWs7CisrICAgICAgICAgICAgY2FzZSBUb29sYmFySXRlbTo6U1FVQVJFOgorKyAgICAgICAgICAg ICAgICBmaXhlZF93aWR0aCArPSBoZWlnaHQ7CisrICAgICAgICAgICAgICAgIGlmIChiZXZlbF93 aWR0aCkKKysgICAgICAgICAgICAgICAgICAgIGZpeGVkX3dpZHRoIC09IDIqKGJvcmRlclcgKyBi ZXZlbF93aWR0aCk7CisrICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgIGNhc2Ug VG9vbGJhckl0ZW06OlJFTEFUSVZFOgorKyAgICAgICAgICAgICAgICArK3JlbGF0aXZlX2l0ZW1z OworKyAgICAgICAgICAgICAgICByZWxhdGl2ZV93aWR0aCArPSB0bXB3OworKyAgICAgICAgICAg ICAgICBicmVhazsKKysgICAgICAgICAgICBkZWZhdWx0OgorKyAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgIH0KKyAgICAgfQorIAorICAgICAvLyBjYWxjdWxhdGUgd2hhdCdzIGdvaW5n IHRvIGJlIGxlZnQgb3ZlciB0byB0aGUgcmVsYXRpdmUgc2l6ZWQgaXRlbXMKKy0gICAgZmxvYXQg c3RyZXRjaF9mYWN0b3IgPSAxLjBmOworICAgICBpZiAocmVsYXRpdmVfaXRlbXMpIHsKKy0gICAg ICAgIGlmIChyZWxhdGl2ZV93aWR0aCA8PSB3aWR0aCAtIGZpeGVkX3dpZHRoICYmIHN0cmV0Y2hf aXRlbXMpIHsKKy0gICAgICAgICAgICByZWxhdGl2ZV93aWR0aCA9IGludCh3aWR0aCAtIGZpeGVk X3dpZHRoIC0gcmVsYXRpdmVfd2lkdGgpL3N0cmV0Y2hfaXRlbXM7CistICAgICAgICB9IGVsc2Ug aWYgKHJlbGF0aXZlX3dpZHRoKSB7CistICAgICAgICAgICAgc3RyZXRjaF9mYWN0b3IgPSBmbG9h dCh3aWR0aCAtIGZpeGVkX3dpZHRoKS9yZWxhdGl2ZV93aWR0aDsKKy0gICAgICAgICAgICByZWxh dGl2ZV93aWR0aCA9IDA7CistICAgICAgICB9CisrICAgICAgICByZWxhdGl2ZV93aWR0aCA9ICh3 aWR0aCAtIGZpeGVkX3dpZHRoKSAvIHJlbGF0aXZlX2l0ZW1zOworKyAgICAgICAgbGVmdG92ZXJf d2lkdGggPSB3aWR0aCAtIGZpeGVkX3dpZHRoIC0gcmVsYXRpdmVfaXRlbXMgKiByZWxhdGl2ZV93 aWR0aDsKKyAgICAgfQorIAorKworICAgICAvLyBub3cgbW92ZSBhbmQgcmVzaXplIHRoZSBpdGVt cworICAgICAvLyBib3JkZXJXaWR0aCBhZGRlZCBiYWNrIG9uIHN0cmFpZ2h0IGF3YXkKKyAgICAg aW50IG5leHRfeCA9IC1tX2l0ZW1fbGlzdC5mcm9udCgpLT5ib3JkZXJXaWR0aCgpOyAvLyBsaXN0 IGlzbid0IGVtcHR5CitAQCAtOTc5LDE5ICs5ODcsMjIgQEAgdm9pZCBUb29sYmFyOjpyZWFycmFu Z2VJdGVtcygpIHsKKyAgICAgICAgIG5leHRfeCA9IDA7CisgCisgICAgIGxhc3RfYncgPSAwOwor LSAgICBmb3IgKGl0ZW1faXQgPSBtX2l0ZW1fbGlzdC5iZWdpbigpOyBpdGVtX2l0ICE9IGl0ZW1f aXRfZW5kOyArK2l0ZW1faXQpIHsKKy0gICAgICAgIGludCBib3JkZXJXID0gKCppdGVtX2l0KS0+ Ym9yZGVyV2lkdGgoKTsKKy0gICAgICAgIGlmICghKCppdGVtX2l0KS0+YWN0aXZlKCkpIHsKKy0g ICAgICAgICAgICAoKml0ZW1faXQpLT5oaWRlKCk7CisrICAgIGludCBib3JkZXJXLCBvZmZzZXQs IHNpemVfb2Zmc2V0LCB0bXB4LCB0bXB5OworKworKyAgICAvL2ZvciAoaXRlbV9pdCA9IG1faXRl bV9saXN0LmJlZ2luKCk7IGl0ZW1faXQgIT0gaXRlbV9pdF9lbmQ7ICsraXRlbV9pdCkgeworKyAg ICBmb3IgKGF1dG8gaXRlbV9pdCA6IG1faXRlbV9saXN0KSB7CisrICAgICAgICBib3JkZXJXID0g KCppdGVtX2l0KS5ib3JkZXJXaWR0aCgpOworKyAgICAgICAgaWYgKCEoKml0ZW1faXQpLmFjdGl2 ZSgpKSB7CisrICAgICAgICAgICAgKCppdGVtX2l0KS5oaWRlKCk7CisgICAgICAgICAgICAgLy8g bWFrZSBzdXJlIGl0IHN0aWxsIGdldHMgdG9sZCB0aGUgdG9vbGJhciBoZWlnaHQKKyAgICAgICAg ICAgICB0bXB3ID0gMTsgdG1waCA9IGhlaWdodCAtIDIqKGJldmVsX3dpZHRoK2JvcmRlclcpOwor ICAgICAgICAgICAgIGlmICh0bXBoID49ICgxPDwzMCkpIHRtcGggPSAxOworICAgICAgICAgICAg IEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCB0bXB3LCB0bXBoKTsKKy0gICAgICAgICAgICAo Kml0ZW1faXQpLT5yZXNpemUodG1wdywgdG1waCk7ICAvLyB3aWR0aCBvZiAwIGNoYW5nZXMgdG8g MSBhbnl3YXkKKysgICAgICAgICAgICAoKml0ZW1faXQpLnJlc2l6ZSh0bXB3LCB0bXBoKTsgIC8v IHdpZHRoIG9mIDAgY2hhbmdlcyB0byAxIGFueXdheQorICAgICAgICAgICAgIGNvbnRpbnVlOwor ICAgICAgICAgfQorLSAgICAgICAgaW50IG9mZnNldCA9IGJldmVsX3dpZHRoOworLSAgICAgICAg aW50IHNpemVfb2Zmc2V0ID0gMiooYm9yZGVyVyArIGJldmVsX3dpZHRoKTsKKysgICAgICAgIG9m ZnNldCA9IGJldmVsX3dpZHRoOworKyAgICAgICAgc2l6ZV9vZmZzZXQgPSAyKihib3JkZXJXICsg YmV2ZWxfd2lkdGgpOworIAorICAgICAgICAgaWYgKGJldmVsX3dpZHRoID09IDApIHsKKyAgICAg ICAgICAgICBvZmZzZXQgPSAtYm9yZGVyVzsKK0BAIC0xMDAwLDIyICsxMDExLDI4IEBAIHZvaWQg VG9vbGJhcjo6cmVhcnJhbmdlSXRlbXMoKSB7CisgICAgICAgICB9CisgICAgICAgICBsYXN0X2J3 ID0gYm9yZGVyVzsKKyAKKy0gICAgICAgIGludCB0bXB4ID0gbmV4dF94ICsgb2Zmc2V0LAorLSAg ICAgICAgICAgIHRtcHkgPSBvZmZzZXQ7CistCistICAgICAgICBpZiAoKCppdGVtX2l0KS0+dHlw ZSgpID09IFRvb2xiYXJJdGVtOjpSRUxBVElWRSkgeworLSAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBpdGVtdyA9ICgqaXRlbV9pdCktPnByZWZlcnJlZFdpZHRoKCksIGl0ZW1oID0gKCppdGVtX2l0 KS0+aGVpZ2h0KCk7CistICAgICAgICAgICAgRmJUazo6dHJhbnNsYXRlU2l6ZShvcmllbnQsIGl0 ZW13LCBpdGVtaCk7CistICAgICAgICAgICAgdG1wdyA9IGl0ZW13ID8gc3RkOjpmbG9vcihzdHJl dGNoX2ZhY3RvciAqIGl0ZW13KSA6IHJlbGF0aXZlX3dpZHRoOworLSAgICAgICAgICAgIHRtcGgg PSBoZWlnaHQgLSBzaXplX29mZnNldDsKKy0gICAgICAgIH0gZWxzZSBpZiAoKCppdGVtX2l0KS0+ dHlwZSgpID09IFRvb2xiYXJJdGVtOjpTUVVBUkUpIHsKKy0gICAgICAgICAgICB0bXB3ID0gdG1w aCA9IGhlaWdodCAtIHNpemVfb2Zmc2V0OworLSAgICAgICAgfSBlbHNlIHsgLy8gZml4ZWQgc2l6 ZQorLSAgICAgICAgICAgIHVuc2lnbmVkIGludCBpdGVtdyA9ICgqaXRlbV9pdCktPndpZHRoKCks IGl0ZW1oID0gKCppdGVtX2l0KS0+aGVpZ2h0KCk7CistICAgICAgICAgICAgRmJUazo6dHJhbnNs YXRlU2l6ZShvcmllbnQsIGl0ZW13LCBpdGVtaCk7CistICAgICAgICAgICAgdG1wdyA9IGl0ZW13 OworLSAgICAgICAgICAgIHRtcGggPSBoZWlnaHQgLSBzaXplX29mZnNldDsKKysgICAgICAgIHRt cHggPSBuZXh0X3ggKyBvZmZzZXQsCisrICAgICAgICB0bXB5ID0gb2Zmc2V0OworKyAgICAgICAg dG1waCA9IGhlaWdodCAtIHNpemVfb2Zmc2V0OworKworKyAgICAgICAgc3dpdGNoICggKCppdGVt X2l0KS50eXBlKCkgKSB7CisrICAgICAgICAgICAgY2FzZSBUb29sYmFySXRlbTo6U1FVQVJFOgor KyAgICAgICAgICAgICAgICB0bXB3ID0gdG1waDsKKysgICAgICAgICAgICAgICAgYnJlYWs7Cisr ICAgICAgICAgICAgY2FzZSBUb29sYmFySXRlbTo6UkVMQVRJVkU6CisrICAgICAgICAgICAgICAg IHRtcHcgPSByZWxhdGl2ZV93aWR0aDsKKysgICAgICAgICAgICAgICAgaWYgKGxlZnRvdmVyX3dp ZHRoKSB7CisrICAgICAgICAgICAgICAgICAgICAtLWxlZnRvdmVyX3dpZHRoOworKyAgICAgICAg ICAgICAgICAgICAgKyt0bXB3OworKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAg IGJyZWFrOworKyAgICAgICAgICAgIGNhc2UgVG9vbGJhckl0ZW06OkZJWEVEOgorKyAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgaXRlbXcgPSAoKml0ZW1faXQpLndpZHRoKCksIGl0ZW1oID0g KCppdGVtX2l0KS5oZWlnaHQoKTsKKysgICAgICAgICAgICAgICAgRmJUazo6dHJhbnNsYXRlU2l6 ZShvcmllbnQsIGl0ZW13LCBpdGVtaCk7CisrICAgICAgICAgICAgICAgIHRtcHcgPSBpdGVtdzsK KysgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisrCisgICAgICAgICBpZiAodG1w dyA+PSAoMTw8MzApKSB0bXB3ID0gMTsKKyAgICAgICAgIGlmICh0bXBoID49ICgxPDwzMCkpIHRt cGggPSAxOworICAgICAgICAgbmV4dF94ICs9IHRtcHcgKyBiZXZlbF93aWR0aDsKK0BAIC0xMDI1 LDggKzEwNDIsOCBAQCB2b2lkIFRvb2xiYXI6OnJlYXJyYW5nZUl0ZW1zKCkgeworICAgICAgICAg RmJUazo6dHJhbnNsYXRlQ29vcmRzKG9yaWVudCwgdG1weCwgdG1weSwgd2lkdGgsIGhlaWdodCk7 CisgICAgICAgICBGYlRrOjp0cmFuc2xhdGVQb3NpdGlvbihvcmllbnQsIHRtcHgsIHRtcHksIHRt cHcsIHRtcGgsIGJvcmRlclcpOworICAgICAgICAgRmJUazo6dHJhbnNsYXRlU2l6ZShvcmllbnQs IHRtcHcsIHRtcGgpOworLSAgICAgICAgKCppdGVtX2l0KS0+bW92ZVJlc2l6ZSh0bXB4LCB0bXB5 LCB0bXB3LCB0bXBoKTsKKy0gICAgICAgICgqaXRlbV9pdCktPnNob3coKTsKKysgICAgICAgICgq aXRlbV9pdCkubW92ZVJlc2l6ZSh0bXB4LCB0bXB5LCB0bXB3LCB0bXBoKTsKKysgICAgICAgIC8v KCppdGVtX2l0KS5zaG93KCk7CisgCisgICAgIH0KKyAgICAgLy8gdW5sb2NrCmRpZmYgLS1naXQg YS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90cmVtb3JfZ3JhYm9pZF9oZWxsLnBhdGNoIGIvc3Jj cGtncy9mbHV4Ym94L3BhdGNoZXMvdHJlbW9yX2dyYWJvaWRfaGVsbC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE4OWEzMTQ2MDdiZAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hlbGwucGF0Y2gK QEAgLTAsMCArMSwzNTAgQEAKK2RpZmYgLS1naXQgYS9zcmMvRmJUay9FdmVudE1hbmFnZXIuY2Mg Yi9zcmMvRmJUay9FdmVudE1hbmFnZXIuY2MKK2luZGV4IDNkZjU2ZGU1Li41MDE3NjZjYyAxMDA2 NDQKKy0tLSBhL3NyYy9GYlRrL0V2ZW50TWFuYWdlci5jYworKysrIGIvc3JjL0ZiVGsvRXZlbnRN YW5hZ2VyLmNjCitAQCAtMTk0LDIzICsxOTQsMjIgQEAgdm9pZCBFdmVudE1hbmFnZXI6OmRpc3Bh dGNoKFdpbmRvdyB3aW4sIFhFdmVudCAmZXYsIGJvb2wgcGFyZW50KSB7CisgCisgICAgIC8vIGZp bmQgb3V0IHdoaWNoIHdpbmRvdyBpcyB0aGUgcGFyZW50IGFuZAorICAgICAvLyBkaXNwYXRjaCBl dmVudAorLSAgICBXaW5kb3cgcm9vdCwgcGFyZW50X3dpbiwgKmNoaWxkcmVuID0gMDsKKy0gICAg dW5zaWduZWQgaW50IG51bV9jaGlsZHJlbjsKKy0gICAgaWYgKFhRdWVyeVRyZWUoRmJUazo6QXBw OjppbnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbiwKKy0gICAgICAgICAgICAgICAgICAgJnJvb3Qs ICZwYXJlbnRfd2luLCAmY2hpbGRyZW4sICZudW1fY2hpbGRyZW4pICE9IDApIHsKKy0gICAgICAg IGlmIChjaGlsZHJlbiAhPSAwKQorLSAgICAgICAgICAgIFhGcmVlKGNoaWxkcmVuKTsKKy0KKy0g ICAgICAgIGlmIChwYXJlbnRfd2luICE9IDAgJiYKKy0gICAgICAgICAgICBwYXJlbnRfd2luICE9 IHJvb3QpIHsKKy0gICAgICAgICAgICBpZiAobV9wYXJlbnRbcGFyZW50X3dpbl0gPT0gMCkKKy0g ICAgICAgICAgICAgICAgcmV0dXJuOworLQorLSAgICAgICAgICAgIC8vIGRpc3BhdGNoIGV2ZW50 IHRvIHBhcmVudAorLSAgICAgICAgICAgIGRpc3BhdGNoKHBhcmVudF93aW4sIGV2LCB0cnVlKTsK Ky0gICAgICAgIH0KKy0gICAgfQorLQorKy8vICAgIFdpbmRvdyByb290LCBwYXJlbnRfd2luLCAq Y2hpbGRyZW4gPSAwOworKy8vICAgIHVuc2lnbmVkIGludCBudW1fY2hpbGRyZW47CisrLy8gICAg aWYgKFhRdWVyeVRyZWUoRmJUazo6QXBwOjppbnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbiwKKysv LyAgICAgICAgICAgICAgICAgICAmcm9vdCwgJnBhcmVudF93aW4sICZjaGlsZHJlbiwgJm51bV9j aGlsZHJlbikgIT0gMCkgeworKy8vICAgICAgICBpZiAoY2hpbGRyZW4gIT0gMCkKKysvLyAgICAg ICAgICAgIFhGcmVlKGNoaWxkcmVuKTsKKysvLworKy8vICAgICAgICBpZiAocGFyZW50X3dpbiAh PSAwICYmCisrLy8gICAgICAgICAgICBwYXJlbnRfd2luICE9IHJvb3QpIHsKKysvLyAgICAgICAg ICAgIGlmIChtX3BhcmVudFtwYXJlbnRfd2luXSA9PSAwKQorKy8vICAgICAgICAgICAgICAgIHJl dHVybjsKKysvLworKy8vICAgICAgICAgICAgLy8gZGlzcGF0Y2ggZXZlbnQgdG8gcGFyZW50Cisr Ly8gICAgICAgICAgICBkaXNwYXRjaChwYXJlbnRfd2luLCBldiwgdHJ1ZSk7CisrLy8gICAgICAg IH0KKysvLyAgICB9CisgfQorIAorIH0gLy8gZW5kIG5hbWVzcGFjZSBGYlRrCitkaWZmIC0tZ2l0 IGEvc3JjL0ZiVGsvS2V5VXRpbC5jYyBiL3NyYy9GYlRrL0tleVV0aWwuY2MKK2luZGV4IDczZjJl YTA2Li5jZjg2MzAyMSAxMDA2NDQKKy0tLSBhL3NyYy9GYlRrL0tleVV0aWwuY2MKKysrKyBiL3Ny Yy9GYlRrL0tleVV0aWwuY2MKK0BAIC0xNDEsMTMgKzE0MSwxNCBAQCB2b2lkIEtleVV0aWw6Omdy YWJCdXR0b24odW5zaWduZWQgaW50IGJ1dHRvbiwgdW5zaWduZWQgaW50IG1vZCwgV2luZG93IHdp biwKKyAgICAgY29uc3QgdW5zaWduZWQgaW50IHNjcm9sbG1vZCA9IGluc3RhbmNlKCkuc2Nyb2xs bG9jaygpOworIAorICAgICAvLyBHcmFiIHdpdGggbnVtbG9jaywgY2Fwc2xvY2sgYW5kIHNjcmxv Y2sKKy0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHsKKy0gICAgICAgIFhHcmFiQnV0 dG9uKGRpc3BsYXksIGJ1dHRvbiwgbW9kIHwgKGkgJiAxID8gTG9ja01hc2sgOiAwKSB8CistICAg ICAgICAgICAgICAgICAgICAoaSAmIDIgPyBudW1tb2QgOiAwKSB8IChpICYgNCA/IHNjcm9sbG1v ZCA6IDApLAorLSAgICAgICAgICAgICAgICAgICAgd2luLCBGYWxzZSwgZXZlbnRfbWFzaywgR3Jh Yk1vZGVTeW5jLCBHcmFiTW9kZUFzeW5jLAorLSAgICAgICAgICAgICAgICAgICAgTm9uZSwgY3Vy c29yKTsKKy0gICAgfQorLQorKyAgICAvL2ZvciAoaW50IGkgPSAwOyBpIDwgODsgaSsrKSB7Cisr ICAgIC8vICAgIFhHcmFiQnV0dG9uKGRpc3BsYXksIGJ1dHRvbiwgbW9kIHwgKGkgJiAxID8gTG9j a01hc2sgOiAwKSB8CisrICAgIC8vICAgICAgICAgICAgICAgIChpICYgMiA/IG51bW1vZCA6IDAp IHwgKGkgJiA0ID8gc2Nyb2xsbW9kIDogMCksCisrICAgIC8vICAgICAgICAgICAgICAgIHdpbiwg VHJ1ZSwgZXZlbnRfbWFzaywgR3JhYk1vZGVTeW5jLCBHcmFiTW9kZUFzeW5jLAorKyAgICAvLyAg ICAgICAgICAgICAgICBOb25lLCBjdXJzb3IpOworKyAgICAvL30KKysgICAgWEdyYWJCdXR0b24o ZGlzcGxheSwgYnV0dG9uLCBtb2QsIHdpbiwgVHJ1ZSwgZXZlbnRfbWFzaywKKysgICAgICAgICAg ICAgICAgR3JhYk1vZGVTeW5jLCBHcmFiTW9kZUFzeW5jLCBOb25lLCBjdXJzb3IpOworIH0KKyAK KyAvKioKK2RpZmYgLS1naXQgYS9zcmMvS2V5cy5jYyBiL3NyYy9LZXlzLmNjCitpbmRleCA4NjU5 MTM3MS4uYzI3MDM3ZTIgMTAwNjQ0CistLS0gYS9zcmMvS2V5cy5jYworKysrIGIvc3JjL0tleXMu Y2MKK0BAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBLZXlzOjpncmFiV2luZG93KFdpbmRvdyB3aW4p IHsKKyAgICAgaWYgKHdpbl9pdCA9PSBtX3dpbmRvd19tYXAuZW5kKCkpCisgICAgICAgICByZXR1 cm47CisgCistICAgIG1faGFuZGxlcl9tYXBbd2luXS0+Z3JhYkJ1dHRvbnMoKTsKKysgICAgLy9t X2hhbmRsZXJfbWFwW3dpbl0tPmdyYWJCdXR0b25zKCk7CisgICAgIHRfa2V5OjprZXlsaXN0X3Q6 Oml0ZXJhdG9yIGl0ID0gbV9rZXlsaXN0LT5rZXlsaXN0LmJlZ2luKCk7CisgICAgIHRfa2V5Ojpr ZXlsaXN0X3Q6Oml0ZXJhdG9yIGl0X2VuZCA9IG1fa2V5bGlzdC0+a2V5bGlzdC5lbmQoKTsKKyAg ICAgZm9yICg7IGl0ICE9IGl0X2VuZDsgKytpdCkgeworQEAgLTU4NiwxNiArNTg2LDE2IEBAIGJv b2wgS2V5czo6ZG9BY3Rpb24oaW50IHR5cGUsIHVuc2lnbmVkIGludCBtb2RzLCB1bnNpZ25lZCBp bnQga2V5LAorICAgICAgICAgaXNkb3VibGUgPSBkb3VibGVfY2xpY2s7CisgICAgIH0KKyAKKy0g ICAgYXV0byByZXNldEtleUNoYWluID0gWyZdKCkgeworLSAgICAgICAgZmlyc3Rfa2V5X3RpbWUg PSAwOworLSAgICAgICAgbmV4dF9rZXkucmVzZXQoKTsKKy0gICAgICAgIGlmIChzYXZlZF9rZXlt b2RlKSB7CistICAgICAgICAgICAgc2V0S2V5TW9kZShzYXZlZF9rZXltb2RlKTsKKy0gICAgICAg ICAgICBzYXZlZF9rZXltb2RlLnJlc2V0KCk7CistICAgICAgICB9CistICAgIH07CistICAgIGlm ICh0eXBlID09IEtleVByZXNzICYmIGZpcnN0X2tleV90aW1lICYmIHRpbWUgLSBmaXJzdF9rZXlf dGltZSA+IDUwMDApCistICAgICAgICByZXNldEtleUNoYWluKCk7CisrLy8gICAgYXV0byByZXNl dEtleUNoYWluID0gWyZdKCkgeworKy8vICAgICAgICBmaXJzdF9rZXlfdGltZSA9IDA7CisrLy8g ICAgICAgIG5leHRfa2V5LnJlc2V0KCk7CisrLy8gICAgICAgIGlmIChzYXZlZF9rZXltb2RlKSB7 CisrLy8gICAgICAgICAgICBzZXRLZXlNb2RlKHNhdmVkX2tleW1vZGUpOworKy8vICAgICAgICAg ICAgc2F2ZWRfa2V5bW9kZS5yZXNldCgpOworKy8vICAgICAgICB9CisrLy8gICAgfTsKKysvLyAg ICBpZiAodHlwZSA9PSBLZXlQcmVzcyAmJiBmaXJzdF9rZXlfdGltZSAmJiB0aW1lIC0gZmlyc3Rf a2V5X3RpbWUgPiA1MDAwKQorKy8vICAgICAgICByZXNldEtleUNoYWluKCk7CisgCisgICAgIGlm ICghbmV4dF9rZXkpCisgICAgICAgICBuZXh0X2tleSA9IG1fa2V5bGlzdDsKK0BAIC02MTIsMjkg KzYxMiwyOSBAQCBib29sIEtleXM6OmRvQWN0aW9uKGludCB0eXBlLCB1bnNpZ25lZCBpbnQgbW9k cywgdW5zaWduZWQgaW50IGtleSwKKyAgICAgICAgIG5leHRfa2V5LT5maW5kKE1vdGlvbk5vdGlm eSwgbW9kcywga2V5LCBjb250ZXh0LCBmYWxzZSkpCisgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8g aWYgdGhlcmUncyBhIG1vdGlvbiBhY3Rpb24sIHByZXZlbnQgcmVwbGF5IHRvIHRoZSBjbGllbnQg KGJ1dCBkbyBub3RoaW5nKQorIAorLSAgICBpZiAodGVtcF9rZXkgJiYgIXRlbXBfa2V5LT5rZXls aXN0LmVtcHR5KCkpIHsgLy8gZW1hY3Mtc3R5bGUKKy0gICAgICAgIGlmICghc2F2ZWRfa2V5bW9k ZSkgeworLSAgICAgICAgICAgIGZpcnN0X2tleV90aW1lID0gdGltZTsKKy0gICAgICAgICAgICBz YXZlZF9rZXltb2RlID0gbV9rZXlsaXN0OworLSAgICAgICAgfQorLSAgICAgICAgbmV4dF9rZXkg PSB0ZW1wX2tleTsKKy0gICAgICAgIHNldEtleU1vZGUobmV4dF9rZXkpOworLSAgICAgICAgcmV0 dXJuIHRydWU7CistICAgIH0KKysvLyAgICBpZiAodGVtcF9rZXkgJiYgIXRlbXBfa2V5LT5rZXls aXN0LmVtcHR5KCkpIHsgLy8gZW1hY3Mtc3R5bGUKKysvLyAgICAgICAgaWYgKCFzYXZlZF9rZXlt b2RlKSB7CisrLy8gICAgICAgICAgICBmaXJzdF9rZXlfdGltZSA9IHRpbWU7CisrLy8gICAgICAg ICAgICBzYXZlZF9rZXltb2RlID0gbV9rZXlsaXN0OworKy8vICAgICAgICB9CisrLy8gICAgICAg IG5leHRfa2V5ID0gdGVtcF9rZXk7CisrLy8gICAgICAgIHNldEtleU1vZGUobmV4dF9rZXkpOwor Ky8vICAgICAgICByZXR1cm4gdHJ1ZTsKKysvLyAgICB9CisrCisgICAgIGlmICghdGVtcF9rZXkg fHwgdGVtcF9rZXktPm1fY29tbWFuZCA9PSAwKSB7CistICAgICAgICBpZiAodHlwZSA9PSBLZXlQ cmVzcyAmJgorLSAgICAgICAgICAgICFGYlRrOjpLZXlVdGlsOjppbnN0YW5jZSgpLmtleWNvZGVU b01vZG1hc2soa2V5KSkgeworLSAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUg b2YgYW4gZW1hY3Mtc3R5bGUga2V5Y2hhaW4sIGV4aXQgaXQKKy0gICAgICAgICAgICByZXNldEtl eUNoYWluKCk7CistICAgICAgICB9CisrLy8gICAgICAgIGlmICh0eXBlID09IEtleVByZXNzICYm CisrLy8gICAgICAgICAgICAhRmJUazo6S2V5VXRpbDo6aW5zdGFuY2UoKS5rZXljb2RlVG9Nb2Rt YXNrKGtleSkpIHsKKysvLyAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2Yg YW4gZW1hY3Mtc3R5bGUga2V5Y2hhaW4sIGV4aXQgaXQKKysvLyAgICAgICAgICAgIHJlc2V0S2V5 Q2hhaW4oKTsKKysvLyAgICAgICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9Cisg CisgICAgIC8vIGlmIGZvY3VzIGNoYW5nZXMsIHdpbmRvd3Mgd2lsbCBnZXQgTm90aWZ5V2hpbGVH cmFiYmVkLAorICAgICAvLyB3aGljaCB0aGV5IHRlbmQgdG8gaWdub3JlCistICAgIGlmICh0eXBl ID09IEtleVByZXNzKSB7CisrICAgIGlmICh0eXBlID09IEtleVByZXNzKQorICAgICAgICAgWFVu Z3JhYktleWJvYXJkKEZsdXhib3g6Omluc3RhbmNlKCktPmRpc3BsYXkoKSwgQ3VycmVudFRpbWUp OworLSAgICB9CisgCisgICAgIFdpbkNsaWVudCAqb2xkID0gV2luZG93Q21kPHZvaWQ+OjpjbGll bnQoKTsKKyAgICAgV2luZG93Q21kPHZvaWQ+OjpzZXRDbGllbnQoY3VycmVudCk7CitAQCAtNjUw LDEyICs2NTAsMTMgQEAgYm9vbCBLZXlzOjpkb0FjdGlvbihpbnQgdHlwZSwgdW5zaWduZWQgaW50 IG1vZHMsIHVuc2lnbmVkIGludCBrZXksCisgICAgIHRlbXBfa2V5LT5tX2NvbW1hbmQtPmV4ZWN1 dGUoKTsKKyAgICAgV2luZG93Q21kPHZvaWQ+OjpzZXRDbGllbnQob2xkKTsKKyAKKy0gICAgaWYg KHNhdmVkX2tleW1vZGUpIHsKKy0gICAgICAgIGlmIChuZXh0X2tleSA9PSBtX2tleWxpc3QpIC8v IGRvbid0IHJlc2V0IGtleW1vZGUgaWYgY29tbWFuZCBjaGFuZ2VkIGl0CistICAgICAgICAgICAg c2V0S2V5TW9kZShzYXZlZF9rZXltb2RlKTsKKy0gICAgICAgIHNhdmVkX2tleW1vZGUucmVzZXQo KTsKKy0gICAgfQorLSAgICBuZXh0X2tleS5yZXNldCgpOworKy8vICAgIGlmIChzYXZlZF9rZXlt b2RlKSB7CisrLy8gICAgICAgIGlmIChuZXh0X2tleSA9PSBtX2tleWxpc3QpIC8vIGRvbid0IHJl c2V0IGtleW1vZGUgaWYgY29tbWFuZCBjaGFuZ2VkIGl0CisrLy8gICAgICAgICAgICBzZXRLZXlN b2RlKHNhdmVkX2tleW1vZGUpOworKy8vICAgICAgICBzYXZlZF9rZXltb2RlLnJlc2V0KCk7Cisr Ly8gICAgfQorKy8vICAgIG5leHRfa2V5LnJlc2V0KCk7CisrCisgICAgIHJldHVybiB0cnVlOwor IH0KKyAKK0BAIC02ODUsMTUgKzY4NiwxNiBAQCB2b2lkIEtleXM6OnJlY29uZmlndXJlKCkgewor IH0KKyAKKyB2b2lkIEtleXM6OnJlZ3JhYigpIHsKKy0gICAgc2V0S2V5TW9kZShtX2tleWxpc3Qp OworKyAgICAvL3NldEtleU1vZGUobV9rZXlsaXN0KTsKKyB9CisgCisgdm9pZCBLZXlzOjprZXlN b2RlKGNvbnN0IHN0cmluZyYga2V5TW9kZSkgeworLSAgICBrZXlzcGFjZV90OjppdGVyYXRvciBp dCA9IG1fbWFwLmZpbmQoa2V5TW9kZSArICI6Iik7CistICAgIGlmIChpdCA9PSBtX21hcC5lbmQo KSkKKysgICAgLy9rZXlzcGFjZV90OjppdGVyYXRvciBpdCA9IG1fbWFwLmZpbmQoa2V5TW9kZSAr ICI6Iik7CisrICAgIC8vaWYgKGl0ID09IG1fbWFwLmVuZCgpKQorKyAgICAvLyAgICBzZXRLZXlN b2RlKG1fbWFwWyJkZWZhdWx0OiJdKTsKKysgICAgLy9lbHNlCisrICAgIC8vICAgIHNldEtleU1v ZGUoaXQtPnNlY29uZCk7CisgICAgICAgICBzZXRLZXlNb2RlKG1fbWFwWyJkZWZhdWx0OiJdKTsK Ky0gICAgZWxzZQorLSAgICAgICAgc2V0S2V5TW9kZShpdC0+c2Vjb25kKTsKKyB9CisgCisgdm9p ZCBLZXlzOjpzZXRLZXlNb2RlKGNvbnN0IEZiVGs6OlJlZkNvdW50PHRfa2V5PiAma2V5TW9kZSkg eworQEAgLTcwMSwxMCArNzAzLDEwIEBAIHZvaWQgS2V5czo6c2V0S2V5TW9kZShjb25zdCBGYlRr OjpSZWZDb3VudDx0X2tleT4gJmtleU1vZGUpIHsKKyAgICAgdW5ncmFiQnV0dG9ucygpOworIAor ICAgICAvLyBub3RpZnkgaGFuZGxlcnMgdGhhdCB0aGVpciBidXR0b25zIGhhdmUgYmVlbiB1bmdy YWJiZWQKKy0gICAgSGFuZGxlck1hcDo6aXRlcmF0b3IgaF9pdCA9IG1faGFuZGxlcl9tYXAuYmVn aW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgaF9pdF9lbmQgID0gbV9oYW5kbGVyX21h cC5lbmQoKTsKKy0gICAgZm9yICg7IGhfaXQgIT0gaF9pdF9lbmQ7ICsraF9pdCkKKy0gICAgICAg IGhfaXQtPnNlY29uZC0+Z3JhYkJ1dHRvbnMoKTsKKysgICAgLy9IYW5kbGVyTWFwOjppdGVyYXRv ciBoX2l0ID0gbV9oYW5kbGVyX21hcC5iZWdpbigpLAorKyAgICAvLyAgICAgICAgICAgICAgICAg ICAgIGhfaXRfZW5kICA9IG1faGFuZGxlcl9tYXAuZW5kKCk7CisrICAgIC8vZm9yICg7IGhfaXQg IT0gaF9pdF9lbmQ7ICsraF9pdCkKKysgICAgLy8gICAgaF9pdC0+c2Vjb25kLT5ncmFiQnV0dG9u cygpOworIAorICAgICB0X2tleTo6a2V5bGlzdF90OjppdGVyYXRvciBpdCA9IGtleU1vZGUtPmtl eWxpc3QuYmVnaW4oKTsKKyAgICAgdF9rZXk6OmtleWxpc3RfdDo6aXRlcmF0b3IgaXRfZW5kID0g a2V5TW9kZS0+a2V5bGlzdC5lbmQoKTsKK2RpZmYgLS1naXQgYS9zcmMvV2luZG93LmNjIGIvc3Jj L1dpbmRvdy5jYworaW5kZXggMzQyZTQ4ODUuLjQ1N2MzMGM2IDEwMDY0NAorLS0tIGEvc3JjL1dp bmRvdy5jYworKysrIGIvc3JjL1dpbmRvdy5jYworQEAgLTExMzMsMTMgKzExMzMsMjUgQEAgdm9p ZCBGbHV4Ym94V2luZG93Ojp1cGRhdGVTaXplSGludHMoKSB7CisgfQorIAorIHZvaWQgRmx1eGJv eFdpbmRvdzo6Z3JhYkJ1dHRvbnMoKSB7CistCisrLy9OT0dSQUIKKysgICAgLy9pZiAobV9jbGll bnQtPndpbmRvdygpICE9IGZyYW1lKCkud2luZG93KCkud2luZG93KCkgKSByZXR1cm47CisgICAg IC8vIG5lZWRlZCBmb3IgY2xpY2sgdG8gZm9jdXMKKy0gICAgWEdyYWJCdXR0b24oZGlzcGxheSwg QnV0dG9uMSwgQW55TW9kaWZpZXIsCistICAgICAgICAgICAgICAgIGZyYW1lKCkud2luZG93KCku d2luZG93KCksIFRydWUsIEJ1dHRvblByZXNzTWFzaywKKy0gICAgICAgICAgICAgICAgR3JhYk1v ZGVTeW5jLCBHcmFiTW9kZVN5bmMsIE5vbmUsIE5vbmUpOworLSAgICBYVW5ncmFiQnV0dG9uKGRp c3BsYXksIEJ1dHRvbjEsIE1vZDFNYXNrfE1vZDJNYXNrfE1vZDNNYXNrLAorLSAgICAgICAgICAg ICAgICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCkpOworKyAgICAvLyBncmFiYmluZyBhc3lu YyBoZXJlIGJyZWFrcyBtb3VzZTEKKysgICAgLy9YR3JhYkJ1dHRvbihkaXNwbGF5LCBCdXR0b24x LCBBbnlNb2RpZmllciwKKysgICAgLy8gICAgICAgICAgICBmcmFtZSgpLndpbmRvdygpLndpbmRv dygpLCBUcnVlLCBCdXR0b25QcmVzc01hc2ssCisrICAgIC8vICAgICAgICAgICAgR3JhYk1vZGVT eW5jLCBHcmFiTW9kZVN5bmMsIE5vbmUsIE5vbmUpOworKyAgICAvLyAgICAgICAgICAgIC8vR3Jh Yk1vZGVBc3luYywgR3JhYk1vZGVBc3luYywgTm9uZSwgTm9uZSk7CisrICAgIC8vWFVuZ3JhYkJ1 dHRvbihkaXNwbGF5LCBCdXR0b24xLCBNb2QxTWFza3xNb2QyTWFza3xNb2QzTWFzaywKKysgICAg Ly8gICAgICAgICAgICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCkpOworKyAgICAvL1hHcmFi UG9pbnRlcihkaXNwbGF5LAorKyAgICAvLyAgICAgICAgICAgICBmcmFtZSgpLndpbmRvdygpLndp bmRvdygpLAorKyAgICAvLyAgICAgICAgICAgICBUcnVlLAorKyAgICAvLyAgICAgICAgICAgICBC dXR0b25QcmVzc01hc2ssCisrICAgIC8vICAgICAgICAgICAgIEdyYWJNb2RlQXN5bmMsIEdyYWJN b2RlQXN5bmMsCisrICAgIC8vICAgICAgICAgICAgIE5vbmUsCisrICAgIC8vICAgICAgICAgICAg IE5vbmUsCisrICAgIC8vICAgICAgICAgICAgIEN1cnJlbnRUaW1lKTsKKysgICAgLy9YVW5ncmFi UG9pbnRlcihkaXNwbGF5LCBDdXJyZW50VGltZSk7CisgfQorIAorIAorQEAgLTI0MjksNjMgKzI0 NDEsNDEgQEAgdm9pZCBGbHV4Ym94V2luZG93OjpidXR0b25QcmVzc0V2ZW50KFhCdXR0b25FdmVu dCAmYmUpIHsKKyAgICAgbV9sYXN0X3ByZXNzZWRfYnV0dG9uID0gYmUuYnV0dG9uOworIAorICAg ICBGYlRrOjpNZW51OjpoaWRlU2hvd25NZW51KCk7CistCisrLy9GSVggQUxMT1cKKyAgICAgS2V5 cyAqayA9IEZsdXhib3g6Omluc3RhbmNlKCktPmtleXMoKTsKKyAgICAgaW50IGNvbnRleHQgPSAw OworICAgICBjb250ZXh0ID0gZnJhbWUoKS5nZXRDb250ZXh0KGJlLnN1YndpbmRvdyA/IGJlLnN1 YndpbmRvdyA6IGJlLndpbmRvdywgYmUueF9yb290LCBiZS55X3Jvb3QpOworICAgICBpZiAoIWNv bnRleHQgJiYgYmUuc3Vid2luZG93KQorICAgICAgICAgY29udGV4dCA9IGZyYW1lKCkuZ2V0Q29u dGV4dChiZS53aW5kb3cpOworIAorLSAgICBpZiAoay0+ZG9BY3Rpb24oYmUudHlwZSwgYmUuc3Rh dGUsIGJlLmJ1dHRvbiwgY29udGV4dCwgJndpbkNsaWVudCgpLCBiZS50aW1lKSkgeworLSAgICAg ICAgWEFsbG93RXZlbnRzKGRpc3BsYXksIFN5bmNQb2ludGVyLCBDdXJyZW50VGltZSk7CistICAg ICAgICByZXR1cm47CistICAgIH0KKy0KKy0gICAgV2luQ2xpZW50ICpjbGllbnQgPSAwOworLSAg ICBpZiAoIXNjcmVlbigpLmZvY3VzQ29udHJvbCgpLmlzTW91c2VUYWJGb2N1cygpKSB7CistICAg ICAgICAvLyBkZXRlcm1pbmUgaWYgd2UncmUgaW4gYSBsYWJlbCBidXR0b24gKHRhYikKKy0gICAg ICAgIGNsaWVudCA9IHdpbkNsaWVudE9mTGFiZWxCdXR0b25XaW5kb3coYmUud2luZG93KTsKKy0g ICAgfQorLQorLQorLSAgICAvLyAtIHJlZmVlZCB0aGUgZXZlbnQgaW50byB0aGUgcXVldWUgc28g dGhlIGFwcCBvciB0aXRsZWJhciBzdWJ3aW5kb3cgZ2V0cyBpdAorLSAgICBpZiAoYmUuc3Vid2lu ZG93KQorLSAgICAgICAgWEFsbG93RXZlbnRzKGRpc3BsYXksIFJlcGxheVBvaW50ZXIsIEN1cnJl bnRUaW1lKTsKKy0gICAgZWxzZQorLSAgICAgICAgWEFsbG93RXZlbnRzKGRpc3BsYXksIFN5bmNQ b2ludGVyLCBDdXJyZW50VGltZSk7CistCistICAgIC8vIGlmIG5vdGhpbmcgd2FzIGJvdW5kIHZp YSBrZXlzLWZpbGUgdGhlbgorLSAgICAvLyAtIHJhaXNlKCkgaWYgY2xpY2tSYWlzZSBpcyBlbmFi bGVkCistICAgIC8vIC0gaGlkZSBvcGVuIG1lbnVlcworLSAgICAvLyAtIGZvY3VzIG9uIGNsaWNr Rm9jdXMKKy0gICAgaWYgKGZyYW1lKCkud2luZG93KCkud2luZG93KCkgPT0gYmUud2luZG93KSB7 CistICAgICAgICBpZiAoc2NyZWVuKCkuY2xpY2tSYWlzZXMoKSkKKy0gICAgICAgICAgICByYWlz ZSgpOworLQorLSAgICAgICAgbV9idXR0b25fZ3JhYl94ID0gYmUueF9yb290IC0gZnJhbWUoKS54 KCkgLSBmcmFtZSgpLndpbmRvdygpLmJvcmRlcldpZHRoKCk7CistICAgICAgICBtX2J1dHRvbl9n cmFiX3kgPSBiZS55X3Jvb3QgLSBmcmFtZSgpLnkoKSAtIGZyYW1lKCkud2luZG93KCkuYm9yZGVy V2lkdGgoKTsKKy0gICAgfQorLQorLSAgICBpZiAoIW1fZm9jdXNlZCAmJiBhY2NlcHRzRm9jdXMo KSAmJiBtX2NsaWNrX2ZvY3VzKQorLSAgICAgICAgZm9jdXMoKTsKKy0KKy0gICAgaWYgKCFzY3Jl ZW4oKS5mb2N1c0NvbnRyb2woKS5pc01vdXNlVGFiRm9jdXMoKSAmJgorLSAgICAgICAgY2xpZW50 ICYmIGNsaWVudCAhPSBtX2NsaWVudCAmJgorLSAgICAgICAgIXNjcmVlbigpLmZvY3VzQ29udHJv bCgpLmlzSWdub3JlZChiZS54X3Jvb3QsIGJlLnlfcm9vdCkgKSB7CistICAgICAgICBzZXRDdXJy ZW50Q2xpZW50KCpjbGllbnQsIGlzRm9jdXNlZCgpKTsKKy0gICAgfQorLQorLQorLQorK3N0ZDo6 Y291dCA8PCAiYnV0dG9uIHdpbmRvdzogIiA8PCBiZS53aW5kb3cgPDwgIlxuYnV0dG9uIHN1Yndp bmRvdzogIiA8PCBiZS5zdWJ3aW5kb3cgPDwgIlxuIjsKKytrLT5kb0FjdGlvbihiZS50eXBlLCBi ZS5zdGF0ZSwgYmUuYnV0dG9uLCBjb250ZXh0LCAmd2luQ2xpZW50KCksIEN1cnJlbnRUaW1lKTsg Ly8gdy9vIHRoaXMsIG5vIG1vdXNlIGNtZHMKKytYQWxsb3dFdmVudHMoZGlzcGxheSwgUmVwbGF5 UG9pbnRlciwgQ3VycmVudFRpbWUpOyAvLyB3L28gdGhpcywgbm8gbW91c2UKKysvLyB1bHRpbWF0 ZWx5IG5vbmUgb2YgdGhlIGJlbG93IG1hdHRlcnMKKysgICAgLy8gaW5maW5pdGUgbG9vcAorKyAg ICAvL2lmIChiZS5zdWJ3aW5kb3cpIHsKKysgICAgLy8gIC8vWEV2ZW50IG9tZmcgPSAoWEV2ZW50 ICopJmJlOworKyAgICAvLyAgLy9iZS53aW5kb3cgPSBiZS5zdWJ3aW5kb3c7CisrICAgIC8vICAv L2JlLnN1YndpbmRvdyA9IDA7CisrICAgIC8vICBpbnQgaHVoID0gWFNlbmRFdmVudChkaXNwbGF5 LCBiZS53aW5kb3csIEZhbHNlLCBCdXR0b25QcmVzc01hc2ssIChYRXZlbnQqKSZiZSk7CisrICAg IC8vICBzdGQ6OmNvdXQgPDwgInhzZW5kZXZlbnQ6ICIgPDwgaHVoIDw8ICJcbiI7CisrICAgIC8v fQorKyAgICAvL1hTeW5jKGRpc3BsYXksIDApOworKyAgICAvL2ludCB3dGYgPSBYQWxsb3dFdmVu dHMoZGlzcGxheSwgUmVwbGF5UG9pbnRlciwgQ3VycmVudFRpbWUpOyAvLyB0aW1lIG1lYW5zIHNx dWF0IC0gd29ya3MgYnV0IG5vdCBmb3IgbWVudXMKKysgICAgLy9zdGQ6OmNvdXQgPDwgInhhbGxv d2V2ZW50czogIiA8PCB3dGYgPDwgIlxuIjsKKysgICAgLy9YU3luYyhkaXNwbGF5LCAwKTsKKysg ICAgLy9YQWxsb3dFdmVudHMoZGlzcGxheSwgUmVwbGF5UG9pbnRlciwgYmUudGltZSk7IC8vIHRp bWUgbWVhbnMgc3F1YXQgLSB3b3JrcyBidXQgbm90IGZvciBtZW51cworKyAgICAvL1hBbGxvd0V2 ZW50cyhkaXNwbGF5LCBTeW5jUG9pbnRlciwgQ3VycmVudFRpbWUpOyAvLyBzeW5jIHdpbGwgbm90 IGRvdWJsZWNsaWNrIG9yIGFjdCBwcm9wZXIKKysgICAgLy9YQWxsb3dFdmVudHMoZGlzcGxheSwg QXN5bmNQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIF5eIHNhbWUKKysgICAgLy9pZiAoYmUuc3Vi d2luZG93KQorKyAgICAvLyAgWEZsdXNoKGRpc3BsYXkpOworKyAgICAvLyAgLy9YU3luYyhkaXNw bGF5LCBUcnVlKTsKKyB9CisgCisgY29uc3QgdW5zaWduZWQgaW50IERFQURaT05FID0gNDsKKyAK KyB2b2lkIEZsdXhib3hXaW5kb3c6OmJ1dHRvblJlbGVhc2VFdmVudChYQnV0dG9uRXZlbnQgJnJl KSB7CisgCistICAgIGlmIChtX2xhc3RfcHJlc3NlZF9idXR0b24gPT0gc3RhdGljX2Nhc3Q8aW50 PihyZS5idXR0b24pKSB7CistICAgICAgICBtX2xhc3RfcHJlc3NlZF9idXR0b24gPSAwOworLSAg ICB9CisgCisgICAgIGlmIChpc01vdmluZygpKQorICAgICAgICAgc3RvcE1vdmluZygpOworQEAg LTI1MDIsNiArMjQ5MiwxMyBAQCB2b2lkIEZsdXhib3hXaW5kb3c6OmJ1dHRvblJlbGVhc2VFdmVu dChYQnV0dG9uRXZlbnQgJnJlKSB7CisgCisgICAgICAgICBGbHV4Ym94OjppbnN0YW5jZSgpLT5r ZXlzKCktPmRvQWN0aW9uKHJlLnR5cGUsIHJlLnN0YXRlLCByZS5idXR0b24sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsICZ3aW5DbGllbnQo KSwgcmUudGltZSk7CisrICAgICAgLy8gc3luY3MgZG9udCBtYWtlIGEgZGlmZmVyZW5jZT8KKysg ICAgICAvL1hTeW5jKGRpc3BsYXksIDApOworKyAgICAgIFhBbGxvd0V2ZW50cyhkaXNwbGF5LCBS ZXBsYXlQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIHRpbWUgbWVhbnMgc3F1YXQgLSB3b3JrcyBi dXQgbm90IGZvciBtZW51cworKyAgICAgIC8vWFN5bmMoZGlzcGxheSwgMCk7CisrICAgIH0KKysg ICAgaWYgKG1fbGFzdF9wcmVzc2VkX2J1dHRvbiA9PSBzdGF0aWNfY2FzdDxpbnQ+KHJlLmJ1dHRv bikpIHsKKysgICAgICAgIG1fbGFzdF9wcmVzc2VkX2J1dHRvbiA9IDA7CisgICAgIH0KKyB9Cisg CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy91bmNsdXR0ZXJfZml4X3dvcmtz cGFjZWNtZC5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3VuY2x1dHRlcl9maXhfd29y a3NwYWNlY21kLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MzZjNTcyY2VhNGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMv dW5jbHV0dGVyX2ZpeF93b3Jrc3BhY2VjbWQucGF0Y2gKQEAgLTAsMCArMSw2NSBAQAorZGlmZiAt LWdpdCBhL3NyYy9Xb3Jrc3BhY2VDbWQuY2MgYi9zcmMvV29ya3NwYWNlQ21kLmNjCitpbmRleCBj MmU0OTQ4NS4uOWI0MDU4YzggMTAwNjQ0CistLS0gYS9zcmMvV29ya3NwYWNlQ21kLmNjCisrKysg Yi9zcmMvV29ya3NwYWNlQ21kLmNjCitAQCAtNTIxLDIyICs1MjEsMjQgQEAgdm9pZCBBcnJhbmdl V2luZG93c0NtZDo6ZXhlY3V0ZSgpIHsKKyAgICAgY29uc3QgdW5zaWduZWQgaW50IGNhbF93aWR0 aCA9IG1heF93aWR0aC9jb2xzOyAvLyB3aWR0aCByYXRpbyAod2lkdGggb2YgZXZlcnkgd2luZG93 KQorICAgICBjb25zdCB1bnNpZ25lZCBpbnQgY2FsX2hlaWdodCA9IG1heF9oZWlnaHQvcm93czsg Ly8gaGVpZ2h0IHJhdGlvIChoZWlnaHQgb2YgZXZlcnkgd2luZG93KQorCisrICAgIGludCBjZWxs X2NlbnRlcl94ID0gMCwgY2VsbF9jZW50ZXJfeSA9IDAsIHdpbl9jZW50ZXJfeCA9IDAsIHdpbl9j ZW50ZXJfeSA9IDAsIHggPSAwLCB5ID0gMDsKKysgICAgdW5zaWduZWQgaW50IGNsb3Nlc3RfZGlz dCA9IH4wLCBkaXN0ID0gMCwgdyA9IDAsIGggPSAwOworICAgICAvLyBSZXNpemVzIGFuZCBzZXRz IHdpbmRvd3MgcG9zaXRpb25zIGluIGNvbHVtbnMgYW5kIHJvd3MuCisgICAgIGZvciAoaSA9IDA7 IGkgPCByb3dzOyArK2kpIHsKKyAgICAgICAgIHhfb2ZmcyA9IG9yaWdfeF9vZmZzOworICAgICAg ICAgZm9yIChqID0gMDsgaiA8IGNvbHMgJiYgIW5vcm1hbF93aW5kb3dzLmVtcHR5KCk7ICsraikg eworCisKKy0gICAgICAgICAgICBpbnQgY2VsbF9jZW50ZXJfeCA9IHhfb2ZmcyArICh4X29mZnMg KyBjYWxfd2lkdGgpIC8gMjsKKy0gICAgICAgICAgICBpbnQgY2VsbF9jZW50ZXJfeSA9IHlfb2Zm cyArICh5X29mZnMgKyBjYWxfaGVpZ2h0KSAvIDI7CistICAgICAgICAgICAgdW5zaWduZWQgaW50 IGNsb3Nlc3RfZGlzdCA9IH4wOworKyAgICAgICAgICAgIGNlbGxfY2VudGVyX3ggPSB4X29mZnMg KyAoeF9vZmZzICsgY2FsX3dpZHRoKSAvIDI7CisrICAgICAgICAgICAgY2VsbF9jZW50ZXJfeSA9 IHlfb2ZmcyArICh5X29mZnMgKyBjYWxfaGVpZ2h0KSAvIDI7CisrICAgICAgICAgICAgaW50IGNs b3Nlc3RfZGlzdCA9IH4wOworCisgICAgICAgICAgICAgV29ya3NwYWNlOjpXaW5kb3dzOjppdGVy YXRvciBjbG9zZXN0ID0gbm9ybWFsX3dpbmRvd3MuZW5kKCk7CisgICAgICAgICAgICAgZm9yICh3 aW4gPSBub3JtYWxfd2luZG93cy5iZWdpbigpOyB3aW4gIT0gbm9ybWFsX3dpbmRvd3MuZW5kKCk7 ICsrd2luKSB7CisKKy0gICAgICAgICAgICAgICAgaW50IHdpbl9jZW50ZXJfeCA9ICgqd2luKS0+ ZnJhbWUoKS54KCkgKyAoKCp3aW4pLT5mcmFtZSgpLngoKSArICgqd2luKS0+ZnJhbWUoKS53aWR0 aCgpIC8gMik7CistICAgICAgICAgICAgICAgIGludCB3aW5fY2VudGVyX3kgPSAoKndpbiktPmZy YW1lKCkueSgpICsgKCgqd2luKS0+ZnJhbWUoKS55KCkgKyAoKndpbiktPmZyYW1lKCkuaGVpZ2h0 KCkgLyAyKTsKKy0gICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRpc3QgPSAod2luX2NlbnRl cl94IC0gY2VsbF9jZW50ZXJfeCkgKiAod2luX2NlbnRlcl94IC0gY2VsbF9jZW50ZXJfeCkgKwor KyAgICAgICAgICAgICAgICB3aW5fY2VudGVyX3ggPSAoKndpbiktPmZyYW1lKCkueCgpICsgKCgq d2luKS0+ZnJhbWUoKS54KCkgKyAoKndpbiktPmZyYW1lKCkud2lkdGgoKSAvIDIpOworKyAgICAg ICAgICAgICAgICB3aW5fY2VudGVyX3kgPSAoKndpbiktPmZyYW1lKCkueSgpICsgKCgqd2luKS0+ ZnJhbWUoKS55KCkgKyAoKndpbiktPmZyYW1lKCkuaGVpZ2h0KCkgLyAyKTsKKysgICAgICAgICAg ICAgICAgZGlzdCA9ICh3aW5fY2VudGVyX3ggLSBjZWxsX2NlbnRlcl94KSAqICh3aW5fY2VudGVy X3ggLSBjZWxsX2NlbnRlcl94KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHdpbl9jZW50ZXJfeSAtIGNlbGxfY2VudGVyX3kpICogKHdpbl9jZW50ZXJfeSAtIGNlbGxf Y2VudGVyX3kpOworCisgICAgICAgICAgICAgICAgIGlmIChkaXN0IDwgY2xvc2VzdF9kaXN0KSB7 CitAQCAtNTQ1LDEwICs1NDcsMTAgQEAgdm9pZCBBcnJhbmdlV2luZG93c0NtZDo6ZXhlY3V0ZSgp IHsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKworLSAgICAgICAgICAgIGlu dCB4ID0geF9vZmZzICsgKCpjbG9zZXN0KS0+eE9mZnNldCgpOworLSAgICAgICAgICAgIGludCB5 ID0geV9vZmZzICsgKCpjbG9zZXN0KS0+eU9mZnNldCgpOworLSAgICAgICAgICAgIHVuc2lnbmVk IGludCB3ID0gY2FsX3dpZHRoIC0gKCpjbG9zZXN0KS0+d2lkdGhPZmZzZXQoKTsKKy0gICAgICAg ICAgICB1bnNpZ25lZCBpbnQgaCA9IGNhbF9oZWlnaHQgLSAoKmNsb3Nlc3QpLT5oZWlnaHRPZmZz ZXQoKTsKKysgICAgICAgICAgICB4ID0geF9vZmZzICsgKCpjbG9zZXN0KS0+eE9mZnNldCgpOwor KyAgICAgICAgICAgIHkgPSB5X29mZnMgKyAoKmNsb3Nlc3QpLT55T2Zmc2V0KCk7CisrICAgICAg ICAgICAgdyA9IGNhbF93aWR0aCAtICgqY2xvc2VzdCktPndpZHRoT2Zmc2V0KCk7CisrICAgICAg ICAgICAgaCA9IGNhbF9oZWlnaHQgLSAoKmNsb3Nlc3QpLT5oZWlnaHRPZmZzZXQoKTsKKworICAg ICAgICAgICAgIC8vIHRoZSBsYXN0IHdpbmRvdyBnZXRzIGV2ZXJ5dGhpbmcgdGhhdCBpcyBsZWZ0 LgorICAgICAgICAgICAgIGlmIChub3JtYWxfd2luZG93cy5zaXplKCkgPT0gMSkgeworQEAgLTYy MCwxMiArNjIyLDkgQEAgdm9pZCBVbmNsdXR0ZXJDbWQ6OmV4ZWN1dGUoKSB7CisgICAgICAgICBy ZXR1cm47CisKKyAgICAgLy8gcGxhY2UKKy0gICAgTWluT3ZlcmxhcFBsYWNlbWVudCBtb3BwOwor ICAgICBpbnQgeCwgeTsKKy0gICAgZm9yICh3aW4gPSBwbGFjZWRfd2luZG93cy5iZWdpbigpOyB3 aW4gIT0gcGxhY2VkX3dpbmRvd3MuZW5kKCk7ICsrd2luKSB7CistICAgICAgICBtb3BwLnBsYWNl V2luZG93KCoqd2luLCBoZWFkLCB4LCB5KTsKKy0gICAgICAgICgqd2luKS0+bW92ZSh4LCB5KTsK Ky0gICAgfQorKyAgICBmb3IgKHdpbiA9IHBsYWNlZF93aW5kb3dzLmJlZ2luKCk7IHdpbiAhPSBw bGFjZWRfd2luZG93cy5lbmQoKTsgKyt3aW4pCisrICAgICAgICAoKndpbiktPnBsYWNlV2luZG93 KCgqd2luKS0+Z2V0T25IZWFkKCkpOworIH0KKworIFJFR0lTVEVSX0NPTU1BTkQoc2hvd2Rlc2t0 b3AsIFNob3dEZXNrdG9wQ21kLCB2b2lkKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9w YXRjaGVzL3pvcl9sb29wcy5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29w cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjk1ZDk5MmY5 MDcxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29w cy5wYXRjaApAQCAtMCwwICsxLDg3IEBACitkaWZmIC0tZ2l0IGEvc3JjL0ZiVGsvU1RMVXRpbC5o aCBiL3NyYy9GYlRrL1NUTFV0aWwuaGgKK2luZGV4IGFiYzU0NzI5Li45YzljMjdmOSAxMDA2NDQK Ky0tLSBhL3NyYy9GYlRrL1NUTFV0aWwuaGgKKysrKyBiL3NyYy9GYlRrL1NUTFV0aWwuaGgKK0BA IC00OCw0NiArNDgsNjMgQEAgc3RydWN0IElmVGhlbkVsc2U8ZmFsc2UsIFRhLCBUYj4geworIC8v LyBjYWxscyBkZWxldGUgb24gZWFjaCBpdGVtIGluIHRoZSBjb250YWluZXIgYW5kIHRoZW4gY2xl YXJzIHRoZSBjb250YWluZXIKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgQT4KKyB2b2lkIGRlc3Ryb3lB bmRDbGVhcihBICZhKSB7CistICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6aXRlcmF0b3IgaXRlcmF0 b3I7CistICAgIGl0ZXJhdG9yIGl0ID0gYS5iZWdpbigpOworLSAgICBpdGVyYXRvciBpdF9lbmQg PSBhLmVuZCgpOworLSAgICBmb3IgKDsgaXQgIT0gaXRfZW5kOyArK2l0KQorLSAgICAgICAgZGVs ZXRlICgqaXQpOworKyAgICAvL3R5cGVkZWYgdHlwZW5hbWUgQTo6aXRlcmF0b3IgaXRlcmF0b3I7 CisrICAgIC8vaXRlcmF0b3IgaXQgPSBhLmJlZ2luKCk7CisrICAgIC8vaXRlcmF0b3IgaXRfZW5k ID0gYS5lbmQoKTsKKysgICAgLy9mb3IgKDsgaXQgIT0gaXRfZW5kOyArK2l0KQorKyAgICAvLyAg ICBkZWxldGUgKCppdCk7CisgCisrICAgIC8vYS5jbGVhcigpOworKyAgICB0eXBlZGVmIHR5cGVu YW1lIEE6Oml0ZXJhdG9yIGl0ZXJhdG9yOworKyAgICBmb3IgKGF1dG8gaXQgOiBhKQorKyAgICAg ICAgZGVsZXRlIGl0OworICAgICBhLmNsZWFyKCk7CisgfQorIAorIC8vLyBjYWxscyBkZWxldGUg b24gZWFjaCBpdGVtIHZhbHVlIGluIHRoZSBtYXAgYW5kIHRoZW4gY2xlYXJzIHRoZSBtYXAKKyB0 ZW1wbGF0ZSA8dHlwZW5hbWUgQT4KKyB2b2lkIGRlc3Ryb3lBbmRDbGVhclNlY29uZChBICZhKSB7 CisrICAgIC8vdHlwZWRlZiB0eXBlbmFtZSBBOjppdGVyYXRvciBpdGVyYXRvcjsKKysgICAgLy9p dGVyYXRvciBpdCA9IGEuYmVnaW4oKTsKKysgICAgLy9pdGVyYXRvciBpdF9lbmQgPSBhLmVuZCgp OworKyAgICAvL2ZvciAoOyBpdCAhPSBpdF9lbmQ7ICsraXQpCisrICAgIC8vICAgIGRlbGV0ZSBp dC0+c2Vjb25kOworKyAgICAvL2EuY2xlYXIoKTsKKyAgICAgdHlwZWRlZiB0eXBlbmFtZSBBOjpp dGVyYXRvciBpdGVyYXRvcjsKKy0gICAgaXRlcmF0b3IgaXQgPSBhLmJlZ2luKCk7CistICAgIGl0 ZXJhdG9yIGl0X2VuZCA9IGEuZW5kKCk7CistICAgIGZvciAoOyBpdCAhPSBpdF9lbmQ7ICsraXQp CistICAgICAgICBkZWxldGUgaXQtPnNlY29uZDsKKysgICAgZm9yIChhdXRvIGl0IDogYSkKKysg ICAgICAgIGRlbGV0ZSBpdC5zZWNvbmQ7CisgICAgIGEuY2xlYXIoKTsKKyB9CisgCisgCisgdGVt cGxhdGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIEY+CisgRiBmb3JBbGwoQyYgYywgRiBmKSB7Cisr ICAgIC8vdHlwZWRlZiB0eXBlbmFtZSBDOjppdGVyYXRvciBpdGVyYXRvcjsKKysgICAgLy9pdGVy YXRvciBpID0gYy5iZWdpbigpOworKyAgICAvL2l0ZXJhdG9yIGUgPSBjLmVuZCgpOworKyAgICAv L2ZvciAoOyBpICE9IGU7IGkrKykgeworKyAgICAvLyAgICBmKCppKTsKKysgICAgLy99CisgICAg IHR5cGVkZWYgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7CistICAgIGl0ZXJhdG9yIGkg PSBjLmJlZ2luKCk7CistICAgIGl0ZXJhdG9yIGUgPSBjLmVuZCgpOworLSAgICBmb3IgKDsgaSAh PSBlOyBpKyspIHsKKy0gICAgICAgIGYoKmkpOworLSAgICB9CisrICAgIGZvciAoYXV0byBpIDog YykKKysgICAgICAgIGYoaSk7CisgICAgIHJldHVybiBmOworIH0KKyAKKyB0ZW1wbGF0ZSA8dHlw ZW5hbWUgQywgdHlwZW5hbWUgSSwgdHlwZW5hbWUgRj4KKyBGIGZvckFsbElmKEMmIGMsIEkgaSwg RiBmKSB7CisrICAgIC8vdHlwZWRlZiB0eXBlbmFtZSBDOjppdGVyYXRvciBpdGVyYXRvcjsKKysg ICAgLy9pdGVyYXRvciBpdCA9IGMuYmVnaW4oKTsKKysgICAgLy9pdGVyYXRvciBlbmQgPSBjLmVu ZCgpOworKyAgICAvL2ZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsKKysgICAgLy8gICAgaWYgKGko Kml0KSkKKysgICAgLy8gICAgICAgIGYoKml0KTsKKysgICAgLy99CisrICAgIC8vcmV0dXJuIGY7 CisgICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7CistICAgIGl0ZXJh dG9yIGl0ID0gYy5iZWdpbigpOworLSAgICBpdGVyYXRvciBlbmQgPSBjLmVuZCgpOworLSAgICBm b3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CistICAgICAgICBpZiAoaSgqaXQpKQorLSAgICAgICAg ICAgIGYoKml0KTsKKysgICAgZm9yIChhdXRvIGl0IDogYykgeworKyAgICAgICAgaWYgKGkoaXQp KQorKyAgICAgICAgICAgIGYoaXQpOworICAgICB9CisgICAgIHJldHVybiBmOworIH0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZmx1eGJveC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmx1eGJveC90ZW1wbGF0 ZQppbmRleCBlMTBiNDI2YzQ5MjQuLjZiMGU0Y2QyNjBjYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9m bHV4Ym94L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZmx1eGJveC90ZW1wbGF0ZQpAQCAtMSwyOSAr MSw1NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZmx1eGJveCcKIHBrZ25hbWU9Zmx1eGJveAot dmVyc2lvbj0xLjMuNwotcmV2aXNpb249NAordmVyc2lvbj0xLjMuOAorI25vc3RyaXA9bm9zdHJp cAorX2NvbW1pdD1lMmNiZDE3OWVjYjJlZjJkNzZlMGFkMWZkZTg0YjQ0MzI1MzA1Nzk5CityZXZp c2lvbj0wCit3cmtzcmM9Zmx1eGJveC0ke19jb21taXR9CiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtbmxzCitjb25maWd1cmVfYXJncz0iLS1kaXNh YmxlLW5scyAtLWRpc2FibGUteGluZXJhbWEgLS1kaXNhYmxlLXNoYXBlIC0tZGlzYWJsZS14cmVu ZGVyCisgLS1kaXNhYmxlLWZyaWJpZGkgLS1kaXNhYmxlLXNsaXQKICBhY19jdl9saWJfWDExX1hP cGVuRGlzcGxheT15ZXMgYWNfY3ZfbGliX1hmdF9YZnRGb250T3Blbj15ZXMKICBhY19jdl9saWJf WHJlbmRlcl9YUmVuZGVyQ3JlYXRlUGljdHVyZT15ZXMgYWNfY3ZfbGliX1hwbV9YcG1SZWFkRmls ZVRvUGl4bWFwPXllcwotIGFjX2N2X2xpYl9YaW5lcmFtYV9YaW5lcmFtYVF1ZXJ5U2NyZWVucz15 ZXMgYWNfY3ZfbGliX1hleHRfWFNoYXBlQ29tYmluZVNoYXBlPXllcworIGFjX2N2X2xpYl9YZXh0 X1hTaGFwZUNvbWJpbmVTaGFwZT1ubwogIGFjX2N2X2xpYl9YcmFuZHJfWFJSUXVlcnlFeHRlbnNp b249eWVzIGFjX2N2X2xpYl9mcmliaWRpX2ZyaWJpZGlfdmVyc2lvbl9pbmZvPXllcyIKLWhvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBsaWJ0b29sIGdldHRleHQgZ2V0dGV4dC1k ZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBsaWJ0b29sIGdldHRl eHQgZ2V0dGV4dC1kZXZlbCBjbGFuZyBsbHZtIgogbWFrZWRlcGVuZHM9ImxpYlNNLWRldmVsIGxp YlhyZW5kZXItZGV2ZWwgbGliWGZ0LWRldmVsIGxpYlhwbS1kZXZlbCBpbWxpYjItZGV2ZWwKLSBs aWJYZXh0LWRldmVsIGxpYlhpbmVyYW1hLWRldmVsIGxpYlhyYW5kci1kZXZlbCBmcmliaWRpLWRl dmVsIgorIGxpYlhleHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsIGZyaWJpZGktZGV2ZWwiCiBzaG9y dF9kZXNjPSJIaWdobHkgY29uZmlndXJhYmxlIGFuZCBsb3cgcmVzb3VyY2UgWDExIFdpbmRvdyBt YW5hZ2VyIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9Ik1JVCIKIGhvbWVwYWdlPSJodHRwOi8vd3d3LmZsdXhib3gub3JnIgotZGlzdGZpbGVz PSJodHRwczovL2dpdGh1Yi5jb20vZmx1eGJveC9mbHV4Ym94L2FyY2hpdmUvcmVmcy90YWdzL1Jl bGVhc2UtJHt2ZXJzaW9uLy8uL199LnRhci5neiIKLWNoZWNrc3VtPTk5MDQxNGFlMzQyYTM1YzU3 MDNlNTAyNWE4YmYwMTliMGI0ZGFkYTU1ZDU3MDcxYzUxZDNkNDk4YWJiNWNkMzYKK2Rpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL2ZsdXhib3gvZmx1eGJveC9hcmNoaXZlLyR7X2NvbW1pdH0u dGFyLmd6IgorY2hlY2tzdW09Njc0MGQ5Y2Q0YTNlNjMxZTAxMzBjYmNiYzkxY2NhYzZhZjYzMzVk YzEyMGY5YWRjNWViYmM4ZGM5ZDMyNTlhMAorCitub3BpZT15ZXMKK1gxMV9GTEFHUz0iLU9zIC1w aXBlIgorI0ZSSUJJRElfQ0ZMQUdTPSItT3MgLXBpcGUiCitYUkFORFJfQ0ZMQUdTPSItT3MgLXBp cGUiCitBTV9DUFBGTEFHUz0iLU9zIC1waXBlIgorQ0ZMQUdTPSItT3MgLXBpcGUiCitDWFhGTEFH Uz0iLU9zIC1waXBlIC1zdGQ9YysrMTEiCitDQz0iY2xhbmciCitDWFg9ImNsYW5nKysiCitIT1NU X0NDPWNsYW5nCitIT1NUX0NYWD1jbGFuZysrCiAKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgogCSotbXVzbCkgY29uZmlndXJlX2FyZ3M9IiR7Y29uZmlndXJlX2FyZ3MvZW5hYmxlLW5s cy9kaXNhYmxlLW5sc30iIDs7CiBlc2FjCiAKIHByZV9jb25maWd1cmUoKSB7Ci0JLi9hdXRvZ2Vu LnNoCisgIGV4cG9ydCBYMTFfRkxBR1M9Ii1PcyAtcGlwZSIKKyAgIyBleHBvcnQgRlJJQklESV9D RkxBR1M9Ii1PcyAtcGlwZSIKKyAgZXhwb3J0IFhSQU5EUl9DRkxBR1M9Ii1PcyAtcGlwZSIKKyAg ZXhwb3J0IEFNX0NQUEZMQUdTPSItT3MgLXBpcGUiCisgIGV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlw ZSIKKyAgZXhwb3J0IENYWEZMQUdTPSItT3MgLXBpcGUgLXN0ZD1jKysxMSIKKyAgZXhwb3J0IEND PSJjbGFuZyIKKyAgZXhwb3J0IENYWD0iY2xhbmcrKyIKKyAgZXhwb3J0IEhPU1RfQ0M9Y2xhbmcK KyAgZXhwb3J0IEhPU1RfQ1hYPWNsYW5nKysKKyAgZXhwb3J0IFBSRUZJWD0vdXNyCisgIC4vYXV0 b2dlbi5zaAogfQogCiBwb3N0X2luc3RhbGwoKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmF2 Y29kZWM0IGIvc3JjcGtncy9saWJhdmNvZGVjNApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAw MDAwMDAwMDAwMDAuLjg4N2YzNTRlN2M2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGli YXZjb2RlYzQKQEAgLTAsMCArMSBAQAorZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliYXZkZXZpY2U0IGIvc3JjcGtncy9saWJhdmRldmlj ZTQKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi44ODdmMzU0ZTdjNmIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmF2ZGV2aWNlNApAQCAtMCwwICsxIEBACitm Zm1wZWc0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aWJhdmZpbHRlcjQgYi9zcmNwa2dzL2xpYmF2ZmlsdGVyNApuZXcgZmlsZSBtb2RlIDEyMDAwMApp bmRleCAwMDAwMDAwMDAwMDAuLjg4N2YzNTRlN2M2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGliYXZmaWx0ZXI0CkBAIC0wLDAgKzEgQEAKK2ZmbXBlZzQKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmF2Zm9ybWF0NCBiL3NyY3BrZ3MvbGli YXZmb3JtYXQ0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uODg3ZjM1 NGU3YzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJhdmZvcm1hdDQKQEAgLTAsMCAr MSBAQAorZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGliYXZyZXNhbXBsZSBiL3NyY3BrZ3MvbGliYXZyZXNhbXBsZQppbmRleCBhOWYxZWVh MDkyZDUuLjg4N2YzNTRlN2M2YiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJhdnJlc2FtcGxlCisr KyBiL3NyY3BrZ3MvbGliYXZyZXNhbXBsZQpAQCAtMSArMSBAQAotZmZtcGVnClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGliYXZyZXNhbXBsZTQgYi9zcmNwa2dzL2xpYmF2cmVzYW1wbGU0 Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uODg3ZjM1NGU3YzZiCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJhdnJlc2FtcGxlNApAQCAtMCwwICsxIEBACitm Zm1wZWc0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aWJhdnV0aWw0IGIvc3JjcGtncy9saWJhdnV0aWw0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4 IDAwMDAwMDAwMDAwMC4uODg3ZjM1NGU3YzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aWJhdnV0aWw0CkBAIC0wLDAgKzEgQEAKK2ZmbXBlZzQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnBvc3Rwcm9jNCBiL3NyY3BrZ3MvbGlicG9zdHBy b2M0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uODg3ZjM1NGU3YzZi Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJwb3N0cHJvYzQKQEAgLTAsMCArMSBAQAor ZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGlic3dyZXNhbXBsZTQgYi9zcmNwa2dzL2xpYnN3cmVzYW1wbGU0Cm5ldyBmaWxlIG1vZGUgMTIw MDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uODg3ZjM1NGU3YzZiCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9saWJzd3Jlc2FtcGxlNApAQCAtMCwwICsxIEBACitmZm1wZWc0ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJzd3NjYWxlNCBiL3NyY3Br Z3MvbGlic3dzY2FsZTQKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi44 ODdmMzU0ZTdjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnN3c2NhbGU0CkBAIC0w LDAgKzEgQEAKK2ZmbXBlZzQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL21lc2EvdGVtcGxhdGUgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKaW5kZXggZDlm ZjBiMmZmMjNkLi5iZGViMjJiMTNhYWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVzYS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTMgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ21lc2EnCiBwa2duYW1lPW1lc2EKLXZlcnNpb249MjIuMy41Cit2ZXJzaW9u PTIzLjAuMAogcmV2aXNpb249MQorI3dya3NyYz0iTWVzYS1kZzItMjAyMzAxMjUiCiBidWlsZF9z dHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZ2x2bmQ9dHJ1ZSAtRHNoYXJlZC1nbGFwaT1l bmFibGVkIC1EZ2JtPWVuYWJsZWQgLURlZ2w9ZW5hYmxlZAogIC1Eb3NtZXNhPXRydWUgLURnbGVz MT1lbmFibGVkIC1EZ2xlczI9ZW5hYmxlZCAtRGdseD1kcmkgLURkcmkzPWVuYWJsZWQKICAtRGxt c2Vuc29ycz1lbmFibGVkIC1EcGxhdGZvcm1zPXgxMSQodm9wdF9pZiB3YXlsYW5kICx3YXlsYW5k KQotIC1EbGx2bT1lbmFibGVkIC1EYl9sdG89ZmFsc2UgLURjcHBfc3RkPWdudSsrMTQiCisgLURs bHZtPWVuYWJsZWQgLURiX2x0bz1mYWxzZSAtRGNwcF9zdGQ9Z251KysxNyIKIGhvc3RtYWtlZGVw ZW5kcz0iZ2V0dGV4dCBmbGV4IGxsdm0gcGtnLWNvbmZpZyBweXRob24zLU1ha28gZ2xzbGFuZwog ICQodm9wdF9pZiB3YXlsYW5kICd3YXlsYW5kLXByb3RvY29scyB3YXlsYW5kLWRldmVsJykiCiBt YWtlZGVwZW5kcz0iZWxmdXRpbHMtZGV2ZWwgZXhwYXQtZGV2ZWwgbGliWGRhbWFnZS1kZXZlbApA QCAtMjIsMTEgKzIzLDIzIEBAIGxpY2Vuc2U9Ik1JVCwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93d3cubWVzYTNkLm9yZy8iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZG9jcy5t ZXNhM2Qub3JnL3JlbG5vdGVzLmh0bWwiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vbWVzYS5mcmVlZGVz a3RvcC5vcmcvYXJjaGl2ZS9tZXNhLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09M2VlZDJl Y2FlMmJjNjc0NDk0NTY2ZmFhYjlmY2M5YmViMjFjZDgwNGM3YmEyYjU5YTE2OTRmM2Q3MjM2ZTZh OQorY2hlY2tzdW09MDFmM2NmZjM3NjNmMDllMGFkYWJjYjgwMTFlNGFlYmM2YWQ0OGY2YTRkZDRi YWU5MDRmZTkxODcwN2QyNTNlNAorIyBpbnRlbCBkZzIgamFuIDI1CisjY2hlY2tzdW09NGVjOGVj NjVkYmRiMWVlOTQ0NGRiYTcyOTcwODkwMTI4YTE5NTQzYTU4Y2YwNTkzMWJkNmY1NGYxMjRlMTE3 ZgorI2NoZWNrc3VtPTM3YTFkZGFmMDNmNDE5MTllZTNjODljOTdjZmY0MWU4N2RlOTZlMDBlOWQz MjQ3OTU5Y2M4Mjc5ZDgyOTQ1OTMKKyNkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbnRl bC1ncHUvTWVzYS9hcmNoaXZlL3JlZnMvdGFncy9kZzItMjAyMzAxMjUudGFyLmd6IgorI2NoZWNr c3VtPTIyMjAzMTg2Nzc5MjIyZWM1MjQ0ZWNiNzRmYmFlNzA2ZDM1NTc1ODhjODIwODliMThjN2Jm NzdhNTQ3OTlhNTkKIAogYnVpbGRfb3B0aW9ucz0id2F5bGFuZCIKIGJ1aWxkX29wdGlvbnNfZGVm YXVsdD0id2F5bGFuZCIKIAorZXhwb3J0IENDPWNsYW5nCitleHBvcnQgQ1hYPWNsYW5nKysKKwor aWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwljb25maWd1cmVfYXJn cys9IiAtRHVzZS1lbGYtdGxzPWZhbHNlIgorZmkKKwogIyBvbmx5IHVzZSBsbHZtcGlwZSBvbiB0 YXJnZXRzIHdoZXJlIGl0J3Mgc3VwcG9ydGVkIGFuZCByZWxpYWJsZQogIyBlc3BlY2lhbGx5IG9u IGJpZyBlbmRpYW4gaXQncyBhbGwga2luZHMgb2YgYnJva2VuLCBhbmQgZS5nLiBvbgogIyAzMi1i aXQgcG93ZXJwYyBpdCBkb2VzIG5vdCB3b3JrIGF0IGFsbCwgc28gZmFsbCBiYWNrIHRvIHNvZnRw aXBlCkBAIC05MSw3ICsxMDQsNyBAQCBmaQogaWYgWyAiJF9oYXZlX2ludGVsIiBdOyB0aGVuCiAJ X2hhdmVfdnVsa2FuPXllcwogCV9nYWxsaXVtX2RyaXZlcnMrPSIsY3JvY3VzLGlyaXMsaTkxNSIK LQlfdnVsa2FuX2RyaXZlcnMrPSIsaW50ZWwsaW50ZWxfaGFzdmsiCisJX3Z1bGthbl9kcml2ZXJz Kz0iLGludGVsIgogCXN1YnBhY2thZ2VzKz0iIG1lc2EtdnVsa2FuLWludGVsIgogCSMgdHJhbnNp dGlvbmFsIGR1bW15IHBhY2thZ2VzCiAJc3VicGFja2FnZXMrPSIgbWVzYS1pbnRlbC1kcmkiCkBA IC0xNDAsMTAgKzE1MywxMCBAQCBmaQogCiAjIGVuYWJsZWQgY3VycmVudGx5IGJ5IGFtZCBkcml2 ZXJzCiBpZiBbICIkX2hhdmVfb3BlbmNsIiBdOyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRzKz0iIGNs YW5nIHJ1c3QgcnVzdC1iaW5kZ2VuIgotCW1ha2VkZXBlbmRzKz0iIGNsYW5nIGxpYmNsYyBydXN0 IFNQSVJWLUxMVk0tVHJhbnNsYXRvci1kZXZlbCBTUElSVi1Ub29scy1kZXZlbCIKKwlob3N0bWFr ZWRlcGVuZHMrPSIgY2xhbmciCisJbWFrZWRlcGVuZHMrPSIgY2xhbmcgbGliY2xjIgogCXN1YnBh Y2thZ2VzKz0iIG1lc2Etb3BlbmNsIgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EZ2FsbGl1bS1vcGVu Y2w9aWNkIC1EZ2FsbGl1bS1ydXN0aWNsPXRydWUgLURydXN0X3N0ZD0yMDIxIgorCWNvbmZpZ3Vy ZV9hcmdzKz0iIC1EZ2FsbGl1bS1vcGVuY2w9aWNkIgogZmkKIAogaWYgWyAiJF9oYXZlX2h3ZGVj IiBdOyB0aGVuCkBAIC0xODcsNyArMjAwLDYgQEAgZXNhYwogcG9zdF9jb25maWd1cmUoKSB7CiAJ aWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCWZpbmQgLWluYW1lICIqLm5pbmphIiAtZXhl YyBzZWQgLWkgInt9IiBcCi0JCQktZSAiL3J1c3RjL3M7IC0tc3lzcm9vdCAke1hCUFNfQ1JPU1Nf QkFTRX0vdXNyOztnIiBcCiAJCQktZSAiczsgL3Vzci9saWIvOyAke1hCUFNfQ1JPU1NfQkFTRX0v dXNyL2xpYi87ZyIgXAogCQkJLWUgInM7LUwvdXNyL2xpYjstTCR7WEJQU19DUk9TU19CQVNFfS91 c3IvbGliO2ciIFwKIAkJCS1lICJzOy1JL3Vzci9pbmNsdWRlOy1JJHtYQlBTX0NST1NTX0JBU0V9 L3Vzci9pbmNsdWRlO2ciIFwKQEAgLTI4Niw3ICsyOTgsNiBAQCBNZXNhTGliLWRldmVsX3BhY2th Z2UoKSB7CiAJCWZpCiAJCWlmIFsgIiRfaGF2ZV9vcGVuY2wiIF07IHRoZW4KIAkJCXZtb3ZlIHVz ci9saWIvbGliTWVzYU9wZW5DTC5zbwotCQkJdm1vdmUgdXNyL2xpYi9saWJSdXN0aWNsT3BlbkNM LnNvCiAJCWZpCiAJfQogfQpAQCAtMzA1LDcgKzMxNiw2IEBAIG1lc2Etb3BlbmNsX3BhY2thZ2Uo KSB7CiAJCXZtb3ZlIGV0Yy9PcGVuQ0wKIAkJdm1vdmUgdXNyL2xpYi9nYWxsaXVtLXBpcGUKIAkJ dm1vdmUgInVzci9saWIvbGliTWVzYU9wZW5DTC5zby4qIgotCQl2bW92ZSAidXNyL2xpYi9saWJS dXN0aWNsT3BlbkNMLnNvLioiCiAJfQogfQogCkBAIC0zMzYsMTUgKzM0NiwxNCBAQCBtZXNhLXZk cGF1X3BhY2thZ2UoKSB7CiBtZXNhLXZ1bGthbi1pbnRlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rl c2M9Ik1lc2EgSW50ZWwgVnVsa2FuIGRyaXZlciIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUg InVzci9zaGFyZS92dWxrYW4vaWNkLmQvaW50ZWwqLmpzb24iCi0JCXZtb3ZlICJ1c3IvbGliL2xp YnZ1bGthbl9pbnRlbCouc28iCisJCXZtb3ZlICJ1c3Ivc2hhcmUvdnVsa2FuL2ljZC5kL2ludGVs X2ljZCouanNvbiIKKwkJdm1vdmUgInVzci9saWIvbGlidnVsa2FuX2ludGVsLnNvIgogCX0KIH0K IAogbWVzYS12dWxrYW4tcmFkZW9uX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYz0iTWVzYSBSYWRl b24gVnVsa2FuIGRyaXZlciIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9zaGFyZS9k cmlyYy5kLzAwLXJhZHYtZGVmYXVsdHMuY29uZiIKIAkJdm1vdmUgInVzci9zaGFyZS92dWxrYW4v aWNkLmQvcmFkZW9uX2ljZCouanNvbiIKIAkJdm1vdmUgInVzci9saWIvbGlidnVsa2FuX3JhZGVv bi5zbyIKIAl9CgpGcm9tIDY3YjJhZWZlYmY0MWU2YzU1ZDIwMDk0YzZlZDEwN2FjM2U2ZjY0ZDgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHpsaWNlIDx6bGljZTU1NUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjIgTWFyIDIwMjMgMTc6NDE6MzggLTA0MDAKU3ViamVjdDogW1BBVENIIDIv NF0gb3BlbmN2OiB1cGRhdGUgdG8gNC43LjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMDQgKysrKysrKysrKystLS0tLS0tLS0tLS0KIHNyY3BrZ3Mv YWN0aW9uYS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZGlnaWth bS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZ21pYy90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVz L2ZmbXBlZzQucGF0Y2ggfCAgMjEgLS0tLS0KIHNyY3BrZ3Mvbm9tYWNzL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvb3BlbmN2L3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgfCAgIDggKy0KIHNyY3BrZ3MvcWltZ3YvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvcmV0cm9zaGFyZS90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3Mvc2lyaWwvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNy Y3BrZ3Mvd2FpZnUyeC1jb252ZXJ0ZXItY3BwL3RlbXBsYXRlICAgfCAgIDIgKy0KIDExIGZpbGVz IGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzQucGF0Y2gKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhYWI2NmM4M2Y0YjMuLmE5 ZDFjNmExNmVjNiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJz CkBAIC0yMTI4LDU4ICsyMTI4LDU4IEBAIGxpYmNhcHN0b25lLnNvLjQgY2Fwc3RvbmUtNC4wXzEK IGxpYmhhdmVnZS5zby4yIGxpYmhhdmVnZWQtMS45LjExXzEKIGxpYm5paC5zby4xIGxpYm5paC0x LjAuM18xCiBsaWJuaWgtZGJ1cy5zby4xIGxpYm5paC0xLjAuM18xCi1saWJvcGVuY3ZfcXVhbGl0 eS5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9yZWcuc28uNDA2IGxpYm9wZW5j di00LjYuMF8xCi1saWJvcGVuY3Zfc3VyZmFjZV9tYXRjaGluZy5zby40MDYgbGlib3BlbmN2LTQu Ni4wXzEKLWxpYm9wZW5jdl94cGhvdG8uc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVu Y3ZfZnJlZXR5cGUuc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfZnV6enkuc28u NDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfaGZzLnNvLjQwNiBsaWJvcGVuY3YtNC42 LjBfMQotbGlib3BlbmN2X2ltZ19oYXNoLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3Bl bmN2X2xpbmVfZGVzY3JpcHRvci5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9z YWxpZW5jeS5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9zdHJ1Y3R1cmVkX2xp Z2h0LnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X2FydWNvLnNvLjQwNiBsaWJv cGVuY3YtNC42LjBfMQotbGlib3BlbmN2X2Jnc2VnbS5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEK LWxpYm9wZW5jdl9iaW9pbnNwaXJlZC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5j dl9jY2FsaWIuc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfZmFjZS5zby40MDYg bGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl90cmFja2luZy5zby40MDYgbGlib3BlbmN2LTQu Ni4wXzEKLWxpYm9wZW5jdl94ZmVhdHVyZXMyZC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxp Ym9wZW5jdl9vcHRmbG93LnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X3hpbWdw cm9jLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X3Bsb3Quc28uNDA2IGxpYm9w ZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfdGV4dC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxp Ym9wZW5jdl9tbC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9vYmpkZXRlY3Qu c28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfZG5uLnNvLjQwNiBsaWJvcGVuY3Yt NC42LjBfMQotbGlib3BlbmN2X3NoYXBlLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3Bl bmN2X3N0aXRjaGluZy5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9waG90by5z by40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl92aWRlby5zby40MDYgbGlib3BlbmN2 LTQuNi4wXzEKLWxpYm9wZW5jdl9jYWxpYjNkLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGli b3BlbmN2X2ZlYXR1cmVzMmQuc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfZmxh bm4uc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfaGlnaGd1aS5zby40MDYgbGli b3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl92aWRlb2lvLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBf MQotbGlib3BlbmN2X2ltZ2NvZGVjcy5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5j dl9pbWdwcm9jLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X2NvcmUuc28uNDA2 IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3Zfc3VwZXJyZXMuc28uNDA2IGxpYm9wZW5jdi00 LjYuMF8xCi1saWJvcGVuY3ZfdmlkZW9zdGFiLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGli b3BlbmN2X2dhcGkuc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfeG9iamRldGVj dC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9kYXRhc2V0cy5zby40MDYgbGli b3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9kbm5fb2JqZGV0ZWN0LnNvLjQwNiBsaWJvcGVuY3Yt NC42LjBfMQotbGlib3BlbmN2X2Rubl9zdXBlcnJlcy5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEK LWxpYm9wZW5jdl9kcG0uc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfcGhhc2Vf dW53cmFwcGluZy5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9zdGVyZW8uc28u NDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfcmFwaWQuc28uNDA2IGxpYm9wZW5jdi00 LjYuMF8xCi1saWJvcGVuY3ZfaW50ZW5zaXR5X3RyYW5zZm9ybS5zby40MDYgbGlib3BlbmN2LTQu Ni4wXzEKLWxpYm9wZW5jdl9hbHBoYW1hdC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9w ZW5jdl9iYXJjb2RlLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X21jYy5zby40 MDYgbGlib3BlbmN2LTQuNi4wXzEKK2xpYm9wZW5jdl9xdWFsaXR5LnNvLjQwNyBsaWJvcGVuY3Yt NC43LjBfMQorbGlib3BlbmN2X3JlZy5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5j dl9zdXJmYWNlX21hdGNoaW5nLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3hw aG90by5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9mcmVldHlwZS5zby40MDcg bGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9mdXp6eS5zby40MDcgbGlib3BlbmN2LTQuNy4w XzEKK2xpYm9wZW5jdl9oZnMuc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfaW1n X2hhc2guc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfbGluZV9kZXNjcmlwdG9y LnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3NhbGllbmN5LnNvLjQwNyBsaWJv cGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3N0cnVjdHVyZWRfbGlnaHQuc28uNDA3IGxpYm9wZW5j di00LjcuMF8xCitsaWJvcGVuY3ZfYXJ1Y28uc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJv cGVuY3ZfYmdzZWdtLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2Jpb2luc3Bp cmVkLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2NjYWxpYi5zby40MDcgbGli b3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9mYWNlLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQor bGlib3BlbmN2X3RyYWNraW5nLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3hm ZWF0dXJlczJkLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X29wdGZsb3cuc28u NDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfeGltZ3Byb2Muc28uNDA3IGxpYm9wZW5j di00LjcuMF8xCitsaWJvcGVuY3ZfcGxvdC5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9w ZW5jdl90ZXh0LnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X21sLnNvLjQwNyBs aWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X29iamRldGVjdC5zby40MDcgbGlib3BlbmN2LTQu Ny4wXzEKK2xpYm9wZW5jdl9kbm4uc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3Zf c2hhcGUuc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3Zfc3RpdGNoaW5nLnNvLjQw NyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3Bob3RvLnNvLjQwNyBsaWJvcGVuY3YtNC43 LjBfMQorbGlib3BlbmN2X3ZpZGVvLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2 X2NhbGliM2Quc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfZmVhdHVyZXMyZC5z by40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9mbGFubi5zby40MDcgbGlib3BlbmN2 LTQuNy4wXzEKK2xpYm9wZW5jdl9oaWdoZ3VpLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGli b3BlbmN2X3ZpZGVvaW8uc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfaW1nY29k ZWNzLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2ltZ3Byb2Muc28uNDA3IGxp Ym9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfY29yZS5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEK K2xpYm9wZW5jdl9zdXBlcnJlcy5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl92 aWRlb3N0YWIuc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfZ2FwaS5zby40MDcg bGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl94b2JqZGV0ZWN0LnNvLjQwNyBsaWJvcGVuY3Yt NC43LjBfMQorbGlib3BlbmN2X2RhdGFzZXRzLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGli b3BlbmN2X2Rubl9vYmpkZXRlY3Quc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3Zf ZG5uX3N1cGVycmVzLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2RwbS5zby40 MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9waGFzZV91bndyYXBwaW5nLnNvLjQwNyBs aWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3N0ZXJlby5zby40MDcgbGlib3BlbmN2LTQuNy4w XzEKK2xpYm9wZW5jdl9yYXBpZC5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9p bnRlbnNpdHlfdHJhbnNmb3JtLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2Fs cGhhbWF0LnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2JhcmNvZGUuc28uNDA3 IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfbWNjLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBf MQogbGlidW5pY29uZi5zby40LjYgd3ZzdHJlYW1zLTQuNi4xXzIwCiBsaWJ3dmJhc2Uuc28uNC42 IHd2c3RyZWFtcy00LjYuMV8yMAogbGlid3Z1dGlscy5zby40LjYgd3ZzdHJlYW1zLTQuNi4xXzIw CmRpZmYgLS1naXQgYS9zcmNwa2dzL2FjdGlvbmEvdGVtcGxhdGUgYi9zcmNwa2dzL2FjdGlvbmEv dGVtcGxhdGUKaW5kZXggY2Y1ZjBiN2EyYWU2Li4wZDg5OTMxMWU2ZGYgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvYWN0aW9uYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2FjdGlvbmEvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhY3Rpb25hJwogcGtnbmFtZT1hY3Rp b25hCiB2ZXJzaW9uPTMuMTAuMQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9 cW1ha2UKIGNvbmZpZ3VyZV9hcmdzPSJQS0dDT05GSUdfT1BFTkNWPW9wZW5jdjQiCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgcXQ1LXBsdWdpbi1teXNxbCBxdDUtcW1ha2UgcXQ1LWhvc3Qt dG9vbHMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2RpZ2lrYW0vdGVtcGxhdGUgYi9zcmNwa2dzL2Rp Z2lrYW0vdGVtcGxhdGUKaW5kZXggZThlYzQ5NjE0NTdiLi4wYTg5ODRkYjg1YmMgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZGlnaWthbS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2RpZ2lrYW0vdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdkaWdpa2FtJwogcGtnbmFt ZT1kaWdpa2FtCiB2ZXJzaW9uPTcuMTAuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf c3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIgogaG9zdG1h a2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIGdldHRleHQgcGtnLWNvbmZpZyBiaXNvbiBm bGV4IHF0NS1xbWFrZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbWljL3RlbXBsYXRlIGIvc3JjcGtn cy9nbWljL3RlbXBsYXRlCmluZGV4IDhlM2I4MDA0N2YyNi4uNDNjNmUwNjcyYTJiIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dtaWMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbWljL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ21pYycKIHBrZ25hbWU9Z21pYwog dmVyc2lvbj0zLjEuNgotcmV2aXNpb249MQorcmV2aXNpb249MgogX3phcnRfaGFzaD0zNGViZjZj Y2UwYmFmYjk4YWJlNTdjZWM4M2M0YTAyY2QxYWJlY2EwCiBjcmVhdGVfd3Jrc3JjPXllcwogYnVp bGRfd3Jrc3JjPSJzcmMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9m Zm1wZWc0LnBhdGNoIGIvc3JjcGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA0NWZhMjdmNTRiLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDIxICswLDAgQEAKLS0tLSBhL2ZmbXBlZ2F1ZGlvLmNjLm9yaWcgMjAxOC0wNS0w OSAyMjoxNjoxMy40ODA2NTk5NTggKzAyMDAKLSsrKyBiL2ZmbXBlZ2F1ZGlvLmNjICAgICAgMjAx OC0wNS0wOSAyMjoxNjo1MC43NDgzMjI3OTAgKzAyMDAKLUBAIC0xNDMsNyArMTQzLDcgQEAKLSAg ICAgcmV0dXJuIGZhbHNlOwotICAgfQotCi0tICB1bnNpZ25lZCBjaGFyICogYXZpb0J1ZmZlciA9 ICggdW5zaWduZWQgY2hhciAqIClhdl9tYWxsb2MoIGtCdWZmZXJTaXplICsgRkZfSU5QVVRfQlVG RkVSX1BBRERJTkdfU0laRSApOwotKyAgdW5zaWduZWQgY2hhciAqIGF2aW9CdWZmZXIgPSAoIHVu c2lnbmVkIGNoYXIgKiApYXZfbWFsbG9jKCBrQnVmZmVyU2l6ZSArIEFWX0lOUFVUX0JVRkZFUl9Q QURESU5HX1NJWkUgKTsKLSAgIGlmICggIWF2aW9CdWZmZXIgKQotICAgewotICAgICBlcnJvclN0 cmluZyA9IFFPYmplY3Q6OnRyKCAiYXZfbWFsbG9jKCkgZmFpbGVkLiIgKTsKLUBAIC0zODAsNyAr MzgwLDcgQEAKLSAgIH0KLQotICAgaWYgKCAhUXQ0eDU6OkF0b21pY0ludDo6bG9hZEFjcXVpcmUo IGlzQ2FuY2VsbGVkXyApICYmCi0tICAgICAgIGNvZGVjQ29udGV4dF8tPmNvZGVjLT5jYXBhYmls aXRpZXMgJiBDT0RFQ19DQVBfREVMQVkgKQotKyAgICAgICBjb2RlY0NvbnRleHRfLT5jb2RlYy0+ Y2FwYWJpbGl0aWVzICYgQVZfQ09ERUNfQ0FQX0RFTEFZICkKLSAgIHsKLSAgICAgYXZfaW5pdF9w YWNrZXQoICZwYWNrZXQgKTsKLSAgICAgaW50IGdvdEZyYW1lID0gMDsKLQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9ub21hY3MvdGVtcGxhdGUgYi9zcmNwa2dzL25vbWFjcy90ZW1wbGF0ZQppbmRleCA4 OTVlODMwNzFhOGEuLmNlNGU3ZjcwOTNkYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9ub21hY3MvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9ub21hY3MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdub21hY3MnCiBwa2duYW1lPW5vbWFjcwogdmVyc2lvbj0zLjE2LjIy NAotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfd3Jrc3JjPUltYWdlTG91bmdlCiBidWls ZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfQlVJTERfVFlQRT1Ob25lIC1E RU5BQkxFX1RSQU5TTEFUSU9OUz0xCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5jdi90ZW1wbGF0 ZSBiL3NyY3BrZ3Mvb3BlbmN2L3RlbXBsYXRlCmluZGV4IGEwOWI4ZGQwZDQ0OS4uNDFmMzE4M2Yx NTgyIDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW5jdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29w ZW5jdi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5j dicKIHBrZ25hbWU9b3BlbmN2Ci12ZXJzaW9uPTQuNi4wCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTQu Ny4wCityZXZpc2lvbj0xCiBjcmVhdGVfd3Jrc3JjPXllcwogYnVpbGRfd3Jrc3JjPSR7cGtnbmFt ZX0tJHt2ZXJzaW9ufQogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTI0LDggKzI0LDggQEAgaG9tZXBh Z2U9Imh0dHBzOi8vb3BlbmN2Lm9yZyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRodWIuY29tL29w ZW5jdi9vcGVuY3Yvd2lraS9DaGFuZ2VMb2ciCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9vcGVuY3Yvb3BlbmN2L2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oKICBodHRwczovL2dpdGh1 Yi5jb20vb3BlbmN2L29wZW5jdl9jb250cmliL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3o+Y29u dHJpYi50YXIuZ3oiCi1jaGVja3N1bT0iMWVjMWNiYTY1ZjlmMjBmZTVhNDFmZGExNTg2ZTAxYzcw ZWEwYzlhNmQ3YjY3YzllMTNlZGYwY2ZlMjIzOTI3NwotIDE3NzdkNWZkMmI1OTAyOWNmNTM3ZTVm ZDZmOGFhNjhkNzA3MDc1ODIyZjkwYmRlNjgzZmNkZTA4NmY4NWY3YTciCitjaGVja3N1bT0iOGRm MDA3OWNkYmUxNzk3NDhhMThkNDQ3MzFhZjYyYTI0NWE0NWViZjUwODUyMjNkYzAzMTMzOTU0YzY2 Mjk3MworIDQyZGY4NDBjZjkwNTVlNTlkMGUyMmMyNDljZmIxOWYwNDc0M2UxYmRhZDExM2QzMWIx NTczZDM5MzRkNjI1ODQiCiBwYXRjaF9hcmdzPSItTnAxIC1kICR7YnVpbGRfd3Jrc3JjfSIKICMg dGVzdHMgaGFuZyBpbmRlbmZpbml0ZWx5LCBldmVuIHdpdGggdGVzdCBkYXRhIGluY2x1ZGVkCiBt YWtlX2NoZWNrPW5vCmRpZmYgLS1naXQgYS9zcmNwa2dzL3FpbWd2L3RlbXBsYXRlIGIvc3JjcGtn cy9xaW1ndi90ZW1wbGF0ZQppbmRleCA3ZWIzMGRiMzM5OTIuLmRkMzQxZGZlMWJmYyAxMDA2NDQK LS0tIGEvc3JjcGtncy9xaW1ndi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3FpbWd2L3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncWltZ3YnCiBwa2duYW1lPXFp bWd2CiB2ZXJzaW9uPTEuMC4yCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1j bWFrZQogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9pZiB2aWRlbyAtRFZJREVPX1NVUFBPUlQ9T04g LURWSURFT19TVVBQT1JUPU9GRikKICAkKHZvcHRfaWYgc2NhbGUgLURPUEVOQ1ZfU1VQUE9SVD1P TiAtRE9QRU5DVl9TVVBQT1JUPU9GRikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmV0cm9zaGFyZS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcmV0cm9zaGFyZS90ZW1wbGF0ZQppbmRleCA4YTA3ODZjMjFhMDgu LjcyMDIzZmE5OGI3NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZXRyb3NoYXJlL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvcmV0cm9zaGFyZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ3JldHJvc2hhcmUnCiBwa2duYW1lPXJldHJvc2hhcmUKIHZlcnNpb249MC42 LjYKLXJldmlzaW9uPTIKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPXFtYWtlCiAjWFhYIGJyb2Fk Y2FzdCBmZWF0dXJlIHJlcXVpcmVzIGFuIGFuY2llbnQgdWRwLWRpc2NvdmVyeS1jcHAgd2hpY2gg ZWl0aGVyIG5lZWRzCiAjIHRvIGJlIGZldGNoZWQrcGF0Y2hlZCAoRlRCRlMpIGhlcmUgb3IgcGFj a2FnZWQgOi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2lyaWwvdGVtcGxhdGUgYi9zcmNwa2dzL3Np cmlsL3RlbXBsYXRlCmluZGV4IGUwNmFhNWQwNTU5Yy4uODQzMzJmNzlkMDYwIDEwMDY0NAotLS0g YS9zcmNwa2dzL3NpcmlsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2lyaWwvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdzaXJpbCcKIHBrZ25hbWU9c2lyaWwK IHZlcnNpb249MC45LjEyCi1yZXZpc2lvbj04CityZXZpc2lvbj0xMAogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGF1dG9jb25m IGF1dG9tYWtlIGdldHRleHQtZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZmZ0dy1kZXZlbCBsaWJjb25m aWctZGV2ZWwgbGlib3BlbmN2LWRldmVsIGxpYmZmbXMyLWRldmVsCmRpZmYgLS1naXQgYS9zcmNw a2dzL3dhaWZ1MngtY29udmVydGVyLWNwcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvd2FpZnUyeC1jb252 ZXJ0ZXItY3BwL3RlbXBsYXRlCmluZGV4IDhjMDk1ZDBkN2JhYi4uYWE1MmQ4Yzk4MWE4IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3dhaWZ1MngtY29udmVydGVyLWNwcC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3dhaWZ1MngtY29udmVydGVyLWNwcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3dhaWZ1MngtY29udmVydGVyLWNwcCcKIHBrZ25hbWU9d2FpZnUyeC1j b252ZXJ0ZXItY3BwCiB2ZXJzaW9uPTUuMi40Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWls ZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFMTF9NT0RFTFM9T04iCiBob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWciCgpGcm9tIGRlYjFiNGQxZjk3ODZkNThjM2ZhZDM4MDdi OWNiN2ExYTQ2YjExOWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHpsaWNlIDx6bGlj ZTU1NUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjIgTWFyIDIwMjMgMTg6MDc6NTggLTA0MDAKU3Vi amVjdDogW1BBVENIIDMvNF0gZmZtcGVnNCBidW1wcwoKLS0tCiBzcmNwa2dzL29zZy90ZW1wbGF0 ZSAgICAgIHwgNCArKy0tCiBzcmNwa2dzL3ZsYy90ZW1wbGF0ZSAgICAgIHwgNCArKy0tCiBzcmNw a2dzL3hpbmUtbGliL3RlbXBsYXRlIHwgNiArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3NnL3RlbXBs YXRlIGIvc3JjcGtncy9vc2cvdGVtcGxhdGUKaW5kZXggMWEwMzE0NDhiM2NmLi43NTU3OTNmN2Ux MWIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3NnL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3NnL3Rl bXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvc2cnCiBwa2du YW1lPW9zZwogdmVyc2lvbj0zLjYuNQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj0icWVtdSIKICMgZG9uJ3QgdXNlIC91c3IvbGliNjQgb24g NjRiaXQgcGxhdGZvcm1zCiBjb25maWd1cmVfYXJncz0iLURMSUJfUE9TVEZJWD0iCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgeHJhbmRyIgogbWFrZWRlcGVuZHM9Ik1lc2FMaWItZGV2ZWwg Z3RrZ2xleHQtZGV2ZWwgbGliY3VybC1kZXZlbCBnaWZsaWItZGV2ZWwgbGlicnN2Zy1kZXZlbAot IGphc3Blci1kZXZlbCB0aWZmLWRldmVsIGxpYmdkYWwtZGV2ZWwgbGliZ3RhLWRldmVsIGZmbXBl Zy1kZXZlbCB4aW5lLWxpYi1kZXZlbAorIGphc3Blci1kZXZlbCB0aWZmLWRldmVsIGxpYmdkYWwt ZGV2ZWwgbGliZ3RhLWRldmVsIGZmbXBlZzQtZGV2ZWwgeGluZS1saWItZGV2ZWwKICBTREwyLWRl dmVsIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsCiAgJCh2b3B0X2lmIG9wZW5leHIgbGlib3BlbmV4 ci1kZXZlbCkKICAkKHZvcHRfaWYgcG9wcGxlciBwb3BwbGVyLWdsaWItZGV2ZWwpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3ZsYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmxjL3RlbXBsYXRlCmluZGV4IDIx MDc2MmIwYTdlMi4uODU1Y2E1MjM4NjYyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZsYy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3ZsYy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3ZsYycKIHBrZ25hbWU9dmxjCiB2ZXJzaW9uPTMuMC4xOAotcmV2aXNpb249Mwor cmV2aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0t ZGlzYWJsZS1nbWUgLS1kaXNhYmxlLWxpYnRhciAtLWVuYWJsZS1qYWNrCiAgLS1lbmFibGUtbGl2 ZTU1NSAtLWRpc2FibGUtZmx1aWRzeW50aCAtLWVuYWJsZS1kdmRyZWFkCkBAIC0yNSw3ICsyNSw3 IEBAIGxpYjMyZGlzYWJsZWQ9eWVzCiBob3N0bWFrZWRlcGVuZHM9ImF1dG9tYWtlIGxpYnRvb2wg cGtnLWNvbmZpZyBmbGV4IGdldHRleHQgbGliZ2NyeXB0LWRldmVsCiAgbGl2ZTU1NS1kZXZlbCBn ZXR0ZXh0LWRldmVsICQodm9wdF9pZiBsdWEgbHVhNTIpICQodm9wdF9pZiBjaHJvbWVjYXN0IHBy b3RvYnVmKSIKIG1ha2VkZXBlbmRzPSIKLSBhdmFoaS1saWJzLWRldmVsIGRidXMtZ2xpYi1kZXZl bCBmYWFkMi1kZXZlbCBmZm1wZWctZGV2ZWwgZnJlZWZvbnQtdHRmCisgYXZhaGktbGlicy1kZXZl bCBkYnVzLWdsaWItZGV2ZWwgZmFhZDItZGV2ZWwgZmZtcGVnNC1kZXZlbCBmcmVlZm9udC10dGYK ICBnbnV0bHMtZGV2ZWwgamFjay1kZXZlbCBsaWJhNTItZGV2ZWwgbGliYXNzLWRldmVsIGxpYmJs dXJheS1kZXZlbAogIGxpYmNkaW8tZGV2ZWwgbGliZGNhLWRldmVsIGxpYmR2YnBzaS1kZXZlbCBs aWJkdmRuYXYtZGV2ZWwgbGlibWFkLWRldmVsCiAgbGlibWF0cm9za2EtZGV2ZWwgbGlibW9kcGx1 Zy1kZXZlbCBsaWJtcGNkZWMtZGV2ZWwgbGlibXBlZzItZGV2ZWwKZGlmZiAtLWdpdCBhL3NyY3Br Z3MveGluZS1saWIvdGVtcGxhdGUgYi9zcmNwa2dzL3hpbmUtbGliL3RlbXBsYXRlCmluZGV4IGY3 MTNlZmY0OWIwNy4uZWQ2MTk0YzE3ZDExIDEwMDY0NAotLS0gYS9zcmNwa2dzL3hpbmUtbGliL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MveGluZS1saWIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICd4aW5lLWxpYicKIHBrZ25hbWU9eGluZS1saWIKLXZlcnNpb249 MS4yLjEyCit2ZXJzaW9uPTEuMi4xMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZp Z3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS12Y2QgLS1kaXNhYmxlLWdub21ldmZzIC0t d2l0aG91dC1lc291bmQgLS1kaXNhYmxlLWR4cjMKQEAgLTgsNyArOCw3IEBAIGNvbmZpZ3VyZV9h cmdzPSItLWRpc2FibGUtdmNkIC0tZGlzYWJsZS1nbm9tZXZmcyAtLXdpdGhvdXQtZXNvdW5kIC0t ZGlzYWJsZS1keHIzCiBob3N0bWFrZWRlcGVuZHM9ImF1dG9tYWtlIGdldHRleHQtZGV2ZWwgbGli dG9vbCBwa2ctY29uZmlnIHBlcmwiCiBtYWtlZGVwZW5kcz0iCiAgemxpYi1kZXZlbCBhbHNhLWxp Yi1kZXZlbCBsaWJ4Y2ItZGV2ZWwgbGliU00tZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJYdi1kZXZl bAotIGxpYlh2TUMtZGV2ZWwgbGliYTUyLWRldmVsIGxpYm1hZC1kZXZlbCBmZm1wZWctZGV2ZWwg cHVsc2VhdWRpby1kZXZlbAorIGxpYlh2TUMtZGV2ZWwgbGliYTUyLWRldmVsIGxpYm1hZC1kZXZl bCBmZm1wZWc0LWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwKICBqYWNrLWRldmVsIHNhbWJhLWRldmVs IGxpYmZsYWMtZGV2ZWwgbGlibW9kcGx1Zy1kZXZlbCBsaWJtcGNkZWMtZGV2ZWwKICBzcGVleC1k ZXZlbCBsaWJ0aGVvcmEtZGV2ZWwgbGlidm9yYmlzLWRldmVsIGxpYmRjYS1kZXZlbCBmYWFkMi1k ZXZlbAogIGxpYmNkaW8tZGV2ZWwgbGliYmx1cmF5LWRldmVsIGFhbGliLWRldmVsIGxpYmNhY2Et ZGV2ZWwgbGliWGluZXJhbWEtZGV2ZWwKQEAgLTE5LDcgKzE5LDcgQEAgbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciwgTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy54aW5l LXByb2plY3Qub3JnIgogY2hhbmdlbG9nPSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0 cy94aW5lL2ZpbGVzL3hpbmUtbGliLyR7dmVyc2lvbn0vUkVBRE1FLnR4dC92aWV3IgogZGlzdGZp bGVzPSIke1NPVVJDRUZPUkdFX1NJVEV9L3hpbmUvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWQ2MDYyNzA0NjhlMTU0MGMyYTg5YzBkN2Y1ZmRmMTFlMTdlY2MwYzI2OThj YzBiY2IxMDY1ZmYyNmFiZWUwOTgKK2NoZWNrc3VtPTVmMTBkNmQ3MThhNGE1MWMxN2VkMWIzMmIw MzFkNGY5YjgwYjA2MWU4Mjc2NTM1YjJiZTMxZTVhYzRiNzVlNmYKIAogY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJaTY4Ni1tdXNsKQoKRnJvbSBjZDBiODI0MmY4YjVkNzFmNzM0NGMz YjM3MGEzODI3YzQxYmNjMmIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB6bGljZSA8 emxpY2U1NTVAZ21haWwuY29tPgpEYXRlOiBXZWQsIDIyIE1hciAyMDIzIDE4OjA4OjA1IC0wNDAw ClN1YmplY3Q6IFtQQVRDSCA0LzRdIGZmbXBlZzUgYnVtcHMKCi0tLQogc3JjcGtncy9RTVBsYXky L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2Fsc2EtcGx1 Z2lucy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvYXJjYW4vdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9hdHRyYWN0L3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2F1YmlvL3BhdGNo ZXMvZmZtcGVnNS5wYXRjaCAgICAgICAgICAgfCAgMzcgKysKIHNyY3BrZ3MvYXViaW8vdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL2F1ZGFjaW91cy1wbHVnaW5z L3BhdGNoZXMvZmZtcGVnNS5wYXRjaCAgIHwgIDQzICsrCiBzcmNwa2dzL2F1ZGFjaW91cy1wbHVn aW5zL3RlbXBsYXRlICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvYXVkYWNpdHkvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjcGtncy9hdmlkZW11eC90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2JhcmVzaXAvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvYmxlbmRlci90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9jYW50YXRhL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2NjZXh0cmFjdG9yL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY2hyb21hcHJpbnQvcGF0Y2hlcy9m Zm1wZWc1LnBhdGNoICAgICB8IDU2OSArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvY2hyb21h cHJpbnQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9jaHJvbWl1 bS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2NtdXMvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY3lhbnJpcC90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9kZWFkYmVlZi90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2RvbHBoaW4tZW11 L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZHJvaWRjYW0tb2Jz LXBsdWdpbi90ZW1wbGF0ZSAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9kcm9pZGNhbS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2VsZWN0cm9uMTkvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZmZtcGVnL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICB8IDE2NiArKystLQogc3JjcGtncy9mZm1wZWc0L2ZmbXBl ZzQgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIHNyY3BrZ3MvZmZtcGVnNC90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgICB8ICA0NiArLQogc3JjcGtncy9mZm1wZWd0aHVtYm5haWxl ci90ZW1wbGF0ZSAgICAgICAgICAgIHwgICA2ICstCiBzcmNwa2dzL2ZmbXBlZ3RodW1icy90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZmZtczIvcGF0Y2hlcy9mZm1w ZWc1LnBhdGNoICAgICAgICAgICB8IDQxOSArKysrKysrKysrKysrCiBzcmNwa2dzL2ZmbXMyL3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIC4uLkZpeC1pbmZpbml0ZS1s b29wLWluLU1lbnUtY3ljbGVpdGVtcy5wYXRjaCB8ICA2MCAtLQogLi4uNmM0ZDMwZjViMjg5YzQy OWM1Y2E4OGQ4MDAyMDBkYjRmYzRmLnBhdGNoIHwgIDIyICsKIC4uLi9NaW5PdmVybGFwUGxhY2Vt ZW50LmNjX2ltcHJvdmUucGF0Y2ggICAgICB8ICAyOSAtCiBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hl cy9jZW50ZXIucGF0Y2ggICAgICAgICAgfCAzMDcgLS0tLS0tLS0tLQogc3JjcGtncy9mbHV4Ym94 L3BhdGNoZXMvY29udGFpbmVyX2xvY2tzLnBhdGNoIHwgMzI1IC0tLS0tLS0tLS0KIC4uLi9wYXRj aGVzL2NvbnRhaW5lcl9yZWxhdGl2ZV9yZWxhdGl2ZS5wYXRjaCB8ICAxNSAtCiBzcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy9mbHV4X2ltcHJvdmUucGF0Y2ggICAgfCAyMDUgLS0tLS0tLQogc3JjcGtn cy9mbHV4Ym94L3BhdGNoZXMvZmx1eF9vdmVyc2l6ZS5wYXRjaCAgIHwgIDI0IC0KIC4uLi9mbHV4 Ym94L3BhdGNoZXMvZm9jdXNfY2xvc2VfbWVudS5wYXRjaCAgICB8ICAxNyAtCiBzcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy9zbGl0X3JhaXNlLnBhdGNoICAgICAgfCAgMTYgLQogc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvdG9vbGJhcl9yZWRvLnBhdGNoICAgIHwgMjI4IC0tLS0tLS0KIC4uLi9mbHV4 Ym94L3BhdGNoZXMvdHJlbW9yX2dyYWJvaWRfaGVsbC5wYXRjaCB8IDM1MCAtLS0tLS0tLS0tLQog Li4uL3BhdGNoZXMvdW5jbHV0dGVyX2ZpeF93b3Jrc3BhY2VjbWQucGF0Y2ggIHwgIDY1IC0tCiBz cmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy96b3JfbG9vcHMucGF0Y2ggICAgICAgfCAgODcgLS0tCiBz cmNwa2dzL2ZsdXhib3gvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKy0KIHNy Y3BrZ3MvZnJlZXJkcC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3Jj cGtncy9nZXJiZXJhL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNw a2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTEucGF0Y2ggICAgfCAyMzIgKysrKysrKwog c3JjcGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNS0yLnBhdGNoICAgIHwgIDMzICsKIHNy Y3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaCAgICB8ICAyNSArCiBzcmNw a2dzL2dvbGRlbmRpY3QvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3Br Z3MvZ3N0LWxpYmF2L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtn cy9nc3QtcGx1Z2lucy1iYWQxL3RlbXBsYXRlICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dz L2dzdC1ydHNwLXNlcnZlci90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mv Z3RrNC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9n dXZjdmlldy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2hh bmRicmFrZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvaGVk Z2V3YXJzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9pZGpj L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2tmaWxl bWV0YWRhdGE1L3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mva2lkMy90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9rb2RpL3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2twaXBld2ly ZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliYXZyZXNh bXBsZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJleHRyYWN0 b3IvdGVtcGxhdGUgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYm9wZW5hbC90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGlib3BlbnNob3Qv dGVtcGxhdGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9sb3VkZ2Fpbi90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21lZGlhc3RyZWFtZXIv dGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbWVzYS90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzNSArLQogc3JjcGtncy9tZ2JhL3BhdGNoZXMvZmZt cGVnNS5wYXRjaCAgICAgICAgICAgIHwgMTE3ICsrKysKIHNyY3BrZ3MvbWdiYS90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9taW5pZGxuYS90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21peHh4L3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbWx0L3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tbHQ3L3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21vYy90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbW90aW9uL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tcGQvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21wdi90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbXVzaWtjdWJlL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9ub3RjdXJzZXMvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL29icy90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvb2xpdmUvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvb3Blbm13L3RlbXBsYXRlICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBzcmNwa2dzL29wZW50b29uei90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvcGlhbm9iYXIvdGVtcGxhdGUgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjcGtncy9wcHNzcHAvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiBzcmNwa2dzL3BxaXYvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyY3BrZ3MvcW1tcC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArLQogc3JjcGtncy9xdDUtd2ViZW5naW5lL3RlbXBsYXRlICAgICAgICAgICAgICAg IHwgICAyICstCiBzcmNwa2dzL3F0NS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUgICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmNwa2dzL3F0YXYvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIHNyY3BrZ3MvcXRveC9wYXRjaGVzL2ZmbXBlZzUucGF0Y2ggICAgICAgICAgICB8ICA3 OSArKysKIHNyY3BrZ3MvcXRveC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogc3JjcGtncy9yZXRyb2FyY2gvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBzcmNwa2dzL3NjcmNweS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2ZS90ZW1wbGF0ZSAgICAgICAgICAgICB8ICAgMiAr LQogc3JjcGtncy9zc3IvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CiBzcmNwa2dzL3N1bW8vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyY3BrZ3Mvc3luZmlnL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjcGtncy90ZWxlZ3JhbS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL3RnX293dC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNy Y3BrZ3MvdGltZy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3Jj cGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNw a2dzL3R2aGVhZGVuZC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3Br Z3MvdW5wYXBlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtn cy92YmEtbS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dz L3ZpY2UvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mv d2F5cGlwZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy93 Zi1yZWNvcmRlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL3hw cmEvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIDExOCBmaWxlcyBj aGFuZ2VkLCAxNzY1IGluc2VydGlvbnMoKyksIDIwMTcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9hdWJpby9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2F1ZGFjaW91cy1wbHVnaW5zL3BhdGNoZXMvZmZtcGVnNS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21hcHJpbnQvcGF0Y2hlcy9mZm1wZWc1LnBh dGNoCiBkZWxldGUgbW9kZSAxMjAwMDAgc3JjcGtncy9mZm1wZWc0L2ZmbXBlZzQKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2ZmbXMyL3BhdGNoZXMvZmZtcGVnNS5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzAwMDEtRml4LWluZmluaXRlLWxvb3At aW4tTWVudS1jeWNsZWl0ZW1zLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvMjI4NjZjNGQzMGY1YjI4OWM0MjljNWNhODhkODAwMjAwZGI0ZmM0Zi5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL01pbk92ZXJsYXBQ bGFjZW1lbnQuY2NfaW1wcm92ZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1 eGJveC9wYXRjaGVzL2NlbnRlci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1 eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9yZWxhdGl2ZV9yZWxhdGl2ZS5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhfaW1wcm92ZS5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhfb3Zl cnNpemUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9m b2N1c19jbG9zZV9tZW51LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4Ym94 L3BhdGNoZXMvc2xpdF9yYWlzZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1 eGJveC9wYXRjaGVzL3Rvb2xiYXJfcmVkby5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZmx1eGJveC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hlbGwucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy91bmNsdXR0ZXJfZml4X3dvcmtzcGFjZWNt ZC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9s b29wcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVz L2ZmbXBlZzUtMS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ29sZGVuZGljdC9w YXRjaGVzL2ZmbXBlZzUtMi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ29sZGVu ZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bWdiYS9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 b3gvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9RTVBsYXkyL3Rl bXBsYXRlIGIvc3JjcGtncy9RTVBsYXkyL3RlbXBsYXRlCmluZGV4IGFkNzNjYmIwMWJhZS4uNTUy ODRjMDUxMTYxIDEwMDY0NAotLS0gYS9zcmNwa2dzL1FNUGxheTIvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9RTVBsYXkyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnUU1QbGF5MicKIHBrZ25hbWU9UU1QbGF5MgogdmVyc2lvbj0yMy4wMi4wNQotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyBxdDUtcW1ha2UgcXQ1LWhvc3QtdG9vbHMiCiBtYWtlZGVwZW5kcz0iYWxzYS1saWItZGV2 ZWwgZmZtcGVnLWRldmVsIGxpYmFzcy1kZXZlbCBsaWJjZGlvLWRldmVsIGxpYmdtZS1kZXZlbApk aWZmIC0tZ2l0IGEvc3JjcGtncy9hbHNhLXBsdWdpbnMvdGVtcGxhdGUgYi9zcmNwa2dzL2Fsc2Et cGx1Z2lucy90ZW1wbGF0ZQppbmRleCAwYmZhNmQ5ZmQyNjQuLmE1NzA4YTdkODJhOCAxMDA2NDQK LS0tIGEvc3JjcGtncy9hbHNhLXBsdWdpbnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hbHNhLXBs dWdpbnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhbHNh LXBsdWdpbnMnCiBwa2duYW1lPWFsc2EtcGx1Z2lucwogdmVyc2lvbj0xLjIuNy4xCi1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJn cz0iLS1kaXNhYmxlLW1hZW1vLXBsdWdpbiIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYXJjYW4vdGVtcGxhdGUgYi9zcmNwa2dzL2FyY2FuL3RlbXBs YXRlCmluZGV4IDdiZTk2NTJlY2NmMy4uY2NjN2RmMTFjZWFjIDEwMDY0NAotLS0gYS9zcmNwa2dz L2FyY2FuL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYXJjYW4vdGVtcGxhdGUKQEAgLTIsNyArMiw3 IEBACiAjICEhIGtlZXAgc3luY2VkIHdpdGg6IGFjZmdmcyBhY2xpcCBhbG9hZGltYWdlCiBwa2du YW1lPWFyY2FuCiB2ZXJzaW9uPTAuNi4yLjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGNyZWF0 ZV93cmtzcmM9eWVzCiBidWlsZF93cmtzcmM9YXJjYW4vc3JjCiBidWlsZF9zdHlsZT1jbWFrZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9hdHRyYWN0L3RlbXBsYXRlIGIvc3JjcGtncy9hdHRyYWN0L3Rl bXBsYXRlCmluZGV4IDI2MTQ0ZTkzMWEzYy4uMjQwMTdkMmJhY2MyIDEwMDY0NAotLS0gYS9zcmNw a2dzL2F0dHJhY3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hdHRyYWN0L3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYXR0cmFjdCcKIHBrZ25hbWU9YXR0cmFj dAogdmVyc2lvbj0yLjYuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251 LW1ha2VmaWxlCiBtYWtlX2J1aWxkX2FyZ3M9IlZFUkJPU0U9MSIKIG1ha2VfdXNlX2Vudj15ZXMK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYXViaW8vcGF0Y2hlcy9mZm1wZWc1LnBhdGNoIGIvc3JjcGtn cy9hdWJpby9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5hMmM4ZTExZWNmZjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2F1 YmlvL3BhdGNoZXMvZmZtcGVnNS5wYXRjaApAQCAtMCwwICsxLDM3IEBACitjb21taXQgMzVlZWUw MDNmMDM0YTFhMjA5N2NkNDU1N2RlYjc3M2VhY2IxOGY3YgorQXV0aG9yOiB0aWJlcXVhZG9yaWFu IDx0aWJlcXVhZG9yaWFuQHBvc3Rlby5kZT4KK0RhdGU6ICAgU2F0IE1hciAxOSAxODo0MDoxMSAy MDIyICswMTAwCisKKyAgICBhdWJpbzogcmVidWlsZCBhZ2FpbnN0IGZmbXBlZy01LjAKKworZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvYXViaW8vcGF0Y2hlcy9mZm1wZWctNS4wLnBhdGNoIGIvc3JjcGtn cy9hdWJpby9wYXRjaGVzL2ZmbXBlZy01LjAucGF0Y2gKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwMDAwLi5hYWNlNDFhNmU2CistLS0gL2Rldi9udWxsCisrKysgYi9zcmNwa2dz L2F1YmlvL3BhdGNoZXMvZmZtcGVnLTUuMC5wYXRjaAorQEAgLTAsMCArMSwyNSBAQAorK0Zyb20g OGEwNTQyMGU1ZGQ4YzdiOGIyNDQ3ZjgyZGM5MTk3NjU4NzY1MTFiMyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKKytGcm9tOiBQYXVsIEJyb3NzaWVyIDxwaWVtQHBpZW0ub3JnPgorK0RhdGU6IFR1 ZSwgMjUgSmFuIDIwMjIgMTg6MzA6MjcgKzAxMDAKKytTdWJqZWN0OiBbUEFUQ0hdIFtzb3VyY2Vf YXZjb2RlY10gZGVmaW5lIEZGX0FQSV9MQVZGX0FWQ1RYIGZvciBsaWJhdmNvZGVjID4KKysgNTks IHRoeCBAYmVyb2xpbnV4IChjbG9zZXMgZ2gtMzUzKQorKworKy0tLQorKyBzcmMvaW8vc291cmNl X2F2Y29kZWMuYyB8IDQgKysrKworKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisr CisrZGlmZiAtLWdpdCBhL3NyYy9pby9zb3VyY2VfYXZjb2RlYy5jIGIvc3JjL2lvL3NvdXJjZV9h dmNvZGVjLmMKKytpbmRleCBlMGFlOTNiNS4uMTQyMWJkOWEgMTAwNjQ0CisrLS0tIGEvc3JjL2lv L3NvdXJjZV9hdmNvZGVjLmMKKysrKysgYi9zcmMvaW8vc291cmNlX2F2Y29kZWMuYworK0BAIC02 OCw2ICs2OCwxMCBAQAorKyAjZGVmaW5lIEFVQklPX0FWQ09ERUNfTUFYX0JVRkZFUl9TSVpFIEFW X0lOUFVUX0JVRkZFUl9NSU5fU0laRQorKyAjZW5kaWYKKysgCisrKyNpZiBMSUJBVkNPREVDX1ZF UlNJT05fTUFKT1IgPj0gNTkKKysrI2RlZmluZSBGRl9BUElfTEFWRl9BVkNUWCAxCisrKyNlbmRp ZgorKysKKysgc3RydWN0IF9hdWJpb19zb3VyY2VfYXZjb2RlY190IHsKKysgICB1aW50X3QgaG9w X3NpemU7CisrICAgdWludF90IHNhbXBsZXJhdGU7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2F1Ymlv L3RlbXBsYXRlIGIvc3JjcGtncy9hdWJpby90ZW1wbGF0ZQppbmRleCBhZDFjNGIyNTY5OTEuLjdk ODc1Y2MwMjU0MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9hdWJpby90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2F1YmlvL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn YXViaW8nCiBwa2duYW1lPWF1YmlvCiB2ZXJzaW9uPTAuNC45Ci1yZXZpc2lvbj0xCityZXZpc2lv bj0yCiBidWlsZF9zdHlsZT13YWYzCiAjIFhYWCBsYXNoLCBwdXJlIGFuZCBzd2lnIHN1cHBvcnQu CiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgdHh0Mm1hbiIKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvYXVkYWNpb3VzLXBsdWdpbnMvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoIGIvc3JjcGtncy9hdWRh Y2lvdXMtcGx1Z2lucy9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi40ZTVlMzQwOTlkNzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2F1ZGFjaW91cy1wbHVnaW5zL3BhdGNoZXMvZmZtcGVnNS5wYXRjaApAQCAtMCwwICsxLDQz IEBACitjb21taXQgMjk4YWEzNzFjNTZjMmY1MmMyNWEzM2Q5YmRlYzQ5MThiMTFjZWJkYworQXV0 aG9yOiB0aWJlcXVhZG9yaWFuIDx0aWJlcXVhZG9yaWFuQHBvc3Rlby5kZT4KK0RhdGU6ICAgU2F0 IE1hciAxOSAxODo0MDoxMiAyMDIyICswMTAwCisKKyAgICBhdWRhY2lvdXMtcGx1Z2luczogcmVi dWlsZCBhZ2FpbnN0IGZmbXBlZy01LjAKKworZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYXVkYWNpb3Vz LXBsdWdpbnMvcGF0Y2hlcy9mZm1wZWctNS4wLnBhdGNoIGIvc3JjcGtncy9hdWRhY2lvdXMtcGx1 Z2lucy9wYXRjaGVzL2ZmbXBlZy01LjAucGF0Y2gKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwMDAwLi42MTdjMTEyMTViCistLS0gL2Rldi9udWxsCisrKysgYi9zcmNwa2dzL2F1 ZGFjaW91cy1wbHVnaW5zL3BhdGNoZXMvZmZtcGVnLTUuMC5wYXRjaAorQEAgLTAsMCArMSwzMSBA QAorK0Zyb20gZjYwYmViNDAwZWViMWU0Nzc4YmJmZDczOGJjNGE0Y2NlZjNkZTUzOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKKytGcm9tOiBKb2huIExpbmRncmVuIDxqb2huQGpsaW5kZ3Jlbi5u ZXQ+CisrRGF0ZTogU2F0LCA1IE1hciAyMDIyIDEyOjA1OjM0IC0wNTAwCisrU3ViamVjdDogW1BB VENIXSBGaXggYnVpbGQgd2l0aCBGRm1wZWcgNS4wCisrCisrLS0tCisrIHNyYy9mZmF1ZGlvL2Zm YXVkaW8tY29yZS5jYyB8IDQgKystLQorKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQorKworK2RpZmYgLS1naXQgYS9zcmMvZmZhdWRpby9mZmF1ZGlvLWNv cmUuY2MgYi9zcmMvZmZhdWRpby9mZmF1ZGlvLWNvcmUuY2MKKytpbmRleCAxNmRjNjNlM2EuLmEy Yjk1ZmQ2YyAxMDA2NDQKKystLS0gYS9zcmMvZmZhdWRpby9mZmF1ZGlvLWNvcmUuY2MKKysrKysg Yi9zcmMvZmZhdWRpby9mZmF1ZGlvLWNvcmUuY2MKKytAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRp YyBBVklucHV0Rm9ybWF0ICogZ2V0X2Zvcm1hdF9ieV9jb250ZW50IChjb25zdCBjaGFyICogbmFt ZSwgVkZTRmlsZSAmIGZpbGUpCisrICAgICAgICAgQVZQcm9iZURhdGEgZCA9IHtuYW1lLCBidWYs IGZpbGxlZH07CisrICAgICAgICAgc2NvcmUgPSB0YXJnZXQ7CisrIAorKy0gICAgICAgIGYgPSBh dl9wcm9iZV9pbnB1dF9mb3JtYXQyICgmIGQsIHRydWUsICYgc2NvcmUpOworKysgICAgICAgIGYg PSAoQVZJbnB1dEZvcm1hdCAqKSBhdl9wcm9iZV9pbnB1dF9mb3JtYXQyICgmIGQsIHRydWUsICYg c2NvcmUpOworKyAgICAgICAgIGlmIChmKQorKyAgICAgICAgICAgICBicmVhazsKKysgCisrQEAg LTM0Nyw3ICszNDcsNyBAQCBzdGF0aWMgYm9vbCBmaW5kX2NvZGVjIChBVkZvcm1hdENvbnRleHQg KiBjLCBDb2RlY0luZm8gKiBjaW5mbykKKysgI2VuZGlmCisrICAgICAgICAgaWYgKHN0cmVhbSAm JiBzdHJlYW0tPmNvZGVjcGFyICYmIHN0cmVhbS0+Y29kZWNwYXItPmNvZGVjX3R5cGUgPT0gQVZN RURJQV9UWVBFX0FVRElPKQorKyAgICAgICAgIHsKKystICAgICAgICAgICAgQVZDb2RlYyAqIGNv ZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIgKHN0cmVhbS0+Y29kZWNwYXItPmNvZGVjX2lkKTsK KysrICAgICAgICAgICAgQVZDb2RlYyAqIGNvZGVjID0gKEFWQ29kZWMgKikgYXZjb2RlY19maW5k X2RlY29kZXIgKHN0cmVhbS0+Y29kZWNwYXItPmNvZGVjX2lkKTsKKysgCisrICAgICAgICAgICAg IGlmIChjb2RlYykKKysgICAgICAgICAgICAgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdWRhY2lv dXMtcGx1Z2lucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvYXVkYWNpb3VzLXBsdWdpbnMvdGVtcGxhdGUK aW5kZXggOTEwZWMwZDE4OTFmLi5kZWYwNjc4YmM2MTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXVk YWNpb3VzLXBsdWdpbnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hdWRhY2lvdXMtcGx1Z2lucy90 ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKICNLZWVwIGluIHN5bmMgd2l0aCBhdWRhY2lvdXMhCiBw a2duYW1lPWF1ZGFjaW91cy1wbHVnaW5zCiB2ZXJzaW9uPTQuMgotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9l bmFibGUgZ3RrKSAkKHZvcHRfZW5hYmxlIHF0KSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBw a2ctY29uZmlnIGdsaWItZGV2ZWwiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F1ZGFjaXR5L3RlbXBs YXRlIGIvc3JjcGtncy9hdWRhY2l0eS90ZW1wbGF0ZQppbmRleCBkNTA5YzBhODk0MDcuLmMxOGE0 ZWViMGE3MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9hdWRhY2l0eS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2F1ZGFjaXR5L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnYXVkYWNpdHknCiBwa2duYW1lPWF1ZGFjaXR5CiB2ZXJzaW9uPTIuNC4xCi1yZXZpc2lvbj0y CityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0i LS13aXRoLWZmbXBlZz1zeXN0ZW0gLS13aXRoLWxpYnNuZGZpbGU9c3lzdGVtIC0td2l0aC1leHBh dD1zeXN0ZW0KICAtLXdpdGgtbGlic294cj1zeXN0ZW0gLS13aXRoLWxhbWU9c3lzdGVtIC0td2l0 aC1sdjI9c3lzdGVtIGFjX2N2X3BhdGhfV1hfQ09ORklHPXd4LWNvbmZpZy1ndGszIgpAQCAtMzMs NSArMzMsNCBAQCBwb3N0X2luc3RhbGwoKSB7CiAJdmNvcHkgcGx1Zy1pbnMgL3Vzci9zaGFyZS9h dWRhY2l0eQogCiAJcm0gJHtERVNURElSfS91c3Ivc2hhcmUvZG9jL2F1ZGFjaXR5L0xJQ0VOU0Uu dHh0Ci0JdmxpY2Vuc2UgTElDRU5TRS50eHQgTElDRU5TRQogfQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9hdmlkZW11eC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYXZpZGVtdXgvdGVtcGxhdGUKaW5kZXggMjUz YTAyNDNlMjI1Li41NTcyODU5ODJkMmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXZpZGVtdXgvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9hdmlkZW11eC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2F2aWRlbXV4JwogcGtnbmFtZT1hdmlkZW11eAogdmVyc2lvbj0y LjguMAotcmV2aXNpb249MgorcmV2aXNpb249MwogIyBDYW4ndCBiZSBjb21waWxlZCBmb3IgYWFy Y2g2NCwgYXJtKiBvciBtaXBzKgogYXJjaHM9Ing4Nl82NCogaTY4NioiCiBob3N0bWFrZWRlcGVu ZHM9ImNtYWtlIHBrZy1jb25maWcgcXQ1LWhvc3QtdG9vbHMgcXQ1LWRldmVsIHRhciB5YXNtIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9iYXJlc2lwL3RlbXBsYXRlIGIvc3JjcGtncy9iYXJlc2lwL3Rl bXBsYXRlCmluZGV4IGYxYmQxODE3MDQ4Yi4uYjIxZTIyMzM0MzE2IDEwMDY0NAotLS0gYS9zcmNw a2dzL2JhcmVzaXAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iYXJlc2lwL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFyZXNpcCcKIHBrZ25hbWU9YmFyZXNp cAogdmVyc2lvbj0yLjEwLjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNt YWtlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRz PSJsaWJnc20tZGV2ZWwgbGlicG5nLWRldmVsIG9wZW5zc2wtZGV2ZWwgbGlic25kZmlsZS1kZXZl bApkaWZmIC0tZ2l0IGEvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlIGIvc3JjcGtncy9ibGVuZGVy L3RlbXBsYXRlCmluZGV4IGEzMjU1Y2RkYmM5NS4uNGVjNzNlMDVhY2Y1IDEwMDY0NAotLS0gYS9z cmNwa2dzL2JsZW5kZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmxlbmRlcicKIHBrZ25hbWU9Ymxl bmRlcgogdmVyc2lvbj0zLjQuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYXJjaHM9Ing4Nl82 NCogcHBjNjQqIgogYnVpbGRfc3R5bGU9ImNtYWtlIgogcHljb21waWxlX2RpcnM9Ii91c3Ivc2hh cmUvYmxlbmRlci8ke3ZlcnNpb24lLip9L3NjcmlwdHMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nh bnRhdGEvdGVtcGxhdGUgYi9zcmNwa2dzL2NhbnRhdGEvdGVtcGxhdGUKaW5kZXggNGI0MTdkODBk NWMyLi44YTkwYWFhNGMwN2EgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2FudGF0YS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2NhbnRhdGEvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdjYW50YXRhJwogcGtnbmFtZT1jYW50YXRhCiB2ZXJzaW9uPTIuNS4wCi1yZXZp c2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyBxdDUtdG9vbHMiCiBtYWtlZGVwZW5k cz0icXQ1LWRldmVsIHF0NS10b29scy1kZXZlbCBxdDUtc3ZnLWRldmVsIHF0NS14bWxwYXR0ZXJu cy1kZXZlbApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jY2V4dHJhY3Rvci90ZW1wbGF0ZSBiL3NyY3Br Z3MvY2NleHRyYWN0b3IvdGVtcGxhdGUKaW5kZXggOWFiY2Q4Mjg1MmIyLi43ZmUyYmE0ZjI3YjYg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2NleHRyYWN0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j Y2V4dHJhY3Rvci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2NjZXh0cmFjdG9yJwogcGtnbmFtZT1jY2V4dHJhY3RvcgogdmVyc2lvbj0wLjkzCi1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF93cmtzcmM9ImxpbnV4IgogYnVpbGRfc3R5bGU9Z251LWNv bmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLW9jciAtLWVuYWJsZS1oYXJkc3VieCIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21hcHJpbnQvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoIGIv c3JjcGtncy9jaHJvbWFwcmludC9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hOWZkMzA3YTIzYzgKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL2Nocm9tYXByaW50L3BhdGNoZXMvZmZtcGVnNS5wYXRjaApAQCAtMCwwICsxLDU2 OSBAQAorRnJvbSA4Y2NhZDY5MzcxNzdiMWI5MmU0MGFiOGY0NDQ3ZWEyN2JhYzAwOWE3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0x1az1DMz1BMT1DNT1BMT0yMExh bGluc2s9QzM9QkQ/PSA8bGFsaW5za3lAZ21haWwuY29tPgorRGF0ZTogRnJpLCA0IE5vdiAyMDIy IDIxOjQ3OjM4ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSBGRm1wZWcgNS54ICgjMTIwKQor CisqIFVzZSBGRm1wZWcgNS4xLjIgZm9yIENJIGJ1aWxkcworCisqIEJ1aWxkIG9uIFVidW50dSAy MC4wNAorCisqIFVwZ3JhZGUgY29kZSB0byBGRm1wZWcgNS54IEFQSXMKKworKiBPbmx5IHNldCBG Rm1wZWcgaW5jbHVkZSBkaXJzIGlmIGJ1aWxkaW5nIHRvb2xzCisKKyogTm8gbG9uZ2VyIG5lZWRl ZAorCisqIFVzZSB1YnVudHUgMjAuMDQKKy0tLQorIC5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlt bCAgICAgICAgICAgICAgICAgICB8ICAgNiArLQorIENNYWtlTGlzdHMudHh0ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxNiAtLQorIHBhY2thZ2UvYnVpbGQuc2ggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQorIHNyYy9hdWRpby9mZm1wZWdfYXVkaW9fcHJv Y2Vzc29yLmggICAgICAgICAgICB8ICAgMiAtCisgc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19wcm9j ZXNzb3JfYXZyZXNhbXBsZS5oIHwgIDcyIC0tLS0tLS0KKyBzcmMvYXVkaW8vZmZtcGVnX2F1ZGlv X3Byb2Nlc3Nvcl9zd3Jlc2FtcGxlLmggfCAgMTggKy0KKyBzcmMvYXVkaW8vZmZtcGVnX2F1ZGlv X3JlYWRlci5oICAgICAgICAgICAgICAgfCAxOTcgKysrKysrKysrLS0tLS0tLS0tCisgdGVzdHMv Q01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKKyA4IGZpbGVz IGNoYW5nZWQsIDEyMiBpbnNlcnRpb25zKCspLCAxOTkgZGVsZXRpb25zKC0pCisgZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyYy9hdWRpby9mZm1wZWdfYXVkaW9fcHJvY2Vzc29yX2F2cmVzYW1wbGUuaAor CitkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAoraW5kZXggZjhk NmEzMi4uNGRhMjQwNSAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysgYi9DTWFrZUxp c3RzLnR4dAorQEAgLTg0LDkgKzg0LDYgQEAgZmluZF9wYWNrYWdlKEZGbXBlZykKKyBpZihGRk1Q RUdfTElCUkFSSUVTKQorIAljbWFrZV9wdXNoX2NoZWNrX3N0YXRlKFJFU0VUKQorIAlzZXQoQ01B S0VfUkVRVUlSRURfTElCUkFSSUVTICR7RkZNUEVHX0xJQlJBUklFU30gJHtDTUFLRV9USFJFQURf TElCU19JTklUfSAtbG0pCistCWNoZWNrX2Z1bmN0aW9uX2V4aXN0cyhhdl9wYWNrZXRfdW5yZWYg SEFWRV9BVl9QQUNLRVRfVU5SRUYpCistCWNoZWNrX2Z1bmN0aW9uX2V4aXN0cyhhdl9mcmFtZV9h bGxvYyBIQVZFX0FWX0ZSQU1FX0FMTE9DKQorLQljaGVja19mdW5jdGlvbl9leGlzdHMoYXZfZnJh bWVfZnJlZSBIQVZFX0FWX0ZSQU1FX0ZSRUUpCisgCWNtYWtlX3BvcF9jaGVja19zdGF0ZSgpCisg ZW5kaWYoKQorCitAQCAtMTYzLDE0ICsxNjAsMTEgQEAgbWVzc2FnZShTVEFUVVMgIlVzaW5nICR7 RkZUX0xJQn0gZm9yIEZGVCBjYWxjdWxhdGlvbnMiKQorIGlmKE5PVCBBVURJT19QUk9DRVNTT1Jf TElCKQorIAlpZihGRk1QRUdfTElCU1dSRVNBTVBMRV9GT1VORCkKKyAJCXNldChBVURJT19QUk9D RVNTT1JfTElCICJzd3Jlc2FtcGxlIikKKy0JZWxzZWlmKEZGTVBFR19MSUJBVlJFU0FNUExFX0ZP VU5EKQorLQkJc2V0KEFVRElPX1BST0NFU1NPUl9MSUIgImF2cmVzYW1wbGUiKQorIAllbmRpZigp CisgZW5kaWYoKQorCisgaWYoQVVESU9fUFJPQ0VTU09SX0xJQiBTVFJFUVVBTCAic3dyZXNhbXBs ZSIpCisgCWlmKEZGTVBFR19MSUJTV1JFU0FNUExFX0ZPVU5EKQorLQkJc2V0KFVTRV9BVlJFU0FN UExFIE9GRikKKyAJCXNldChVU0VfU1dSRVNBTVBMRSBPTikKKyAJCXNldChBVURJT19QUk9DRVNT T1JfTElCUkFSSUVTICR7RkZNUEVHX0xJQlNXUkVTQU1QTEVfTElCUkFSSUVTfSkKKyAJCXNldChB VURJT19QUk9DRVNTT1JfSU5DTFVERV9ESVJTICR7RkZNUEVHX0xJQlNXUkVTQU1QTEVfSU5DTFVE RV9ESVJTfSkKK0BAIC0xNzgsMTYgKzE3Miw2IEBAIGlmKEFVRElPX1BST0NFU1NPUl9MSUIgU1RS RVFVQUwgInN3cmVzYW1wbGUiKQorIAkJbWVzc2FnZShGQVRBTF9FUlJPUiAiU2VsZWN0ZWQgJHtB VURJT19QUk9DRVNTT1JfTElCfSBmb3IgYXVkaW8gcHJvY2Vzc2luZywgYnV0IHRoZSBsaWJyYXJ5 IGlzIG5vdCBmb3VuZCIpCisgCWVuZGlmKCkKKyAJbWVzc2FnZShTVEFUVVMgIlVzaW5nICR7QVVE SU9fUFJPQ0VTU09SX0xJQn0gZm9yIGF1ZGlvIGNvbnZlcnNpb24iKQorLWVsc2VpZihBVURJT19Q Uk9DRVNTT1JfTElCIFNUUkVRVUFMICJhdnJlc2FtcGxlIikKKy0JaWYoRkZNUEVHX0xJQkFWUkVT QU1QTEVfRk9VTkQpCistCQlzZXQoVVNFX0FWUkVTQU1QTEUgT04pCistCQlzZXQoVVNFX1NXUkVT QU1QTEUgT0ZGKQorLQkJc2V0KEFVRElPX1BST0NFU1NPUl9MSUJSQVJJRVMgJHtGRk1QRUdfTElC QVZSRVNBTVBMRV9MSUJSQVJJRVN9KQorLQkJc2V0KEFVRElPX1BST0NFU1NPUl9JTkNMVURFX0RJ UlMgJHtGRk1QRUdfTElCQVZSRVNBTVBMRV9JTkNMVURFX0RJUlN9KQorLQllbHNlKCkKKy0JCW1l c3NhZ2UoRkFUQUxfRVJST1IgIlNlbGVjdGVkICR7QVVESU9fUFJPQ0VTU09SX0xJQn0gZm9yIGF1 ZGlvIHByb2Nlc3NpbmcsIGJ1dCB0aGUgbGlicmFyeSBpcyBub3QgZm91bmQiKQorLQllbmRpZigp CistCW1lc3NhZ2UoU1RBVFVTICJVc2luZyAke0FVRElPX1BST0NFU1NPUl9MSUJ9IGZvciBhdWRp byBjb252ZXJzaW9uIikKKyBlbHNlKCkKKyAJbWVzc2FnZShTVEFUVVMgIkJ1aWxkaW5nIHdpdGhv dXQgYXVkaW8gY29udmVyc2lvbiBzdXBwb3J0LCBwbGVhc2UgaW5zdGFsbCBGRm1wZWcgd2l0aCBs aWJzd3Jlc2FtcGxlIikKKyBlbmRpZigpCitkaWZmIC0tZ2l0IGEvcGFja2FnZS9idWlsZC5zaCBi L3BhY2thZ2UvYnVpbGQuc2gKK2luZGV4IGRhNjMxYWUuLmI0MWQzNmUgMTAwNzU1CistLS0gYS9w YWNrYWdlL2J1aWxkLnNoCisrKysgYi9wYWNrYWdlL2J1aWxkLnNoCitAQCAtNyw4ICs3LDggQEAg c2V0IC1ldXgKKworIEJBU0VfRElSPSQoY2QgJChkaXJuYW1lICQwKS8uLiAmJiBwd2QpCisKKy1G Rk1QRUdfVkVSU0lPTj00LjQuMQorLUZGTVBFR19CVUlMRF9UQUc9djQuNC4xLTEKKytGRk1QRUdf VkVSU0lPTj01LjEuMgorK0ZGTVBFR19CVUlMRF9UQUc9diR7RkZNUEVHX1ZFUlNJT059LTEKKwor IFRNUF9CVUlMRF9ESVI9JEJBU0VfRElSLyQobWt0ZW1wIC1kIGJ1aWxkLlhYWFhYWFhYKQorIHRy YXAgJ3JtIC1yZiAkVE1QX0JVSUxEX0RJUicgRVhJVAorZGlmZiAtLWdpdCBhL3NyYy9hdWRpby9m Zm1wZWdfYXVkaW9fcHJvY2Vzc29yLmggYi9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nv ci5oCitpbmRleCA3NjI4ZmM3Li4zOWY0ZjZkIDEwMDY0NAorLS0tIGEvc3JjL2F1ZGlvL2ZmbXBl Z19hdWRpb19wcm9jZXNzb3IuaAorKysrIGIvc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNz b3IuaAorQEAgLTEwLDggKzEwLDYgQEAKKworICNpZiBkZWZpbmVkKFVTRV9TV1JFU0FNUExFKQor ICNpbmNsdWRlICJhdWRpby9mZm1wZWdfYXVkaW9fcHJvY2Vzc29yX3N3cmVzYW1wbGUuaCIKKy0j ZWxpZiBkZWZpbmVkKFVTRV9BVlJFU0FNUExFKQorLSNpbmNsdWRlICJhdWRpby9mZm1wZWdfYXVk aW9fcHJvY2Vzc29yX2F2cmVzYW1wbGUuaCIKKyAjZWxzZQorICNlcnJvciAibm8gYXVkaW8gcHJv Y2Vzc2luZyBsaWJyYXJ5IgorICNlbmRpZgorZGlmZiAtLWdpdCBhL3NyYy9hdWRpby9mZm1wZWdf YXVkaW9fcHJvY2Vzc29yX2F2cmVzYW1wbGUuaCBiL3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcHJv Y2Vzc29yX2F2cmVzYW1wbGUuaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBiZDg1 ZjkyLi4wMDAwMDAwCistLS0gYS9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9hdnJl c2FtcGxlLmgKKysrKyAvZGV2L251bGwKK0BAIC0xLDcyICswLDAgQEAKKy0vLyBDb3B5cmlnaHQg KEMpIDIwMTYgIEx1a2FzIExhbGluc2t5CistLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIE1JVCBs aWNlbnNlLCBzZWUgdGhlIExJQ0VOU0UgZmlsZSBmb3IgZGV0YWlscy4KKy0KKy0jaWZuZGVmIENI Uk9NQVBSSU5UX0FVRElPX0ZGTVBFR19BVURJT19QUk9DRVNTT1JfQVZSRVNBTVBMRV9IXworLSNk ZWZpbmUgQ0hST01BUFJJTlRfQVVESU9fRkZNUEVHX0FVRElPX1BST0NFU1NPUl9BVlJFU0FNUExF X0hfCistCistZXh0ZXJuICJDIiB7CistI2luY2x1ZGUgPGxpYmF2cmVzYW1wbGUvYXZyZXNhbXBs ZS5oPgorLX0KKy0KKy1uYW1lc3BhY2UgY2hyb21hcHJpbnQgeworLQorLWNsYXNzIEZGbXBlZ0F1 ZGlvUHJvY2Vzc29yIHsKKy1wdWJsaWM6CistCUZGbXBlZ0F1ZGlvUHJvY2Vzc29yKCkgeworLQkJ bV9yZXNhbXBsZV9jdHggPSBhdnJlc2FtcGxlX2FsbG9jX2NvbnRleHQoKTsKKy0JfQorLQorLQl+ RkZtcGVnQXVkaW9Qcm9jZXNzb3IoKSB7CistCQlhdnJlc2FtcGxlX2ZyZWUoJm1fcmVzYW1wbGVf Y3R4KTsKKy0JfQorLQorLQl2b2lkIFNldENvbXBhdGlibGVNb2RlKCkgeworLQkJYXZfb3B0X3Nl dF9pbnQobV9yZXNhbXBsZV9jdHgsICJmaWx0ZXJfc2l6ZSIsIDE2LCAwKTsKKy0JCWF2X29wdF9z ZXRfaW50KG1fcmVzYW1wbGVfY3R4LCAicGhhc2Vfc2hpZnQiLCA4LCAwKTsKKy0JCWF2X29wdF9z ZXRfaW50KG1fcmVzYW1wbGVfY3R4LCAibGluZWFyX2ludGVycCIsIDEsIDApOworLQkJYXZfb3B0 X3NldF9kb3VibGUobV9yZXNhbXBsZV9jdHgsICJjdXRvZmYiLCAwLjgsIDApOworLQl9CistCist CXZvaWQgU2V0SW5wdXRDaGFubmVsTGF5b3V0KGludDY0X3QgY2hhbm5lbF9sYXlvdXQpIHsKKy0J CWF2X29wdF9zZXRfaW50KG1fcmVzYW1wbGVfY3R4LCAiaW5fY2hhbm5lbF9sYXlvdXQiLCBjaGFu bmVsX2xheW91dCwgMCk7CistCX0KKy0KKy0Jdm9pZCBTZXRJbnB1dFNhbXBsZUZvcm1hdChBVlNh bXBsZUZvcm1hdCBzYW1wbGVfZm9ybWF0KSB7CistCQlhdl9vcHRfc2V0X2ludChtX3Jlc2FtcGxl X2N0eCwgImluX3NhbXBsZV9mbXQiLCBzYW1wbGVfZm9ybWF0LCAwKTsKKy0JfQorLQorLQl2b2lk IFNldElucHV0U2FtcGxlUmF0ZShpbnQgc2FtcGxlX3JhdGUpIHsKKy0JCWF2X29wdF9zZXRfaW50 KG1fcmVzYW1wbGVfY3R4LCAiaW5fc2FtcGxlX3JhdGUiLCBzYW1wbGVfcmF0ZSwgMCk7CistCX0K Ky0KKy0Jdm9pZCBTZXRPdXRwdXRDaGFubmVsTGF5b3V0KGludDY0X3QgY2hhbm5lbF9sYXlvdXQp IHsKKy0JCWF2X29wdF9zZXRfaW50KG1fcmVzYW1wbGVfY3R4LCAib3V0X2NoYW5uZWxfbGF5b3V0 IiwgY2hhbm5lbF9sYXlvdXQsIDApOworLQl9CistCistCXZvaWQgU2V0T3V0cHV0U2FtcGxlRm9y bWF0KEFWU2FtcGxlRm9ybWF0IHNhbXBsZV9mb3JtYXQpIHsKKy0JCWF2X29wdF9zZXRfaW50KG1f cmVzYW1wbGVfY3R4LCAib3V0X3NhbXBsZV9mbXQiLCBzYW1wbGVfZm9ybWF0LCAwKTsKKy0JfQor LQorLQl2b2lkIFNldE91dHB1dFNhbXBsZVJhdGUoaW50IHNhbXBsZV9yYXRlKSB7CistCQlhdl9v cHRfc2V0X2ludChtX3Jlc2FtcGxlX2N0eCwgIm91dF9zYW1wbGVfZm10Iiwgc2FtcGxlX3JhdGUs IDApOworLQl9CistCistCWludCBJbml0KCkgeworLQkJcmV0dXJuIGF2cmVzYW1wbGVfb3Blbiht X3Jlc2FtcGxlX2N0eCk7CistCX0KKy0KKy0JaW50IENvbnZlcnQodWludDhfdCAqKm91dCwgaW50 IG91dF9jb3VudCwgY29uc3QgdWludDhfdCAqKmluLCBpbnQgaW5fY291bnQpIHsKKy0JCXJldHVy biBhdnJlc2FtcGxlX2NvbnZlcnQobV9yZXNhbXBsZV9jdHgsIG91dCwgMCwgb3V0X2NvdW50LCAo dWludDhfdCAqKikgaW4sIDAsIGluX2NvdW50KTsKKy0JfQorLQorLQlpbnQgRmx1c2godWludDhf dCAqKm91dCwgaW50IG91dF9jb3VudCkgeworLQkJcmV0dXJuIGF2cmVzYW1wbGVfcmVhZChtX3Jl c2FtcGxlX2N0eCwgb3V0LCBvdXRfY291bnQpOworLQl9CistCistcHJpdmF0ZToKKy0JQVZBdWRp b1Jlc2FtcGxlQ29udGV4dCAqbV9yZXNhbXBsZV9jdHggPSBudWxscHRyOworLX07CistCistfTsg Ly8gbmFtZXNwYWNlIGNocm9tYXByaW50CistCistI2VuZGlmCitkaWZmIC0tZ2l0IGEvc3JjL2F1 ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNzb3Jfc3dyZXNhbXBsZS5oIGIvc3JjL2F1ZGlvL2ZmbXBl Z19hdWRpb19wcm9jZXNzb3Jfc3dyZXNhbXBsZS5oCitpbmRleCBiODYyNjZiLi5iMWQ0YmVhIDEw MDY0NAorLS0tIGEvc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNzb3Jfc3dyZXNhbXBsZS5o CisrKysgYi9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9zd3Jlc2FtcGxlLmgKK0BA IC0yOCwzMCArMjgsMjggQEAgcHVibGljOgorIAkJYXZfb3B0X3NldF9kb3VibGUobV9zd3JfY3R4 LCAiY3V0b2ZmIiwgMC44LCAwKTsKKyAJfQorCistCXZvaWQgU2V0SW5wdXRDaGFubmVsTGF5b3V0 KGludDY0X3QgY2hhbm5lbF9sYXlvdXQpIHsKKy0JCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwg ImljbCIsIGNoYW5uZWxfbGF5b3V0LCAwKTsKKy0JCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwg ImljaCIsIGF2X2dldF9jaGFubmVsX2xheW91dF9uYl9jaGFubmVscyhjaGFubmVsX2xheW91dCks IDApOworKwl2b2lkIFNldElucHV0Q2hhbm5lbExheW91dChBVkNoYW5uZWxMYXlvdXQgKmNoYW5u ZWxfbGF5b3V0KSB7CisrCQlhdl9vcHRfc2V0X2ludChtX3N3cl9jdHgsICJpbl9jaGFubmVsX2xh eW91dCIsIGNoYW5uZWxfbGF5b3V0LT51Lm1hc2ssIDApOworIAl9CisKKyAJdm9pZCBTZXRJbnB1 dFNhbXBsZUZvcm1hdChBVlNhbXBsZUZvcm1hdCBzYW1wbGVfZm9ybWF0KSB7CistCQlhdl9vcHRf c2V0X2ludChtX3N3cl9jdHgsICJpc2YiLCBzYW1wbGVfZm9ybWF0LCAwKTsKKysJCWF2X29wdF9z ZXRfc2FtcGxlX2ZtdChtX3N3cl9jdHgsICJpbl9zYW1wbGVfZm10Iiwgc2FtcGxlX2Zvcm1hdCwg MCk7CisgCX0KKworIAl2b2lkIFNldElucHV0U2FtcGxlUmF0ZShpbnQgc2FtcGxlX3JhdGUpIHsK Ky0JCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgImlzciIsIHNhbXBsZV9yYXRlLCAwKTsKKysJ CWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgImluX3NhbXBsZV9yYXRlIiwgc2FtcGxlX3JhdGUs IDApOworIAl9CisKKy0Jdm9pZCBTZXRPdXRwdXRDaGFubmVsTGF5b3V0KGludDY0X3QgY2hhbm5l bF9sYXlvdXQpIHsKKy0JCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgIm9jbCIsIGNoYW5uZWxf bGF5b3V0LCAwKTsKKy0JCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgIm9jaCIsIGF2X2dldF9j aGFubmVsX2xheW91dF9uYl9jaGFubmVscyhjaGFubmVsX2xheW91dCksIDApOworKwl2b2lkIFNl dE91dHB1dENoYW5uZWxMYXlvdXQoQVZDaGFubmVsTGF5b3V0ICpjaGFubmVsX2xheW91dCkgewor KwkJYXZfb3B0X3NldF9pbnQobV9zd3JfY3R4LCAib3V0X2NoYW5uZWxfbGF5b3V0IiwgY2hhbm5l bF9sYXlvdXQtPnUubWFzaywgMCk7CisgCX0KKworIAl2b2lkIFNldE91dHB1dFNhbXBsZUZvcm1h dChBVlNhbXBsZUZvcm1hdCBzYW1wbGVfZm9ybWF0KSB7CistCQlhdl9vcHRfc2V0X2ludChtX3N3 cl9jdHgsICJvc2YiLCBzYW1wbGVfZm9ybWF0LCAwKTsKKysJCWF2X29wdF9zZXRfc2FtcGxlX2Zt dChtX3N3cl9jdHgsICJvdXRfc2FtcGxlX2ZtdCIsIHNhbXBsZV9mb3JtYXQsIDApOworIAl9CisK KyAJdm9pZCBTZXRPdXRwdXRTYW1wbGVSYXRlKGludCBzYW1wbGVfcmF0ZSkgeworLQkJYXZfb3B0 X3NldF9pbnQobV9zd3JfY3R4LCAib3NyIiwgc2FtcGxlX3JhdGUsIDApOworKwkJYXZfb3B0X3Nl dF9pbnQobV9zd3JfY3R4LCAib3V0X3NhbXBsZV9yYXRlIiwgc2FtcGxlX3JhdGUsIDApOworIAl9 CisKKyAJaW50IEluaXQoKSB7CitkaWZmIC0tZ2l0IGEvc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19y ZWFkZXIuaCBiL3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcmVhZGVyLmgKK2luZGV4IDU1NTAxNjQu LjFjNmIzNDYgMTAwNjQ0CistLS0gYS9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3JlYWRlci5oCisr KysgYi9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3JlYWRlci5oCitAQCAtNjIsNyArNjIsNyBAQCBw dWJsaWM6CisgCWJvb2wgUmVhZChjb25zdCBpbnQxNl90ICoqZGF0YSwgc2l6ZV90ICpzaXplKTsK KworIAlib29sIElzT3BlbigpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbmVkOyB9CistCWJvb2wgSXNG aW5pc2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmluaXNoZWQgJiYgIW1fZ290X2ZyYW1lOyB9Cisr CWJvb2wgSXNGaW5pc2hlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2hhc19tb3JlX3BhY2tldHMgJiYg IW1faGFzX21vcmVfZnJhbWVzOyB9CisKKyAJc3RkOjpzdHJpbmcgR2V0RXJyb3IoKSBjb25zdCB7 IHJldHVybiBtX2Vycm9yOyB9CisgCWludCBHZXRFcnJvckNvZGUoKSBjb25zdCB7IHJldHVybiBt X2Vycm9yX2NvZGU7IH0KK0BAIC03NCwyMCArNzQsMTkgQEAgcHJpdmF0ZToKKyAJdWludDhfdCAq bV9jb252ZXJ0X2J1ZmZlclsxXSA9IHsgbnVsbHB0ciB9OworIAlpbnQgbV9jb252ZXJ0X2J1ZmZl cl9uYl9zYW1wbGVzID0gMDsKKworLQlBVklucHV0Rm9ybWF0ICptX2lucHV0X2ZtdCA9IG51bGxw dHI7CisrCWNvbnN0IEFWSW5wdXRGb3JtYXQgKm1faW5wdXRfZm10ID0gbnVsbHB0cjsKKyAJQVZE aWN0aW9uYXJ5ICptX2lucHV0X29wdHMgPSBudWxscHRyOworCisgCUFWRm9ybWF0Q29udGV4dCAq bV9mb3JtYXRfY3R4ID0gbnVsbHB0cjsKKyAJQVZDb2RlY0NvbnRleHQgKm1fY29kZWNfY3R4ID0g bnVsbHB0cjsKKy0JQVZGcmFtZSAqbV9mcmFtZSA9IG51bGxwdHI7CisgCWludCBtX3N0cmVhbV9p bmRleCA9IC0xOworIAlzdGQ6OnN0cmluZyBtX2Vycm9yOworIAlpbnQgbV9lcnJvcl9jb2RlID0g MDsKKy0JYm9vbCBtX2ZpbmlzaGVkID0gZmFsc2U7CisgCWJvb2wgbV9vcGVuZWQgPSBmYWxzZTsK Ky0JaW50IG1fZ290X2ZyYW1lID0gMDsKKy0JQVZQYWNrZXQgbV9wYWNrZXQ7CistCUFWUGFja2V0 IG1fcGFja2V0MDsKKysJYm9vbCBtX2hhc19tb3JlX3BhY2tldHMgPSB0cnVlOworKwlib29sIG1f aGFzX21vcmVfZnJhbWVzID0gdHJ1ZTsKKysJQVZQYWNrZXQgKm1fcGFja2V0ID0gbnVsbHB0cjsK KysJQVZGcmFtZSAqbV9mcmFtZSA9IG51bGxwdHI7CisKKyAJaW50IG1fb3V0cHV0X3NhbXBsZV9y YXRlID0gMDsKKyAJaW50IG1fb3V0cHV0X2NoYW5uZWxzID0gMDsKK0BAIC05OCwxOSArOTcsMTIg QEAgcHJpdmF0ZToKKworIGlubGluZSBGRm1wZWdBdWRpb1JlYWRlcjo6RkZtcGVnQXVkaW9SZWFk ZXIoKSB7CisgCWF2X2xvZ19zZXRfbGV2ZWwoQVZfTE9HX1FVSUVUKTsKKy0KKy0JYXZfaW5pdF9w YWNrZXQoJm1fcGFja2V0KTsKKy0JbV9wYWNrZXQuZGF0YSA9IG51bGxwdHI7CistCW1fcGFja2V0 LnNpemUgPSAwOworLQorLQltX3BhY2tldDAgPSBtX3BhY2tldDsKKyB9CisKKyBpbmxpbmUgRkZt cGVnQXVkaW9SZWFkZXI6On5GRm1wZWdBdWRpb1JlYWRlcigpIHsKKyAJQ2xvc2UoKTsKKyAJYXZf ZGljdF9mcmVlKCZtX2lucHV0X29wdHMpOworIAlhdl9mcmVlcCgmbV9jb252ZXJ0X2J1ZmZlclsw XSk7CistCWF2X3BhY2tldF91bnJlZigmbV9wYWNrZXQwKTsKKyB9CisKKyBpbmxpbmUgYm9vbCBG Rm1wZWdBdWRpb1JlYWRlcjo6U2V0SW5wdXRGb3JtYXQoY29uc3QgY2hhciAqbmFtZSkgeworQEAg LTEzNSwxMSArMTI3LDEwIEBAIGlubGluZSBib29sIEZGbXBlZ0F1ZGlvUmVhZGVyOjpPcGVuKGNv bnN0IHN0ZDo6c3RyaW5nICZmaWxlX25hbWUpIHsKKworIAlDbG9zZSgpOworCistICAgIGF2X2lu aXRfcGFja2V0KCZtX3BhY2tldCk7CistCW1fcGFja2V0LmRhdGEgPSBudWxscHRyOworLQltX3Bh Y2tldC5zaXplID0gMDsKKy0KKy0JbV9wYWNrZXQwID0gbV9wYWNrZXQ7CisrCW1fcGFja2V0ID0g YXZfcGFja2V0X2FsbG9jKCk7CisrCWlmICghbV9wYWNrZXQpIHsKKysJCXJldHVybiBmYWxzZTsK KysJfQorCisgCXJldCA9IGF2Zm9ybWF0X29wZW5faW5wdXQoJm1fZm9ybWF0X2N0eCwgZmlsZV9u YW1lLmNfc3RyKCksIG1faW5wdXRfZm10LCAmbV9pbnB1dF9vcHRzKTsKKyAJaWYgKHJldCA8IDAp IHsKK0BAIC0xNTMsMjYgKzE0NCwzMSBAQCBpbmxpbmUgYm9vbCBGRm1wZWdBdWRpb1JlYWRlcjo6 T3Blbihjb25zdCBzdGQ6OnN0cmluZyAmZmlsZV9uYW1lKSB7CisgCQlyZXR1cm4gZmFsc2U7Cisg CX0KKworLQlBVkNvZGVjICpjb2RlYzsKKysJY29uc3QgQVZDb2RlYyAqY29kZWM7CisgCXJldCA9 IGF2X2ZpbmRfYmVzdF9zdHJlYW0obV9mb3JtYXRfY3R4LCBBVk1FRElBX1RZUEVfQVVESU8sIC0x LCAtMSwgJmNvZGVjLCAwKTsKKyAJaWYgKHJldCA8IDApIHsKKyAJCVNldEVycm9yKCJDb3VsZCBu b3QgZmluZCBhbnkgYXVkaW8gc3RyZWFtIGluIHRoZSBmaWxlIiwgcmV0KTsKKyAJCXJldHVybiBm YWxzZTsKKyAJfQorIAltX3N0cmVhbV9pbmRleCA9IHJldDsKKysJYXV0byBzdHJlYW0gPSBtX2Zv cm1hdF9jdHgtPnN0cmVhbXNbbV9zdHJlYW1faW5kZXhdOworCistCW1fY29kZWNfY3R4ID0gbV9m b3JtYXRfY3R4LT5zdHJlYW1zW21fc3RyZWFtX2luZGV4XS0+Y29kZWM7CisrCW1fY29kZWNfY3R4 ID0gYXZjb2RlY19hbGxvY19jb250ZXh0Myhjb2RlYyk7CisgCW1fY29kZWNfY3R4LT5yZXF1ZXN0 X3NhbXBsZV9mbXQgPSBBVl9TQU1QTEVfRk1UX1MxNjsKKworKwlyZXQgPSBhdmNvZGVjX3BhcmFt ZXRlcnNfdG9fY29udGV4dChtX2NvZGVjX2N0eCwgc3RyZWFtLT5jb2RlY3Bhcik7CisrCWlmIChy ZXQgPCAwKSB7CisrCQlTZXRFcnJvcigiQ291bGQgbm90IGNvcHkgdGhlIHN0cmVhbSBwYXJhbWV0 ZXJzIiwgcmV0KTsKKysJCXJldHVybiBmYWxzZTsKKysJfQorKworIAlyZXQgPSBhdmNvZGVjX29w ZW4yKG1fY29kZWNfY3R4LCBjb2RlYywgbnVsbHB0cik7CisgCWlmIChyZXQgPCAwKSB7CisgCQlT ZXRFcnJvcigiQ291bGQgbm90IG9wZW4gdGhlIGNvZGVjIiwgcmV0KTsKKyAJCXJldHVybiBmYWxz ZTsKKyAJfQorCistCWlmICghbV9jb2RlY19jdHgtPmNoYW5uZWxfbGF5b3V0KSB7CistCQltX2Nv ZGVjX2N0eC0+Y2hhbm5lbF9sYXlvdXQgPSBhdl9nZXRfZGVmYXVsdF9jaGFubmVsX2xheW91dCht X2NvZGVjX2N0eC0+Y2hhbm5lbHMpOworLQl9CisrCWF2X2R1bXBfZm9ybWF0KG1fZm9ybWF0X2N0 eCwgMCwgImZvbyIsIDApOworCisgCW1fZnJhbWUgPSBhdl9mcmFtZV9hbGxvYygpOworIAlpZiAo IW1fZnJhbWUpIHsKK0BAIC0xODMsMTkgKzE3OSwyMyBAQCBpbmxpbmUgYm9vbCBGRm1wZWdBdWRp b1JlYWRlcjo6T3Blbihjb25zdCBzdGQ6OnN0cmluZyAmZmlsZV9uYW1lKSB7CisgCQltX291dHB1 dF9zYW1wbGVfcmF0ZSA9IG1fY29kZWNfY3R4LT5zYW1wbGVfcmF0ZTsKKyAJfQorCistCWlmICgh bV9vdXRwdXRfY2hhbm5lbHMpIHsKKy0JCW1fb3V0cHV0X2NoYW5uZWxzID0gbV9jb2RlY19jdHgt PmNoYW5uZWxzOworKwlBVkNoYW5uZWxMYXlvdXQgb3V0cHV0X2NoYW5uZWxfbGF5b3V0OworKwlp ZiAobV9vdXRwdXRfY2hhbm5lbHMpIHsKKysJCWF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1bHQoJm91 dHB1dF9jaGFubmVsX2xheW91dCwgbV9vdXRwdXRfY2hhbm5lbHMpOworKwl9IGVsc2UgeworKwkJ bV9vdXRwdXRfY2hhbm5lbHMgPSBtX2NvZGVjX2N0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOwor KwkJYXZfY2hhbm5lbF9sYXlvdXRfZGVmYXVsdCgmb3V0cHV0X2NoYW5uZWxfbGF5b3V0LCBtX291 dHB1dF9jaGFubmVscyk7CisgCX0KKworLQlpZiAobV9jb2RlY19jdHgtPnNhbXBsZV9mbXQgIT0g QVZfU0FNUExFX0ZNVF9TMTYgfHwgbV9jb2RlY19jdHgtPmNoYW5uZWxzICE9IG1fb3V0cHV0X2No YW5uZWxzIHx8IG1fY29kZWNfY3R4LT5zYW1wbGVfcmF0ZSAhPSBtX291dHB1dF9zYW1wbGVfcmF0 ZSkgeworKwlpZiAobV9jb2RlY19jdHgtPnNhbXBsZV9mbXQgIT0gQVZfU0FNUExFX0ZNVF9TMTYg fHwgbV9jb2RlY19jdHgtPmNoX2xheW91dC5uYl9jaGFubmVscyAhPSBtX291dHB1dF9jaGFubmVs cyB8fCBtX2NvZGVjX2N0eC0+c2FtcGxlX3JhdGUgIT0gbV9vdXRwdXRfc2FtcGxlX3JhdGUpIHsK KyAJCW1fY29udmVydGVyLnJlc2V0KG5ldyBGRm1wZWdBdWRpb1Byb2Nlc3NvcigpKTsKKyAJCW1f Y29udmVydGVyLT5TZXRDb21wYXRpYmxlTW9kZSgpOworIAkJbV9jb252ZXJ0ZXItPlNldElucHV0 U2FtcGxlRm9ybWF0KG1fY29kZWNfY3R4LT5zYW1wbGVfZm10KTsKKyAJCW1fY29udmVydGVyLT5T ZXRJbnB1dFNhbXBsZVJhdGUobV9jb2RlY19jdHgtPnNhbXBsZV9yYXRlKTsKKy0JCW1fY29udmVy dGVyLT5TZXRJbnB1dENoYW5uZWxMYXlvdXQobV9jb2RlY19jdHgtPmNoYW5uZWxfbGF5b3V0KTsK KysJCW1fY29udmVydGVyLT5TZXRJbnB1dENoYW5uZWxMYXlvdXQoJihtX2NvZGVjX2N0eC0+Y2hf bGF5b3V0KSk7CisgCQltX2NvbnZlcnRlci0+U2V0T3V0cHV0U2FtcGxlRm9ybWF0KEFWX1NBTVBM RV9GTVRfUzE2KTsKKyAJCW1fY29udmVydGVyLT5TZXRPdXRwdXRTYW1wbGVSYXRlKG1fb3V0cHV0 X3NhbXBsZV9yYXRlKTsKKy0JCW1fY29udmVydGVyLT5TZXRPdXRwdXRDaGFubmVsTGF5b3V0KGF2 X2dldF9kZWZhdWx0X2NoYW5uZWxfbGF5b3V0KG1fb3V0cHV0X2NoYW5uZWxzKSk7CisrCQltX2Nv bnZlcnRlci0+U2V0T3V0cHV0Q2hhbm5lbExheW91dCgmb3V0cHV0X2NoYW5uZWxfbGF5b3V0KTsK KyAJCWF1dG8gcmV0ID0gbV9jb252ZXJ0ZXItPkluaXQoKTsKKyAJCWlmIChyZXQgIT0gMCkgewor IAkJCVNldEVycm9yKCJDb3VsZCBub3QgY3JlYXRlIGFuIGF1ZGlvIGNvbnZlcnRlciBpbnN0YW5j ZSIsIHJldCk7CitAQCAtMjAzLDEwICsyMDMsMTEgQEAgaW5saW5lIGJvb2wgRkZtcGVnQXVkaW9S ZWFkZXI6Ok9wZW4oY29uc3Qgc3RkOjpzdHJpbmcgJmZpbGVfbmFtZSkgeworIAkJfQorIAl9CisK KysJYXZfY2hhbm5lbF9sYXlvdXRfdW5pbml0KCZvdXRwdXRfY2hhbm5lbF9sYXlvdXQpOworKwor IAltX29wZW5lZCA9IHRydWU7CistCW1fZmluaXNoZWQgPSBmYWxzZTsKKy0JbV9nb3RfZnJhbWUg PSAwOworLQltX25iX3BhY2tldHMgPSAwOworKwltX2hhc19tb3JlX3BhY2tldHMgPSB0cnVlOwor KwltX2hhc19tb3JlX2ZyYW1lcyA9IHRydWU7CisgCW1fZGVjb2RlX2Vycm9yID0gMDsKKworIAly ZXR1cm4gdHJ1ZTsKK0BAIC0yMTQsNiArMjE1LDcgQEAgaW5saW5lIGJvb2wgRkZtcGVnQXVkaW9S ZWFkZXI6Ok9wZW4oY29uc3Qgc3RkOjpzdHJpbmcgJmZpbGVfbmFtZSkgeworCisgaW5saW5lIHZv aWQgRkZtcGVnQXVkaW9SZWFkZXI6OkNsb3NlKCkgeworIAlhdl9mcmFtZV9mcmVlKCZtX2ZyYW1l KTsKKysJYXZfcGFja2V0X2ZyZWUoJm1fcGFja2V0KTsKKworIAltX3N0cmVhbV9pbmRleCA9IC0x OworCitAQCAtMjUyLDkxICsyNTQsOTggQEAgaW5saW5lIGJvb2wgRkZtcGVnQXVkaW9SZWFkZXI6 OlJlYWQoY29uc3QgaW50MTZfdCAqKmRhdGEsIHNpemVfdCAqc2l6ZSkgeworIAkJcmV0dXJuIGZh bHNlOworIAl9CisKKysJKmRhdGEgPSBudWxscHRyOworKwkqc2l6ZSA9IDA7CisrCisgCWludCBy ZXQ7CisrCWJvb2wgbmVlZHNfcGFja2V0ID0gZmFsc2U7CisgCXdoaWxlICh0cnVlKSB7CistCQl3 aGlsZSAobV9wYWNrZXQuc2l6ZSA8PSAwKSB7CistCQkJYXZfcGFja2V0X3VucmVmKCZtX3BhY2tl dDApOworLQkJCWF2X2luaXRfcGFja2V0KCZtX3BhY2tldCk7CistCQkJbV9wYWNrZXQuZGF0YSA9 IG51bGxwdHI7CistCQkJbV9wYWNrZXQuc2l6ZSA9IDA7CistCQkJcmV0ID0gYXZfcmVhZF9mcmFt ZShtX2Zvcm1hdF9jdHgsICZtX3BhY2tldCk7CisrCQl3aGlsZSAobmVlZHNfcGFja2V0ICYmIG1f cGFja2V0LT5zaXplID09IDApIHsKKysJCQlyZXQgPSBhdl9yZWFkX2ZyYW1lKG1fZm9ybWF0X2N0 eCwgbV9wYWNrZXQpOworIAkJCWlmIChyZXQgPCAwKSB7CisgCQkJCWlmIChyZXQgPT0gQVZFUlJP Ul9FT0YpIHsKKy0JCQkJCW1fZmluaXNoZWQgPSB0cnVlOworKwkJCQkJbmVlZHNfcGFja2V0ID0g ZmFsc2U7CisrCQkJCQltX2hhc19tb3JlX3BhY2tldHMgPSBmYWxzZTsKKyAJCQkJCWJyZWFrOwor LQkJCQl9IGVsc2UgeworKwkJCQl9CisrCQkJCVNldEVycm9yKCJFcnJvciByZWFkaW5nIGZyb20g dGhlIGF1ZGlvIHNvdXJjZSIsIHJldCk7CisrCQkJCXJldHVybiBmYWxzZTsKKysJCQl9CisrCQkJ aWYgKG1fcGFja2V0LT5zdHJlYW1faW5kZXggPT0gbV9zdHJlYW1faW5kZXgpIHsKKysJCQkJbmVl ZHNfcGFja2V0ID0gZmFsc2U7CisrCQkJfSBlbHNlIHsKKysJCQkJYXZfcGFja2V0X3VucmVmKG1f cGFja2V0KTsKKysJCQl9CisrCQl9CisrCisrCQlpZiAobV9wYWNrZXQtPnNpemUgIT0gMCkgewor KwkJCXJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQobV9jb2RlY19jdHgsIG1fcGFja2V0KTsKKysJ CQlpZiAocmV0IDwgMCkgeworKwkJCQlpZiAocmV0ICE9IEFWRVJST1IoRUFHQUlOKSkgeworIAkJ CQkJU2V0RXJyb3IoIkVycm9yIHJlYWRpbmcgZnJvbSB0aGUgYXVkaW8gc291cmNlIiwgcmV0KTsK KyAJCQkJCXJldHVybiBmYWxzZTsKKyAJCQkJfQorLQkJCX0KKy0JCQltX3BhY2tldDAgPSBtX3Bh Y2tldDsKKy0JCQlpZiAobV9wYWNrZXQuc3RyZWFtX2luZGV4ICE9IG1fc3RyZWFtX2luZGV4KSB7 CistCQkJCW1fcGFja2V0LmRhdGEgPSBudWxscHRyOworLQkJCQltX3BhY2tldC5zaXplID0gMDsK KyAJCQl9IGVsc2UgeworLQkJCQltX25iX3BhY2tldHMrKzsKKysJCQkJYXZfcGFja2V0X3VucmVm KG1fcGFja2V0KTsKKyAJCQl9CisgCQl9CisKKy0JCXJldCA9IGF2Y29kZWNfZGVjb2RlX2F1ZGlv NChtX2NvZGVjX2N0eCwgbV9mcmFtZSwgJm1fZ290X2ZyYW1lLCAmbV9wYWNrZXQpOworKwkJcmV0 ID0gYXZjb2RlY19yZWNlaXZlX2ZyYW1lKG1fY29kZWNfY3R4LCBtX2ZyYW1lKTsKKyAJCWlmIChy ZXQgPCAwKSB7CistCQkJaWYgKG1fZGVjb2RlX2Vycm9yKSB7CistCQkJCVNldEVycm9yKCJFcnJv ciBkZWNvZGluZyBhdWRpbyBmcmFtZSIsIG1fZGVjb2RlX2Vycm9yKTsKKy0JCQkJcmV0dXJuIGZh bHNlOworKwkJCWlmIChyZXQgPT0gQVZFUlJPUl9FT0YpIHsKKysJCQkJbV9oYXNfbW9yZV9mcmFt ZXMgPSBmYWxzZTsKKysJCQl9IGVsc2UgaWYgKHJldCA9PSBBVkVSUk9SKEVBR0FJTikpIHsKKysJ CQkJaWYgKG1faGFzX21vcmVfcGFja2V0cykgeworKwkJCQkJbmVlZHNfcGFja2V0ID0gdHJ1ZTsK KysJCQkJCWNvbnRpbnVlOworKwkJCQl9IGVsc2UgeworKwkJCQkJbV9oYXNfbW9yZV9mcmFtZXMg PSBmYWxzZTsKKysJCQkJfQorIAkJCX0KKy0JCQltX2RlY29kZV9lcnJvciA9IHJldDsKKy0JCQlt X3BhY2tldC5kYXRhID0gbnVsbHB0cjsKKy0JCQltX3BhY2tldC5zaXplID0gMDsKKy0JCQljb250 aW51ZTsKKysJCQlTZXRFcnJvcigiRXJyb3IgZGVjb2RpbmcgdGhlIGF1ZGlvIHNvdXJjZSIsIHJl dCk7CisrCQkJcmV0dXJuIGZhbHNlOworIAkJfQorCistCQlicmVhazsKKy0JfQorLQorLQltX2Rl Y29kZV9lcnJvciA9IDA7CistCistCWNvbnN0IGludCBkZWNvZGVkID0gc3RkOjptaW4ocmV0LCBt X3BhY2tldC5zaXplKTsKKy0JbV9wYWNrZXQuZGF0YSArPSBkZWNvZGVkOworLQltX3BhY2tldC5z aXplIC09IGRlY29kZWQ7CistCistCWlmIChtX2dvdF9mcmFtZSkgeworLQkJaWYgKG1fY29udmVy dGVyKSB7CistCQkJaWYgKG1fZnJhbWUtPm5iX3NhbXBsZXMgPiBtX2NvbnZlcnRfYnVmZmVyX25i X3NhbXBsZXMpIHsKKy0JCQkJaW50IGxpbnNpemU7CistCQkJCWF2X2ZyZWVwKCZtX2NvbnZlcnRf YnVmZmVyWzBdKTsKKy0JCQkJbV9jb252ZXJ0X2J1ZmZlcl9uYl9zYW1wbGVzID0gc3RkOjptYXgo MTAyNCAqIDgsIG1fZnJhbWUtPm5iX3NhbXBsZXMpOworLQkJCQlyZXQgPSBhdl9zYW1wbGVzX2Fs bG9jKG1fY29udmVydF9idWZmZXIsICZsaW5zaXplLCBtX2NvZGVjX2N0eC0+Y2hhbm5lbHMsIG1f Y29udmVydF9idWZmZXJfbmJfc2FtcGxlcywgQVZfU0FNUExFX0ZNVF9TMTYsIDEpOworLQkJCQlp ZiAocmV0IDwgMCkgeworLQkJCQkJU2V0RXJyb3IoIkNvdWxkbid0IGFsbG9jYXRlIGF1ZGlvIGNv bnZlcnRlciBidWZmZXIiLCByZXQpOworKwkJaWYgKG1fZnJhbWUtPm5iX3NhbXBsZXMgPiAwKSB7 CisrCQkJaWYgKG1fY29udmVydGVyKSB7CisrCQkJCWlmIChtX2ZyYW1lLT5uYl9zYW1wbGVzID4g bV9jb252ZXJ0X2J1ZmZlcl9uYl9zYW1wbGVzKSB7CisrCQkJCQlpbnQgbGluc2l6ZTsKKysJCQkJ CWF2X2ZyZWVwKCZtX2NvbnZlcnRfYnVmZmVyWzBdKTsKKysJCQkJCW1fY29udmVydF9idWZmZXJf bmJfc2FtcGxlcyA9IHN0ZDo6bWF4KDEwMjQgKiA4LCBtX2ZyYW1lLT5uYl9zYW1wbGVzKTsKKysJ CQkJCXJldCA9IGF2X3NhbXBsZXNfYWxsb2MobV9jb252ZXJ0X2J1ZmZlciwgJmxpbnNpemUsIG1f Y29kZWNfY3R4LT5jaF9sYXlvdXQubmJfY2hhbm5lbHMsIG1fY29udmVydF9idWZmZXJfbmJfc2Ft cGxlcywgQVZfU0FNUExFX0ZNVF9TMTYsIDEpOworKwkJCQkJaWYgKHJldCA8IDApIHsKKysJCQkJ CQlTZXRFcnJvcigiQ291bGRuJ3QgYWxsb2NhdGUgYXVkaW8gY29udmVydGVyIGJ1ZmZlciIsIHJl dCk7CisrCQkJCQkJcmV0dXJuIGZhbHNlOworKwkJCQkJfQorKwkJCQl9CisrCQkJCWF1dG8gbmJf c2FtcGxlcyA9IG1fY29udmVydGVyLT5Db252ZXJ0KG1fY29udmVydF9idWZmZXIsIG1fY29udmVy dF9idWZmZXJfbmJfc2FtcGxlcywgKGNvbnN0IHVpbnQ4X3QgKiopIG1fZnJhbWUtPmRhdGEsIG1f ZnJhbWUtPm5iX3NhbXBsZXMpOworKwkJCQlpZiAobmJfc2FtcGxlcyA8IDApIHsKKysJCQkJCVNl dEVycm9yKCJDb3VsZG4ndCBjb252ZXJ0IGF1ZGlvIiwgcmV0KTsKKyAJCQkJCXJldHVybiBmYWxz ZTsKKyAJCQkJfQorLQkJCX0KKy0JCQlhdXRvIG5iX3NhbXBsZXMgPSBtX2NvbnZlcnRlci0+Q29u dmVydChtX2NvbnZlcnRfYnVmZmVyLCBtX2NvbnZlcnRfYnVmZmVyX25iX3NhbXBsZXMsIChjb25z dCB1aW50OF90ICoqKSBtX2ZyYW1lLT5kYXRhLCBtX2ZyYW1lLT5uYl9zYW1wbGVzKTsKKy0JCQlp ZiAobmJfc2FtcGxlcyA8IDApIHsKKy0JCQkJU2V0RXJyb3IoIkNvdWxkbid0IGNvbnZlcnQgYXVk aW8iLCByZXQpOworLQkJCQlyZXR1cm4gZmFsc2U7CistCQkJfQorLQkJCSpkYXRhID0gKGNvbnN0 IGludDE2X3QgKikgbV9jb252ZXJ0X2J1ZmZlclswXTsKKy0JCQkqc2l6ZSA9IG5iX3NhbXBsZXM7 CistCQl9IGVsc2UgeworLQkJCSpkYXRhID0gKGNvbnN0IGludDE2X3QgKikgbV9mcmFtZS0+ZGF0 YVswXTsKKy0JCQkqc2l6ZSA9IG1fZnJhbWUtPm5iX3NhbXBsZXM7CistCQl9CistCX0gZWxzZSB7 CistCQlpZiAobV9maW5pc2hlZCAmJiBtX2NvbnZlcnRlcikgeworLQkJCWF1dG8gbmJfc2FtcGxl cyA9IG1fY29udmVydGVyLT5GbHVzaChtX2NvbnZlcnRfYnVmZmVyLCBtX2NvbnZlcnRfYnVmZmVy X25iX3NhbXBsZXMpOworLQkJCWlmIChuYl9zYW1wbGVzIDwgMCkgeworLQkJCQlTZXRFcnJvcigi Q291bGRuJ3QgY29udmVydCBhdWRpbyIsIHJldCk7CistCQkJCXJldHVybiBmYWxzZTsKKy0JCQl9 IGVsc2UgaWYgKG5iX3NhbXBsZXMgPiAwKSB7CistCQkJCW1fZ290X2ZyYW1lID0gMTsKKyAJCQkJ KmRhdGEgPSAoY29uc3QgaW50MTZfdCAqKSBtX2NvbnZlcnRfYnVmZmVyWzBdOworIAkJCQkqc2l6 ZSA9IG5iX3NhbXBsZXM7CisrCQkJfSBlbHNlIHsKKysJCQkJKmRhdGEgPSAoY29uc3QgaW50MTZf dCAqKSBtX2ZyYW1lLT5kYXRhWzBdOworKwkJCQkqc2l6ZSA9IG1fZnJhbWUtPm5iX3NhbXBsZXM7 CisrCQkJfQorKwkJfSBlbHNlIHsKKysJCQlpZiAobV9jb252ZXJ0ZXIpIHsKKysJCQkJaWYgKElz RmluaXNoZWQoKSkgeworKwkJCQkJYXV0byBuYl9zYW1wbGVzID0gbV9jb252ZXJ0ZXItPkZsdXNo KG1fY29udmVydF9idWZmZXIsIG1fY29udmVydF9idWZmZXJfbmJfc2FtcGxlcyk7CisrCQkJCQlp ZiAobmJfc2FtcGxlcyA8IDApIHsKKysJCQkJCQlTZXRFcnJvcigiQ291bGRuJ3QgY29udmVydCBh dWRpbyIsIHJldCk7CisrCQkJCQkJcmV0dXJuIGZhbHNlOworKwkJCQkJfSBlbHNlIGlmIChuYl9z YW1wbGVzID4gMCkgeworKwkJCQkJCSpkYXRhID0gKGNvbnN0IGludDE2X3QgKikgbV9jb252ZXJ0 X2J1ZmZlclswXTsKKysJCQkJCQkqc2l6ZSA9IG5iX3NhbXBsZXM7CisrCQkJCQl9CisrCQkJCX0K KyAJCQl9CisgCQl9CistCX0KKworLQlyZXR1cm4gdHJ1ZTsKKysJCXJldHVybiB0cnVlOworKwl9 CisgfQorCisgaW5saW5lIHZvaWQgRkZtcGVnQXVkaW9SZWFkZXI6OlNldEVycm9yKGNvbnN0IGNo YXIgKm1lc3NhZ2UsIGludCBlcnJudW0pIHsKK2RpZmYgLS1naXQgYS90ZXN0cy9DTWFrZUxpc3Rz LnR4dCBiL3Rlc3RzL0NNYWtlTGlzdHMudHh0CitpbmRleCBhMmI1MTdiLi4xMjNlNjQzIDEwMDY0 NAorLS0tIGEvdGVzdHMvQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3RzL0NNYWtlTGlzdHMudHh0 CitAQCAtMzgsNiArMzgsMTIgQEAgc2V0KFNSQ1MKKworIGlmKEJVSUxEX1RPT0xTKQorIAlzZXQo U1JDUyAke1NSQ1N9IC4uL3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcmVhZGVyX3Rlc3QuY3BwKQor KyAgICBpbmNsdWRlX2RpcmVjdG9yaWVzKAorKyAgICAgICAgJHtGRk1QRUdfTElCQVZGT1JNQVRf SU5DTFVERV9ESVJTfQorKyAgICAgICAgJHtGRk1QRUdfTElCQVZDT0RFQ19JTkNMVURFX0RJUlN9 CisrICAgICAgICAke0ZGTVBFR19MSUJBVlVUSUxfSU5DTFVERV9ESVJTfQorKyAgICAgICAgJHtB VURJT19QUk9DRVNTT1JfSU5DTFVERV9ESVJTfQorKyAgICApCisgCWxpbmtfbGlicmFyaWVzKGZw Y2FsY19saWJzKQorIGVuZGlmKCkKKworLS0gCisyLjM4LjEKKworCmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nocm9tYXByaW50L3RlbXBsYXRlIGIvc3JjcGtncy9jaHJvbWFwcmludC90ZW1wbGF0ZQpp bmRleCA3ZWY3ODM4OTQ5ZjMuLjFmN2JiYzcwYTIyYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJv bWFwcmludC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nocm9tYXByaW50L3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2hyb21hcHJpbnQnCiBwa2duYW1lPWNo cm9tYXByaW50CiB2ZXJzaW9uPTEuNS4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9z dHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQlVJTERfVE9PTFM9T04iCiBtYWtlX2NoZWNr X3RhcmdldD0iY2hlY2siCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIGIv c3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQppbmRleCAzYzFjMWNhZjM3NjUuLjFmMjhjZGU1ZDNj MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2No cm9taXVtL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBAQAogcGtnbmFtZT1jaHJvbWl1bQogIyBTZWUg aHR0cHM6Ly9jaHJvbWl1bWRhc2guYXBwc3BvdC5jb20vcmVsZWFzZXM/cGxhdGZvcm09TGludXgg Zm9yIHRoZSBsYXRlc3QgdmVyc2lvbgogdmVyc2lvbj0xMTEuMC41NTYzLjY0Ci1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBhcmNocz0iaTY4NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12N2wqIgogaG9z dG1ha2VkZXBlbmRzPSIKICAkKHZvcHRfaWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTIiKQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jbXVzL3RlbXBsYXRlIGIvc3JjcGtncy9jbXVzL3RlbXBsYXRlCmlu ZGV4IDBmY2I0MjRjZTMzNi4uMDViNzdkMGZlY2FlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2NtdXMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9jbXVzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnY211cycKIHBrZ25hbWU9Y211cwogdmVyc2lvbj0yLjEwLjAKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNvbmZpZ3VyZQogY29uZmlndXJlX2Fy Z3M9InByZWZpeD0vdXNyIExEPSRDQyIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY3lhbnJpcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3lhbnJpcC90ZW1w bGF0ZQppbmRleCA5Nzk2ZTM0NjE2MDEuLjVkYjMwZTAyMGQxNyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9jeWFucmlwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3lhbnJpcC90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2N5YW5yaXAnCiBwa2duYW1lPWN5YW5yaXAK IHZlcnNpb249MC45LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29u CiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iZmZtcGVnLWRldmVs IGxpYmNkaW8tZGV2ZWwgbGliY2Rpby1wYXJhbm9pYS1kZXZlbCBsaWJjdXJsLWRldmVsIGxpYm11 c2ljYnJhaW56NS1kZXZlbCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZGVhZGJlZWYvdGVtcGxhdGUg Yi9zcmNwa2dzL2RlYWRiZWVmL3RlbXBsYXRlCmluZGV4IGI2NjRiYjFiOWJkOS4uZjBmY2NlZDg2 NGJlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2RlYWRiZWVmL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv ZGVhZGJlZWYvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdk ZWFkYmVlZicKIHBrZ25hbWU9ZGVhZGJlZWYKIHZlcnNpb249MS44LjgKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGNyZWF0ZV93cmtzcmM9eWVzCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBj b25maWd1cmVfYXJncz0iLS1kaXNhYmxlLW9zcyAtLWRpc2FibGUtbGZtIC0tZGlzYWJsZS1ub3Rp ZnkgLS1kaXNhYmxlLWd0azIiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2RvbHBoaW4tZW11L3RlbXBs YXRlIGIvc3JjcGtncy9kb2xwaGluLWVtdS90ZW1wbGF0ZQppbmRleCA3ZWExOTdjZWIyYTguLjdh ZWIwYTViNjQ1ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9kb2xwaGluLWVtdS90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2RvbHBoaW4tZW11L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZG9scGhpbi1lbXUnCiBwa2duYW1lPWRvbHBoaW4tZW11CiB2ZXJzaW9uPTUu MC4xNjEwMQotcmV2aXNpb249MQorcmV2aXNpb249MgogX2RvbHBoaW5fY29tbWl0PThlY2ZhNTM3 YTI0MmRlNzRkMmUzNzJlMzBkOWQ3OWIxNDU4NGIyZmIKIF9tZ2JhX2NvbW1pdD00MGQ0YzQzMGZj MzZjYWViN2VhMzJmZDM5NjI0OTQ3ZWQ0ODdkMmYyCiAjVmVyc2lvbi9oYXNoIHBhaXIgY2FuIGJl IGZvdW5kIGF0IGh0dHBzOi8vZG9scGhpbi1lbXUub3JnL2Rvd25sb2FkLwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9kcm9pZGNhbS1vYnMtcGx1Z2luL3RlbXBsYXRlIGIvc3JjcGtncy9kcm9pZGNhbS1v YnMtcGx1Z2luL3RlbXBsYXRlCmluZGV4IGZjOWM5YmY2YjlkNS4uZmIwNDgwNzU0ZGY0IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2Ryb2lkY2FtLW9icy1wbHVnaW4vdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9kcm9pZGNhbS1vYnMtcGx1Z2luL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZHJvaWRjYW0tb2JzLXBsdWdpbicKIHBrZ25hbWU9ZHJvaWRjYW0tb2JzLXBs dWdpbgogdmVyc2lvbj0yLjAuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 Z251LW1ha2VmaWxlCiBtYWtlX3VzZV9lbnY9eWVzCiBtYWtlX2J1aWxkX2FyZ3M9IkFMTE9XX1NU QVRJQz1ubyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZHJvaWRjYW0vdGVtcGxhdGUgYi9zcmNwa2dz L2Ryb2lkY2FtL3RlbXBsYXRlCmluZGV4IDFjM2YxYjhiMWZjNi4uMzJhOTIyMGI3OWE0IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2Ryb2lkY2FtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZHJvaWRjYW0v dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdkcm9pZGNhbScK IHBrZ25hbWU9ZHJvaWRjYW0KIHZlcnNpb249MS44LjIKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMK IGJ1aWxkX3N0eWxlPWdudS1tYWtlZmlsZQogbWFrZV9idWlsZF9hcmdzPSJVU0JNVVhEPS1sdXNi bXV4ZC0yLjAgSlBFRz0tbHR1cmJvanBlZyIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xOS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZWxlY3Ry b24xOS90ZW1wbGF0ZQppbmRleCAwNjgxMzZiZTc2MjMuLjMyY2UzMDFlNzMwYyAxMDA2NDQKLS0t IGEvc3JjcGtncy9lbGVjdHJvbjE5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24xOS90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VsZWN0cm9uMTkn CiBwa2duYW1lPWVsZWN0cm9uMTkKIHZlcnNpb249MTkuMC44Ci1yZXZpc2lvbj0yCityZXZpc2lv bj0zCiBfbm9kZXZlcj0xNi4xNC4yCiBfY2hyb21pdW12ZXI9MTAyLjAuNTAwNS4xMjUKIGFyY2hz PSJ4ODZfNjQqIGFhcmNoNjQqIHBwYzY0bGUqIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mZm1wZWcv dGVtcGxhdGUgYi9zcmNwa2dzL2ZmbXBlZy90ZW1wbGF0ZQppbmRleCAzODk3OGM1MDg1YTMuLjFh YzFlNGI4ZGY0OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9mZm1wZWcvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9mZm1wZWcvdGVtcGxhdGUKQEAgLTEyLDI1ICsxMiwzMSBAQCBkaXN0ZmlsZXM9Imh0dHBz Oi8vd3d3LmZmbXBlZy5vcmcvcmVsZWFzZXMvZmZtcGVnLSR7dmVyc2lvbn0udGFyLnh6IgogY2hl Y2tzdW09NjE5ZTcwNmQ2NjJjODQyMDg1OTgzMmRkYzI1OWNkNGQ0MDk2YTQ4YTJjZTFlZWZkMDUy ZGI5ZTQ0MGVlZjNkYwogCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcGVybCB5YXNtIgot bWFrZWRlcGVuZHM9ImNocm9tYXByaW50LWRldmVsIGxpYmdjcnlwdC1kZXZlbCBsYWRzcGEtc2Rr IGxjbXMyLWRldmVsIGxpYmFvbS1kZXZlbAotIGFsc2EtbGliLWRldmVsIGJ6aXAyLWRldmVsIGxp YnhjYi1kZXZlbCBsaWJsem1hLWRldmVsIFNETDItZGV2ZWwgc25kaW8tZGV2ZWwgemxpYi1kZXZl bAotIGZyZWkwci1wbHVnaW5zIGxpYmNkaW8tcGFyYW5vaWEtZGV2ZWwgcnViYmVyYmFuZC1kZXZl bCBsaWJ2aWRzdGFiLWRldmVsIHgyNjQtZGV2ZWwgeDI2NS1kZXZlbAotIHh2aWRjb3JlLWRldmVs IGZkay1hYWMtZGV2ZWwgbGlidGxzLWRldmVsIGdtcC1kZXZlbCBsaWJhc3MtZGV2ZWwgbGliYmx1 cmF5LWRldmVsIGxpYmNhY2EtZGV2ZWwKLSBjZWx0LWRldmVsIGNvZGVjMi1kZXZlbCBsaWJkYXYx ZC1kZXZlbCBsaWJkcm0tZGV2ZWwgZm9udGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbAotIGZy aWJpZGktZGV2ZWwgZ2xzbGFuZy1kZXZlbCBTUElSVi1Ub29scy1kZXZlbCBsaWJnbWUtZGV2ZWwg bGliZ3NtLWRldmVsIGphY2stZGV2ZWwKLSBsaWJtb2RwbHVnLWRldmVsIGxhbWUtZGV2ZWwgbGli b3BlbmN2NC1kZXZlbCBsaWJvcGVuanBlZzItZGV2ZWwgbGlib3Blbm1wdC1kZXZlbCBvcHVzLWRl dmVsCi0gbGlicGxhY2Viby1kZXZlbCBsaWJwdWxzZWF1ZGlvIHJhYmJpdG1xLWMtZGV2ZWwgbGli cmlzdC1kZXZlbCBsaWJyc3ZnLWRldmVsIGxpYnJ0bXAtZGV2ZWwKLSBzbmFwcHktZGV2ZWwgbGli c294ci1kZXZlbCBzcGVleC1kZXZlbCBzcnQtZGV2ZWwgbGlic3NoLWRldmVsIGxpYnRoZW9yYS1k ZXZlbCB0d29sYW1lLWRldmVsCi0gbGlidm9yYmlzLWRldmVsIGxpYnZweDYtZGV2ZWwgbGlid2Vi cC1kZXZlbCBsaWJ4bWwyLWRldmVsIHppbWctZGV2ZWwgbGlsdi1kZXZlbCBsdjIKLSBsaWJvcGVu YWwtZGV2ZWwgbWVzYSBvcGVuc3NsLWRldmVsIHZhcG91cnN5bnRoLWRldmVsIG9jbC1pY2QtZGV2 ZWwgbGlibXlzb2ZhLWRldmVsIHZ1bGthbi1sb2FkZXIKLSAkKHZvcHRfaWYgdmFhcGkgbGlidmEt ZGV2ZWwpCi0gJCh2b3B0X2lmIHZkcGF1IGxpYnZkcGF1LWRldmVsKQotICQodm9wdF9pZiBudmVu YyBudi1jb2RlYy1oZWFkZXJzKQotICQodm9wdF9pZiBudmRlYyBudi1jb2RlYy1oZWFkZXJzKQot ICQodm9wdF9pZiBzdnRhdjEgbGlic3Z0LWF2MS1kZXZlbCkKLSIKK21ha2VkZXBlbmRzPSJ6bGli LWRldmVsIGJ6aXAyLWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVsIGxpYlhmaXhl cy1kZXZlbAorIGxpYlhleHQtZGV2ZWwgbGliWHZNQy1kZXZlbCBsaWJ4Y2ItZGV2ZWwgbGFtZS1k ZXZlbCBsaWJ0aGVvcmEtZGV2ZWwKKyBsaWJ2b3JiaXMtZGV2ZWwgeDI2NC1kZXZlbCB4dmlkY29y ZS1kZXZlbCBqYWNrLWRldmVsIFNETDItZGV2ZWwKKyBsaWJjZGlvLXBhcmFub2lhLWRldmVsIGxp YnJ0bXAtZGV2ZWwgbGlibW9kcGx1Zy1kZXZlbCBnbnV0bHMtZGV2ZWwKKyBzcGVleC1kZXZlbCBj ZWx0LWRldmVsIGhhcmZidXp6LWRldmVsIGxpYmFzcy1kZXZlbCBvcHVzLWRldmVsIG9jbC1pY2Qt ZGV2ZWwKKyBsaWJiczJiLWRldmVsIGxpYnZpZHN0YWItZGV2ZWwgJCh2b3B0X2lmIHB1bHNlYXVk aW8gcHVsc2VhdWRpby1kZXZlbCkKKyAkKHZvcHRfaWYgdmFhcGkgbGlidmEtZGV2ZWwpICQodm9w dF9pZiB2ZHBhdSBsaWJ2ZHBhdS1kZXZlbCkKKyAkKHZvcHRfaWYgeDI2NSB4MjY1LWRldmVsKSAk KHZvcHRfaWYgdjRsMiB2NGwtdXRpbHMtZGV2ZWwpCisgJCh2b3B0X2lmIGZka19hYWMgZmRrLWFh Yy1kZXZlbCkgJCh2b3B0X2lmIHZweCBsaWJ2cHgtZGV2ZWwpCisgJCh2b3B0X2lmIGFvbSBsaWJh b20tZGV2ZWwpICQodm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCkKKyAkKHZvcHRfaWYgZGF2MWQg bGliZGF2MWQtZGV2ZWwpICQodm9wdF9pZiB6aW1nIHppbWctZGV2ZWwpCisgJCh2b3B0X2lmIHdl YnAgbGlid2VicC1kZXZlbCkgJCh2b3B0X2lmIHNvZmEgbGlibXlzb2ZhLWRldmVsKQorICQodm9w dF9pZiBkcm0gbGliZHJtLWRldmVsKSAkKHZvcHRfaWYgc3Z0YXYxIGxpYnN2dC1hdjEtZGV2ZWwp CisgJCh2b3B0X2lmIHNydCBzcnQtZGV2ZWwpICQodm9wdF9pZiByaXN0IGxpYnJpc3QtZGV2ZWwp CisgJCh2b3B0X2lmIHZ1bGthbiAndnVsa2FuLWxvYWRlciBWdWxrYW4tSGVhZGVycyBWdWxrYW4t VG9vbHMgVnVsa2FuLVZhbGlkYXRpb25MYXllcnMnKQorICQodm9wdF9pZiBudmVuYyBudi1jb2Rl Yy1oZWFkZXJzKSAkKHZvcHRfaWYgbnZkZWMgbnYtY29kZWMtaGVhZGVycykiCiBkZXBlbmRzPSJm ZnBsYXk+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi1idWlsZF9vcHRpb25zPSJ2YWFwaSB2ZHBh dSBudmVuYyBudmRlYyBzdnRhdjEiCisKK2J1aWxkX29wdGlvbnM9IngyNjUgdjRsMiB2YWFwaSB2 ZHBhdSB2cHggZmRrX2FhYyBhb20gbnZlbmMgc25kaW8gcHVsc2VhdWRpbworIGRhdjFkIHppbWcg d2VicCBzb2ZhIHZ1bGthbiBkcm0gc3Z0YXYxIHNydCByaXN0IG52ZGVjIgorYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJ4MjY1IHY0bDIgdnB4IGFvbSBzbmRpbyBwdWxzZWF1ZGlvIGRhdjFkIHdlYnAg dnVsa2FuIGRybSBzcnQgcmlzdCIKK2Rlc2Nfb3B0aW9uX3NydD0iRW5hYmxlIHN1cHBvcnQgZm9y IFNSVCAoU2VjdXJlLCBSZWxpYWJsZSwgVHJhbnNwb3J0KSIKK2Rlc2Nfb3B0aW9uX3Jpc3Q9IkVu YWJsZSBzdXBwb3J0IGZvciBSSVNUIChSZWxpYWJsZSBJbnRlcm5ldCBTdHJlYW0gVHJhbnNwb3J0 KSIKK2Rlc2Nfb3B0aW9uX3NvZmE9IkVuYWJsZSBzdXBwb3J0IGZvciBBRVMgU09GQSIKK2Rlc2Nf b3B0aW9uX3dlYnA9IkVuYWJsZSBzdXBwb3J0IGZvciBXZWJQIgogCiBjYXNlICIkWEJQU19UQVJH RVRfTUFDSElORSIgaW4KIAlpNjg2Knx4ODZfNjQqKSBidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIg dmFhcGkgdmRwYXUgbnZlbmMgbnZkZWMiOzsKQEAgLTQ2LDYgKzUyLDIyIEBAIGlmIFsgIiRYQlBT X1RBUkdFVF9OT19BVE9NSUM4IiBdOyB0aGVuCiAJbWFrZWRlcGVuZHMrPSIgbGliYXRvbWljLWRl dmVsIgogZmkKIAorX2FwcGx5X3BhdGNoKCkgeworCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChi YXNlbmFtZSAkMikiCisKKwlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCisJCXBh dGNoIC1OICRhcmdzIC1pICQyCisJCXRvdWNoIC4ke3BuYW1lfV9kb25lCisJZmkKK30KKworcG9z dF9wYXRjaCgpIHsKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjRsZSop IDs7CisJCXBwYyopIF9hcHBseV9wYXRjaCAtcDEgJHtGSUxFU0RJUn0vYWx0aXZlYy5wYXRjaCA7 OworCWVzYWMKK30KKwogZG9fY29uZmlndXJlKCkgewogCSMgRml4IGdjYyBvbiB4ODZfNjQtbXVz bCBvbmx5CiAJaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gIng4Nl82NC1tdXNsIiBdOyB0 aGVuCkBAIC03Niw0NyArOTgsMzkgQEAgZG9fY29uZmlndXJlKCkgewogCQlfYXJncys9IiAtLWV4 dHJhLWxpYnM9LWxhdG9taWMiCiAJZmkKIAotCS4vY29uZmlndXJlIFwKLQkJLS1wcmVmaXg9Jy91 c3InIFwKLQkJLS1leHRyYS1jZmxhZ3M9Jy1JL29wdC9jdWRhL2luY2x1ZGUnIFwKLQkJLS1leHRy YS1sZGZsYWdzPSctTC9vcHQvY3VkYS9saWI2NCcgXAorCS4vY29uZmlndXJlIC0tcHJlZml4PS91 c3IgLS1kaXNhYmxlLWRlYnVnIC0tZW5hYmxlLWdwbCAtLWVuYWJsZS1nbnV0bHMgXAogCQktLWRp c2FibGUtc3RyaXBwaW5nIFwKLQkJLS1lbmFibGUtc2hhcmVkIC0tZW5hYmxlLXN0YXRpYyBcCi0J CS0tZW5hYmxlLW5vbmZyZWUgLS1lbmFibGUtZ3BsIFwKLQkJLS1lbmFibGUtdmVyc2lvbjMgLS1l bmFibGUtbGlieGNiIFwKLQkJLS1lbmFibGUtZnJlaTByIC0tZW5hYmxlLWxpYmNkaW8gXAotCQkt LWVuYWJsZS1saWJydWJiZXJiYW5kIC0tZW5hYmxlLWxpYnZpZHN0YWIgXAotCQktLWVuYWJsZS1s aWJ4MjY0IC0tZW5hYmxlLWxpYngyNjUgLS1lbmFibGUtbGlieHZpZCBcCi0JCS0tZW5hYmxlLWxp YmZkay1hYWMgLS1lbmFibGUtbGlidGxzIC0tZW5hYmxlLWdtcCBcCi0JCS0tZW5hYmxlLWNocm9t YXByaW50IC0tZW5hYmxlLWdjcnlwdCAtLWVuYWJsZS1sYWRzcGEgXAotCQktLWVuYWJsZS1sY21z MiAtLWVuYWJsZS1saWJhb20gLS1lbmFibGUtbGliYXNzIFwKLQkJLS1lbmFibGUtbGliYmx1cmF5 IC0tZW5hYmxlLWxpYmNhY2EgLS1lbmFibGUtbGliY2VsdCBcCi0JCS0tZW5hYmxlLWxpYmNvZGVj MiAtLWVuYWJsZS1saWJkYXYxZCAtLWVuYWJsZS1saWJkcm0gXAotCQktLWVuYWJsZS1saWJmb250 Y29uZmlnIC0tZW5hYmxlLWxpYmZyZWV0eXBlIFwKLQkJLS1lbmFibGUtbGliZnJpYmlkaSAtLWVu YWJsZS1saWJnbHNsYW5nIFwKLQkJLS1lbmFibGUtbGliZ21lIC0tZW5hYmxlLWxpYmdzbSBcCi0J CS0tZW5hYmxlLXZhcG91cnN5bnRoIC0tZW5hYmxlLW9wZW5zc2wgLS1lbmFibGUtb3BlbmdsIFwK LQkJLS1lbmFibGUtb3BlbmFsIC0tZW5hYmxlLWx2MiAtLWVuYWJsZS1saWJ6aW1nIFwKLQkJLS1l bmFibGUtbGlieG1sMiAtLWVuYWJsZS1saWJ3ZWJwIC0tZW5hYmxlLWxpYnZvcmJpcyBcCi0JCS0t ZW5hYmxlLWxpYnR3b2xhbWUgLS1lbmFibGUtbGlidGhlb3JhIC0tZW5hYmxlLWxpYnNzaCBcCi0J CS0tZW5hYmxlLWxpYnNydCAtLWVuYWJsZS1saWJzcGVleCAtLWVuYWJsZS1saWJzb3hyIFwKLQkJ LS1lbmFibGUtbGlicnRtcCAtLWVuYWJsZS1saWJyc3ZnIC0tZW5hYmxlLWxpYnJpc3QgXAotCQkt LWVuYWJsZS1saWJyYWJiaXRtcSAtLWVuYWJsZS1saWJwdWxzZSAtLWVuYWJsZS1saWJwbGFjZWJv IFwKLQkJLS1lbmFibGUtbGlib3B1cyAtLWVuYWJsZS1saWJvcGVubXB0IC0tZW5hYmxlLWxpYm9w ZW5qcGVnIFwKLQkJLS1lbmFibGUtbGlibXAzbGFtZSAtLWVuYWJsZS1saWJtb2RwbHVnIC0tZW5h YmxlLWxpYmphY2sgXAotCQktLWVuYWJsZS1vcGVuY2wgLS1lbmFibGUtbGlidnB4IC0tZW5hYmxl LWxpYm15c29mYSBcCi0JCSQodm9wdF9lbmFibGUgdmFhcGkpIFwKLQkJJCh2b3B0X2VuYWJsZSB2 ZHBhdSkgXAorCQktLWVuYWJsZS1saWJjZGlvIC0tZW5hYmxlLXZlcnNpb24zIC0tZW5hYmxlLXJ1 bnRpbWUtY3B1ZGV0ZWN0IFwKKwkJLS1lbmFibGUtbGlibXAzbGFtZSAtLWVuYWJsZS1saWJ2b3Ji aXMgLS1lbmFibGUtbGlieHZpZCBcCisJCS0tZW5hYmxlLWxpYngyNjQgJCh2b3B0X2VuYWJsZSB2 cHggbGlidnB4KSAtLWVuYWJsZS1saWJ0aGVvcmEgXAorCQktLWVuYWJsZS1zaGFyZWQgLS1lbmFi bGUtc3RhdGljIC0tZW5hYmxlLWxpYnhjYiBcCisJCSQodm9wdF9lbmFibGUgcHVsc2VhdWRpbyBs aWJwdWxzZSkgLS1lbmFibGUtbGliZnJlZXR5cGUgLS1lbmFibGUtbGlibW9kcGx1ZyBcCisJCS0t ZW5hYmxlLWxpYnNwZWV4IC0tZW5hYmxlLWxpYmNlbHQgLS1lbmFibGUtbGliYXNzIFwKKwkJLS1l bmFibGUtbGlib3B1cyAtLWVuYWJsZS1saWJydG1wIC0tZW5hYmxlLWxpYmphY2sgXAorCQkkKHZv cHRfaWYgZmRrX2FhYyAnLS1lbmFibGUtbm9uZnJlZSAtLWVuYWJsZS1saWJmZGstYWFjJykgXAor CQktLWRpc2FibGUtbGlib3BlbmNvcmVfYW1ybmIgLS1kaXNhYmxlLWxpYm9wZW5jb3JlX2Ftcndi IFwKKwkJLS1kaXNhYmxlLWxpYm9wZW5qcGVnIFwKKwkJLS1lbmFibGUtcG9zdHByb2MgLS1lbmFi bGUtb3BlbmNsICR7X2FyZ3N9IFwKKwkJJCh2b3B0X2VuYWJsZSB4MjY1IGxpYngyNjUpIFwKKwkJ JCh2b3B0X2VuYWJsZSB2NGwyIGxpYnY0bDIpIFwKKwkJJCh2b3B0X2VuYWJsZSBhb20gbGliYW9t KSAkKHZvcHRfZW5hYmxlIHZhYXBpKSAkKHZvcHRfZW5hYmxlIHZkcGF1KSBcCisJCS0tZW5hYmxl LWxpYmJzMmIgLS1lbmFibGUtbGlidmlkc3RhYiBcCisJCSQodm9wdF9lbmFibGUgZGF2MWQgbGli ZGF2MWQpIFwKKwkJJCh2b3B0X2VuYWJsZSB6aW1nIGxpYnppbWcpIFwKKwkJJCh2b3B0X2VuYWJs ZSB3ZWJwIGxpYndlYnApIFwKKwkJJCh2b3B0X2VuYWJsZSBzb2ZhIGxpYm15c29mYSkgXAorCQkk KHZvcHRfZW5hYmxlIHZ1bGthbikgXAorCQkkKHZvcHRfZW5hYmxlIGRybSBsaWJkcm0pIFwKKwkJ JCh2b3B0X2VuYWJsZSBzdnRhdjEgbGlic3Z0YXYxKSBcCisJCSQodm9wdF9lbmFibGUgc3J0IGxp YnNydCkgXAorCQkkKHZvcHRfZW5hYmxlIHJpc3QgbGlicmlzdCkgXAogCQkkKHZvcHRfaWYgbnZl bmMgJy0tZW5hYmxlLW52ZW5jJykgXAotCQkkKHZvcHRfaWYgbnZkZWMgJy0tZW5hYmxlLW52ZGVj JykgXAotCQkkKHZvcHRfZW5hYmxlIHN2dGF2MSBsaWJzdnRhdjEpCisJCSQodm9wdF9pZiBudmRl YyAnLS1lbmFibGUtbnZkZWMnKQogfQotCiBkb19idWlsZCgpIHsKIAltYWtlICR7bWFrZWpvYnN9 CiAJbWFrZSBkb2MvZmZ7bXBlZyxwbGF5fS4xCiB9Ci0KIGRvX2luc3RhbGwoKSB7CiAJbWFrZSBE RVNURElSPSR7REVTVERJUn0gaW5zdGFsbCBpbnN0YWxsLW1hbgogfQpAQCAtMTMzLDYgKzE0Nywx MCBAQCBsaWJhdmRldmljZV9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJhdmRldmlj ZS5zby4qIgogCX0KIH0KK2xpYmF2cmVzYW1wbGVfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjPSJQ YWNrYWdlIGRlcHJlY2F0ZWQsIHJlbW92YWwgbmVlZGVkIgorCWJ1aWxkX3N0eWxlPW1ldGEKK30K IGxpYmF2Zm9ybWF0X3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYz0iRkZtcGVnIGZpbGUgZm9ybWF0 IGxpYnJhcnkiCiAJcGtnX2luc3RhbGwoKSB7CkBAIC0xODAsNDcgKzE5OCw3IEBAIGZmbXBlZy1k ZXZlbF9wYWNrYWdlKCkgewogCQlsaWJzd3NjYWxlPj0ke3ZlcnNpb259XyR7cmV2aXNpb259CiAJ CWxpYnN3cmVzYW1wbGU+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAt IGRldmVsb3BtZW50IGZpbGVzIgotCWFsdGVybmF0aXZlcz0iCi0JIGZmbXBlZy1kZXZlbDpsaWJh dmNvZGVjLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJhdmNvZGVjNS4zCi0JIGZmbXBlZy1kZXZl bDpsaWJhdmRldmljZS4zOi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZkZXZpY2U1LjMKLQkgZmZt cGVnLWRldmVsOmxpYmF2ZmlsdGVyLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJhdmZpbHRlcjUu MwotCSBmZm1wZWctZGV2ZWw6bGlibGliYXZmb3JtYXQuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xp YmF2Zm9ybWF0NS4zCi0JIGZmbXBlZy1kZXZlbDpsaWJhdnV0aWwuMzovdXNyL3NoYXJlL21hbi9t YW4zL2xpYmF2dXRpbDUuMwotCSBmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS4zOi91c3Ivc2hh cmUvbWFuL21hbjMvbGlic3dyZXNhbXBsZTUuMwotCSBmZm1wZWctZGV2ZWw6bGlic3dzY2FsZS4z Oi91c3Ivc2hhcmUvbWFuL21hbjMvbGlic3dzY2FsZTUuMwotCSBmZm1wZWctZGV2ZWw6bGliYXZj b2RlYzovdXNyL2luY2x1ZGUvbGliYXZjb2RlYzUKLQkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNl Oi91c3IvaW5jbHVkZS9saWJhdmRldmljZTUKLQkgZmZtcGVnLWRldmVsOmxpYmF2Zm9ybWF0Oi91 c3IvaW5jbHVkZS9saWJhdmZvcm1hdDUKLQkgZmZtcGVnLWRldmVsOmxpYmF2dXRpbDovdXNyL2lu Y2x1ZGUvbGliYXZ1dGlsNQotCSBmZm1wZWctZGV2ZWw6bGliYXZwb3N0cHJvYzovdXNyL2luY2x1 ZGUvbGliYXZwb3N0cHJvYzUKLQkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGU6L3Vzci9pbmNs dWRlL2xpYnN3cmVzYW1wbGU1Ci0JIGZmbXBlZy1kZXZlbDpsaWJzd2NhYWxlOi91c3IvaW5jbHVk ZS9saWJzd3NjYWxlNQotCSBmZm1wZWctZGV2ZWw6bGliYXZjb2RlYy5wYzovdXNyL2xpYi9wa2dj b25maWcvbGliYXZjb2RlYzUucGMKLQkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlLnBjOi91c3Iv bGliL3BrZ2NvbmZpZy9saWJhdmRldmljZTUucGMKLQkgZmZtcGVnLWRldmVsOmxpYmF2ZmlsdGVy LnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJhdmZpbHRlcjUucGMKLQkgZmZtcGVnLWRldmVsOmxp YmF2Zm9ybWF0LnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJhdmZvcm1hdDUucGMKLQkgZmZtcGVn LWRldmVsOmxpYmF2dXRpbC5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZ1dGlsNS5wYwotCSBm Zm1wZWctZGV2ZWw6bGlicG9zdHByb2MucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYnBvc3Rwcm9j NS5wYwotCSBmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS5wYzovdXNyL2xpYi9wa2djb25maWcv bGlic3dyZXNhbXBsZTUucGMKLQkgZmZtcGVnLWRldmVsOmxpYnN3c2NhbGUucGM6L3Vzci9saWIv cGtnY29uZmlnL2xpYnN3c2NhbGU1LnBjCi0JIGZmbXBlZy1kZXZlbDpsaWJhdmNvZGVjLmE6L3Vz ci9saWIvbGliYXZjb2RlYzUuYQotCSBmZm1wZWctZGV2ZWw6bGliYXZjb2RlYy5zbzovdXNyL2xp Yi9saWJhdmNvZGVjNS5zbwotCSBmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2UuYTovdXNyL2xpYi9s aWJhdmRldmljZTUuYQotCSBmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2Uuc286L3Vzci9saWIvbGli YXZkZXZpY2U1LnNvCi0JIGZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci5hOi91c3IvbGliL2xpYmF2 ZmlsdGVyNS5hCi0JIGZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci5zbzovdXNyL2xpYi9saWJhdmZp bHRlcjUuc28KLQkgZmZtcGVnLWRldmVsOmxpYmF2Zm9ybWF0LmE6L3Vzci9saWIvbGliYXZmb3Jt YXQ1LmEKLQkgZmZtcGVnLWRldmVsOmxpYmF2Zm9ybWF0LnNvOi91c3IvbGliL2xpYmF2Zm9ybWF0 NS5zbwotCSBmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLmE6L3Vzci9saWIvbGliYXZ1dGlsNS5hCi0J IGZmbXBlZy1kZXZlbDpsaWJhdnV0aWwuc286L3Vzci9saWIvbGliYXZ1dGlsNS5zbwotCSBmZm1w ZWctZGV2ZWw6bGlicG9zdHByb2MuYTovdXNyL2xpYi9saWJwb3N0cHJvYzUuYQotCSBmZm1wZWct ZGV2ZWw6bGlicG9zdHByb2Muc286L3Vzci9saWIvbGlicG9zdHByb2M1LnNvCi0JIGZmbXBlZy1k ZXZlbDpsaWJzd3Jlc2FtcGxlLmE6L3Vzci9saWIvbGlic3dyZXNhbXBsZTUuYQotCSBmZm1wZWct ZGV2ZWw6bGlic3dyZXNhbXBsZS5zbzovdXNyL2xpYi9saWJzd3Jlc2FtcGxlNS5zbwotCSBmZm1w ZWctZGV2ZWw6bGlic3dzY2FsZS5hOi91c3IvbGliL2xpYnN3c2NhbGU1LmEKLQkgZmZtcGVnLWRl dmVsOmxpYnN3c2NhbGUuc286L3Vzci9saWIvbGlic3dzY2FsZTUuc28KLQkgZmZtcGVnLWRldmVs OmZmbXBlZzovdXNyL3NoYXJlL2ZmbXBlZzUKLQkiCisJY29uZmxpY3RzPSJmZm1wZWc0LWRldmVs IgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGli L3BrZ2NvbmZpZwpAQCAtMjMxLDcgKzIwOSw3IEBAIGZmbXBlZy1kZXZlbF9wYWNrYWdlKCkgewog CX0KIH0KIGZmcGxheV9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2M9IlNpbXBsZSBtZWRpYSBwbGF5 ZXIgdXNpbmcgRkZtcGVnIGFuZCBTREwyIgorCXNob3J0X2Rlc2M9IlNpbXBsZSB2aWRlbyBwbGF5 ZXIgdXNpbmcgRkZtcGVnIGFuZCBTREwyIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3Iv YmluL2ZmcGxheQogCQl2bW92ZSAidXNyL3NoYXJlL21hbi9tYW4xL2ZmcGxheSoiCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2ZmbXBlZzQvZmZtcGVnNCBiL3NyY3BrZ3MvZmZtcGVnNC9mZm1wZWc0CmRl bGV0ZWQgZmlsZSBtb2RlIDEyMDAwMAppbmRleCA4ODdmMzU0ZTdjNmIuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2ZmbXBlZzQvZmZtcGVnNAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK LWZmbXBlZzQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dz L2ZmbXBlZzQvdGVtcGxhdGUgYi9zcmNwa2dzL2ZmbXBlZzQvdGVtcGxhdGUKaW5kZXggY2Q5MTU0 OTc4YjNlLi43YmM2NGJiMzlmNDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmZtcGVnNC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2ZmbXBlZzQvdGVtcGxhdGUKQEAgLTIsOCArMiw4IEBACiAjIGF1ZGFj aXR5IGFsc28gbmVlZHMgdG8gYmUgYnVtcGVkIHdoZW4gYSBuZXcgZmZtcGVnIHZlcnNpb24gYnVt cHMgbGliYXZmb3JtYXQncyBzb25hbWUhCiBwa2duYW1lPWZmbXBlZzQKIHZlcnNpb249NC40LjMK LXJldmlzaW9uPTMKLXNob3J0X2Rlc2M9ImZmbXBlZzQgbGlicmFyaWVzIG9ubHkgLSBEZWNvZGlu ZywgZW5jb2RpbmcgYW5kIHN0cmVhbWluZyBzb2Z0d2FyZSIKK3JldmlzaW9uPTEKK3Nob3J0X2Rl c2M9IkRlY29kaW5nLCBlbmNvZGluZyBhbmQgc3RyZWFtaW5nIHNvZnR3YXJlIC0gZmZtcGVnNCBs aWJyYXJpZXMgb25seSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmZm bXBlZy5vcmciCkBAIC0yMDIsNDcgKzIwMiw3IEBAIGZmbXBlZzQtZGV2ZWxfcGFja2FnZSgpIHsK IAkJbGlic3dyZXNhbXBsZTQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KIAkJbGliYXZyZXNhbXBs ZTQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50 IGZpbGVzIgotCWFsdGVybmF0aXZlcz0iCi0JCWZmbXBlZy1kZXZlbDpsaWJhdmNvZGVjLjM6L3Vz ci9zaGFyZS9tYW4vbWFuMy9saWJhdmNvZGVjNC4zCi0JCWZmbXBlZy1kZXZlbDpsaWJhdmRldmlj ZS4zOi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZkZXZpY2U0LjMKLQkJZmZtcGVnLWRldmVsOmxp YmF2ZmlsdGVyLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJhdmZpbHRlcjQuMwotCQlmZm1wZWct ZGV2ZWw6bGlibGliYXZmb3JtYXQuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2Zm9ybWF0NC4z Ci0JCWZmbXBlZy1kZXZlbDpsaWJhdnV0aWwuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2dXRp bDQuMwotCQlmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS4zOi91c3Ivc2hhcmUvbWFuL21hbjMv bGlic3dyZXNhbXBsZTQuMwotCQlmZm1wZWctZGV2ZWw6bGlic3dzY2FsZS4zOi91c3Ivc2hhcmUv bWFuL21hbjMvbGlic3dzY2FsZTQuMwotCQlmZm1wZWctZGV2ZWw6bGliYXZjb2RlYzovdXNyL2lu Y2x1ZGUvbGliYXZjb2RlYzQKLQkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlOi91c3IvaW5jbHVk ZS9saWJhdmRldmljZTQKLQkJZmZtcGVnLWRldmVsOmxpYmF2Zm9ybWF0Oi91c3IvaW5jbHVkZS9s aWJhdmZvcm1hdDQKLQkJZmZtcGVnLWRldmVsOmxpYmF2dXRpbDovdXNyL2luY2x1ZGUvbGliYXZ1 dGlsNAotCQlmZm1wZWctZGV2ZWw6bGliYXZwb3N0cHJvYzovdXNyL2luY2x1ZGUvbGliYXZwb3N0 cHJvYzQKLQkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGU6L3Vzci9pbmNsdWRlL2xpYnN3cmVz YW1wbGU0Ci0JCWZmbXBlZy1kZXZlbDpsaWJzd2NhYWxlOi91c3IvaW5jbHVkZS9saWJzd3NjYWxl NAotCQlmZm1wZWctZGV2ZWw6bGliYXZjb2RlYy5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZj b2RlYzQucGMKLQkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlLnBjOi91c3IvbGliL3BrZ2NvbmZp Zy9saWJhdmRldmljZTQucGMKLQkJZmZtcGVnLWRldmVsOmxpYmF2ZmlsdGVyLnBjOi91c3IvbGli L3BrZ2NvbmZpZy9saWJhdmZpbHRlcjQucGMKLQkJZmZtcGVnLWRldmVsOmxpYmF2Zm9ybWF0LnBj Oi91c3IvbGliL3BrZ2NvbmZpZy9saWJhdmZvcm1hdDQucGMKLQkJZmZtcGVnLWRldmVsOmxpYmF2 dXRpbC5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZ1dGlsNC5wYwotCQlmZm1wZWctZGV2ZWw6 bGlicG9zdHByb2MucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYnBvc3Rwcm9jNC5wYwotCQlmZm1w ZWctZGV2ZWw6bGlic3dyZXNhbXBsZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGlic3dyZXNhbXBs ZTQucGMKLQkJZmZtcGVnLWRldmVsOmxpYnN3c2NhbGUucGM6L3Vzci9saWIvcGtnY29uZmlnL2xp YnN3c2NhbGU0LnBjCi0JCWZmbXBlZy1kZXZlbDpsaWJhdmNvZGVjLmE6L3Vzci9saWIvbGliYXZj b2RlYzQuYQotCQlmZm1wZWctZGV2ZWw6bGliYXZjb2RlYy5zbzovdXNyL2xpYi9saWJhdmNvZGVj NC5zbwotCQlmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2UuYTovdXNyL2xpYi9saWJhdmRldmljZTQu YQotCQlmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2Uuc286L3Vzci9saWIvbGliYXZkZXZpY2U0LnNv Ci0JCWZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci5hOi91c3IvbGliL2xpYmF2ZmlsdGVyNC5hCi0J CWZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci5zbzovdXNyL2xpYi9saWJhdmZpbHRlcjQuc28KLQkJ ZmZtcGVnLWRldmVsOmxpYmF2Zm9ybWF0LmE6L3Vzci9saWIvbGliYXZmb3JtYXQ0LmEKLQkJZmZt cGVnLWRldmVsOmxpYmF2Zm9ybWF0LnNvOi91c3IvbGliL2xpYmF2Zm9ybWF0NC5zbwotCQlmZm1w ZWctZGV2ZWw6bGliYXZ1dGlsLmE6L3Vzci9saWIvbGliYXZ1dGlsNC5hCi0JCWZmbXBlZy1kZXZl bDpsaWJhdnV0aWwuc286L3Vzci9saWIvbGliYXZ1dGlsNC5zbwotCQlmZm1wZWctZGV2ZWw6bGli cG9zdHByb2MuYTovdXNyL2xpYi9saWJwb3N0cHJvYzQuYQotCQlmZm1wZWctZGV2ZWw6bGlicG9z dHByb2Muc286L3Vzci9saWIvbGlicG9zdHByb2M0LnNvCi0JCWZmbXBlZy1kZXZlbDpsaWJzd3Jl c2FtcGxlLmE6L3Vzci9saWIvbGlic3dyZXNhbXBsZTQuYQotCQlmZm1wZWctZGV2ZWw6bGlic3dy ZXNhbXBsZS5zbzovdXNyL2xpYi9saWJzd3Jlc2FtcGxlNC5zbwotCQlmZm1wZWctZGV2ZWw6bGli c3dzY2FsZS5hOi91c3IvbGliL2xpYnN3c2NhbGU0LmEKLQkJZmZtcGVnLWRldmVsOmxpYnN3c2Nh bGUuc286L3Vzci9saWIvbGlic3dzY2FsZTQuc28KLQkJZmZtcGVnLWRldmVsOmZmbXBlZzovdXNy L3NoYXJlL2ZmbXBlZzQKLQkiCisJY29uZmxpY3RzPSJmZm1wZWctZGV2ZWwiCiAJcGtnX2luc3Rh bGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2ZmbXBlZ3RodW1ibmFpbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9m Zm1wZWd0aHVtYm5haWxlci90ZW1wbGF0ZQppbmRleCAwMzllZWE3NjIyYjMuLjM1ZDU0NjAxOGQx MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9mZm1wZWd0aHVtYm5haWxlci90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2ZmbXBlZ3RodW1ibmFpbGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZmZtcGVndGh1bWJuYWlsZXInCiBwa2duYW1lPWZmbXBlZ3RodW1ibmFp bGVyCiB2ZXJzaW9uPTIuMi4yCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1j bWFrZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImxpYnBuZy1k ZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGZmbXBlZy1kZXZlbCIKQEAgLTksOCArOSw4IEBAIGRl cGVuZHM9ImZmbXBlZyIKIHNob3J0X2Rlc2M9IkxpZ2h0d2VpZ2h0IHZpZGVvIHRodW1ibmFpbGVy IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCi1ob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL2Rpcmt2ZGIv JHtwa2duYW1lfSIKLWRpc3RmaWxlcz0iJHtob21lcGFnZX0vcmVsZWFzZXMvZG93bmxvYWQvJHt2 ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLmJ6MiIKK2hvbWVwYWdlPSJodHRwczov L2dpdGh1Yi5jb20vZGlya3ZkYiIKK2Rpc3RmaWxlcz0iJHtob21lcGFnZX0vJHtwa2duYW1lfS9y ZWxlYXNlcy9kb3dubG9hZC8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIuYnoy IgogY2hlY2tzdW09MWNiMjQwNTljMzgyMjNmNjU3YjMwMGM4NGRkODA0OTFiNzA0MGQ0YjY5NDcx YzRmZWE2OWJlODYyYmM5OWI1YgogCiBwb3N0X2luc3RhbGwoKSB7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZmbXBlZ3RodW1icy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmZtcGVndGh1bWJzL3RlbXBsYXRl CmluZGV4IDVmMGI5NDE0ZGFkYS4uMTFiODgxOTM1MjhmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Zm bXBlZ3RodW1icy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZmbXBlZ3RodW1icy90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZmbXBlZ3RodW1icycKIHBrZ25h bWU9ZmZtcGVndGh1bWJzCiB2ZXJzaW9uPTIyLjEyLjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9ImV4dHJhLWNtYWtlLW1vZHVsZXMg a2NvcmVhZGRvbnMga2NvbmZpZy1kZXZlbAogIHBrZy1jb25maWcgcXQ1LWhvc3QtdG9vbHMgcXQ1 LXFtYWtlIGdldHRleHQiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZmbXMyL3BhdGNoZXMvZmZtcGVn NS5wYXRjaCBiL3NyY3BrZ3MvZmZtczIvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDc2NmRiMTcyNDczCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9mZm1zMi9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKQEAgLTAsMCArMSw0MTkg QEAKK0Zyb20gMjhmYzQ5M2ZkYTJmYTIwNjRhZmVlYjBhNWQ4NWZkYzQyZGIwNWRjZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERlcmVrIEJ1aXRlbmh1aXMgPGRlcmVrLmJ1aXRlbmh1 aXNAZ21haWwuY29tPgorRGF0ZTogVHVlLCA0IE1heSAyMDIxIDE0OjEyOjQxICswMTAwCitTdWJq ZWN0OiBbUEFUQ0ggMS8zXSBhbGw6IFVwZGF0ZSBBVlBhY2tldCBBUEkgdXNhZ2UKKworQVZQYWNr ZXRzIG11c3QgYWxsIGJlIG9uIHRoZSBoZWFwIG5vdywgc2luY2UgaXQgaXMgbm8gbG9uZ2VyCitw YXJ0IG9mIHRoZSBsaWJhdiogQUJJLgorCitTaWduZWQtb2ZmLWJ5OiBEZXJlayBCdWl0ZW5odWlz IDxkZXJlay5idWl0ZW5odWlzQGdtYWlsLmNvbT4KKy0tLQorIHNyYy9jb3JlL2F1ZGlvc291cmNl LmNwcCB8IDE2ICsrKysrKy0tLS0KKyBzcmMvY29yZS9pbmRleGluZy5jcHAgICAgfCA2MyArKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCisgc3JjL2NvcmUvaW5kZXhpbmcu aCAgICAgIHwgIDQgKy0tCisgc3JjL2NvcmUvdXRpbHMuY3BwICAgICAgIHwgIDYgLS0tLQorIHNy Yy9jb3JlL3V0aWxzLmggICAgICAgICB8ICAxIC0KKyBzcmMvY29yZS92aWRlb3NvdXJjZS5jcHAg fCAzMCArKysrKysrKysrLS0tLS0tLS0tCisgNiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25z KCspLCA1NiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9jb3JlL2F1ZGlvc291cmNl LmNwcCBiL3NyYy9jb3JlL2F1ZGlvc291cmNlLmNwcAoraW5kZXggMzdjZjlhZWVmLi5lNGNlOTdj ZGIgMTAwNjQ0CistLS0gYS9zcmMvY29yZS9hdWRpb3NvdXJjZS5jcHAKKysrKyBiL3NyYy9jb3Jl L2F1ZGlvc291cmNlLmNwcAorQEAgLTI4NSwxMCArMjg1LDE1IEBAIEZGTVNfQXVkaW9Tb3VyY2U6 OkF1ZGlvQmxvY2sgKkZGTVNfQXVkaW9Tb3VyY2U6OkNhY2hlQmxvY2soQ2FjaGVJdGVyYXRvciAm cG9zKSB7CisgaW50IEZGTVNfQXVkaW9Tb3VyY2U6OkRlY29kZU5leHRCbG9jayhDYWNoZUl0ZXJh dG9yICpwb3MpIHsKKyAgICAgQ3VycmVudEZyYW1lID0gJkZyYW1lc1tQYWNrZXROdW1iZXJdOwor CistICAgIEFWUGFja2V0IFBhY2tldDsKKy0gICAgaWYgKCFSZWFkUGFja2V0KCZQYWNrZXQpKQor KyAgICBBVlBhY2tldCAqUGFja2V0ID0gYXZfcGFja2V0X2FsbG9jKCk7CisrICAgIGlmICghUGFj a2V0KQorKyAgICAgICAgdGhyb3cgRkZNU19FeGNlcHRpb24oRkZNU19FUlJPUl9QQVJTRVIsIEZG TVNfRVJST1JfQUxMT0NBVElPTl9GQUlMRUQsCisrICAgICAgICAgICAgIkNvdWxkIG5vdCBhbGxv Y2F0ZSBwYWNrZXQuIik7CisrICAgIGlmICghUmVhZFBhY2tldChQYWNrZXQpKSB7CisrICAgICAg ICBhdl9wYWNrZXRfZnJlZSgmUGFja2V0KTsKKyAgICAgICAgIHRocm93IEZGTVNfRXhjZXB0aW9u KEZGTVNfRVJST1JfUEFSU0VSLCBGRk1TX0VSUk9SX1VOS05PV04sCisgICAgICAgICAgICAgIlJl YWRQYWNrZXQgdW5leHBlY3RlZGx5IGZhaWxlZCB0byByZWFkIGEgcGFja2V0Iik7CisrICAgIH0K KworICAgICAvLyBSZWFkUGFja2V0IG1heSBoYXZlIGNoYW5nZWQgdGhlIHBhY2tldCBudW1iZXIK KyAgICAgQ3VycmVudEZyYW1lID0gJkZyYW1lc1tQYWNrZXROdW1iZXJdOworQEAgLTI5Nyw4ICsz MDIsOSBAQCBpbnQgRkZNU19BdWRpb1NvdXJjZTo6RGVjb2RlTmV4dEJsb2NrKENhY2hlSXRlcmF0 b3IgKnBvcykgeworICAgICBpbnQgTnVtYmVyT2ZTYW1wbGVzID0gMDsKKyAgICAgQXVkaW9CbG9j ayAqQ2FjaGVkQmxvY2sgPSBudWxscHRyOworCistICAgIGludCBSZXQgPSBhdmNvZGVjX3NlbmRf cGFja2V0KENvZGVjQ29udGV4dCwgJlBhY2tldCk7CistICAgIGF2X3BhY2tldF91bnJlZigmUGFj a2V0KTsKKysgICAgaW50IFJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQoQ29kZWNDb250ZXh0LCBQ YWNrZXQpOworKyAgICBhdl9wYWNrZXRfdW5yZWYoUGFja2V0KTsKKysgICAgYXZfcGFja2V0X2Zy ZWUoJlBhY2tldCk7CisKKyAgICAgYXZfZnJhbWVfdW5yZWYoRGVjb2RlRnJhbWUpOworICAgICBS ZXQgPSBhdmNvZGVjX3JlY2VpdmVfZnJhbWUoQ29kZWNDb250ZXh0LCBEZWNvZGVGcmFtZSk7CitA QCAtNTEzLDggKzUxOSw2IEBAIHZvaWQgRkZNU19BdWRpb1NvdXJjZTo6U2VlaygpIHsKKyB9CisK KyBib29sIEZGTVNfQXVkaW9Tb3VyY2U6OlJlYWRQYWNrZXQoQVZQYWNrZXQgKlBhY2tldCkgewor LSAgICBJbml0TnVsbFBhY2tldCgqUGFja2V0KTsKKy0KKyAgICAgd2hpbGUgKGF2X3JlYWRfZnJh bWUoRm9ybWF0Q29udGV4dCwgUGFja2V0KSA+PSAwKSB7CisgICAgICAgICBpZiAoUGFja2V0LT5z dHJlYW1faW5kZXggPT0gVHJhY2tOdW1iZXIpIHsKKyAgICAgICAgICAgICAvLyBSZXF1aXJlZCBi ZWNhdXNlIG5vdCBhbGwgYXVkaW8gcGFja2V0cywgZXNwZWNpYWxseSBpbiBvZ2csIGhhdmUgYSBw dHMuIFVzZSB0aGUgcHJldmlvdXMgdmFsaWQgcGFja2V0J3MgcHRzIGluc3RlYWQuCitkaWZmIC0t Z2l0IGEvc3JjL2NvcmUvaW5kZXhpbmcuY3BwIGIvc3JjL2NvcmUvaW5kZXhpbmcuY3BwCitpbmRl eCAyM2ZiOTViMTIuLmU1NDdjNWFiZiAxMDA2NDQKKy0tLSBhL3NyYy9jb3JlL2luZGV4aW5nLmNw cAorKysrIGIvc3JjL2NvcmUvaW5kZXhpbmcuY3BwCitAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQg RkZNU19JbmRleGVyOjpDaGVja0F1ZGlvUHJvcGVydGllcyhpbnQgVHJhY2ssIEFWQ29kZWNDb250 ZXh0ICpDb250ZXh0KSB7CisgICAgIH0KKyB9CisKKy12b2lkIEZGTVNfSW5kZXhlcjo6UGFyc2VW aWRlb1BhY2tldChTaGFyZWRBVkNvbnRleHQgJlZpZGVvQ29udGV4dCwgQVZQYWNrZXQgJnBrdCwg aW50ICpSZXBlYXRQaWN0LAorK3ZvaWQgRkZNU19JbmRleGVyOjpQYXJzZVZpZGVvUGFja2V0KFNo YXJlZEFWQ29udGV4dCAmVmlkZW9Db250ZXh0LCBBVlBhY2tldCAqcGt0LCBpbnQgKlJlcGVhdFBp Y3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpGcmFtZVR5cGUs IGJvb2wgKkludmlzaWJsZSwgZW51bSBBVlBpY3R1cmVTdHJ1Y3R1cmUgKkxhc3RQaWNTdHJ1Y3Qp IHsKKyAgICAgaWYgKFZpZGVvQ29udGV4dC5QYXJzZXIpIHsKKyAgICAgICAgIHVpbnQ4X3QgKk9C OworQEAgLTMzMCw4ICszMzAsOCBAQCB2b2lkIEZGTVNfSW5kZXhlcjo6UGFyc2VWaWRlb1BhY2tl dChTaGFyZWRBVkNvbnRleHQgJlZpZGVvQ29udGV4dCwgQVZQYWNrZXQgJnBrdAorICAgICAgICAg YXZfcGFyc2VyX3BhcnNlMihWaWRlb0NvbnRleHQuUGFyc2VyLAorICAgICAgICAgICAgIFZpZGVv Q29udGV4dC5Db2RlY0NvbnRleHQsCisgICAgICAgICAgICAgJk9CLCAmT0JTaXplLAorLSAgICAg ICAgICAgIHBrdC5kYXRhLCBwa3Quc2l6ZSwKKy0gICAgICAgICAgICBwa3QucHRzLCBwa3QuZHRz LCBwa3QucG9zKTsKKysgICAgICAgICAgICBwa3QtPmRhdGEsIHBrdC0+c2l6ZSwKKysgICAgICAg ICAgICBwa3QtPnB0cywgcGt0LT5kdHMsIHBrdC0+cG9zKTsKKworICAgICAgICAgLy8gSC4yNjQg KFBBRkYpIGFuZCBIRVZDIG1heSBoYXZlIG9uZSBmaWVsZCBwZXIgcGFja2V0LCBzbyB3ZSBuZWVk IHRvIHRyYWNrCisgICAgICAgICAvLyB3aGVuIHdlIGhhdmUgYSBmdWxsIG9yIGhhbGYgZnJhbWUg YXZhaWxhYmxlLCBhbmQgbWFyayBvbmUgb2YgdGhlbSBhcworQEAgLTM1MSwxNSArMzUxLDE1IEBA IHZvaWQgRkZNU19JbmRleGVyOjpQYXJzZVZpZGVvUGFja2V0KFNoYXJlZEFWQ29udGV4dCAmVmlk ZW9Db250ZXh0LCBBVlBhY2tldCAmcGt0CisKKyAgICAgICAgICpSZXBlYXRQaWN0ID0gVmlkZW9D b250ZXh0LlBhcnNlci0+cmVwZWF0X3BpY3Q7CisgICAgICAgICAqRnJhbWVUeXBlID0gVmlkZW9D b250ZXh0LlBhcnNlci0+cGljdF90eXBlOworLSAgICAgICAgKkludmlzaWJsZSA9IChJbmNvbXBs ZXRlRnJhbWUgfHwgVmlkZW9Db250ZXh0LlBhcnNlci0+cmVwZWF0X3BpY3QgPCAwIHx8IChwa3Qu ZmxhZ3MgJiBBVl9QS1RfRkxBR19ESVNDQVJEKSk7CisrICAgICAgICAqSW52aXNpYmxlID0gKElu Y29tcGxldGVGcmFtZSB8fCBWaWRlb0NvbnRleHQuUGFyc2VyLT5yZXBlYXRfcGljdCA8IDAgfHwg KHBrdC0+ZmxhZ3MgJiBBVl9QS1RfRkxBR19ESVNDQVJEKSk7CisgICAgIH0gZWxzZSB7CistICAg ICAgICAqSW52aXNpYmxlID0gISEocGt0LmZsYWdzICYgQVZfUEtUX0ZMQUdfRElTQ0FSRCk7Cisr ICAgICAgICAqSW52aXNpYmxlID0gISEocGt0LT5mbGFncyAmIEFWX1BLVF9GTEFHX0RJU0NBUkQp OworICAgICB9CisKKyAgICAgaWYgKFZpZGVvQ29udGV4dC5Db2RlY0NvbnRleHQtPmNvZGVjX2lk ID09IEFWX0NPREVDX0lEX1ZQOCkKKy0gICAgICAgIFBhcnNlVlA4KHBrdC5kYXRhWzBdLCBJbnZp c2libGUsIEZyYW1lVHlwZSk7CisrICAgICAgICBQYXJzZVZQOChwa3QtPmRhdGFbMF0sIEludmlz aWJsZSwgRnJhbWVUeXBlKTsKKyAgICAgZWxzZSBpZiAoVmlkZW9Db250ZXh0LkNvZGVjQ29udGV4 dC0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVlA5KQorLSAgICAgICAgUGFyc2VWUDkocGt0LmRh dGFbMF0sIEludmlzaWJsZSwgRnJhbWVUeXBlKTsKKysgICAgICAgIFBhcnNlVlA5KHBrdC0+ZGF0 YVswXSwgSW52aXNpYmxlLCBGcmFtZVR5cGUpOworIH0KKworIHZvaWQgRkZNU19JbmRleGVyOjpG cmVlKCkgeworQEAgLTQ1OCwzMiArNDU4LDM2IEBAIEZGTVNfSW5kZXggKkZGTVNfSW5kZXhlcjo6 RG9JbmRleGluZygpIHsKKyAgICAgICAgIH0KKyAgICAgfQorCistICAgIEFWUGFja2V0IFBhY2tl dDsKKy0gICAgSW5pdE51bGxQYWNrZXQoUGFja2V0KTsKKysgICAgQVZQYWNrZXQgKlBhY2tldCA9 IGF2X3BhY2tldF9hbGxvYygpOworKyAgICBpZiAoIVBhY2tldCkKKysgICAgICAgIHRocm93IEZG TVNfRXhjZXB0aW9uKEZGTVNfRVJST1JfQ09ERUMsIEZGTVNfRVJST1JfQUxMT0NBVElPTl9GQUlM RUQsCisrICAgICAgICAgICAgIkNvdWxkIG5vdCBhbGxvY2F0ZSBwYWNrZXQuIik7CisgICAgIHN0 ZDo6dmVjdG9yPGludDY0X3Q+IExhc3RWYWxpZFRTKEZvcm1hdENvbnRleHQtPm5iX3N0cmVhbXMs IEFWX05PUFRTX1ZBTFVFKTsKKworICAgICBpbnQ2NF90IGZpbGVzaXplID0gYXZpb19zaXplKEZv cm1hdENvbnRleHQtPnBiKTsKKyAgICAgZW51bSBBVlBpY3R1cmVTdHJ1Y3R1cmUgTGFzdFBpY1N0 cnVjdCA9IEFWX1BJQ1RVUkVfU1RSVUNUVVJFX1VOS05PV047CistICAgIHdoaWxlIChhdl9yZWFk X2ZyYW1lKEZvcm1hdENvbnRleHQsICZQYWNrZXQpID49IDApIHsKKysgICAgd2hpbGUgKGF2X3Jl YWRfZnJhbWUoRm9ybWF0Q29udGV4dCwgUGFja2V0KSA+PSAwKSB7CisgICAgICAgICAvLyBVcGRh dGUgcHJvZ3Jlc3MKKyAgICAgICAgIC8vIEZvcm1hdENvbnRleHQtPnBiIGNhbiBhcHBhcmVudGx5 IGJlIE5VTEwgd2hlbiBvcGVuaW5nIGltYWdlcy4KKyAgICAgICAgIGlmIChJQyAmJiBGb3JtYXRD b250ZXh0LT5wYikgeworLSAgICAgICAgICAgIGlmICgoKklDKShGb3JtYXRDb250ZXh0LT5wYi0+ cG9zLCBmaWxlc2l6ZSwgSUNQcml2YXRlKSkKKysgICAgICAgICAgICBpZiAoKCpJQykoRm9ybWF0 Q29udGV4dC0+cGItPnBvcywgZmlsZXNpemUsIElDUHJpdmF0ZSkpIHsKKysgICAgICAgICAgICAg ICAgYXZfcGFja2V0X2ZyZWUoJlBhY2tldCk7CisgICAgICAgICAgICAgICAgIHRocm93IEZGTVNf RXhjZXB0aW9uKEZGTVNfRVJST1JfQ0FOQ0VMTEVELCBGRk1TX0VSUk9SX1VTRVIsCisgICAgICAg ICAgICAgICAgICAgICAiQ2FuY2VsbGVkIGJ5IHVzZXIiKTsKKysgICAgICAgICAgICB9CisgICAg ICAgICB9CistICAgICAgICBpZiAoIUluZGV4TWFzay5jb3VudChQYWNrZXQuc3RyZWFtX2luZGV4 KSkgeworLSAgICAgICAgICAgIGF2X3BhY2tldF91bnJlZigmUGFja2V0KTsKKysgICAgICAgIGlm ICghSW5kZXhNYXNrLmNvdW50KFBhY2tldC0+c3RyZWFtX2luZGV4KSkgeworKyAgICAgICAgICAg IGF2X3BhY2tldF91bnJlZihQYWNrZXQpOworICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg ICAgfQorCistICAgICAgICBpbnQgVHJhY2sgPSBQYWNrZXQuc3RyZWFtX2luZGV4OworKyAgICAg ICAgaW50IFRyYWNrID0gUGFja2V0LT5zdHJlYW1faW5kZXg7CisgICAgICAgICBGRk1TX1RyYWNr ICZUcmFja0luZm8gPSAoKlRyYWNrSW5kaWNlcylbVHJhY2tdOworLSAgICAgICAgYm9vbCBLZXlG cmFtZSA9ICEhKFBhY2tldC5mbGFncyAmIEFWX1BLVF9GTEFHX0tFWSk7CisrICAgICAgICBib29s IEtleUZyYW1lID0gISEoUGFja2V0LT5mbGFncyAmIEFWX1BLVF9GTEFHX0tFWSk7CisgICAgICAg ICBSZWFkVFMoUGFja2V0LCBMYXN0VmFsaWRUU1tUcmFja10sICgqVHJhY2tJbmRpY2VzKVtUcmFj a10uVXNlRFRTKTsKKworICAgICAgICAgaWYgKEZvcm1hdENvbnRleHQtPnN0cmVhbXNbVHJhY2td LT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfVklERU8pIHsKKy0gICAgICAg ICAgICBpbnQ2NF90IFBUUyA9IFRyYWNrSW5mby5Vc2VEVFMgPyBQYWNrZXQuZHRzIDogUGFja2V0 LnB0czsKKysgICAgICAgICAgICBpbnQ2NF90IFBUUyA9IFRyYWNrSW5mby5Vc2VEVFMgPyBQYWNr ZXQtPmR0cyA6IFBhY2tldC0+cHRzOworICAgICAgICAgICAgIGlmIChQVFMgPT0gQVZfTk9QVFNf VkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgLy8gVlB4IGFsdC1yZWZzIGFyZSBvdXRwdXQgYXMg cGFja2V0cyB3aGljaCBsYWNrIHRpbWVzdG1wcyBvciBkdXJhdGlvbnMsIHNpbmNlCisgICAgICAg ICAgICAgICAgIC8vIHRoZXkgYXJlIGludmlzaWJsZS4gQ3VycmVudGx5LCB0aGUgdGltZXN0YW1w IG1hbmdsaW5nIGNvZGUgaW4gbGliYXZmb3JtYXQKK0BAIC00OTUsOSArNDk5LDExIEBAIEZGTVNf SW5kZXggKkZGTVNfSW5kZXhlcjo6RG9JbmRleGluZygpIHsKKyAgICAgICAgICAgICAgICAgLy8g RkZNUzIgY3VycmVudGx5IHNvcnRzIHBhY2tldHMgYnkgUFRTLCB3aGljaCB3aWxsIGJyZWFrIGRl Y29kaW5nLCBvdGhlcndpc2UuCisgICAgICAgICAgICAgICAgIGJvb2wgSGFzQWx0UmVmcyA9IChG b3JtYXRDb250ZXh0LT5zdHJlYW1zW1RyYWNrXS0+Y29kZWNwYXItPmNvZGVjX2lkID09IEFWX0NP REVDX0lEX1ZQOCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0 Q29udGV4dC0+c3RyZWFtc1tUcmFja10tPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19J RF9WUDkpOworLSAgICAgICAgICAgICAgICBpZiAoUGFja2V0LmR1cmF0aW9uID09IDAgJiYgIUhh c0FsdFJlZnMpCisrICAgICAgICAgICAgICAgIGlmIChQYWNrZXQtPmR1cmF0aW9uID09IDAgJiYg IUhhc0FsdFJlZnMpIHsKKysgICAgICAgICAgICAgICAgICAgIGF2X3BhY2tldF9mcmVlKCZQYWNr ZXQpOworICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRkZNU19FeGNlcHRpb24oRkZNU19FUlJP Ul9JTkRFWElORywgRkZNU19FUlJPUl9QQVJTRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAg IkludmFsaWQgcGFja2V0IHB0cywgZHRzLCBhbmQgZHVyYXRpb24iKTsKKysgICAgICAgICAgICAg ICAgfQorCisgICAgICAgICAgICAgICAgIGlmIChUcmFja0luZm8uZW1wdHkoKSkKKyAgICAgICAg ICAgICAgICAgICAgIFBUUyA9IDA7CitAQCAtNTEzLDcgKzUxOSw3IEBAIEZGTVNfSW5kZXggKkZG TVNfSW5kZXhlcjo6RG9JbmRleGluZygpIHsKKyAgICAgICAgICAgICBQYXJzZVZpZGVvUGFja2V0 KEFWQ29udGV4dHNbVHJhY2tdLCBQYWNrZXQsICZSZXBlYXRQaWN0LCAmRnJhbWVUeXBlLCAmSW52 aXNpYmxlLCAmTGFzdFBpY1N0cnVjdCk7CisKKyAgICAgICAgICAgICBUcmFja0luZm8uQWRkVmlk ZW9GcmFtZShQVFMsIFJlcGVhdFBpY3QsIEtleUZyYW1lLAorLSAgICAgICAgICAgICAgICBGcmFt ZVR5cGUsIFBhY2tldC5wb3MsIEludmlzaWJsZSk7CisrICAgICAgICAgICAgICAgIEZyYW1lVHlw ZSwgUGFja2V0LT5wb3MsIEludmlzaWJsZSk7CisgICAgICAgICB9IGVsc2UgaWYgKEZvcm1hdENv bnRleHQtPnN0cmVhbXNbVHJhY2tdLT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZ UEVfQVVESU8pIHsKKyAgICAgICAgICAgICAvLyBGb3IgdmlkZW8gc2Vla2luZyB0aW1lc3RhbXBz IGFyZSB1c2VkIG9ubHkgaWYgYWxsIHBhY2tldHMgaGF2ZQorICAgICAgICAgICAgIC8vIHRpbWVz dGFtcHMsIHdoaWxlIGZvciBhdWRpbyB0aGV5J3JlIHVzZWQgaWYgYW55IGhhdmUgdGltZXN0YW1w cywKK0BAIC01MjIsMjggKzUyOCwyOSBAQCBGRk1TX0luZGV4ICpGRk1TX0luZGV4ZXI6OkRvSW5k ZXhpbmcoKSB7CisgICAgICAgICAgICAgICAgIFRyYWNrSW5mby5IYXNUUyA9IHRydWU7CisKKyAg ICAgICAgICAgICBpbnQ2NF90IFN0YXJ0U2FtcGxlID0gQVZDb250ZXh0c1tUcmFja10uQ3VycmVu dFNhbXBsZTsKKy0gICAgICAgICAgICB1aW50MzJfdCBTYW1wbGVDb3VudCA9IEluZGV4QXVkaW9Q YWNrZXQoVHJhY2ssICZQYWNrZXQsIEFWQ29udGV4dHNbVHJhY2tdLCAqVHJhY2tJbmRpY2VzKTsK KysgICAgICAgICAgICB1aW50MzJfdCBTYW1wbGVDb3VudCA9IEluZGV4QXVkaW9QYWNrZXQoVHJh Y2ssIFBhY2tldCwgQVZDb250ZXh0c1tUcmFja10sICpUcmFja0luZGljZXMpOworICAgICAgICAg ICAgIFRyYWNrSW5mby5TYW1wbGVSYXRlID0gQVZDb250ZXh0c1tUcmFja10uQ29kZWNDb250ZXh0 LT5zYW1wbGVfcmF0ZTsKKworICAgICAgICAgICAgIFRyYWNrSW5mby5BZGRBdWRpb0ZyYW1lKExh c3RWYWxpZFRTW1RyYWNrXSwKKy0gICAgICAgICAgICAgICAgU3RhcnRTYW1wbGUsIFNhbXBsZUNv dW50LCBLZXlGcmFtZSwgUGFja2V0LnBvcywgUGFja2V0LmZsYWdzICYgQVZfUEtUX0ZMQUdfRElT Q0FSRCk7CisrICAgICAgICAgICAgICAgIFN0YXJ0U2FtcGxlLCBTYW1wbGVDb3VudCwgS2V5RnJh bWUsIFBhY2tldC0+cG9zLCBQYWNrZXQtPmZsYWdzICYgQVZfUEtUX0ZMQUdfRElTQ0FSRCk7Cisg ICAgICAgICB9CisKKy0gICAgICAgIGlmICghKFBhY2tldC5mbGFncyAmIEFWX1BLVF9GTEFHX0RJ U0NBUkQpKQorLSAgICAgICAgICAgIFRyYWNrSW5mby5MYXN0RHVyYXRpb24gPSBQYWNrZXQuZHVy YXRpb247CisrICAgICAgICBpZiAoIShQYWNrZXQtPmZsYWdzICYgQVZfUEtUX0ZMQUdfRElTQ0FS RCkpCisrICAgICAgICAgICAgVHJhY2tJbmZvLkxhc3REdXJhdGlvbiA9IFBhY2tldC0+ZHVyYXRp b247CisKKy0gICAgICAgIGF2X3BhY2tldF91bnJlZigmUGFja2V0KTsKKysgICAgICAgIGF2X3Bh Y2tldF91bnJlZihQYWNrZXQpOworICAgICB9CisrICAgIGF2X3BhY2tldF9mcmVlKCZQYWNrZXQp OworCisgICAgIFRyYWNrSW5kaWNlcy0+RmluYWxpemUoQVZDb250ZXh0cywgRm9ybWF0Q29udGV4 dC0+aWZvcm1hdC0+bmFtZSk7CisgICAgIHJldHVybiBUcmFja0luZGljZXMucmVsZWFzZSgpOwor IH0KKworLXZvaWQgRkZNU19JbmRleGVyOjpSZWFkVFMoY29uc3QgQVZQYWNrZXQgJlBhY2tldCwg aW50NjRfdCAmVFMsIGJvb2wgJlVzZURUUykgeworLSAgICBpZiAoIVVzZURUUyAmJiBQYWNrZXQu cHRzICE9IEFWX05PUFRTX1ZBTFVFKQorLSAgICAgICAgVFMgPSBQYWNrZXQucHRzOworK3ZvaWQg RkZNU19JbmRleGVyOjpSZWFkVFMoY29uc3QgQVZQYWNrZXQgKlBhY2tldCwgaW50NjRfdCAmVFMs IGJvb2wgJlVzZURUUykgeworKyAgICBpZiAoIVVzZURUUyAmJiBQYWNrZXQtPnB0cyAhPSBBVl9O T1BUU19WQUxVRSkKKysgICAgICAgIFRTID0gUGFja2V0LT5wdHM7CisgICAgIGlmIChUUyA9PSBB Vl9OT1BUU19WQUxVRSkKKyAgICAgICAgIFVzZURUUyA9IHRydWU7CistICAgIGlmIChVc2VEVFMg JiYgUGFja2V0LmR0cyAhPSBBVl9OT1BUU19WQUxVRSkKKy0gICAgICAgIFRTID0gUGFja2V0LmR0 czsKKysgICAgaWYgKFVzZURUUyAmJiBQYWNrZXQtPmR0cyAhPSBBVl9OT1BUU19WQUxVRSkKKysg ICAgICAgIFRTID0gUGFja2V0LT5kdHM7CisgfQorZGlmZiAtLWdpdCBhL3NyYy9jb3JlL2luZGV4 aW5nLmggYi9zcmMvY29yZS9pbmRleGluZy5oCitpbmRleCAzY2ZjM2MzMGIuLjVjMDY4Njg4OSAx MDA2NDQKKy0tLSBhL3NyYy9jb3JlL2luZGV4aW5nLmgKKysrKyBiL3NyYy9jb3JlL2luZGV4aW5n LmgKK0BAIC04MCwxMCArODAsMTAgQEAgc3RydWN0IEZGTVNfSW5kZXhlciB7CisgICAgIGludDY0 X3QgRmlsZXNpemU7CisgICAgIHVpbnQ4X3QgRGlnZXN0WzIwXTsKKworLSAgICB2b2lkIFJlYWRU Uyhjb25zdCBBVlBhY2tldCAmUGFja2V0LCBpbnQ2NF90ICZUUywgYm9vbCAmVXNlRFRTKTsKKysg ICAgdm9pZCBSZWFkVFMoY29uc3QgQVZQYWNrZXQgKlBhY2tldCwgaW50NjRfdCAmVFMsIGJvb2wg JlVzZURUUyk7CisgICAgIHZvaWQgQ2hlY2tBdWRpb1Byb3BlcnRpZXMoaW50IFRyYWNrLCBBVkNv ZGVjQ29udGV4dCAqQ29udGV4dCk7CisgICAgIHVpbnQzMl90IEluZGV4QXVkaW9QYWNrZXQoaW50 IFRyYWNrLCBBVlBhY2tldCAqUGFja2V0LCBTaGFyZWRBVkNvbnRleHQgJkNvbnRleHQsIEZGTVNf SW5kZXggJlRyYWNrSW5kaWNlcyk7CistICAgIHZvaWQgUGFyc2VWaWRlb1BhY2tldChTaGFyZWRB VkNvbnRleHQgJlZpZGVvQ29udGV4dCwgQVZQYWNrZXQgJnBrdCwgaW50ICpSZXBlYXRQaWN0LCBp bnQgKkZyYW1lVHlwZSwgYm9vbCAqSW52aXNpYmxlLCBlbnVtIEFWUGljdHVyZVN0cnVjdHVyZSAq TGFzdFBpY1N0cnVjdCk7CisrICAgIHZvaWQgUGFyc2VWaWRlb1BhY2tldChTaGFyZWRBVkNvbnRl eHQgJlZpZGVvQ29udGV4dCwgQVZQYWNrZXQgKnBrdCwgaW50ICpSZXBlYXRQaWN0LCBpbnQgKkZy YW1lVHlwZSwgYm9vbCAqSW52aXNpYmxlLCBlbnVtIEFWUGljdHVyZVN0cnVjdHVyZSAqTGFzdFBp Y1N0cnVjdCk7CisgICAgIHZvaWQgRnJlZSgpOworIHB1YmxpYzoKKyAgICAgRkZNU19JbmRleGVy KGNvbnN0IGNoYXIgKkZpbGVuYW1lKTsKK2RpZmYgLS1naXQgYS9zcmMvY29yZS91dGlscy5jcHAg Yi9zcmMvY29yZS91dGlscy5jcHAKK2luZGV4IGNlNjc1MzNmZC4uOGEyZTk5NzEwIDEwMDY0NAor LS0tIGEvc3JjL2NvcmUvdXRpbHMuY3BwCisrKysgYi9zcmMvY29yZS91dGlscy5jcHAKK0BAIC02 MiwxMiArNjIsNiBAQCB2b2lkIENsZWFyRXJyb3JJbmZvKEZGTVNfRXJyb3JJbmZvICpFcnJvcklu Zm8pIHsKKyAgICAgfQorIH0KKworLXZvaWQgSW5pdE51bGxQYWNrZXQoQVZQYWNrZXQgJnBrdCkg eworLSAgICBhdl9pbml0X3BhY2tldCgmcGt0KTsKKy0gICAgcGt0LmRhdGEgPSBudWxscHRyOwor LSAgICBwa3Quc2l6ZSA9IDA7CistfQorLQorIHZvaWQgRmlsbEFQKEZGTVNfQXVkaW9Qcm9wZXJ0 aWVzICZBUCwgQVZDb2RlY0NvbnRleHQgKkNUWCwgRkZNU19UcmFjayAmRnJhbWVzKSB7CisgICAg IEFQLlNhbXBsZUZvcm1hdCA9IHN0YXRpY19jYXN0PEZGTVNfU2FtcGxlRm9ybWF0Pihhdl9nZXRf cGFja2VkX3NhbXBsZV9mbXQoQ1RYLT5zYW1wbGVfZm10KSk7CisgICAgIEFQLkJpdHNQZXJTYW1w bGUgPSBhdl9nZXRfYnl0ZXNfcGVyX3NhbXBsZShDVFgtPnNhbXBsZV9mbXQpICogODsKK2RpZmYg LS1naXQgYS9zcmMvY29yZS91dGlscy5oIGIvc3JjL2NvcmUvdXRpbHMuaAoraW5kZXggOTgxOWRj N2M5Li4wMDNhYjc5NGUgMTAwNjQ0CistLS0gYS9zcmMvY29yZS91dGlscy5oCisrKysgYi9zcmMv Y29yZS91dGlscy5oCitAQCAtNTgsNyArNTgsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8VD4gbWFrZV91 bmlxdWUoQXJncyYmLi4uIGFyZ3MpIHsKKyB9CisKKyB2b2lkIENsZWFyRXJyb3JJbmZvKEZGTVNf RXJyb3JJbmZvICpFcnJvckluZm8pOworLXZvaWQgSW5pdE51bGxQYWNrZXQoQVZQYWNrZXQgJnBr dCk7Cisgdm9pZCBGaWxsQVAoRkZNU19BdWRpb1Byb3BlcnRpZXMgJkFQLCBBVkNvZGVjQ29udGV4 dCAqQ1RYLCBGRk1TX1RyYWNrICZGcmFtZXMpOworCisgdm9pZCBMQVZGT3BlbkZpbGUoY29uc3Qg Y2hhciAqU291cmNlRmlsZSwgQVZGb3JtYXRDb250ZXh0IComRm9ybWF0Q29udGV4dCwgaW50IFRy YWNrKTsKK2RpZmYgLS1naXQgYS9zcmMvY29yZS92aWRlb3NvdXJjZS5jcHAgYi9zcmMvY29yZS92 aWRlb3NvdXJjZS5jcHAKK2luZGV4IDA2YmQxNjEwZS4uYjg4OTk3MGUyIDEwMDY0NAorLS0tIGEv c3JjL2NvcmUvdmlkZW9zb3VyY2UuY3BwCisrKysgYi9zcmMvY29yZS92aWRlb3NvdXJjZS5jcHAK K0BAIC02NzMsMzAgKzY3MywzNCBAQCB2b2lkIEZGTVNfVmlkZW9Tb3VyY2U6OkRlY29kZU5leHRG cmFtZShpbnQ2NF90ICZBU3RhcnRUaW1lLCBpbnQ2NF90ICZQb3MpIHsKKyAgICAgaWYgKEhhc1Bl bmRpbmdEZWxheWVkRnJhbWVzKCkpCisgICAgICAgICByZXR1cm47CisKKy0gICAgQVZQYWNrZXQg UGFja2V0OworLSAgICBJbml0TnVsbFBhY2tldChQYWNrZXQpOworLQorLSAgICB3aGlsZSAoUmVh ZEZyYW1lKCZQYWNrZXQpID49IDApIHsKKy0gICAgICAgIGlmIChQYWNrZXQuc3RyZWFtX2luZGV4 ICE9IFZpZGVvVHJhY2spIHsKKy0gICAgICAgICAgICBhdl9wYWNrZXRfdW5yZWYoJlBhY2tldCk7 CisrICAgIEFWUGFja2V0ICpQYWNrZXQgPSBhdl9wYWNrZXRfYWxsb2MoKTsKKysgICAgaWYgKCFQ YWNrZXQpCisrICAgICAgICB0aHJvdyBGRk1TX0V4Y2VwdGlvbihGRk1TX0VSUk9SX0RFQ09ESU5H LCBGRk1TX0VSUk9SX0FMTE9DQVRJT05fRkFJTEVELAorKyAgICAgICAgICAgICJDb3VsZCBub3Qg YWxsb2NhdGUgcGFja2V0LiIpOworKworKyAgICB3aGlsZSAoUmVhZEZyYW1lKFBhY2tldCkgPj0g MCkgeworKyAgICAgICAgaWYgKFBhY2tldC0+c3RyZWFtX2luZGV4ICE9IFZpZGVvVHJhY2spIHsK KysgICAgICAgICAgICBhdl9wYWNrZXRfdW5yZWYoUGFja2V0KTsKKyAgICAgICAgICAgICBjb250 aW51ZTsKKyAgICAgICAgIH0KKworICAgICAgICAgaWYgKEFTdGFydFRpbWUgPCAwKQorLSAgICAg ICAgICAgIEFTdGFydFRpbWUgPSBGcmFtZXMuVXNlRFRTID8gUGFja2V0LmR0cyA6IFBhY2tldC5w dHM7CisrICAgICAgICAgICAgQVN0YXJ0VGltZSA9IEZyYW1lcy5Vc2VEVFMgPyBQYWNrZXQtPmR0 cyA6IFBhY2tldC0+cHRzOworCisgICAgICAgICBpZiAoUG9zIDwgMCkKKy0gICAgICAgICAgICBQ b3MgPSBQYWNrZXQucG9zOworKyAgICAgICAgICAgIFBvcyA9IFBhY2tldC0+cG9zOworCistICAg ICAgICBib29sIEZyYW1lRmluaXNoZWQgPSBEZWNvZGVQYWNrZXQoJlBhY2tldCk7CistICAgICAg ICBhdl9wYWNrZXRfdW5yZWYoJlBhY2tldCk7CistICAgICAgICBpZiAoRnJhbWVGaW5pc2hlZCkK KysgICAgICAgIGJvb2wgRnJhbWVGaW5pc2hlZCA9IERlY29kZVBhY2tldChQYWNrZXQpOworKyAg ICAgICAgYXZfcGFja2V0X3VucmVmKFBhY2tldCk7CisrICAgICAgICBpZiAoRnJhbWVGaW5pc2hl ZCkgeworKyAgICAgICAgICAgIGF2X3BhY2tldF9mcmVlKCZQYWNrZXQpOworICAgICAgICAgICAg IHJldHVybjsKKysgICAgICAgIH0KKyAgICAgfQorCisgICAgIC8vIEZsdXNoIGZpbmFsIGZyYW1l cworLSAgICBJbml0TnVsbFBhY2tldChQYWNrZXQpOworLSAgICBEZWNvZGVQYWNrZXQoJlBhY2tl dCk7CisrICAgIERlY29kZVBhY2tldChQYWNrZXQpOworKyAgICBhdl9wYWNrZXRfZnJlZSgmUGFj a2V0KTsKKyB9CisKKyBib29sIEZGTVNfVmlkZW9Tb3VyY2U6OlNlZWtUbyhpbnQgbiwgaW50IFNl ZWtPZmZzZXQpIHsKKworRnJvbSBiZjllMDNlOWUwODUzNGMwMjRlNWE3NDRhNjQzN2M0YWFjMTYw MjAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGVyZWsgQnVpdGVuaHVpcyA8ZGVy ZWsuYnVpdGVuaHVpc0BnbWFpbC5jb20+CitEYXRlOiBUdWUsIDQgTWF5IDIwMjEgMTQ6MjA6NDcg KzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzNdIGNvbmZpZ3VyZTogUmVtb3ZlIGRlcHJlY2F0ZWQg QVBJIHVzZQorCitTaWduZWQtb2ZmLWJ5OiBEZXJlayBCdWl0ZW5odWlzIDxkZXJlay5idWl0ZW5o dWlzQGdtYWlsLmNvbT4KKy0tLQorIGNvbmZpZ3VyZS5hYyB8IDQgKystLQorIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25m aWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGIzNWVmODBiYy4uZDE5NzE0ZDBmIDEwMDY0 NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xMDIsMTAgKzEw MiwxMCBAQCBDRkxBR1M9IiRfQ0ZMQUdTICRGRk1QRUdfQ0ZMQUdTIgorCisgQUNfREVGVU4oW1RF U1RfRkZNUEVHXSwKKyAgICAgICAgICBbQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShb WworLSAgICAgICAgICAgICNpbmNsdWRlIDxsaWJhdmNvZGVjL2F2Y29kZWMuaD4KKysgICAgICAg ICAgICAjaW5jbHVkZSA8bGliYXZmb3JtYXQvYXZmb3JtYXQuaD4KKyAgICAgICAgICAgICAjaW5j bHVkZSA8bGlic3dzY2FsZS9zd3NjYWxlLmg+CisgICAgICAgICAgICAgXV0sW1sKKy0gICAgICAg ICAgICAgICAgYXZjb2RlY19yZWdpc3Rlcl9hbGwoKTsKKysgICAgICAgICAgICAgICAgYXZmb3Jt YXRfbmV0d29ya19pbml0KCk7CisgICAgICAgICAgICAgICAgIHN3c2NhbGVfdmVyc2lvbigpOwor ICAgICAgICAgICAgIF1dKV0sIFtldmFsICQxPXllc10sIFtldmFsICQxPW5vXSkKKyAgICAgICAg IF0pCisKK0Zyb20gYTE4YzgyOTY2ODdlMjY3YjIwZWM5MGVmODE2NzFiNzdkMzkzYTM2ZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERlcmVrIEJ1aXRlbmh1aXMgPGRlcmVrLmJ1aXRl bmh1aXNAZ21haWwuY29tPgorRGF0ZTogVHVlLCA0IE1heSAyMDIxIDE0OjQxOjIxICswMTAwCitT dWJqZWN0OiBbUEFUQ0ggMy8zXSBVc2UgYXV0byBmb3IgQVZDb2RlYworCitUaGUgZ2VuaXVzZXMg b3ZlciBhdCBGRm1wZWcgZGVjaWRlZCB0byBjb25zdGlmeSB0aGlzIEFQSSwgc28gb2xkCit2ZXJz aW9ucyBvZiB0aGUgbGlicmFyeSB3aWxsIHJldHVybiBBVkNvZGVjICosIHdoaWxlIG5ldyB2ZXJz aW9ucworb2YgdGhlIGxpYmFyeSB3aWxsIHJldHVybiBjb25zdCBBVkNvZGVjICosIHdoaWNoLCBp biBDKyssIGFyZSBub3QKK09LIHRvIGNvbnZlcnQgYmV0d2Vlbi4KKworUmF0aGVyIHRoYW4gdXNl IHNvbWUgbWFjcm8gaGVsbCBpbiBmZm1zY29tcGF0LmgsIHdlIGNhbiB3b3JrIGFyb3VuZAordGhp cyBieSB1c2luZyBhdXRvLgorCitHcm9zcy4KKworU2lnbmVkLW9mZi1ieTogRGVyZWsgQnVpdGVu aHVpcyA8ZGVyZWsuYnVpdGVuaHVpc0BnbWFpbC5jb20+CistLS0KKyBzcmMvY29yZS9hdWRpb3Nv dXJjZS5jcHAgfCAyICstCisgc3JjL2NvcmUvaW5kZXhpbmcuY3BwICAgIHwgNiArKystLS0KKyBz cmMvY29yZS92aWRlb3NvdXJjZS5jcHAgfCAyICstCisgMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY29yZS9hdWRpb3Nv dXJjZS5jcHAgYi9zcmMvY29yZS9hdWRpb3NvdXJjZS5jcHAKK2luZGV4IGU0Y2U5N2NkYi4uYWMw OTY2NjM2IDEwMDY0NAorLS0tIGEvc3JjL2NvcmUvYXVkaW9zb3VyY2UuY3BwCisrKysgYi9zcmMv Y29yZS9hdWRpb3NvdXJjZS5jcHAKK0BAIC00NjksNyArNDY5LDcgQEAgdm9pZCBGRk1TX0F1ZGlv U291cmNlOjpPcGVuRmlsZSgpIHsKKworICAgICBMQVZGT3BlbkZpbGUoU291cmNlRmlsZS5jX3N0 cigpLCBGb3JtYXRDb250ZXh0LCBUcmFja051bWJlcik7CisKKy0gICAgQVZDb2RlYyAqQ29kZWMg PSBhdmNvZGVjX2ZpbmRfZGVjb2RlcihGb3JtYXRDb250ZXh0LT5zdHJlYW1zW1RyYWNrTnVtYmVy XS0+Y29kZWNwYXItPmNvZGVjX2lkKTsKKysgICAgYXV0byAqQ29kZWMgPSBhdmNvZGVjX2ZpbmRf ZGVjb2RlcihGb3JtYXRDb250ZXh0LT5zdHJlYW1zW1RyYWNrTnVtYmVyXS0+Y29kZWNwYXItPmNv ZGVjX2lkKTsKKyAgICAgaWYgKENvZGVjID09IG51bGxwdHIpCisgICAgICAgICB0aHJvdyBGRk1T X0V4Y2VwdGlvbihGRk1TX0VSUk9SX0RFQ09ESU5HLCBGRk1TX0VSUk9SX0NPREVDLAorICAgICAg ICAgICAgICJBdWRpbyBjb2RlYyBub3QgZm91bmQiKTsKK2RpZmYgLS1naXQgYS9zcmMvY29yZS9p bmRleGluZy5jcHAgYi9zcmMvY29yZS9pbmRleGluZy5jcHAKK2luZGV4IGU1NDdjNWFiZi4uNTlm YjRlOGVhIDEwMDY0NAorLS0tIGEvc3JjL2NvcmUvaW5kZXhpbmcuY3BwCisrKysgYi9zcmMvY29y ZS9pbmRleGluZy5jcHAKK0BAIC0zODQsNyArMzg0LDcgQEAgRkZNU19UcmFja1R5cGUgRkZNU19J bmRleGVyOjpHZXRUcmFja1R5cGUoaW50IFRyYWNrKSB7CisgfQorCisgY29uc3QgY2hhciAqRkZN U19JbmRleGVyOjpHZXRUcmFja0NvZGVjKGludCBUcmFjaykgeworLSAgICBBVkNvZGVjICpjb2Rl YyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKEZvcm1hdENvbnRleHQtPnN0cmVhbXNbVHJhY2tdLT5j b2RlY3Bhci0+Y29kZWNfaWQpOworKyAgICBhdXRvICpjb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNv ZGVyKEZvcm1hdENvbnRleHQtPnN0cmVhbXNbVHJhY2tdLT5jb2RlY3Bhci0+Y29kZWNfaWQpOwor ICAgICByZXR1cm4gY29kZWMgPyBjb2RlYy0+bmFtZSA6IG51bGxwdHI7CisgfQorCitAQCAtNDAy LDcgKzQwMiw3IEBAIEZGTVNfSW5kZXggKkZGTVNfSW5kZXhlcjo6RG9JbmRleGluZygpIHsKKyAg ICAgICAgICAgICBVc2VEVFMpOworCisgICAgICAgICBpZiAoSW5kZXhNYXNrLmNvdW50KGkpICYm IEZvcm1hdENvbnRleHQtPnN0cmVhbXNbaV0tPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFWTUVE SUFfVFlQRV9WSURFTykgeworLSAgICAgICAgICAgIEFWQ29kZWMgKlZpZGVvQ29kZWMgPSBhdmNv ZGVjX2ZpbmRfZGVjb2RlcihGb3JtYXRDb250ZXh0LT5zdHJlYW1zW2ldLT5jb2RlY3Bhci0+Y29k ZWNfaWQpOworKyAgICAgICAgICAgIGF1dG8gKlZpZGVvQ29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVj b2RlcihGb3JtYXRDb250ZXh0LT5zdHJlYW1zW2ldLT5jb2RlY3Bhci0+Y29kZWNfaWQpOworICAg ICAgICAgICAgIGlmICghVmlkZW9Db2RlYykgeworICAgICAgICAgICAgICAgICBGb3JtYXRDb250 ZXh0LT5zdHJlYW1zW2ldLT5kaXNjYXJkID0gQVZESVNDQVJEX0FMTDsKKyAgICAgICAgICAgICAg ICAgSW5kZXhNYXNrLmVyYXNlKGkpOworQEAgLTQzMyw3ICs0MzMsNyBAQCBGRk1TX0luZGV4ICpG Rk1TX0luZGV4ZXI6OkRvSW5kZXhpbmcoKSB7CisgICAgICAgICAgICAgICAgIEluZGV4TWFzay5p bnNlcnQoaSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfSBlbHNlIGlmIChJbmRleE1hc2su Y291bnQoaSkgJiYgRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tpXS0+Y29kZWNwYXItPmNvZGVjX3R5 cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPKSB7CistICAgICAgICAgICAgQVZDb2RlYyAqQXVkaW9D b2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKEZvcm1hdENvbnRleHQtPnN0cmVhbXNbaV0tPmNv ZGVjcGFyLT5jb2RlY19pZCk7CisrICAgICAgICAgICAgYXV0byAqQXVkaW9Db2RlYyA9IGF2Y29k ZWNfZmluZF9kZWNvZGVyKEZvcm1hdENvbnRleHQtPnN0cmVhbXNbaV0tPmNvZGVjcGFyLT5jb2Rl Y19pZCk7CisgICAgICAgICAgICAgaWYgKEF1ZGlvQ29kZWMgPT0gbnVsbHB0cikKKyAgICAgICAg ICAgICAgICAgdGhyb3cgRkZNU19FeGNlcHRpb24oRkZNU19FUlJPUl9DT0RFQywgRkZNU19FUlJP Ul9VTlNVUFBPUlRFRCwKKyAgICAgICAgICAgICAgICAgICAgICJBdWRpbyBjb2RlYyBub3QgZm91 bmQiKTsKK2RpZmYgLS1naXQgYS9zcmMvY29yZS92aWRlb3NvdXJjZS5jcHAgYi9zcmMvY29yZS92 aWRlb3NvdXJjZS5jcHAKK2luZGV4IGI4ODk5NzBlMi4uODk1NmMyMjU2IDEwMDY0NAorLS0tIGEv c3JjL2NvcmUvdmlkZW9zb3VyY2UuY3BwCisrKysgYi9zcmMvY29yZS92aWRlb3NvdXJjZS5jcHAK K0BAIC0xNzEsNyArMTcxLDcgQEAgRkZNU19WaWRlb1NvdXJjZTo6RkZNU19WaWRlb1NvdXJjZShj b25zdCBjaGFyICpTb3VyY2VGaWxlLCBGRk1TX0luZGV4ICZJbmRleCwgaW4KKworICAgICAgICAg TEFWRk9wZW5GaWxlKFNvdXJjZUZpbGUsIEZvcm1hdENvbnRleHQsIFZpZGVvVHJhY2spOworCist ICAgICAgICBBVkNvZGVjICpDb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKEZvcm1hdENvbnRl eHQtPnN0cmVhbXNbVmlkZW9UcmFja10tPmNvZGVjcGFyLT5jb2RlY19pZCk7CisrICAgICAgICBh dXRvICpDb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKEZvcm1hdENvbnRleHQtPnN0cmVhbXNb VmlkZW9UcmFja10tPmNvZGVjcGFyLT5jb2RlY19pZCk7CisgICAgICAgICBpZiAoQ29kZWMgPT0g bnVsbHB0cikKKyAgICAgICAgICAgICB0aHJvdyBGRk1TX0V4Y2VwdGlvbihGRk1TX0VSUk9SX0RF Q09ESU5HLCBGRk1TX0VSUk9SX0NPREVDLAorICAgICAgICAgICAgICAgICAiVmlkZW8gY29kZWMg bm90IGZvdW5kIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZmbXMyL3RlbXBsYXRlIGIvc3JjcGtn cy9mZm1zMi90ZW1wbGF0ZQppbmRleCA2OGU4YTBjMTRiY2UuLjJhY2ZhZGFjNDRiMyAxMDA2NDQK LS0tIGEvc3JjcGtncy9mZm1zMi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZmbXMyL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZmZtczInCiBwa2duYW1lPWZm bXMyCiB2ZXJzaW9uPTIuNDAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zaGFyZWQgLS1kaXNhYmxlLXN0 YXRpYyIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvY29uZiBhdXRvbWFrZSBsaWJ0 b29sIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMDAwMS1GaXgtaW5maW5p dGUtbG9vcC1pbi1NZW51LWN5Y2xlaXRlbXMucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hl cy8wMDAxLUZpeC1pbmZpbml0ZS1sb29wLWluLU1lbnUtY3ljbGVpdGVtcy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM0NTBmZDQ1YmZiLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMDAwMS1GaXgtaW5maW5pdGUtbG9vcC1pbi1NZW51LWN5 Y2xlaXRlbXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi1Gcm9tIDlkODIw MmYzMjMzOGEzZjA4ZDNmYTM5MDU3ZGM1ZWVjNWQ5N2JlNGUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBNYXRoaWFzIEd1bXogPGFraXJhQGZsdXhib3gub3JnPgotRGF0ZTogU2F0LCAy OCBNYXkgMjAyMiAxMToxMzo0MyArMDIwMAotU3ViamVjdDogW1BBVENIXSBGaXggaW5maW5pdGUg bG9vcCBpbiBNZW51OjpjeWNsZWl0ZW1zKCkKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKLQotV2hlbiBhIG1lbnUgY29udGFpbnMgbm8gc2VsZWN0YWJsZSBpdGVtIChleGFtcGxl IGdpdmVuOiBhICJsaXN0IiBvZiB1c2VyCi1zdHlsZXMgYW5kIHRoZSBvbmx5IGF2YWlsYWJsZSBv bmUgaXMgYWxyZWFkeSBzZWxlY3RlZCksIGN5Y2xpbmcgdGhyb3VnaAotdGhlIG1lbnUgd2lsbCBs ZWFkIHRvIGFuIGluZmluaXRlIGxvb3AgYW5kIHRodXMgYSBkaXNmdW5jdGlvbmFsIGZsdXhib3gu Ci0KLVRoaXMgY29tbWl0IGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgY2hlY2tpbmcgaWYgdGhlcmUg aXMgYW55IHNlbGVjdGFibGUKLWl0ZW0gYmVmb3JlIGVudGVyaW5nIHRoZSBjeWNsaW5nIHN0YWdl LgotCi1EaXNjb3ZlcmVkIGJ5IFPDqWJhc3RpZW4gQmFsbGV0WzFdLgotCi1bMV06IGh0dHBzOi8v c291cmNlZm9yZ2UubmV0L3AvZmx1eGJveC9idWdzLzExODUvCi0tLS0KLSBzcmMvRmJUay9NZW51 LmNjIHwgMjEgKysrKysrKysrKysrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE1IGluc2Vy dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvRmJUay9NZW51LmNj IGIvc3JjL0ZiVGsvTWVudS5jYwotaW5kZXggNmIyZGIzYTQuLmZmMDQwYmFlIDEwMDY0NAotLS0t IGEvc3JjL0ZiVGsvTWVudS5jYwotKysrIGIvc3JjL0ZiVGsvTWVudS5jYwotQEAgLTMyMCwxNSAr MzIwLDI0IEBAIHZvaWQgTWVudTo6bG93ZXIoKSB7Ci0gCi0gdm9pZCBNZW51OjpjeWNsZUl0ZW1z KGJvb2wgcmV2ZXJzZSkgewotIAotLSAgICBpZiAobV9pdGVtcy5lbXB0eSgpKQotLSAgICAgICAg cmV0dXJuOwotLQotLSAgICBpbnQgb2Zmc2V0ID0gcmV2ZXJzZSA/IC0xIDogMTsKLSAgICAgaW50 IGwgPSBtX2l0ZW1zLnNpemUoKTsKLS0gICAgaW50IGkgPSBtX2FjdGl2ZV9pbmRleDsKLSsgICAg aW50IGk7Ci0rICAgIGludCBvZmZzZXQgPSByZXZlcnNlID8gLTEgOiAxOwotICAgICBzaXplX3Qg aWdub3JlOwotIAotLSAgICBmb3IgKGkgKz0gb2Zmc2V0OyBpICE9IG1fYWN0aXZlX2luZGV4OyBp ICs9IG9mZnNldCApIHsKLSsgICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgX2FueV8gc2VsZWN0YWJs ZSBpdGVtCi0rICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHsKLSsgICAgICAgIGlmIChpc0l0 ZW1TZWxlY3RhYmxlKGkpKSB7Ci0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICB9Ci0rICAg IH0KLSsKLSsgICAgLy8gbm8gc2VsZWN0YWJsZSBpdGVtCi0rICAgIGlmIChpID49IGwpIHsKLSsg ICAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgICBmb3IgKGkgPSBtX2FjdGl2ZV9pbmRleCAr IG9mZnNldDsgaSAhPSBtX2FjdGl2ZV9pbmRleDsgaSArPSBvZmZzZXQgKSB7Ci0gICAgICAgICBp ZiAoaSA8IDApIHsKLSAgICAgICAgICAgICBpID0gbCAtIDE7Ci0gICAgICAgICB9IGVsc2UgaWYg KGkgPj0gbCkgewotLS0gCi0yLjM5LjAKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3Bh dGNoZXMvMjI4NjZjNGQzMGY1YjI4OWM0MjljNWNhODhkODAwMjAwZGI0ZmM0Zi5wYXRjaCBiL3Ny Y3BrZ3MvZmx1eGJveC9wYXRjaGVzLzIyODY2YzRkMzBmNWIyODljNDI5YzVjYTg4ZDgwMDIwMGRi NGZjNGYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kYzE1 MTY0M2NiNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8yMjg2 NmM0ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4MDAyMDBkYjRmYzRmLnBhdGNoCkBAIC0wLDAgKzEsMjIg QEAKK0Zyb20gMjI4NjZjNGQzMGY1YjI4OWM0MjljNWNhODhkODAwMjAwZGI0ZmM0ZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpvaG4gU2VubmVzYWVsIDxqb2huQGFtaW5raW5nLmNv bT4KK0RhdGU6IE1vbiwgMiBOb3YgMjAxNSAxNToxNDozMiAtMDYwMAorU3ViamVjdDogW1BBVENI XSBmaXhlcyBidWcgIzExMzgKKworLS0tCisgdXRpbC9mbHV4Ym94LXJlbW90ZS5jYyB8IDIgKy0K KyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAt LWdpdCBhL3V0aWwvZmx1eGJveC1yZW1vdGUuY2MgYi91dGlsL2ZsdXhib3gtcmVtb3RlLmNjCitp bmRleCA1OTg1MmU2YTcuLjUwNDAxNWI1MCAxMDA2NDQKKy0tLSBhL3V0aWwvZmx1eGJveC1yZW1v dGUuY2MKKysrKyBiL3V0aWwvZmx1eGJveC1yZW1vdGUuY2MKK0BAIC03Myw3ICs3Myw3IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgICBpZiAoc3RyY21wKGNtZCwgInJl c3VsdCIpID09IDApIHsKKyAgICAgICAgIFhUZXh0UHJvcGVydHkgdGV4dF9wcm9wOworICAgICAg ICAgaWYgKFhHZXRUZXh0UHJvcGVydHkoZGlzcCwgcm9vdCwgJnRleHRfcHJvcCwgYXRvbV9yZXN1 bHQpICE9IDAKKy0gICAgICAgICAgICAmJiB0ZXh0X3Byb3AudmFsdWUgPiAwCisrICAgICAgICAg ICAgJiYgdGV4dF9wcm9wLnZhbHVlICE9IDAKKyAgICAgICAgICAgICAmJiB0ZXh0X3Byb3Aubml0 ZW1zID4gMCkgeworIAorICAgICAgICAgICAgIHByaW50ZigiJXMiLCB0ZXh0X3Byb3AudmFsdWUp OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvTWluT3ZlcmxhcFBsYWNlbWVu dC5jY19pbXByb3ZlLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvTWluT3ZlcmxhcFBs YWNlbWVudC5jY19pbXByb3ZlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1 YjY0YjExYWIyYTguLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9N aW5PdmVybGFwUGxhY2VtZW50LmNjX2ltcHJvdmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwy OSArMCwwIEBACi0tLS0gYS9zcmMvTWluT3ZlcmxhcFBsYWNlbWVudC5jYyAgMjAxNS0wMi0wOCAw NTo0NDozNC4wMDAwMDAwMDAgLTA1MDAKLSsrKyBiL3NyYy9NaW5PdmVybGFwUGxhY2VtZW50LmNj ICAyMDIyLTA3LTE4IDE1OjE0OjQxLjAxMjI3NTIwMCAtMDQwMAotQEAgLTE5NiwxOSArMTk2LDIx IEBACi0gICAgIHN0ZDo6c2V0PEFyZWE+OjppdGVyYXRvciBtaW5fcmVnID0gYXJlYXMuZW5kKCk7 Ci0KLSAgICAgc3RkOjpzZXQ8QXJlYT46Oml0ZXJhdG9yIGFyX2l0ID0gYXJlYXMuYmVnaW4oKTsK LSsgICAgaW50IG92ZXJsYXAgPSAwLCBtaW5fcmlnaHQgPSAwLCBtaW5fYm90dG9tID0gMCwgbWF4 X2xlZnQgPSAwLCBtYXhfdG9wID0gMDsKLSsKLSAgICAgZm9yICg7IGFyX2l0ICE9IGFyZWFzLmVu ZCgpOyArK2FyX2l0KSB7Ci0KLS0gICAgICAgIGludCBvdmVybGFwID0gMDsKLSsgICAgICAgIG92 ZXJsYXAgPSAwOwotICAgICAgICAgaXQgPSBjb25zdF93aW5kb3dsaXN0LnJiZWdpbigpOwotICAg ICAgICAgZm9yICg7IGl0ICE9IGl0X2VuZDsgKytpdCkgewotCi0gICAgICAgICAgICAgZ2V0V2lu ZG93RGltZW5zaW9ucygqKCppdCksIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7Ci0KLSAgICAg ICAgICAgICAvLyBnZXQgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBvdmVybGFwIHJlZ2lvbgotLSAg ICAgICAgICAgIGludCBtaW5fcmlnaHQgPSBzdGQ6Om1pbihyaWdodCwgYXJfaXQtPnggKyB3aW5f dyk7Ci0tICAgICAgICAgICAgaW50IG1pbl9ib3R0b20gPSBzdGQ6Om1pbihib3R0b20sIGFyX2l0 LT55ICsgd2luX2gpOwotLSAgICAgICAgICAgIGludCBtYXhfbGVmdCA9IHN0ZDo6bWF4KGxlZnQs IGFyX2l0LT54KTsKLS0gICAgICAgICAgICBpbnQgbWF4X3RvcCA9IHN0ZDo6bWF4KHRvcCwgYXJf aXQtPnkpOwotKyAgICAgICAgICAgIG1pbl9yaWdodCA9IHN0ZDo6bWluKHJpZ2h0LCBhcl9pdC0+ eCArIHdpbl93KTsKLSsgICAgICAgICAgICBtaW5fYm90dG9tID0gc3RkOjptaW4oYm90dG9tLCBh cl9pdC0+eSArIHdpbl9oKTsKLSsgICAgICAgICAgICBtYXhfbGVmdCA9IHN0ZDo6bWF4KGxlZnQs IGFyX2l0LT54KTsKLSsgICAgICAgICAgICBtYXhfdG9wID0gc3RkOjptYXgodG9wLCBhcl9pdC0+ eSk7Ci0KLSAgICAgICAgICAgICAvLyBub3cgY29tcHV0ZSB0aGUgb3ZlcmxhcCBhbmQgYWRkIHRv IHJ1bm5pbmcgdG90YWwKLSAgICAgICAgICAgICBpZiAobWluX3JpZ2h0ID4gbWF4X2xlZnQgJiYg bWluX2JvdHRvbSA+IG1heF90b3ApCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hl cy9jZW50ZXIucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jZW50ZXIucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5ZTNlNGM3ZjM3ZS4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NlbnRlci5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDMwNyArMCwwIEBACi1Gcm9tIGVjODM5OTNjMjM2ZGU5Yzk0NDJlMmZjZDMxYzA4YWFlODUy YTVhMTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiB6bGljZSA8emxpY2U1NTVAZ21h aWwuY29tPgotRGF0ZTogRnJpLCAyMiBKdWwgMjAyMiAyMToyMTozMyAtMDQwMAotU3ViamVjdDog W1BBVENIIDEvMl0gd2hpdGVzcGFjZSBjbGVhbnVwCi0KLS0tLQotIGRvYy9hc2NpaWRvYy9mbHV4 Ym94LnR4dCB8ICA4ICsrKystLS0tCi0gc3JjL1NjcmVlblBsYWNlbWVudC5jYyAgIHwgMTIgKysr KysrLS0tLS0tCi0gc3JjL1NjcmVlblBsYWNlbWVudC5oaCAgIHwgMTAgKysrKystLS0tLQotIDMg ZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQgYi9kb2MvYXNjaWlkb2MvZmx1eGJveC50 eHQKLWluZGV4IDk1NjI0ODQyLi4wZTNmMjdiOSAxMDA2NDQKLS0tLSBhL2RvYy9hc2NpaWRvYy9m bHV4Ym94LnR4dAotKysrIGIvZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0Ci1AQCAtNCw3ICs0LDcg QEAgSGVucmlrIEtpbm51bmVuIDxmbHV4Z2VuQGZsdXhib3gub3JnPgotIHYxLjMuNywgMDggRmVi cnVhcnkgMjAxNQotIDptYW4gc291cmNlOiAgIGZsdXhib3gudHh0Ci0gOm1hbiB2ZXJzaW9uOiAg e3JldmlzaW9ufQotLTptYW4gbWFudWFsOiAgIEZsdXhib3ggTWFudWFsICAKLSs6bWFuIG1hbnVh bDogICBGbHV4Ym94IE1hbnVhbAotIAotIE5BTUUKLSAtLS0tCi1AQCAtNDc1LDcgKzQ3NSw3IEBA IEJ5IGRlZmF1bHQsIHRoaXMgbWVudSBjb250YWluczoKLSAKLSAqUmVtZW1iZXIuLi4qOjo6Ci0g U3BlY2lmeSB3aGljaCB3aW5kb3cgc2V0dGluZ3Mgc2hvdWxkIGJlIHN0b3JlZCBpbiB0aGUgYGFw cHMnIGZpbGUgYW5kCi0tcmVzdW1lZCB0aGUgbmV4dCB0aW1lIHRoaXMgd2luZG93IGlzIG9wZW5l ZC4gCi0rcmVzdW1lZCB0aGUgbmV4dCB0aW1lIHRoaXMgd2luZG93IGlzIG9wZW5lZC4KLSArCi0g U3BlY2lmaWNhbGx5IHRoZSBzZXR0aW5nIHlvdSBtYXkgc3RvcmUgYXJlOgotICsKLUBAIC03NDAs NyArNzQwLDcgQEAgVGhlcmUgYXJlIHRocmVlIG1vcmUgc2V0dGluZ3MgaW4gdGhlIGBgRm9jdXMg TW9kZWwnJyBtZW51OgotIAotIFRBQiBPUFRJT05TCi0gLS0tLS0tLS0tLS0KLS1UaGlzIHNlY3Rp b24gb2YgZmx1eGJveCBjb25maWd1cmF0aW9uIG1lbnUgbGV0cyB5b3UgY29uZmlndXJlIG1hbnkg ZmVhdHVyZXMgb2YgCi0rVGhpcyBzZWN0aW9uIG9mIGZsdXhib3ggY29uZmlndXJhdGlvbiBtZW51 IGxldHMgeW91IGNvbmZpZ3VyZSBtYW55IGZlYXR1cmVzIG9mCi0gdGFicy4gSW5zaWRlIG9mIGl0 IHRoZXJlIGFyZSB0aHJlZSBtYWluIG9wdGlvbnM6Ci0gCi0gKlBsYWNlbWVudCo6OjoKLUBAIC0x MDYwLDcgKzEwNjAsNyBAQCB3aGVuZXZlciB0aGUgbW91c2UgbW92ZXMgb3ZlciB0aGVtLCBidXQg b25seSB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZpbmcuIFdpdGgKLSBhcmVhLCBldmVuIGlmIHRoaXMg aXMgZHVlIHRvIGxheWVyIGNoYW5nZXMsIHdpbmRvdyBtb3ZlbWVudCwgY2hhbmdpbmcgZGVza3Rv cHMsIGNsb3Npbmcgd2luZG93cywgZXRjLgotICsKLSBEZWZhdWx0OiAqQ2xpY2tUb0ZvY3VzKgot LSAgICAgIAotKwotICpzZXNzaW9uLnNjcmVlbjAuYXV0b1JhaXNlKjogJ2Jvb2xlYW4nOjoKLSBX aGVuIFRydWUsIHRoaXMgc2V0dGluZyBhdXRvbWF0aWNhbGx5IHJhaXNlcyBhbnkgd2luZG93IHRo YXQgZ2FpbnMgZm9jdXMuCi0gKwotZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuY2Mg Yi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCi1pbmRleCAxOWRkZjc4YS4uY2E1OGQ4M2YgMTAwNjQ0 Ci0tLS0gYS9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCi0rKysgYi9zcmMvU2NyZWVuUGxhY2VtZW50 LmNjCi1AQCAtNDMsMTQgKzQzLDE0IEBAIHVzaW5nIHN0ZDo6Y2VycjsKLSB1c2luZyBzdGQ6OmVu ZGw7Ci0gCi0gU2NyZWVuUGxhY2VtZW50OjpTY3JlZW5QbGFjZW1lbnQoQlNjcmVlbiAmc2NyZWVu KToKLS0gICAgbV9yb3dfZGlyZWN0aW9uKHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgTEVGVFJJ R0hULCAKLS0gICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi5yb3dQbGFjZW1lbnRE aXJlY3Rpb24iLCAKLSsgICAgbV9yb3dfZGlyZWN0aW9uKHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIo KSwgTEVGVFJJR0hULAotKyAgICAgICAgICAgICAgICAgICAgc2NyZWVuLm5hbWUoKSsiLnJvd1Bs YWNlbWVudERpcmVjdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgICBzY3JlZW4uYWx0TmFtZSgp KyIuUm93UGxhY2VtZW50RGlyZWN0aW9uIiksCi0tICAgIG1fY29sX2RpcmVjdGlvbihzY3JlZW4u cmVzb3VyY2VNYW5hZ2VyKCksIFRPUEJPVFRPTSwgCi0tICAgICAgICAgICAgICAgICAgICBzY3Jl ZW4ubmFtZSgpKyIuY29sUGxhY2VtZW50RGlyZWN0aW9uIiwgCi0rICAgIG1fY29sX2RpcmVjdGlv bihzY3JlZW4ucmVzb3VyY2VNYW5hZ2VyKCksIFRPUEJPVFRPTSwKLSsgICAgICAgICAgICAgICAg ICAgIHNjcmVlbi5uYW1lKCkrIi5jb2xQbGFjZW1lbnREaXJlY3Rpb24iLAotICAgICAgICAgICAg ICAgICAgICAgc2NyZWVuLmFsdE5hbWUoKSsiLkNvbFBsYWNlbWVudERpcmVjdGlvbiIpLAotLSAg ICBtX3BsYWNlbWVudF9wb2xpY3koc2NyZWVuLnJlc291cmNlTWFuYWdlcigpLCBST1dNSU5PVkVS TEFQUExBQ0VNRU5ULCAKLS0gICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi53 aW5kb3dQbGFjZW1lbnQiLCAKLSsgICAgbV9wbGFjZW1lbnRfcG9saWN5KHNjcmVlbi5yZXNvdXJj ZU1hbmFnZXIoKSwgUk9XTUlOT1ZFUkxBUFBMQUNFTUVOVCwKLSsgICAgICAgICAgICAgICAgICAg ICAgIHNjcmVlbi5uYW1lKCkrIi53aW5kb3dQbGFjZW1lbnQiLAotICAgICAgICAgICAgICAgICAg ICAgICAgc2NyZWVuLmFsdE5hbWUoKSsiLldpbmRvd1BsYWNlbWVudCIpLAotICAgICBtX29sZF9w b2xpY3koUk9XU01BUlRQTEFDRU1FTlQpLAotICAgICBtX3NjcmVlbihzY3JlZW4pCi1kaWZmIC0t Z2l0IGEvc3JjL1NjcmVlblBsYWNlbWVudC5oaCBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKLWlu ZGV4IDBmMjEwZDk0Li5mMTIzNDk4MyAxMDA2NDQKLS0tLSBhL3NyYy9TY3JlZW5QbGFjZW1lbnQu aGgKLSsrKyBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKLUBAIC0zNCw3ICszNCw3IEBAIGNsYXNz IEJTY3JlZW47Ci0gCi0gLyoqCi0gICogTWFpbiBjbGFzcyBmb3Igc3RyYXRlZ3kgaGFuZGxpbmcK LS0gKiBUaGlzIGlzIGEgYnJpZGdlIGJldHdlZW4gc2NyZWVuIGFuZCAKLSsgKiBUaGlzIGlzIGEg YnJpZGdlIGJldHdlZW4gc2NyZWVuIGFuZAotICAqIHRoZSByZWFsIHBsYWNlbWVudCBzdHJhdGVn eSAocm93Y29sLCB1bmRlcm1vdXNlIGV0YykKLSAgKiBUaGUgcGxhY2VXaW5kb3cgZnVuY3Rpb24g aW4gdGhpcyBjbGFzcyBpcyBndWFyYW50ZWVkIHRvIHN1Y2NlZWQuCi0gICogSXQgaG9sZHMgYSBw b2ludGVyIHRvIHRoZSByZWFsIHBsYWNlbWVudCBzdHJhdGVneSB3aGljaCBpcwotQEAgLTQyLDgg KzQyLDggQEAgY2xhc3MgQlNjcmVlbjsKLSAgKi8KLSBjbGFzcyBTY3JlZW5QbGFjZW1lbnQ6IHB1 YmxpYyBQbGFjZW1lbnRTdHJhdGVneSB7Ci0gcHVibGljOgotLSAgICBlbnVtIFBsYWNlbWVudFBv bGljeSB7IAotLSAgICAgICAgUk9XU01BUlRQTEFDRU1FTlQsIAotKyAgICBlbnVtIFBsYWNlbWVu dFBvbGljeSB7Ci0rICAgICAgICBST1dTTUFSVFBMQUNFTUVOVCwKLSAgICAgICAgIENPTFNNQVJU UExBQ0VNRU5ULAotICAgICAgICAgQ09MTUlOT1ZFUkxBUFBMQUNFTUVOVCwKLSAgICAgICAgIFJP V01JTk9WRVJMQVBQTEFDRU1FTlQsCi1AQCAtNTIsMTEgKzUyLDExIEBAIHB1YmxpYzoKLSAgICAg ICAgIEFVVE9UQUJQTEFDRU1FTlQKLSAgICAgfTsKLSAKLS0gICAgZW51bSBSb3dEaXJlY3Rpb24g eyAKLSsgICAgZW51bSBSb3dEaXJlY3Rpb24gewotICAgICAgICAgTEVGVFJJR0hULCAvLy88IGZy b20gbGVmdCB0byByaWdodAotICAgICAgICAgUklHSFRMRUZUICAvLy88IGZyb20gcmlnaHQgdG8g bGVmdAotICAgICB9OwotLSAgICBlbnVtIENvbHVtbkRpcmVjdGlvbiB7IAotKyAgICBlbnVtIENv bHVtbkRpcmVjdGlvbiB7Ci0gICAgICAgICBUT1BCT1RUT00sICAvLy88IGZyb20gdG9wIHRvIGJv dHRvbQotICAgICAgICAgQk9UVE9NVE9QICAgLy8vPCBmcm9tIGJvdHRvbSB0byB0b3AKLSAgICAg fTsKLS0tIAotMi4zNy4xCi0KLQotRnJvbSA2ZTA1ZjQ0Yzk0ZmE0YmZjMGU0NGU4ZjQyYTlkMjQ2 NjVhOTU4NDBmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogemxpY2UgPHpsaWNlNTU1 QGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjIgSnVsIDIwMjIgMjE6Mjc6MjUgLTA0MDAKLVN1Ympl Y3Q6IFtQQVRDSCAyLzJdIG5ldyBmZWF0dXJlOiBDZW50ZXJQbGFjZW1lbnQuIFBsYWNlcyBuZXcg d2luZG93cyBpbgotIGNlbnRlciBvZiB0aGUgY3VycmVudCB3b3Jrc3BhY2UKLQotLS0tCi0gZG9j L2FzY2lpZG9jL2ZsdXhib3gudHh0IHwgIDEgKwotIHNyYy9DZW50ZXJQbGFjZW1lbnQuY2MgICB8 IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBzcmMvQ2VudGVy UGxhY2VtZW50LmhoICAgfCAzNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0g c3JjL01ha2Vtb2R1bGUuYW0gICAgICAgIHwgIDIgKysKLSBzcmMvU2NyZWVuUGxhY2VtZW50LmNj ICAgfCAgOCArKysrKysrKwotIHNyYy9TY3JlZW5QbGFjZW1lbnQuaGggICB8ICAxICsKLSA2IGZp bGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKykKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL0Nl bnRlclBsYWNlbWVudC5jYwotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvQ2VudGVyUGxhY2VtZW50 LmhoCi0KLWRpZmYgLS1naXQgYS9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQgYi9kb2MvYXNjaWlk b2MvZmx1eGJveC50eHQKLWluZGV4IDBlM2YyN2I5Li40NmNhMjg2MSAxMDA2NDQKLS0tLSBhL2Rv Yy9hc2NpaWRvYy9mbHV4Ym94LnR4dAotKysrIGIvZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0Ci1A QCAtMTE0MSw2ICsxMTQxLDcgQEAgQXZhaWxhYmxlIHN0cmF0ZWdpZXM6OzsKLSAtIFJvd1NtYXJ0 UGxhY2VtZW50OiB0cmllcyB0byBwbGFjZSB3aW5kb3dzIGluIHJvd3Mgd2l0aG91dCBvdmVybGFw cGluZwotIC0gQ29sU21hcnRQbGFjZW1lbnQ6IHRyaWVzIHRvIHBsYWNlIHdpbmRvd3MgaW4gY29s dW1ucyB3aXRob3V0IG92ZXJsYXBwaW5nCi0gLSBDYXNjYWRlUGxhY2VtZW50OiBwbGFjZXMgd2lu ZG93cyBiZWxvdyB0aGUgdGl0bGViYXIgb2YgdGhlIHByZXZpb3VzIG9uZQotKy0gQ2VudGVyUGxh Y2VtZW50OiBwbGFjZXMgd2luZG93cyBpbiB0aGUgY2VudGVyIG9mIHRoZSBjdXJyZW50IHdvcmtz cGFjZQotIC0gVW5kZXJNb3VzZVBsYWNlbWVudDogcGxhY2VzIG5ldyB3aW5kb3dzIHVuZGVybmVh dGggdGhlIG1vdXNlCi0gLSBSb3dNaW5PdmVybGFwUGxhY2VtZW50OiBwbGFjZSB3aW5kb3dzIGlu IHJvd3Mgd2l0aCBtaW5pbWFsIG92ZXJsYXBwaW5nCi0gLSBDb2xNaW5PdmVybGFwUGxhY2VtZW50 OiBwbGFjZSB3aW5kb3dzIGluIGNvbHVtbnMgd2l0aCBtaW5pbWFsIG92ZXJsYXBwaW5nCi1kaWZm IC0tZ2l0IGEvc3JjL0NlbnRlclBsYWNlbWVudC5jYyBiL3NyYy9DZW50ZXJQbGFjZW1lbnQuY2MK LW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uZWZhZjc2YjkKLS0tLSAvZGV2 L251bGwKLSsrKyBiL3NyYy9DZW50ZXJQbGFjZW1lbnQuY2MKLUBAIC0wLDAgKzEsNDMgQEAKLSsv LyBDZW50ZXJQbGFjZW1lbnQuY2MKLSsvLyBDb3B5cmlnaHQgKGMpIDIwMDYgRmx1eGJveCBUZWFt IChmbHV4Z2VuIGF0IGZsdXhib3ggZG90IG9yZykKLSsvLwotKy8vIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0r Ly8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKLSsvLyB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0rLy8gdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCi0rLy8gYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0rLy8gU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRv IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSsvLwotKy8vIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl IGluY2x1ZGVkIGluCi0rLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUgU29mdHdhcmUuCi0rLy8KLSsvLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotKy8vIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLAotKy8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotKy8vIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0rLy8gTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcKLSsvLyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0rLy8gREVBTElOR1MgSU4gVEhFIFNPRlRXQVJF LgotKwotKyNpbmNsdWRlICJDZW50ZXJQbGFjZW1lbnQuaGgiCi0rCi0rI2luY2x1ZGUgIkZiVGsv QXBwLmhoIgotKyNpbmNsdWRlICJTY3JlZW4uaGgiCi0rI2luY2x1ZGUgIldpbmRvdy5oaCIKLSsK LStib29sIENlbnRlclBsYWNlbWVudDo6cGxhY2VXaW5kb3coY29uc3QgRmx1eGJveFdpbmRvdyAm d2luLCBpbnQgaGVhZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAmcGxhY2VfeCwgaW50ICZwbGFjZV95KSB7Ci0rCi0rICAgIGludCBjZW50X3ggPSAoc2lnbmVk KSB3aW4uc2NyZWVuKCkubWF4UmlnaHQoaGVhZCkgLSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4 TGVmdChoZWFkKTsKLSsgICAgaW50IGNlbnRfeSA9IChzaWduZWQpIHdpbi5zY3JlZW4oKS5tYXhC b3R0b20oaGVhZCkgLSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4VG9wKGhlYWQpOwotKwotKyAg ICAvLyBib3JkZXIgb24gMSBzaWRlLCBkaXZpZGluZyBpbiBoYWxmCi0rICAgIC8vIHdpdGggcm91 bmRpbmcsIHRoaXMgd2lsbCBwcm9iYWJseSBmYXZvciB0b3AgbGVmdAotKyAgICBpbnQgd2luX2hh bGZfdyA9ICh3aW4ud2lkdGgoKSAvIDIpICsgd2luLmZiV2luZG93KCkuYm9yZGVyV2lkdGgoKSwK LSsgICAgICAgIHdpbl9oYWxmX2ggPSAod2luLmhlaWdodCgpIC8gMikgKyB3aW4uZmJXaW5kb3co KS5ib3JkZXJXaWR0aCgpOwotKwotKyAgICBwbGFjZV94ID0gY2VudF94IC0gd2luX2hhbGZfdzsK LSsgICAgcGxhY2VfeSA9IGNlbnRfeSAtIHdpbl9oYWxmX2g7Ci0rCi0rICAgIHJldHVybiB0cnVl OwotK30KLWRpZmYgLS1naXQgYS9zcmMvQ2VudGVyUGxhY2VtZW50LmhoIGIvc3JjL0NlbnRlclBs YWNlbWVudC5oaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwLi45ZjcwYTZj OAotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL0NlbnRlclBsYWNlbWVudC5oaAotQEAgLTAsMCAr MSwzNyBAQAotKy8vIENlbnRlclBsYWNlbWVudC5oaAotKy8vIENvcHlyaWdodCAoYykgMjAwNyBG bHV4Ym94IFRlYW0gKGZsdXhnZW4gYXQgZmx1eGJveCBkb3Qgb3JnKQotKy8vCi0rLy8gUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEKLSsvLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotKy8vIHRvIGRlYWwgaW4gdGhlIFNvZnR3 YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSsv LyB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKLSsvLyBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSsvLyBTb2Z0d2FyZSBpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKy8v Ci0rLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSsvLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSsvLwotKy8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0rLy8g SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFksCi0rLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0rLy8gVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI RVIKLSsvLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORwotKy8vIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKLSsvLyBERUFMSU5HUyBJTiBU SEUgU09GVFdBUkUuCi0rCi0rI2lmbmRlZiBDRU5URVJQTEFDRU1FTlRfSEgKLSsjZGVmaW5lIENF TlRFUlBMQUNFTUVOVF9ISAotKwotKyNpbmNsdWRlICJTY3JlZW5QbGFjZW1lbnQuaGgiCi0rCi0r Y2xhc3MgQ2VudGVyUGxhY2VtZW50OiBwdWJsaWMgUGxhY2VtZW50U3RyYXRlZ3kgewotK3B1Ymxp YzoKLSsgICAgQ2VudGVyUGxhY2VtZW50KCkgeyB9OwotKwotKyAgICBib29sIHBsYWNlV2luZG93 KGNvbnN0IEZsdXhib3hXaW5kb3cgJndpbiwgaW50IGhlYWQsCi0rICAgICAgICAgICAgICAgICAg ICAgaW50ICZwbGFjZV94LCBpbnQgJnBsYWNlX3kpOwotKwotK3ByaXZhdGU6Ci0rfTsKLSsKLSsj ZW5kaWYgLy8gQ0VOVEVSUExBQ0VNRU5UX0hICi1kaWZmIC0tZ2l0IGEvc3JjL01ha2Vtb2R1bGUu YW0gYi9zcmMvTWFrZW1vZHVsZS5hbQotaW5kZXggNWJlNTY5MmMuLjUzZDM1ZThlIDEwMDY0NAot LS0tIGEvc3JjL01ha2Vtb2R1bGUuYW0KLSsrKyBiL3NyYy9NYWtlbW9kdWxlLmFtCi1AQCAtMTY1 LDYgKzE2NSw4IEBAIGZsdXhib3hfU09VUkNFUyA9IFwKLSAJc3JjL0F0dGVudGlvbk5vdGljZUhh bmRsZXIuaGggXAotIAlzcmMvQ2FzY2FkZVBsYWNlbWVudC5jYyBcCi0gCXNyYy9DYXNjYWRlUGxh Y2VtZW50LmhoIFwKLSsJc3JjL0NlbnRlclBsYWNlbWVudC5jYyBcCi0rCXNyYy9DZW50ZXJQbGFj ZW1lbnQuaGggXAotIAlzcmMvQ2xpZW50TWVudS5jYyBcCi0gCXNyYy9DbGllbnRNZW51LmhoIFwK LSAJc3JjL0NsaWVudFBhdHRlcm4uY2MgXAotZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1l bnQuY2MgYi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCi1pbmRleCBjYTU4ZDgzZi4uY2U0N2E5MTAg MTAwNjQ0Ci0tLS0gYS9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCi0rKysgYi9zcmMvU2NyZWVuUGxh Y2VtZW50LmNjCi1AQCAtMjQsNiArMjQsNyBAQAotICNpbmNsdWRlICJSb3dTbWFydFBsYWNlbWVu dC5oaCIKLSAjaW5jbHVkZSAiTWluT3ZlcmxhcFBsYWNlbWVudC5oaCIKLSAjaW5jbHVkZSAiVW5k ZXJNb3VzZVBsYWNlbWVudC5oaCIKLSsjaW5jbHVkZSAiQ2VudGVyUGxhY2VtZW50LmhoIgotICNp bmNsdWRlICJDb2xTbWFydFBsYWNlbWVudC5oaCIKLSAjaW5jbHVkZSAiQ2FzY2FkZVBsYWNlbWVu dC5oaCIKLSAKLUBAIC04Miw2ICs4Myw5IEBAIGJvb2wgU2NyZWVuUGxhY2VtZW50OjpwbGFjZVdp bmRvdyhjb25zdCBGbHV4Ym94V2luZG93ICZ3aW4sIGludCBoZWFkLAotICAgICAgICAgY2FzZSBV TkRFUk1PVVNFUExBQ0VNRU5UOgotICAgICAgICAgICAgIG1fc3RyYXRlZ3kucmVzZXQobmV3IFVu ZGVyTW91c2VQbGFjZW1lbnQoKSk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICBjYXNl IENFTlRFUlBMQUNFTUVOVDoKLSsgICAgICAgICAgICBtX3N0cmF0ZWd5LnJlc2V0KG5ldyBDZW50 ZXJQbGFjZW1lbnQoKSk7Ci0rICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICBjYXNlIEFVVE9U QUJQTEFDRU1FTlQ6Ci0gICAgICAgICAgICAgbV9zdHJhdGVneS5yZXNldCgwKTsKLSAgICAgICAg ICAgICBicmVhazsKLUBAIC0xOTcsNiArMjAxLDggQEAgc3RkOjpzdHJpbmcgRmJUazo6UmVzb3Vy Y2U8U2NyZWVuUGxhY2VtZW50OjpQbGFjZW1lbnRQb2xpY3k+OjpnZXRTdHJpbmcoKSBjb25zdAot ICAgICAgICAgcmV0dXJuICJDb2xNaW5PdmVybGFwUGxhY2VtZW50IjsKLSAgICAgY2FzZSBTY3Jl ZW5QbGFjZW1lbnQ6OlVOREVSTU9VU0VQTEFDRU1FTlQ6Ci0gICAgICAgICByZXR1cm4gIlVuZGVy TW91c2VQbGFjZW1lbnQiOwotKyAgICBjYXNlIFNjcmVlblBsYWNlbWVudDo6Q0VOVEVSUExBQ0VN RU5UOgotKyAgICAgICAgcmV0dXJuICJDZW50ZXJQbGFjZW1lbnQiOwotICAgICBjYXNlIFNjcmVl blBsYWNlbWVudDo6Q0FTQ0FERVBMQUNFTUVOVDoKLSAgICAgICAgIHJldHVybiAiQ2FzY2FkZVBs YWNlbWVudCI7Ci0gICAgIGNhc2UgU2NyZWVuUGxhY2VtZW50OjpBVVRPVEFCUExBQ0VNRU5UOgot QEAgLTIxOCw2ICsyMjQsOCBAQCB2b2lkIEZiVGs6OlJlc291cmNlPFNjcmVlblBsYWNlbWVudDo6 UGxhY2VtZW50UG9saWN5Pjo6c2V0RnJvbVN0cmluZyhjb25zdCBjaGFyCi0gICAgICAgICAqKCp0 aGlzKSA9IFNjcmVlblBsYWNlbWVudDo6Q09MTUlOT1ZFUkxBUFBMQUNFTUVOVDsKLSAgICAgZWxz ZSBpZiAoc3RyY2FzZWNtcCgiVW5kZXJNb3VzZVBsYWNlbWVudCIsIHN0cikgPT0gMCkKLSAgICAg ICAgICooKnRoaXMpID0gU2NyZWVuUGxhY2VtZW50OjpVTkRFUk1PVVNFUExBQ0VNRU5UOwotKyAg ICBlbHNlIGlmIChzdHJjYXNlY21wKCJDZW50ZXJQbGFjZW1lbnQiLCBzdHIpID09IDApCi0rICAg ICAgICAqKCp0aGlzKSA9IFNjcmVlblBsYWNlbWVudDo6Q0VOVEVSUExBQ0VNRU5UOwotICAgICBl bHNlIGlmIChzdHJjYXNlY21wKCJDYXNjYWRlUGxhY2VtZW50Iiwgc3RyKSA9PSAwKQotICAgICAg ICAgKigqdGhpcykgPSBTY3JlZW5QbGFjZW1lbnQ6OkNBU0NBREVQTEFDRU1FTlQ7Ci0gICAgIGVs c2UgaWYgKHN0cmNhc2VjbXAoIkF1dG90YWJQbGFjZW1lbnQiLCBzdHIpID09IDApCi1kaWZmIC0t Z2l0IGEvc3JjL1NjcmVlblBsYWNlbWVudC5oaCBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKLWlu ZGV4IGYxMjM0OTgzLi5hNWM5Yjg4NSAxMDA2NDQKLS0tLSBhL3NyYy9TY3JlZW5QbGFjZW1lbnQu aGgKLSsrKyBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKLUBAIC00OSw2ICs0OSw3IEBAIHB1Ymxp YzoKLSAgICAgICAgIFJPV01JTk9WRVJMQVBQTEFDRU1FTlQsCi0gICAgICAgICBDQVNDQURFUExB Q0VNRU5ULAotICAgICAgICAgVU5ERVJNT1VTRVBMQUNFTUVOVCwKLSsgICAgICAgIENFTlRFUlBM QUNFTUVOVCwKLSAgICAgICAgIEFVVE9UQUJQTEFDRU1FTlQKLSAgICAgfTsKLSAKLS0tIAotMi4z Ny4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nr cy5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk4YWI0NGEyM2M2Li4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29udGFpbmVyX2xvY2tzLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMzI1ICswLDAgQEAKLWRpZmYgLS1naXQgYS9zcmMvRmJXaW5GcmFtZS5j YyBiL3NyYy9GYldpbkZyYW1lLmNjCi1pbmRleCAwMGJjMTE4Ny4uZjhhNGM0NzUgMTAwNjQ0Ci0t LS0gYS9zcmMvRmJXaW5GcmFtZS5jYwotKysrIGIvc3JjL0ZiV2luRnJhbWUuY2MKLUBAIC0xNDgs NiArMTQ4LDExIEBAIEZiV2luRnJhbWU6OkZiV2luRnJhbWUoQlNjcmVlbiAmc2NyZWVuLCB1bnNp Z25lZCBpbnQgY2xpZW50X2RlcHRoLAotICAgICBtX2J1dHRvbl9zaXplKDEpLAotICAgICBtX3No YXBlKG1fd2luZG93LCB0aGVtZS0+c2hhcGVQbGFjZSgpKSB7Ci0gCi0rICAgIG1fbG9ja2VyX3Rp bWVyLnNldFRpbWVvdXQodGltZXJWYWwoKSApOyAvLyAxMG1pbGxpc2VjCi0rICAgIG1fbG9ja2Vy X3RpbWVyLmZpcmVPbmNlKHRydWUpOwotKyAgICBGYlRrOjpSZWZDb3VudDxGYlRrOjpDb21tYW5k PHZvaWQ+ID4gdXNpZyhuZXcgRmJUazo6U2ltcGxlQ29tbWFuZDxGYldpbkZyYW1lPigqdGhpcywg JkZiV2luRnJhbWU6OnVubG9ja1NpZykpOwotKyAgICBtX2xvY2tlcl90aW1lci5zZXRDb21tYW5k KHVzaWcpOwotKwotICAgICBpbml0KCk7Ci0gfQotIAotQEAgLTE1Niw2ICsxNjEsMjcgQEAgRmJX aW5GcmFtZTo6fkZiV2luRnJhbWUoKSB7Ci0gICAgIHJlbW92ZUFsbEJ1dHRvbnMoKTsKLSB9Ci0g Ci0rLy8gZm9yIGluY3JlbWVudGFsIGNoYW5nZXMsIGJhY2sgb2ZmIGZvciBhIGJpdAotKy8vIHBy ZXZlbnRzIHNsb3dkb3duIGZyb20gc2F5LCBtYWtpbmcgMjAwIHdpbmRvd3MKLSt2b2lkIEZiV2lu RnJhbWU6OnJlc2V0TG9jaygpIHsKLSsgICAgbV9sb2NrX2dmeCA9IHRydWU7Ci0rICAgIG1fbG9j a2VyX3RpbWVyLnN0YXJ0KCk7Ci0rfQotKwotK3ZvaWQgRmJXaW5GcmFtZTo6dW5sb2NrU2lnKCkg ewotKyAgICBtX2xvY2tfZ2Z4ID0gZmFsc2U7Ci0rICAgIC8vIHRoaXMgaXMgd2hhdCB3ZSB3YW50 ZWQgdG8gZG8KLSsgICAgRmJUazo6Q29udGFpbmVyJiB0YWJzID0gdGFiY29udGFpbmVyKCk7Ci0r ICAgIHRhYnMuc2V0VXBkYXRlTG9jayhtX2xvY2tfZ2Z4KTsKLSsgICAgcmVuZGVyVGFiQ29udGFp bmVyKCk7Ci0rICAgIGFwcGx5VGFiQ29udGFpbmVyKCk7Ci0rCi0rICAgIHRhYnMuY2xlYXIoKTsK LSsgICAgdGFicy5yYWlzZSgpOwotKyAgICB0YWJzLnNob3coKTsKLSt9Ci0rCi0rCi0gYm9vbCBG YldpbkZyYW1lOjpzZXRUYWJNb2RlKFRhYk1vZGUgdGFibW9kZSkgewotICAgICBpZiAobV90YWJt b2RlID09IHRhYm1vZGUpCi0gICAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtMTg3LDYgKzIxMyw3 IEBAIGJvb2wgRmJXaW5GcmFtZTo6c2V0VGFiTW9kZShUYWJNb2RlIHRhYm1vZGUpIHsKLSAKLSAg ICAgfSBlbHNlIHsKLSAgICAgICAgIHRhYnMuc2V0VXBkYXRlTG9jayh0cnVlKTsKLSsgICAgICAg IHJlc2V0TG9jaygpOwotIAotICAgICAgICAgdGFicy5zZXRBbGlnbm1lbnQoRmJUazo6Q29udGFp bmVyOjpSRUxBVElWRSk7Ci0gICAgICAgICB0YWJzLnNldE9yaWVudGF0aW9uKEZiVGs6OlJPVDAp OwotQEAgLTIwMCw5ICsyMjcsMTIgQEAgYm9vbCBGYldpbkZyYW1lOjpzZXRUYWJNb2RlKFRhYk1v ZGUgdGFibW9kZSkgewotICAgICAgICAgfQotICAgICAgICAgdGFicy5zZXRCb3JkZXJXaWR0aCgw KTsKLSAgICAgICAgIHRhYnMuc2V0TWF4VG90YWxTaXplKDApOwotLSAgICAgICAgdGFicy5zZXRV cGRhdGVMb2NrKGZhbHNlKTsKLSsgICAgICAgIHRhYnMuc2V0VXBkYXRlTG9jayhtX2xvY2tfZ2Z4 KTsKLSAgICAgICAgIHRhYnMuc2V0TWF4U2l6ZVBlckNsaWVudCgwKTsKLSAKLSsgICAgICAgIGlm IChtX2xvY2tfZ2Z4KQotKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSsKLSAgICAgICAgIHJl bmRlclRhYkNvbnRhaW5lcigpOwotICAgICAgICAgYXBwbHlUYWJDb250YWluZXIoKTsKLSAKLWRp ZmYgLS1naXQgYS9zcmMvRmJXaW5GcmFtZS5oaCBiL3NyYy9GYldpbkZyYW1lLmhoCi1pbmRleCA2 MTdiOWI5MS4uNzI1Yzg0YTAgMTAwNjQ0Ci0tLS0gYS9zcmMvRmJXaW5GcmFtZS5oaAotKysrIGIv c3JjL0ZiV2luRnJhbWUuaGgKLUBAIC0zMyw2ICszMyw3IEBACi0gI2luY2x1ZGUgIkZiVGsvQ29u dGFpbmVyLmhoIgotICNpbmNsdWRlICJGYlRrL1NoYXBlLmhoIgotICNpbmNsdWRlICJGYlRrL1Np Z25hbC5oaCIKLSsjaW5jbHVkZSAiRmJUay9UaW1lci5oaCIKLSAKLSAjaW5jbHVkZSA8dmVjdG9y PgotICNpbmNsdWRlIDxtZW1vcnk+Ci1AQCAtMTc2LDYgKzE3NywxMiBAQCBwdWJsaWM6Ci0gICAg IHZvaWQgc2V0U2hhcGluZ0NsaWVudChGYlRrOjpGYldpbmRvdyAqd2luLCBib29sIGFsd2F5c191 cGRhdGUpOwotICAgICB2b2lkIHVwZGF0ZVNoYXBlKCkgeyBtX3NoYXBlLnVwZGF0ZSgpOyB9Ci0g Ci0rICAgIHZvaWQgcmVzZXRMb2NrKCk7Ci0rICAgIHZvaWQgdW5sb2NrU2lnKCk7Ci0rICAgIEZi VGs6OlRpbWVyIG1fbG9ja2VyX3RpbWVyOwotKyAgICBzdGF0aWMgdW5zaWduZWQgaW50IHRpbWVy VmFsKCkgeyByZXR1cm4gMTAgKiBGYlRrOjpGYlRpbWU6OklOX01JTExJU0VDT05EUzsgfQotKyAg ICBib29sIG1fbG9ja19nZnggPSBmYWxzZTsKLSsKLSAgICAgLyoqCi0gICAgICAgIEBuYW1lIGFj Y2Vzc29ycwotICAgICAqLwotZGlmZiAtLWdpdCBhL3NyYy9JY29uQnV0dG9uLmNjIGIvc3JjL0lj b25CdXR0b24uY2MKLWluZGV4IDEyOTBjMmFhLi4yZWE3YWY5ZSAxMDA2NDQKLS0tLSBhL3NyYy9J Y29uQnV0dG9uLmNjCi0rKysgYi9zcmMvSWNvbkJ1dHRvbi5jYwotQEAgLTcxLDggKzcxLDggQEAg SWNvbkJ1dHRvbjo6SWNvbkJ1dHRvbihjb25zdCBGYlRrOjpGYldpbmRvdyAmcGFyZW50LAotIAot ICAgICBGYlRrOjpFdmVudE1hbmFnZXI6Omluc3RhbmNlKCktPmFkZCgqdGhpcywgbV9pY29uX3dp bmRvdyk7Ci0gCi0tICAgIHJlY29uZmlnVGhlbWUoKTsKLS0gICAgcmVmcmVzaEV2ZXJ5dGhpbmco ZmFsc2UpOwotKyAgICAvL3JlY29uZmlnVGhlbWUoKTsKLSsgICAgLy9yZWZyZXNoRXZlcnl0aGlu ZyhmYWxzZSk7Ci0gfQotIAotIEljb25CdXR0b246On5JY29uQnV0dG9uKCkgewotQEAgLTE2Mywx MiArMTYzLDEyIEBAIHZvaWQgSWNvbkJ1dHRvbjo6cmVjb25maWdUaGVtZSgpIHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB3aWR0aCgpLCBoZWlnaHQoKSwgbV90aGVtZS0+dGV4dHVyZSgp LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uKCkpKTsKLSAgICAgICAg IHNldEJhY2tncm91bmRQaXhtYXAobV9wbSk7Ci0tICAgIH0gZWxzZXsKLSsgICAgfSBlbHNlIHsK LSAgICAgICAgIG1fcG0ucmVzZXQoMCk7Ci0gICAgICAgICBzZXRCYWNrZ3JvdW5kQ29sb3IobV90 aGVtZS0+dGV4dHVyZSgpLmNvbG9yKCkpOwotICAgICB9Ci0gCi0tICAgIHVwZGF0ZUJhY2tncm91 bmQoZmFsc2UpOwotKyAgICAvL3VwZGF0ZUJhY2tncm91bmQoZmFsc2UpOwotIH0KLSAKLSB2b2lk IEljb25CdXR0b246OnJlY29uZmlnQW5kQ2xlYXIoKSB7Ci1AQCAtMTgxLDcgKzE4MSw4IEBAIHZv aWQgSWNvbkJ1dHRvbjo6cmVmcmVzaEV2ZXJ5dGhpbmcoYm9vbCBzZXR1cCkgewotICAgICBEaXNw bGF5ICpkaXNwbGF5ID0gRmJUazo6QXBwOjppbnN0YW5jZSgpLT5kaXNwbGF5KCk7Ci0gICAgIGlu dCBzY3JlZW4gPSBtX3dpbi5zY3JlZW4oKS5zY3JlZW5OdW1iZXIoKTsKLSAKLS0gICAgaWYgKG1f dXNlX3BpeG1hcCAmJiBtX3dpbi5pY29uKCkucGl4bWFwKCkuZHJhd2FibGUoKSAhPSBOb25lKSB7 Ci0rICAgIGlmIChtX3VzZV9waXhtYXAgJiYgbV93aW4uaWNvbigpLnBpeG1hcCgpLmRyYXdhYmxl KCkgIT0gTm9uZSAmJgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0 aCgpID4gbV9pY29uX3dpbmRvdy53aWR0aCgpICkgewotICAgICAgICAgLy8gc2V0dXAgaWNvbiB3 aW5kb3cKLSAgICAgICAgIG1faWNvbl93aW5kb3cuc2hvdygpOwotICAgICAgICAgdW5zaWduZWQg aW50IHcgPSB3aWR0aCgpOwotQEAgLTI0Miw3ICsyNDMsNiBAQCB2b2lkIEljb25CdXR0b246OnJl ZnJlc2hFdmVyeXRoaW5nKGJvb2wgc2V0dXApIHsKLSAgICAgICAgIG1faWNvbl93aW5kb3cuY2xl YXIoKTsKLSAgICAgfQotIAotLQotIH0KLSAKLSB2b2lkIEljb25CdXR0b246OmNsaWVudFRpdGxl Q2hhbmdlZCgpIHsKLUBAIC0yNTEsMjQgKzI1MSwzMCBAQCB2b2lkIEljb25CdXR0b246OmNsaWVu dFRpdGxlQ2hhbmdlZCgpIHsKLSAKLSAgICAgaWYgKG1faGFzX3Rvb2x0aXApCi0gICAgICAgICBz aG93VG9vbHRpcCgpOwotKwotIH0KLSAKLSB2b2lkIEljb25CdXR0b246OnNldHVwV2luZG93KCkg ewotICAgICBtX2ljb25fd2luZG93LmNsZWFyKCk7Ci0rICAgIC8vRmJUazo6RmJTdHJpbmcgdGl0 bGUgPSAid3RmMiI7Ci0gICAgIEZiVGs6OkZiU3RyaW5nIHRpdGxlID0gbV93aW4udGl0bGUoKS5s b2dpY2FsKCk7Ci0tICAgIGlmIChtX3dpbi5mYndpbmRvdygpICYmIG1fd2luLmZid2luZG93KCkt PmlzSWNvbmljKCkpCi0tICAgICAgICB0aXRsZSA9IEljb25iYXJUb29sOjppY29uaWZpZWRQcmVm aXgoKSArIHRpdGxlICsgSWNvbmJhclRvb2w6Omljb25pZmllZFN1ZmZpeCgpOwotKyAgICAvLyNp ZiBVU0VfVE9PTEJBUgotKyAgICAvL2lmIChtX3dpbi5mYndpbmRvdygpICYmIG1fd2luLmZid2lu ZG93KCktPmlzSWNvbmljKCkpCi0rICAgIC8vICAgIHRpdGxlID0gSWNvbmJhclRvb2w6Omljb25p ZmllZFByZWZpeCgpICsgdGl0bGUgKyBJY29uYmFyVG9vbDo6aWNvbmlmaWVkU3VmZml4KCk7Ci0r ICAgIC8vI2VuZGlmCi0gICAgIHNldFRleHQodGl0bGUpOwotICAgICBGYlRrOjpUZXh0QnV0dG9u OjpjbGVhcigpOwotIH0KLSAKLSB2b2lkIEljb25CdXR0b246OmRyYXdUZXh0KGludCB4LCBpbnQg eSwgRmJUazo6RmJEcmF3YWJsZSAqZHJhd2FibGUpIHsKLSAKLS0gICAgLy8gb2Zmc2V0IHRleHQK LS0gICAgaWYgKG1faWNvbl9waXhtYXAuZHJhd2FibGUoKSAhPSAwKQotLSAgICAgICAgRmJUazo6 VGV4dEJ1dHRvbjo6ZHJhd1RleHQobV9pY29uX3dpbmRvdy54KCkgKyBtX2ljb25fd2luZG93Lndp ZHRoKCkgKyAxLCB5LCBkcmF3YWJsZSk7Ci0tICAgIGVsc2UKLS0gICAgICAgIEZiVGs6OlRleHRC dXR0b246OmRyYXdUZXh0KDEsIHksIGRyYXdhYmxlKTsKLSsgICAgaWYgKHdpZHRoKCkgPiBtX2lj b25fd2luZG93LndpZHRoKCkgKSB7Ci0rICAgICAgLy8gb2Zmc2V0IHRleHQKLSsgICAgICBpZiAo bV9pY29uX3BpeG1hcC5kcmF3YWJsZSgpICE9IDApCi0rICAgICAgICAgIEZiVGs6OlRleHRCdXR0 b246OmRyYXdUZXh0KG1faWNvbl93aW5kb3cueCgpICsgbV9pY29uX3dpbmRvdy53aWR0aCgpICsg MSwgeSwgZHJhd2FibGUpOwotKyAgICAgIGVsc2UKLSsgICAgICAgICAgRmJUazo6VGV4dEJ1dHRv bjo6ZHJhd1RleHQoMSwgeSwgZHJhd2FibGUpOwotKyAgICB9Ci0gfQotIAotIGJvb2wgSWNvbkJ1 dHRvbjo6c2V0T3JpZW50YXRpb24oRmJUazo6T3JpZW50YXRpb24gb3JpZW50KSB7Ci1kaWZmIC0t Z2l0IGEvc3JjL0ljb25iYXJUb29sLmNjIGIvc3JjL0ljb25iYXJUb29sLmNjCi1pbmRleCAwMjdh YjFjNi4uZjY0YTRjZjYgMTAwNjQ0Ci0tLS0gYS9zcmMvSWNvbmJhclRvb2wuY2MKLSsrKyBiL3Ny Yy9JY29uYmFyVG9vbC5jYwotQEAgLTMwMCw2ICszMDAsMTEgQEAgSWNvbmJhclRvb2w6Okljb25i YXJUb29sKGNvbnN0IEZiVGs6OkZiV2luZG93ICZwYXJlbnQsIEljb25iYXJUaGVtZSAmdGhlbWUs Ci0gICAgIEZiVGs6OlJlZkNvdW50PEZiVGs6OkNvbW1hbmQ8dm9pZD4gPiBlcnMobmV3IEZiVGs6 OlNpbXBsZUNvbW1hbmQ8SWNvbmJhclRvb2w+KCp0aGlzLCAmSWNvbmJhclRvb2w6OmVtaXRSZXNp emVTaWcpKTsKLSAgICAgbV9yZXNpemVTaWdfdGltZXIuc2V0Q29tbWFuZChlcnMpOwotIAotKyAg ICBtX2xvY2tlcl90aW1lci5zZXRUaW1lb3V0KEljb25CdXR0b246OnVwZGF0ZUxhemluZXNzKCkg LyAxMCk7IC8vIDEwbWlsbGlzZWMKLSsgICAgbV9sb2NrZXJfdGltZXIuZmlyZU9uY2UodHJ1ZSk7 Ci0rICAgIEZiVGs6OlJlZkNvdW50PEZiVGs6OkNvbW1hbmQ8dm9pZD4gPiB1c2lnKG5ldyBGYlRr OjpTaW1wbGVDb21tYW5kPEljb25iYXJUb29sPigqdGhpcywgJkljb25iYXJUb29sOjp1bmxvY2tT aWcpKTsKLSsgICAgbV9sb2NrZXJfdGltZXIuc2V0Q29tbWFuZCh1c2lnKTsKLSsKLSAgICAgdGhl bWVSZWNvbmZpZ3VyZWQoKTsKLSB9Ci0gCi1AQCAtMzI1LDcgKzMzMCw3IEBAIHZvaWQgSWNvbmJh clRvb2w6OnVwZGF0ZU1heFNpemVzKHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhl aWdodCkgewotIAotIHZvaWQgSWNvbmJhclRvb2w6OnJlc2l6ZSh1bnNpZ25lZCBpbnQgd2lkdGgs IHVuc2lnbmVkIGludCBoZWlnaHQpIHsKLSAgICAgbV9pY29uX2NvbnRhaW5lci5yZXNpemUod2lk dGgsIGhlaWdodCk7Ci0tICAgIHVwZGF0ZU1heFNpemVzKHdpZHRoLCBoZWlnaHQpOwotKyAgICAv L3VwZGF0ZU1heFNpemVzKHdpZHRoLCBoZWlnaHQpOwotICAgICByZW5kZXJUaGVtZSgpOwotIH0K LSAKLUBAIC0zMzMsNyArMzM4LDcgQEAgdm9pZCBJY29uYmFyVG9vbDo6bW92ZVJlc2l6ZShpbnQg eCwgaW50IHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgd2lk dGgsIHVuc2lnbmVkIGludCBoZWlnaHQpIHsKLSAKLSAgICAgbV9pY29uX2NvbnRhaW5lci5tb3Zl UmVzaXplKHgsIHksIHdpZHRoLCBoZWlnaHQpOwotLSAgICB1cGRhdGVNYXhTaXplcyh3aWR0aCwg aGVpZ2h0KTsKLSsgICAgLy91cGRhdGVNYXhTaXplcyh3aWR0aCwgaGVpZ2h0KTsKLSAgICAgcmVu ZGVyVGhlbWUoKTsKLSB9Ci0gCi1AQCAtMzkzLDYgKzM5OCwyNSBAQCB2b2lkIEljb25iYXJUb29s OjpzZXRNb2RlKHN0cmluZyBtb2RlKSB7Ci0gICAgIG1fbWVudS5yZWNvbmZpZ3VyZSgpOwotIH0K LSAKLSsvLyBmb3IgaW5jcmVtZW50YWwgY2hhbmdlcywgYmFjayBvZmYgZm9yIGEgYml0Ci0rLy8g cHJldmVudHMgc2xvd2Rvd24gZnJvbSBzYXksIG1ha2luZyAyMDAgd2luZG93cwotK3ZvaWQgSWNv bmJhclRvb2w6OnJlc2V0TG9jaygpIHsKLSsgICAgbV9sb2NrX2dmeCA9IHRydWU7Ci0rICAgIG1f bG9ja2VyX3RpbWVyLnN0YXJ0KCk7Ci0rfQotKwotK3ZvaWQgSWNvbmJhclRvb2w6OnVubG9ja1Np ZygpIHsKLSsgICAgbV9sb2NrX2dmeCA9IGZhbHNlOwotKyAgICAvL3Jlc2l6ZVNpZygpLmVtaXQo KTsKLSsgICAgLy8gdGhpcyBpcyB3aGF0IHdlIHdhbnRlZCB0byBkbwotKyAgICBtX2ljb25fY29u dGFpbmVyLnNldFVwZGF0ZUxvY2soZmFsc2UpOwotKyAgICBtX2ljb25fY29udGFpbmVyLnVwZGF0 ZSgpOwotKyAgICBtX2ljb25fY29udGFpbmVyLnNob3dTdWJ3aW5kb3dzKCk7Ci0rICAgIHJlbmRl clRoZW1lKCk7Ci0rICAgIHVwZGF0ZShBTElHTiwgTlVMTCk7Ci0rICAgIG1fcmVzaXplU2lnX3Rp bWVyLnN0YXJ0KCk7Ci0rfQotKwotIHZvaWQgSWNvbmJhclRvb2w6OmVtaXRSZXNpemVTaWcoKSB7 Ci0gICAgIHJlc2l6ZVNpZygpLmVtaXQoKTsKLSB9Ci1AQCAtNDQxLDkgKzQ2NSwxMSBAQCB2b2lk IEljb25iYXJUb29sOjp1cGRhdGUoVXBkYXRlUmVhc29uIHJlYXNvbiwgRm9jdXNhYmxlICp3aW4p IHsKLSAgICAgc3dpdGNoKHJlYXNvbikgewotICAgICAgICAgY2FzZSBMSVNUX0FERDogY2FzZSBM SVNUX09SREVSOgotICAgICAgICAgICAgIGluc2VydFdpbmRvdygqd2luKTsKLSsgICAgICAgICAg ICByZXNldExvY2soKTsKLSAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgIGNhc2UgTElTVF9S RU1PVkU6Ci0gICAgICAgICAgICAgcmVtb3ZlV2luZG93KCp3aW4pOwotKyAgICAgICAgICAgIHJl c2V0TG9jaygpOwotICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgY2FzZSBMSVNUX1JFU0VU OgotICAgICAgICAgICAgIHJlc2V0KCk7Ci1AQCAtNDU1LDYgKzQ4MSwxMCBAQCB2b2lkIEljb25i YXJUb29sOjp1cGRhdGUoVXBkYXRlUmVhc29uIHJlYXNvbiwgRm9jdXNhYmxlICp3aW4pIHsKLSAg ICAgbV9yZXNpemVTaWdfdGltZXIuc3RhcnQoKTsKLSAKLSAgICAgdXBkYXRlTWF4U2l6ZXMod2lk dGgoKSwgaGVpZ2h0KCkpOwotKwotKyAgICBpZiAobV9sb2NrX2dmeCkKLSsgICAgICAgIHJldHVy bjsKLSsKLSAgICAgLy8gdW5sb2NrIGNvbnRhaW5lciBhbmQgdXBkYXRlIGdyYXBoaWNzCi0gICAg IG1faWNvbl9jb250YWluZXIuc2V0VXBkYXRlTG9jayhmYWxzZSk7Ci0gICAgIG1faWNvbl9jb250 YWluZXIudXBkYXRlKCk7Ci1AQCAtNDk2LDEzICs1MjYsMTMgQEAgdm9pZCBJY29uYmFyVG9vbDo6 aW5zZXJ0V2luZG93KEZvY3VzYWJsZSAmd2luLCBpbnQgcG9zKSB7Ci0gICAgICAgICBidXR0b24g PSBtYWtlQnV0dG9uKHdpbik7Ci0gICAgIGlmICghYnV0dG9uKSByZXR1cm47Ci0gCi0tICAgIGlm IChwb3MgPT0gLTIpIHsKLS0gICAgICAgIHBvcyA9IDA7Ci0tICAgICAgICBsaXN0PEZvY3VzYWJs ZSAqPjo6aXRlcmF0b3IgaXQgPSBtX3dpbmxpc3QtPmNsaWVudExpc3QoKS5iZWdpbigpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0X2VuZCA9IG1fd2lubGlzdC0+Y2xp ZW50TGlzdCgpLmVuZCgpOwotLSAgICAgICAgZm9yICg7IGl0ICE9IGl0X2VuZCAmJiAqaXQgIT0g JndpbjsgKytpdCkKLS0gICAgICAgICAgICBwb3MrKzsKLS0gICAgfQotKyAgICAvL2lmIChwb3Mg PT0gLTIpIHsKLSsgICAgLy8gICAgcG9zID0gMDsKLSsgICAgLy8gICAgbGlzdDxGb2N1c2FibGUg Kj46Oml0ZXJhdG9yIGl0ID0gbV93aW5saXN0LT5jbGllbnRMaXN0KCkuYmVnaW4oKSwKLSsgICAg Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0X2VuZCA9IG1fd2lubGlzdC0+Y2xp ZW50TGlzdCgpLmVuZCgpOwotKyAgICAvLyAgICBmb3IgKDsgaXQgIT0gaXRfZW5kICYmICppdCAh PSAmd2luOyArK2l0KQotKyAgICAvLyAgICAgICAgcG9zKys7Ci0rICAgIC8vfQotIAotICAgICBt X2ljb25fY29udGFpbmVyLmluc2VydEl0ZW0oYnV0dG9uLCBwb3MpOwotICAgICBtX3RyYWNrZXIu am9pbihidXR0b24tPnRpdGxlQ2hhbmdlZCgpLCBGYlRrOjpNZW1GdW4obV9yZXNpemVTaWdfdGlt ZXIsICZGYlRrOjpUaW1lcjo6c3RhcnQpKTsKLUBAIC01MTcsOSArNTQ3LDkgQEAgdm9pZCBJY29u YmFyVG9vbDo6dXBkYXRlU2l6aW5nKCkgewotICAgICBtX2ljb25fY29udGFpbmVyLnNldEJvcmRl cldpZHRoKG1fdGhlbWUuYm9yZGVyKCkud2lkdGgoKSk7Ci0gICAgIG1faWNvbl9jb250YWluZXIu c2V0Qm9yZGVyQ29sb3IobV90aGVtZS5ib3JkZXIoKS5jb2xvcigpKTsKLSAKLS0gICAgRmJUazo6 U1RMVXRpbDo6Zm9yQWxsKG1faWNvbnMsIAotLSAgICAgICAgICAgIEZiVGs6OkNvbXBvc2Uoc3Rk OjptZW1fZnVuKCZJY29uQnV0dG9uOjpyZWNvbmZpZ1RoZW1lKSwgCi0tICAgICAgICAgICAgICAg IEZiVGs6OlNlbGVjdDJuZDxJY29uTWFwOjp2YWx1ZV90eXBlPigpKSk7Ci0rICAgIC8vRmJUazo6 U1RMVXRpbDo6Zm9yQWxsKG1faWNvbnMsIAotKyAgICAvLyAgICAgICAgRmJUazo6Q29tcG9zZShz dGQ6Om1lbV9mdW4oJkljb25CdXR0b246OnJlY29uZmlnVGhlbWUpLCAKLSsgICAgLy8gICAgICAg ICAgICBGYlRrOjpTZWxlY3QybmQ8SWNvbk1hcDo6dmFsdWVfdHlwZT4oKSkpOwotIAotIH0KLSAK LUBAIC01NjAsNyArNTkwLDcgQEAgdm9pZCBJY29uYmFyVG9vbDo6cmVuZGVyQnV0dG9uKEljb25C dXR0b24gJmJ1dHRvbiwgYm9vbCBjbGVhcikgewotIAotICAgICBidXR0b24uc2V0UGl4bWFwKCpt X3JjX3VzZV9waXhtYXApOwotICAgICBidXR0b24uc2V0VGV4dFBhZGRpbmcoKm1fcmNfY2xpZW50 X3BhZGRpbmcpOwotLSAgICBidXR0b24ucmVjb25maWdUaGVtZSgpOwotKyAgICAvL2J1dHRvbi5y ZWNvbmZpZ1RoZW1lKCk7Ci0gICAgIGlmIChjbGVhcikKLSAgICAgICAgIGJ1dHRvbi5jbGVhcigp OyAvLyB0aGUgY2xlYXIgYWxzbyB1cGRhdGVzIHRyYW5zcGFyZW50Ci0gfQotZGlmZiAtLWdpdCBh L3NyYy9JY29uYmFyVG9vbC5oaCBiL3NyYy9JY29uYmFyVG9vbC5oaAotaW5kZXggZGY2ZDlhNjUu LjFjMjEwMWFjIDEwMDY0NAotLS0tIGEvc3JjL0ljb25iYXJUb29sLmhoCi0rKysgYi9zcmMvSWNv bmJhclRvb2wuaGgKLUBAIC0xMDYsNiArMTA2LDkgQEAgcHJpdmF0ZToKLSAKLSAgICAgdm9pZCB0 aGVtZVJlY29uZmlndXJlZCgpOwotIAotKyAgICB2b2lkIHJlc2V0TG9jaygpOwotKyAgICB2b2lk IHVubG9ja1NpZygpOwotKyAgICBGYlRrOjpUaW1lciBtX2xvY2tlcl90aW1lcjsKLSAgICAgRmJU azo6VGltZXIgbV9yZXNpemVTaWdfdGltZXI7Ci0gICAgIHZvaWQgZW1pdFJlc2l6ZVNpZygpOwot IAotQEAgLTEyOCw2ICsxMzEsNyBAQCBwcml2YXRlOgotICAgICBGYk1lbnUgbV9tZW51OwotICAg ICBpbnQgbV9hbHBoYTsKLSAgICAgc3RhdGljIHN0ZDo6c3RyaW5nIHNfaWNvbmlmaWVkRGVjb3Jh dGlvblsyXTsKLSsgICAgYm9vbCBtX2xvY2tfZ2Z4ID0gZmFsc2U7Ci0gfTsKLSAKLSAjZW5kaWYg Ly8gSUNPTkJBUlRPT0xfSEgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2Nv bnRhaW5lcl9yZWxhdGl2ZV9yZWxhdGl2ZS5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVz L2NvbnRhaW5lcl9yZWxhdGl2ZV9yZWxhdGl2ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZGMzZGRiNTE4MWI1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mbHV4Ym94 L3BhdGNoZXMvY29udGFpbmVyX3JlbGF0aXZlX3JlbGF0aXZlLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMTUgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3NyYy9GYlRrL0NvbnRhaW5lci5jYyBiL3Ny Yy9GYlRrL0NvbnRhaW5lci5jYwotaW5kZXggY2VhNzYxYjMuLjBlMDUwYTBiIDEwMDY0NAotLS0t IGEvc3JjL0ZiVGsvQ29udGFpbmVyLmNjCi0rKysgYi9zcmMvRmJUay9Db250YWluZXIuY2MKLUBA IC0zNjUsNiArMzY1LDkgQEAgdm9pZCBDb250YWluZXI6OnJlcG9zaXRpb25JdGVtcygpIHsKLSAg ICAgY29uc3QgSXRlbUxpc3Q6Oml0ZXJhdG9yIGl0X2VuZCA9IGVuZCgpOwotCi0gICAgIGludCBy b3VuZGluZ19lcnJvciA9IDA7Ci0rICAgIGlmIChhbGlnbiA9PSBSRUxBVElWRSB8fCB0b3RhbF93 aWR0aCA9PSBtX21heF90b3RhbF9zaXplKSB7Ci0rICAgICAgICByb3VuZGluZ19lcnJvciA9IHRv dGFsX3dpZHRoIC0gKChtYXhfd2lkdGhfcGVyX2NsaWVudCArIGJvcmRlclcpKiBudW1faXRlbXMg LSBib3JkZXJXKTsKLSsgICAgfQotCi0gICAgIGludCBuZXh0X3ggPSAtYm9yZGVyVzsgLy8gemVy byBzbyB0aGUgYm9yZGVyIG9mIHRoZSBmaXJzdCBzaG93cwotICAgICBpbnQgZXh0cmEgPSAwOwot CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4X2ltcHJvdmUucGF0Y2gg Yi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4X2ltcHJvdmUucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDEzYTFhZWJhNjIxYy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhfaW1wcm92ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDIwNSArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3JjL0V3bWguY2MgYi9zcmMvRXdtaC5jYwotaW5k ZXggZTEyYTc5MjMuLmRiMWRkZDQ1IDEwMDY0NAotLS0tIGEvc3JjL0V3bWguY2MKLSsrKyBiL3Ny Yy9Fd21oLmNjCi1AQCAtMTA5NiwxNSArMTA5NiwxOSBAQCBib29sIEV3bWg6OmNoZWNrQ2xpZW50 TWVzc2FnZShjb25zdCBYQ2xpZW50TWVzc2FnZUV2ZW50ICZjZSwKLSAgICAgICAgIC8vIGNlLmRh dGEubFswXSA9IHRoZSBhY3Rpb24gKHJlbW92ZSwgYWRkIG9yIHRvZ2dsZSkKLSAgICAgICAgIC8v IGNlLmRhdGEubFsxXSA9IHRoZSBmaXJzdCBwcm9wZXJ0eSB0byBhbHRlcgotICAgICAgICAgLy8g Y2UuZGF0YS5sWzJdID0gc2Vjb25kIHByb3BlcnR5IHRvIGFsdGVyIChjYW4gYmUgemVybykKLS0g ICAgICAgIGlmIChjZS5kYXRhLmxbMF0gPT0gU1RBVEVfUkVNT1ZFKSB7Ci0tICAgICAgICAgICAg c2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0sIGZhbHNlLCAqd2luY2xpZW50KTsKLS0gICAgICAg ICAgICBzZXRTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSwgZmFsc2UsICp3aW5jbGllbnQpOwotLSAg ICAgICAgfSBlbHNlIGlmIChjZS5kYXRhLmxbMF0gPT0gU1RBVEVfQUREKSB7Ci0tICAgICAgICAg ICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0sIHRydWUsICp3aW5jbGllbnQpOwotLSAgICAg ICAgICAgIHNldFN0YXRlKHdpbiwgY2UuZGF0YS5sWzJdLCB0cnVlLCAqd2luY2xpZW50KTsKLS0g ICAgICAgIH0gZWxzZSBpZiAoY2UuZGF0YS5sWzBdID09IFNUQVRFX1RPR0dMRSkgewotLSAgICAg ICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0YS5sWzFdKTsKLS0gICAgICAgICAgICB0b2dn bGVTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSk7Ci0rICAgICAgICBib29sIGFkZHJlbW92ZSA9IGZh bHNlOyAvLyBhZGQgdHJ1ZSwgcmVtb3ZlIGZhbHNlCi0rCi0rICAgICAgICBzd2l0Y2ggKGNlLmRh dGEubFswXSkgewotKyAgICAgICAgICBjYXNlIFNUQVRFX1RPR0dMRToKLSsgICAgICAgICAgICAg IHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0YS5sWzFdKTsKLSsgICAgICAgICAgICAgIHRvZ2dsZVN0 YXRlKHdpbiwgY2UuZGF0YS5sWzJdKTsKLSsgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAg ICBjYXNlIFNUQVRFX0FERDoKLSsgICAgICAgICAgICAgIGFkZHJlbW92ZSA9IHRydWU7Ci0rICAg ICAgICAgIGNhc2UgU1RBVEVfUkVNT1ZFOgotKyAgICAgICAgICAgICAgc2V0U3RhdGUod2luLCBj ZS5kYXRhLmxbMV0sIGFkZHJlbW92ZSwgKndpbmNsaWVudCk7Ci0rICAgICAgICAgICAgICBzZXRT dGF0ZSh3aW4sIGNlLmRhdGEubFsyXSwgYWRkcmVtb3ZlLCAqd2luY2xpZW50KTsKLSsgICAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICAgfQotICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0g ZWxzZSBpZiAoY2UubWVzc2FnZV90eXBlID09IG1fbmV0LT5udW1iZXJfb2ZfZGVza3RvcHMpIHsK LWRpZmYgLS1naXQgYS9zcmMvRmJNZW51UGFyc2VyLmNjIGIvc3JjL0ZiTWVudVBhcnNlci5jYwot aW5kZXggNzE2Y2VkMjkuLjVhNTZlNmY1IDEwMDY0NAotLS0tIGEvc3JjL0ZiTWVudVBhcnNlci5j YwotKysrIGIvc3JjL0ZiTWVudVBhcnNlci5jYwotQEAgLTMzLDkgKzMzLDkgQEAgYm9vbCBGYk1l bnVQYXJzZXI6Om9wZW4oY29uc3Qgc3RkOjpzdHJpbmcgJmZpbGVuYW1lKSB7Ci0gfQotIAotIEZi VGs6OlBhcnNlciAmRmJNZW51UGFyc2VyOjpvcGVyYXRvciA+PiAoRmJUazo6UGFyc2VyOjpJdGVt ICZvdXQpIHsKLS0gICAgaWYgKGVvZigpKSB7ICAgICAgICAKLSsgICAgaWYgKGVvZigpKSB7Ci0g ICAgICAgICBvdXQgPSBGYlRrOjpQYXJzZXI6OnNfZW1wdHlfaXRlbTsKLS0gICAgICAgIHJldHVy biAqdGhpczsgCi0rICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgIH0KLSAKLSAgICAgaWYgKG1f Y3Vycl9saW5lLmVtcHR5KCkpCi1AQCAtNjksMjAgKzY5LDI2IEBAIEZiVGs6OlBhcnNlciAmRmJN ZW51UGFyc2VyOjpvcGVyYXRvciA+PiAoRmJUazo6UGFyc2VyOjpJdGVtICZvdXQpIHsKLSAgICAg ICAgIHJldHVybiAoKnRoaXMpPj5vdXQ7Ci0gICAgICAgICBicmVhazsKLSAgICAgfQotLSAgICAK LSsKLSAgICAgc3RkOjpzdHJpbmcga2V5OwotICAgICBpbnQgZXJyID0gRmJUazo6U3RyaW5nVXRp bDo6Ci0gICAgICAgICBnZXRTdHJpbmdCZXR3ZWVuKGtleSwgbV9jdXJyX2xpbmUuY19zdHIoKSAr IG1fY3Vycl9wb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LCBzZWNvbmQpOwot LSAgICBpZiAoZXJyIDw9IDApIHsgICAgICAgIAotLSAgICAgICAgaWYgKG1fY3Vycl90b2tlbiA9 PSBUWVBFKQotKyAgICBpZiAoZXJyIDw9IDApIHsKLSsgICAgICAgIHN3aXRjaCAobV9jdXJyX3Rv a2VuKSB7Ci0rICAgICAgICAgIGNhc2UgVFlQRToKLSAgICAgICAgICAgICBtX2N1cnJfdG9rZW4g PSBOQU1FOwotLSAgICAgICAgZWxzZSBpZiAobV9jdXJyX3Rva2VuID09IE5BTUUpCi0rICAgICAg ICAgICAgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgTkFNRToKLSAgICAgICAgICAgICBtX2N1cnJf dG9rZW4gPSBBUkdVTUVOVDsKLS0gICAgICAgIGVsc2UgaWYgKG1fY3Vycl90b2tlbiA9PSBBUkdV TUVOVCkKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgY2FzZSBBUkdVTUVOVDoKLSAg ICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBJQ09OOwotLSAgICAgICAgZWxzZSBpZiAobV9jdXJy X3Rva2VuID09IElDT04pCi0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSUNP TjoKLSAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBET05FOwotKyAgICAgICAgICAgIGJyZWFr OwotKyAgICAgICAgfQotIAotICAgICAgICAgb3V0ID0gRmJUazo6UGFyc2VyOjpzX2VtcHR5X2l0 ZW07Ci0gICAgICAgICByZXR1cm4gKnRoaXM7Ci1kaWZmIC0tZ2l0IGEvc3JjL1JlbWVtYmVyLmNj IGIvc3JjL1JlbWVtYmVyLmNjCi1pbmRleCA0OWU2MTA2Mi4uNGYwYmEzZGIgMTAwNjQ0Ci0tLS0g YS9zcmMvUmVtZW1iZXIuY2MKLSsrKyBiL3NyYy9SZW1lbWJlci5jYwotQEAgLTgwMiwzOSArODAy LDQxIEBAIHZvaWQgUmVtZW1iZXI6OnJlbG9hZCgpIHsKLSAgICAgICAgICAgICBpbnQgcG9zID0g Z2V0U3RyaW5nQmV0d2VlbihrZXksIGxpbmUuY19zdHIoKSwgJ1snLCAnXScpOwotICAgICAgICAg ICAgIHN0cmluZyBsY19rZXkgPSB0b0xvd2VyKGtleSk7Ci0gCi0tICAgICAgICAgICAgaWYgKHBv cyA+IDAgJiYgKGxjX2tleSA9PSAiYXBwIiB8fCBsY19rZXkgPT0gInRyYW5zaWVudCIpKSB7Ci0t ICAgICAgICAgICAgICAgIENsaWVudFBhdHRlcm4gKnBhdCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxp bmUuY19zdHIoKSArIHBvcyk7Ci0tICAgICAgICAgICAgICAgIGlmICghaW5fZ3JvdXApIHsKLS0g ICAgICAgICAgICAgICAgICAgIGlmICgoZXJyID0gcGF0LT5lcnJvcigpKSA9PSAwKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCB0cmFuc2llbnQgPSAobGNfa2V5ID09ICJ0cmFuc2ll bnQiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbiAqYXBwID0gZmluZE1h dGNoaW5nUGF0dGVybnMocGF0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2xkX3BhdHMsIHRyYW5zaWVudCwgZmFsc2UpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChhcHApIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLT5y ZXNldCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXVzZWRfYXBwcy5pbnNlcnQo YXBwKTsKLSsgICAgICAgICAgICBpZiAocG9zID4gMCkgewotKyAgICAgICAgICAgICAgICBpZiAo bGNfa2V5ID09ICJhcHAiIHx8IGxjX2tleSA9PSAidHJhbnNpZW50IikgewotKyAgICAgICAgICAg ICAgICAgICAgQ2xpZW50UGF0dGVybiAqcGF0ID0gbmV3IENsaWVudFBhdHRlcm4obGluZS5jX3N0 cigpICsgcG9zKTsKLSsgICAgICAgICAgICAgICAgICAgIGlmICghaW5fZ3JvdXApIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICBpZiAoKGVyciA9IHBhdC0+ZXJyb3IoKSkgPT0gMCkgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHRyYW5zaWVudCA9IChsY19rZXkgPT0gInRy YW5zaWVudCIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbiAqYXBw ID0gZmluZE1hdGNoaW5nUGF0dGVybnMocGF0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9wYXRzLCB0cmFuc2llbnQsIGZhbHNlKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcCkgewotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXBwLT5yZXNldCgpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV1c2VkX2FwcHMuaW5zZXJ0KGFwcCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHAgPSBuZXcg QXBwbGljYXRpb24odHJhbnNpZW50LCBmYWxzZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXRzLT5wdXNoX2JhY2so bWFrZV9wYWlyKHBhdCwgYXBwKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdyAr PSBwYXJzZUFwcChhcHBzX2ZpbGUsICphcHApOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcCA9IG5ldyBBcHBsaWNhdGlv bih0cmFuc2llbnQsIGZhbHNlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Vycjw8 IkVycm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLCBjb2x1bW4gIjw8KGVy citwb3MpPDwiLiI8PGVuZGw7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBw YXQ7IC8vIHNpbmNlIGl0IGRpZG4ndCB3b3JrCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcGF0cy0+cHVzaF9iYWNrKG1ha2VfcGFpcihw YXQsIGFwcCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHJvdyArPSBwYXJzZUFwcChhcHBz X2ZpbGUsICphcHApOwotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBjZXJyPDwiRXJyb3IgcmVhZGluZyBhcHBzIGZpbGUgYXQgbGluZSAiPDxy b3c8PCIsIGNvbHVtbiAiPDwoZXJyK3Bvcyk8PCIuIjw8ZW5kbDsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBkZWxldGUgcGF0OyAvLyBzaW5jZSBpdCBkaWRuJ3Qgd29yawotKyAgICAgICAgICAg ICAgICAgICAgICAgIGdyb3VwZWRfcGF0cy5wdXNoX2JhY2socGF0KTsKLSAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg IGdyb3VwZWRfcGF0cy5wdXNoX2JhY2socGF0KTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0gZWxzZSBpZiAocG9zID4gMCAmJiBsY19rZXkgPT0gInN0YXJ0dXAiICYmIGZiLmlz U3RhcnR1cCgpKSB7Ci0tICAgICAgICAgICAgICAgIGlmICghaGFuZGxlU3RhcnR1cEl0ZW0obGlu ZSwgcG9zKSkgewotLSAgICAgICAgICAgICAgICAgICAgY2Vycjw8IkVycm9yIHJlYWRpbmcgYXBw cyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLiI8PGVuZGw7Ci0rICAgICAgICAgICAgICAgIH0gZWxz ZSBpZiAobGNfa2V5ID09ICJzdGFydHVwIiAmJiBmYi5pc1N0YXJ0dXAoKSkgewotKyAgICAgICAg ICAgICAgICAgICAgaWYgKCFoYW5kbGVTdGFydHVwSXRlbShsaW5lLCBwb3MpKSB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgY2Vycjw8IkVycm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUg Ijw8cm93PDwiLiI8PGVuZGw7Ci0rICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg ICAgICAgICAvLyBzYXZlIHRoZSBpdGVtIGV2ZW4gaWYgaXQgd2FzIGJhZCAoYXJlbid0IHdlIG5p Y2UpCi0rICAgICAgICAgICAgICAgICAgICBtX3N0YXJ0dXBzLnB1c2hfYmFjayhsaW5lLnN1YnN0 cihwb3MpKTsKLSsgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsY19rZXkgPT0gImdyb3VwIikg ewotKyAgICAgICAgICAgICAgICAgICAgaW5fZ3JvdXAgPSB0cnVlOwotKyAgICAgICAgICAgICAg ICAgICAgaWYgKGxpbmUuZmluZCgnKCcpICE9IHN0cmluZzo6bnBvcykKLSsgICAgICAgICAgICAg ICAgICAgICAgICBwYXQgPSBuZXcgQ2xpZW50UGF0dGVybihsaW5lLmNfc3RyKCkgKyBwb3MpOwot ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIGl0ZW0gZXZl biBpZiBpdCB3YXMgYmFkIChhcmVuJ3Qgd2UgbmljZSkKLS0gICAgICAgICAgICAgICAgbV9zdGFy dHVwcy5wdXNoX2JhY2sobGluZS5zdWJzdHIocG9zKSk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlm IChwb3MgPiAwICYmIGxjX2tleSA9PSAiZ3JvdXAiKSB7Ci0tICAgICAgICAgICAgICAgIGluX2dy b3VwID0gdHJ1ZTsKLS0gICAgICAgICAgICAgICAgaWYgKGxpbmUuZmluZCgnKCcpICE9IHN0cmlu Zzo6bnBvcykKLS0gICAgICAgICAgICAgICAgICAgIHBhdCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxp bmUuY19zdHIoKSArIHBvcyk7Ci0gICAgICAgICAgICAgfSBlbHNlIGlmIChpbl9ncm91cCkgewot ICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgYXNzdW1lIHRoYXQgaXQgaXMgdGhlIHN0YXJ0 IG9mIHRoZSBhdHRyaWJ1dGVzCi0gICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uICphcHAgPSAw OwotZGlmZiAtLWdpdCBhL3NyYy9TeXN0ZW1UcmF5LmNjIGIvc3JjL1N5c3RlbVRyYXkuY2MKLWlu ZGV4IDhjNDI4NzdhLi4xZmMyYjBhOCAxMDA2NDQKLS0tLSBhL3NyYy9TeXN0ZW1UcmF5LmNjCi0r KysgYi9zcmMvU3lzdGVtVHJheS5jYwotQEAgLTU1MCwxMCArNTUwLDEyIEBAIHZvaWQgU3lzdGVt VHJheTo6cmVhcnJhbmdlQ2xpZW50cygpIHsKLSAgICAgQ2xpZW50TGlzdDo6aXRlcmF0b3IgY2xp ZW50X2l0ID0gbV9jbGllbnRzLmJlZ2luKCk7Ci0gICAgIENsaWVudExpc3Q6Oml0ZXJhdG9yIGNs aWVudF9pdF9lbmQgPSBtX2NsaWVudHMuZW5kKCk7Ci0gICAgIGludCBuZXh0X3ggPSBidzsKLSsg ICAgaW50IHgsIHk7Ci0gICAgIGZvciAoOyBjbGllbnRfaXQgIT0gY2xpZW50X2l0X2VuZDsgKytj bGllbnRfaXQpIHsKLSAgICAgICAgIGlmICghKCpjbGllbnRfaXQpLT5pc1Zpc2libGUoKSkKLSAg ICAgICAgICAgICBjb250aW51ZTsKLS0gICAgICAgIGludCB4ID0gbmV4dF94LCB5ID0gYnc7Ci0r ICAgICAgICB4ID0gbmV4dF94OwotKyAgICAgICAgeSA9IGJ3OwotICAgICAgICAgbmV4dF94ICs9 IGhfcm90MCtidzsKLSAgICAgICAgIHRyYW5zbGF0ZUNvb3JkcyhvcmllbnRhdGlvbigpLCB4LCB5 LCB3X3JvdDAsIGhfcm90MCk7Ci0gICAgICAgICB0cmFuc2xhdGVQb3NpdGlvbihvcmllbnRhdGlv bigpLCB4LCB5LCBoX3JvdDAsIGhfcm90MCwgMCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL1dpbmRvdy5j YyBiL3NyYy9XaW5kb3cuY2MKLWluZGV4IDM0MmU0ODg1Li43MTNkMTUxMCAxMDA2NDQKLS0tLSBh L3NyYy9XaW5kb3cuY2MKLSsrKyBiL3NyYy9XaW5kb3cuY2MKLUBAIC0zMjY3LDE0ICszMjY3LDE4 IEBAIHZvaWQgRmx1eGJveFdpbmRvdzo6ZG9TbmFwcGluZyhpbnQgJm9yaWdfbGVmdCwgaW50ICZv cmlnX3RvcCwgYm9vbCByZXNpemUpIHsKLSBGbHV4Ym94V2luZG93OjpSZWZlcmVuY2VDb3JuZXIg Rmx1eGJveFdpbmRvdzo6Z2V0UmVzaXplRGlyZWN0aW9uKGludCB4LCBpbnQgeSwKLSAgICAgICAg IFJlc2l6ZU1vZGVsIG1vZGVsLCBpbnQgY29ybmVyX3NpemVfcHgsIGludCBjb3JuZXJfc2l6ZV9w YykgY29uc3QKLSB7Ci0tICAgIGlmIChtb2RlbCA9PSBUT1BMRUZUUkVTSVpFKSAgICAgcmV0dXJu IExFRlRUT1A7Ci0tICAgIGlmIChtb2RlbCA9PSBUT1BSRVNJWkUpICAgICAgICAgcmV0dXJuIFRP UDsKLS0gICAgaWYgKG1vZGVsID09IFRPUFJJR0hUUkVTSVpFKSAgICByZXR1cm4gUklHSFRUT1A7 Ci0tICAgIGlmIChtb2RlbCA9PSBMRUZUUkVTSVpFKSAgICAgICAgcmV0dXJuIExFRlQ7Ci0tICAg IGlmIChtb2RlbCA9PSBSSUdIVFJFU0laRSkgICAgICAgcmV0dXJuIFJJR0hUOwotLSAgICBpZiAo bW9kZWwgPT0gQk9UVE9NTEVGVFJFU0laRSkgIHJldHVybiBMRUZUQk9UVE9NOwotLSAgICBpZiAo bW9kZWwgPT0gQk9UVE9NUkVTSVpFKSAgICAgIHJldHVybiBCT1RUT007Ci0tICAgIGlmIChtb2Rl bCA9PSBDRU5URVJSRVNJWkUpICAgICAgcmV0dXJuIENFTlRFUjsKLSsgICAgc3dpdGNoIChtb2Rl bCkgewotKyAgICBjYXNlIFRPUExFRlRSRVNJWkU6ICAgICByZXR1cm4gTEVGVFRPUDsKLSsgICAg Y2FzZSBUT1BSRVNJWkU6ICAgICAgICAgcmV0dXJuIFRPUDsKLSsgICAgY2FzZSBUT1BSSUdIVFJF U0laRTogICAgcmV0dXJuIFJJR0hUVE9QOwotKyAgICBjYXNlIExFRlRSRVNJWkU6ICAgICAgICBy ZXR1cm4gTEVGVDsKLSsgICAgY2FzZSBSSUdIVFJFU0laRTogICAgICAgcmV0dXJuIFJJR0hUOwot KyAgICBjYXNlIEJPVFRPTUxFRlRSRVNJWkU6ICByZXR1cm4gTEVGVEJPVFRPTTsKLSsgICAgY2Fz ZSBCT1RUT01SRVNJWkU6ICAgICAgcmV0dXJuIEJPVFRPTTsKLSsgICAgY2FzZSBDRU5URVJSRVNJ WkU6ICAgICAgcmV0dXJuIENFTlRFUjsKLSsgICAgZGVmYXVsdDoKLSsgICAgYnJlYWs7Ci0rICAg IH0KLSAKLSAgICAgaWYgKG1vZGVsID09IEVER0VPUkNPUk5FUlJFU0laRSkKLSAgICAgewpkaWZm IC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvZmx1eF9vdmVyc2l6ZS5wYXRjaCBiL3Ny Y3BrZ3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhfb3ZlcnNpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDk4ZDcwZDNiMDM3ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL2ZsdXhfb3ZlcnNpemUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwy NCArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3JjL1dpbmRvdy5jYyBiL3NyYy9XaW5kb3cuY2MKLWlu ZGV4IDM0MmU0ODg1Li4wMmQxMGU5MCAxMDA2NDQKLS0tLSBhL3NyYy9XaW5kb3cuY2MKLSsrKyBi L3NyYy9XaW5kb3cuY2MKLUBAIC01MzIsMTkgKzUzMiwxNCBAQCB2b2lkIEZsdXhib3hXaW5kb3c6 OmluaXQoKSB7Ci0gICAgIGlmICghbV9zdGF0ZS5mdWxsc2NyZWVuKSB7Ci0gICAgICAgICB1bnNp Z25lZCBpbnQgbmV3X3dpZHRoID0gMCwgbmV3X2hlaWdodCA9IDA7Ci0gICAgICAgICBpZiAobV9j bGllbnQtPndpZHRoKCkgPj0gc2NyZWVuKCkud2lkdGgoKSkgewotLSAgICAgICAgICAgIG1fc3Rh dGUubWF4aW1pemVkIHw9IFdpbmRvd1N0YXRlOjpNQVhfSE9SWjsKLSAgICAgICAgICAgICBuZXdf d2lkdGggPSAyICogc2NyZWVuKCkud2lkdGgoKSAvIDM7Ci0gICAgICAgICB9Ci0gICAgICAgICBp ZiAobV9jbGllbnQtPmhlaWdodCgpID49IHNjcmVlbigpLmhlaWdodCgpKSB7Ci0tICAgICAgICAg ICAgbV9zdGF0ZS5tYXhpbWl6ZWQgfD0gV2luZG93U3RhdGU6Ok1BWF9WRVJUOwotICAgICAgICAg ICAgIG5ld19oZWlnaHQgPSAyICogc2NyZWVuKCkuaGVpZ2h0KCkgLyAzOwotICAgICAgICAgfQot ICAgICAgICAgaWYgKG5ld193aWR0aCB8fCBuZXdfaGVpZ2h0KSB7Ci0tICAgICAgICAgICAgY29u c3QgaW50IG1heGltaXplZCA9IG1fc3RhdGUubWF4aW1pemVkOwotLSAgICAgICAgICAgIG1fc3Rh dGUubWF4aW1pemVkID0gV2luZG93U3RhdGU6Ok1BWF9OT05FOwotICAgICAgICAgICAgIHJlc2l6 ZShuZXdfd2lkdGggPyBuZXdfd2lkdGggOiB3aWR0aCgpLCBuZXdfaGVpZ2h0ID8gbmV3X2hlaWdo dCA6IGhlaWdodCgpKTsKLSAgICAgICAgICAgICBtX3BsYWNlZCA9IGZhbHNlOwotLSAgICAgICAg ICAgIG1fc3RhdGUubWF4aW1pemVkID0gbWF4aW1pemVkOwotICAgICAgICAgfQotICAgICB9Ci0g CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mb2N1c19jbG9zZV9tZW51LnBh dGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvZm9jdXNfY2xvc2VfbWVudS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE4MzBjZjUzNDYwLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvZm9jdXNfY2xvc2VfbWVudS5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDE3ICswLDAgQEAKLWRpZmYgLS1naXQgYS9zcmMvRm9jdXNDb250cm9sLmNj IGIvc3JjL0ZvY3VzQ29udHJvbC5jYwotaW5kZXggNTRjM2Q0NmMuLjdlNDlmZjUxIDEwMDY0NAot LS0tIGEvc3JjL0ZvY3VzQ29udHJvbC5jYwotKysrIGIvc3JjL0ZvY3VzQ29udHJvbC5jYwotQEAg LTI0NywxMSArMjQ3LDcgQEAgdm9pZCBGb2N1c0NvbnRyb2w6OnN0b3BDeWNsaW5nRm9jdXMoKSB7 Ci0gCi0gICAgIC8vIHB1dCBjdXJyZW50bHkgZm9jdXNlZCB3aW5kb3cgdG8gdG9wCi0gICAgIGlm IChzX2ZvY3VzZWRfd2luZG93KSB7Ci0tICAgICAgICAvLyByZS1mb2N1cyBsYXN0IHdpbmRvdyB0 byBnaXZlIHRoZSBjbGllbnQgYSBjaGFuY2UgdG8gcmVkaXN0cmlidXRlIHRoZQotLSAgICAgICAg Ly8gZm9jdXMgaW50ZXJuYWxseSAoY2xpZW50LXNpZGUgb25seSBtb2RhbGl0eSkKLS0gICAgICAg IHNfZm9jdXNlZF93aW5kb3ctPmZvY3VzKCk7Ci0tICAgICAgICBpZiAoc19mb2N1c2VkX3dpbmRv dykKLS0gICAgICAgICAgICBzZXRTY3JlZW5Gb2N1c2VkV2luZG93KCpzX2ZvY3VzZWRfd2luZG93 KTsKLSsgICAgICAgIHNldFNjcmVlbkZvY3VzZWRXaW5kb3coKnNfZm9jdXNlZF93aW5kb3cpOwot ICAgICAgICAgaWYgKHNfZm9jdXNlZF9mYndpbmRvdykKLSAgICAgICAgICAgICBzX2ZvY3VzZWRf ZmJ3aW5kb3ctPnJhaXNlKCk7Ci0gICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvc2xpdF9yYWlzZS5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3Ns aXRfcmFpc2UucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzYmMwMWM3YWM4 NS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2Uu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3JjL1Ns aXQuY2MgYi9zcmMvU2xpdC5jYwotaW5kZXggOWJhZWNmMjEuLjYzZWQ4MjY5IDEwMDY0NAotLS0t IGEvc3JjL1NsaXQuY2MKLSsrKyBiL3NyYy9TbGl0LmNjCi1AQCAtOTU4LDggKzk1OCw4IEBAIHZv aWQgU2xpdDo6YnV0dG9uUHJlc3NFdmVudChYQnV0dG9uRXZlbnQgJmJlKSB7Ci0gICAgICAgICBy ZXR1cm47Ci0gICAgIH0KLQotLSAgICBpZiAoYmUuYnV0dG9uID09IDEpCi0tICAgICAgICBmcmFt ZS53aW5kb3cucmFpc2UoKTsKLSsgICAgLy9pZiAoYmUuYnV0dG9uID09IDEpCi0rICAgIC8vICAg IGZyYW1lLndpbmRvdy5yYWlzZSgpOwotCi0gICAgIGlmIChiZS5idXR0b24gIT0gQnV0dG9uMykg ewotICAgICAgICAgWEFsbG93RXZlbnRzKGRweSwgUmVwbGF5UG9pbnRlciwgQ3VycmVudFRpbWUp OwotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90b29sYmFyX3JlZG8ucGF0 Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90b29sYmFyX3JlZG8ucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhOTU0ODY1ODNjZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvZmx1eGJveC9wYXRjaGVzL3Rvb2xiYXJfcmVkby5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDIyOCArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3JjL1Rvb2xiYXIuY2MgYi9zcmMvVG9vbGJh ci5jYwotaW5kZXggYWE5YmMxMjEuLmVlOGI4YmZjIDEwMDY0NAotLS0tIGEvc3JjL1Rvb2xiYXIu Y2MKLSsrKyBiL3NyYy9Ub29sYmFyLmNjCi1AQCAtNzQsNyArNzQsNyBAQCB1c2luZyBGYlRrOjpT VExVdGlsOjpmb3JBbGw7Ci0gCi0gbmFtZXNwYWNlIHsKLSAKLS1jb25zdCBzdHJ1Y3QgeyAKLStj b25zdCBzdHJ1Y3QgewotICAgICBUb29sYmFyOjpQbGFjZW1lbnQgcGxhY2VtZW50OwotICAgICBj b25zdCBjaGFyKiBzdHI7Ci0gICAgIEZiVGs6Ok9yaWVudGF0aW9uIG9yaWVudDsKLUBAIC0zNjIs MTMgKzM2MiwxNiBAQCB2b2lkIFRvb2xiYXI6Omxvd2VyKCkgewotIH0KLSAKLSB2b2lkIFRvb2xi YXI6OnNjcmVlbkNoYW5nZWQoQlNjcmVlbiAmc2NyZWVuKSB7Ci0tICAgIHJlY29uZmlndXJlKCk7 Ci0rICAgIC8vcmVjb25maWd1cmUoKTsKLSB9Ci0gCi0gdm9pZCBUb29sYmFyOjpyZWxheW91dCgp IHsKLS0gICAgZm9yQWxsKG1faXRlbV9saXN0LCBzdGQ6Om1lbV9mdW4oJlRvb2xiYXJJdGVtOjp1 cGRhdGVTaXppbmcpKTsKLS0gICAgcmVhcnJhbmdlSXRlbXMoKTsKLS0gICAgZm9yQWxsKG1faXRl bV9saXN0LCBzdGQ6OmJpbmQybmQoc3RkOjptZW1fZnVuKCZUb29sYmFySXRlbTo6cmVuZGVyVGhl bWUpLCBhbHBoYSgpKSk7Ci0rICAgIC8vZm9yIChhdXRvIGl0IDogbV9pdGVtX2xpc3QpICAgICgq aXRlbV9pdCktPnVwZGF0ZVNpemluZygpOwotKyAgICAvL3JlYXJyYW5nZUl0ZW1zKCk7Ci0rICAg IC8vZm9yIChhdXRvIGl0IDogbV9pdGVtX2xpc3QpICAgICgqaXRlbV9pdCktPnJlbmRlclRoZW1l KGFscGhhKCkpOwotKyAgICAvL2ZvckFsbChtX2l0ZW1fbGlzdCwgc3RkOjptZW1fZnVuKCZUb29s YmFySXRlbTo6dXBkYXRlU2l6aW5nKSk7Ci0rICAgIC8vcmVhcnJhbmdlSXRlbXMoKTsKLSsgICAg Ly9mb3JBbGwobV9pdGVtX2xpc3QsIHN0ZDo6YmluZDJuZChzdGQ6Om1lbV9mdW4oJlRvb2xiYXJJ dGVtOjpyZW5kZXJUaGVtZSksIGFscGhhKCkpKTsKLSB9Ci0gCi0gdm9pZCBUb29sYmFyOjpyZWNv bmZpZ3VyZSgpIHsKLUBAIC01NTcsMTIgKzU2MCwxNiBAQCB2b2lkIFRvb2xiYXI6OmJ1dHRvblBy ZXNzRXZlbnQoWEJ1dHRvbkV2ZW50ICZiZSkgewotIH0KLSAKLSB2b2lkIFRvb2xiYXI6OnVwZGF0 ZUNyb3NzaW5nU3RhdGUoKSB7Ci0tICAgIFdpbmRvdyB3ciwgd2M7Ci0tICAgIGludCByeCwgcnks IHgsIHk7Ci0rICAgIC8vV2luZG93IHdyLCB3YzsKLSsgICAgLy9pbnQgcngsIHJ5LCB4LCB5Owot KyAgICAvL3Vuc2lnbmVkIGludCBtYXNrOwotKyAgICBXaW5kb3cgd3JjOwotKyAgICBpbnQgcnh5 LCB4LCB5OwotICAgICB1bnNpZ25lZCBpbnQgbWFzazsKLSAgICAgY29uc3QgaW50IGJ3ID0gLXRo ZW1lKCktPmJvcmRlcigpLndpZHRoKCk7Ci0gICAgIGJvb2wgaG92ZXJlZCA9IGZhbHNlOwotLSAg ICBpZiAoWFF1ZXJ5UG9pbnRlcihGbHV4Ym94OjppbnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbmRv dygpLndpbmRvdygpLCAmd3IsICZ3YywgJnJ4LCAmcnksICZ4LCAmeSwgJm1hc2spKQotKyAgICAv L2lmIChYUXVlcnlQb2ludGVyKEZsdXhib3g6Omluc3RhbmNlKCktPmRpc3BsYXkoKSwgd2luZG93 KCkud2luZG93KCksICZ3ciwgJndjLCAmcngsICZyeSwgJngsICZ5LCAmbWFzaykpCi0rICAgIGlm IChYUXVlcnlQb2ludGVyKEZsdXhib3g6Omluc3RhbmNlKCktPmRpc3BsYXkoKSwgd2luZG93KCku d2luZG93KCksICZ3cmMsICZ3cmMsICZyeHksICZyeHksICZ4LCAmeSwgJm1hc2spKQotICAgICAg ICAgaG92ZXJlZCA9IHggPj0gYncgJiYgeSA+PSBidyAmJiB4IDwgaW50KHdpZHRoKCkpICYmIHkg PCBpbnQoaGVpZ2h0KCkpOwotICAgICBpZiAoaG92ZXJlZCkgewotICAgICAgICAgaWYgKG1fcmNf YXV0b19yYWlzZSkKLUBAIC05MTAsMjUgKzkxNywyNiBAQCB2b2lkIFRvb2xiYXI6OnJlYXJyYW5n ZUl0ZW1zKCkgewotICAgICAvLyBsb2NrIHRoaXMKLSAgICAgbV9yZXNpemVfbG9jayA9IHRydWU7 Ci0gICAgIC8vIGNhbGN1bGF0ZSBzaXplIGZvciBmaXhlZCBpdGVtcwotLSAgICBJdGVtTGlzdDo6 aXRlcmF0b3IgaXRlbV9pdCA9IG1faXRlbV9saXN0LmJlZ2luKCk7Ci0tICAgIEl0ZW1MaXN0Ojpp dGVyYXRvciBpdGVtX2l0X2VuZCA9IG1faXRlbV9saXN0LmVuZCgpOwotKyAgICAvL0l0ZW1MaXN0 OjppdGVyYXRvciBpdGVtX2l0ID0gbV9pdGVtX2xpc3QuYmVnaW4oKTsKLSsgICAgLy9JdGVtTGlz dDo6aXRlcmF0b3IgaXRlbV9pdF9lbmQgPSBtX2l0ZW1fbGlzdC5lbmQoKTsKLSAgICAgaW50IGJl dmVsX3dpZHRoID0gdGhlbWUoKS0+YmV2ZWxXaWR0aCgpOwotICAgICBpbnQgZml4ZWRfd2lkdGgg PSBiZXZlbF93aWR0aDsgLy8gY29tYmluZWQgc2l6ZSBvZiBhbGwgZml4ZWQgaXRlbXMKLSAgICAg aW50IHJlbGF0aXZlX3dpZHRoID0gMDsgLy8gY29tYmluZWQgKmRlc2lyZWQqIHNpemUgb2YgYWxs IHJlbGF0aXZlIGl0ZW1zCi0tICAgIGludCBzdHJldGNoX2l0ZW1zID0gMDsKLSAgICAgaW50IHJl bGF0aXZlX2l0ZW1zID0gMDsKLSAgICAgaW50IGxhc3RfYncgPSAwOyAvLyB3ZSBzaG93IHRoZSBs YXJnZXN0IGJvcmRlciBvZiBhZGpvaW5pbmcgaXRlbXMKLSAgICAgYm9vbCBmaXJzdCA9IHRydWU7 Ci0rICAgIGludCBsZWZ0b3Zlcl93aWR0aCA9IDA7Ci0gCi0gICAgIHVuc2lnbmVkIGludCB3aWR0 aCA9IHRoaXMtPndpZHRoKCksIGhlaWdodCA9IHRoaXMtPmhlaWdodCgpOwotICAgICB1bnNpZ25l ZCBpbnQgdG1wdywgdG1waDsKLSAgICAgRmJUazo6dHJhbnNsYXRlU2l6ZShvcmllbnQsIHdpZHRo LCBoZWlnaHQpOwotIAotLSAgICBmb3IgKDsgaXRlbV9pdCAhPSBpdGVtX2l0X2VuZDsgKytpdGVt X2l0KSB7Ci0tICAgICAgICBpZiAoISgqaXRlbV9pdCktPmFjdGl2ZSgpKQotKyAgICAvL2ZvciAo OyBpdGVtX2l0ICE9IGl0ZW1faXRfZW5kOyArK2l0ZW1faXQpIHsKLSsgICAgZm9yIChhdXRvIGl0 ZW1faXQgOiBtX2l0ZW1fbGlzdCkgewotKyAgICAgICAgaWYgKCEoKml0ZW1faXQpLmFjdGl2ZSgp KQotICAgICAgICAgICAgIGNvbnRpbnVlOwotIAotLSAgICAgICAgaW50IGJvcmRlclcgPSAoKml0 ZW1faXQpLT5ib3JkZXJXaWR0aCgpOwotKyAgICAgICAgaW50IGJvcmRlclcgPSAoKml0ZW1faXQp LmJvcmRlcldpZHRoKCk7Ci0gCi0gICAgICAgICBpZiAoYmV2ZWxfd2lkdGggPiAwKSB7Ci0gICAg ICAgICAgICAgLy8gdGhlIGJldmVsIGFuZCBib3JkZXIgYXJlIGZpeGVkIHdoZXRoZXIgcmVsYXRp dmUgb3Igbm90Ci1AQCAtOTQzLDM1ICs5NTEsMzUgQEAgdm9pZCBUb29sYmFyOjpyZWFycmFuZ2VJ dGVtcygpIHsKLSAKLSAgICAgICAgIGxhc3RfYncgPSBib3JkZXJXOwotIAotLSAgICAgICAgdG1w dyA9ICgqaXRlbV9pdCktPnByZWZlcnJlZFdpZHRoKCk7Ci0tICAgICAgICB0bXBoID0gKCppdGVt X2l0KS0+aGVpZ2h0KCk7Ci0rICAgICAgICB0bXB3ID0gKCppdGVtX2l0KS5wcmVmZXJyZWRXaWR0 aCgpOwotKyAgICAgICAgdG1waCA9ICgqaXRlbV9pdCkuaGVpZ2h0KCk7Ci0gICAgICAgICBGYlRr Ojp0cmFuc2xhdGVTaXplKG9yaWVudCwgdG1wdywgdG1waCk7Ci0gCi0tICAgICAgICBpZiAoKCpp dGVtX2l0KS0+dHlwZSgpID09IFRvb2xiYXJJdGVtOjpGSVhFRCkgewotLSAgICAgICAgICAgIGZp eGVkX3dpZHRoICs9IHRtcHc7Ci0tICAgICAgICB9IGVsc2UgaWYgKCgqaXRlbV9pdCktPnR5cGUo KSA9PSBUb29sYmFySXRlbTo6U1FVQVJFKSB7Ci0tICAgICAgICAgICAgZml4ZWRfd2lkdGggKz0g aGVpZ2h0OwotLSAgICAgICAgICAgIGlmIChiZXZlbF93aWR0aCkKLS0gICAgICAgICAgICAgICAg Zml4ZWRfd2lkdGggLT0gMiooYm9yZGVyVyArIGJldmVsX3dpZHRoKTsKLS0gICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICAgICAgKytyZWxhdGl2ZV9pdGVtczsKLS0gICAgICAgICAgICByZWxhdGl2 ZV93aWR0aCArPSB0bXB3OwotLSAgICAgICAgICAgIGlmICghdG1wdykKLS0gICAgICAgICAgICAg ICAgKytzdHJldGNoX2l0ZW1zOwotKyAgICAgICAgc3dpdGNoICggKCppdGVtX2l0KS50eXBlKCkg KSB7Ci0rICAgICAgICAgICAgY2FzZSBUb29sYmFySXRlbTo6RklYRUQ6Ci0rICAgICAgICAgICAg ICAgIGZpeGVkX3dpZHRoICs9IHRtcHc7Ci0rICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAg ICAgICAgIGNhc2UgVG9vbGJhckl0ZW06OlNRVUFSRToKLSsgICAgICAgICAgICAgICAgZml4ZWRf d2lkdGggKz0gaGVpZ2h0OwotKyAgICAgICAgICAgICAgICBpZiAoYmV2ZWxfd2lkdGgpCi0rICAg ICAgICAgICAgICAgICAgICBmaXhlZF93aWR0aCAtPSAyKihib3JkZXJXICsgYmV2ZWxfd2lkdGgp OwotKyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICBjYXNlIFRvb2xiYXJJdGVt OjpSRUxBVElWRToKLSsgICAgICAgICAgICAgICAgKytyZWxhdGl2ZV9pdGVtczsKLSsgICAgICAg ICAgICAgICAgcmVsYXRpdmVfd2lkdGggKz0gdG1wdzsKLSsgICAgICAgICAgICAgICAgYnJlYWs7 Ci0rICAgICAgICAgICAgZGVmYXVsdDoKLSsgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICB9Ci0gICAgIH0KLSAKLSAgICAgLy8gY2FsY3VsYXRlIHdoYXQncyBnb2luZyB0byBiZSBsZWZ0 IG92ZXIgdG8gdGhlIHJlbGF0aXZlIHNpemVkIGl0ZW1zCi0tICAgIGZsb2F0IHN0cmV0Y2hfZmFj dG9yID0gMS4wZjsKLSAgICAgaWYgKHJlbGF0aXZlX2l0ZW1zKSB7Ci0tICAgICAgICBpZiAocmVs YXRpdmVfd2lkdGggPD0gd2lkdGggLSBmaXhlZF93aWR0aCAmJiBzdHJldGNoX2l0ZW1zKSB7Ci0t ICAgICAgICAgICAgcmVsYXRpdmVfd2lkdGggPSBpbnQod2lkdGggLSBmaXhlZF93aWR0aCAtIHJl bGF0aXZlX3dpZHRoKS9zdHJldGNoX2l0ZW1zOwotLSAgICAgICAgfSBlbHNlIGlmIChyZWxhdGl2 ZV93aWR0aCkgewotLSAgICAgICAgICAgIHN0cmV0Y2hfZmFjdG9yID0gZmxvYXQod2lkdGggLSBm aXhlZF93aWR0aCkvcmVsYXRpdmVfd2lkdGg7Ci0tICAgICAgICAgICAgcmVsYXRpdmVfd2lkdGgg PSAwOwotLSAgICAgICAgfQotKyAgICAgICAgcmVsYXRpdmVfd2lkdGggPSAod2lkdGggLSBmaXhl ZF93aWR0aCkgLyByZWxhdGl2ZV9pdGVtczsKLSsgICAgICAgIGxlZnRvdmVyX3dpZHRoID0gd2lk dGggLSBmaXhlZF93aWR0aCAtIHJlbGF0aXZlX2l0ZW1zICogcmVsYXRpdmVfd2lkdGg7Ci0gICAg IH0KLSAKLSsKLSAgICAgLy8gbm93IG1vdmUgYW5kIHJlc2l6ZSB0aGUgaXRlbXMKLSAgICAgLy8g Ym9yZGVyV2lkdGggYWRkZWQgYmFjayBvbiBzdHJhaWdodCBhd2F5Ci0gICAgIGludCBuZXh0X3gg PSAtbV9pdGVtX2xpc3QuZnJvbnQoKS0+Ym9yZGVyV2lkdGgoKTsgLy8gbGlzdCBpc24ndCBlbXB0 eQotQEAgLTk3OSwxOSArOTg3LDIyIEBAIHZvaWQgVG9vbGJhcjo6cmVhcnJhbmdlSXRlbXMoKSB7 Ci0gICAgICAgICBuZXh0X3ggPSAwOwotIAotICAgICBsYXN0X2J3ID0gMDsKLS0gICAgZm9yIChp dGVtX2l0ID0gbV9pdGVtX2xpc3QuYmVnaW4oKTsgaXRlbV9pdCAhPSBpdGVtX2l0X2VuZDsgKytp dGVtX2l0KSB7Ci0tICAgICAgICBpbnQgYm9yZGVyVyA9ICgqaXRlbV9pdCktPmJvcmRlcldpZHRo KCk7Ci0tICAgICAgICBpZiAoISgqaXRlbV9pdCktPmFjdGl2ZSgpKSB7Ci0tICAgICAgICAgICAg KCppdGVtX2l0KS0+aGlkZSgpOwotKyAgICBpbnQgYm9yZGVyVywgb2Zmc2V0LCBzaXplX29mZnNl dCwgdG1weCwgdG1weTsKLSsKLSsgICAgLy9mb3IgKGl0ZW1faXQgPSBtX2l0ZW1fbGlzdC5iZWdp bigpOyBpdGVtX2l0ICE9IGl0ZW1faXRfZW5kOyArK2l0ZW1faXQpIHsKLSsgICAgZm9yIChhdXRv IGl0ZW1faXQgOiBtX2l0ZW1fbGlzdCkgewotKyAgICAgICAgYm9yZGVyVyA9ICgqaXRlbV9pdCku Ym9yZGVyV2lkdGgoKTsKLSsgICAgICAgIGlmICghKCppdGVtX2l0KS5hY3RpdmUoKSkgewotKyAg ICAgICAgICAgICgqaXRlbV9pdCkuaGlkZSgpOwotICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBp dCBzdGlsbCBnZXRzIHRvbGQgdGhlIHRvb2xiYXIgaGVpZ2h0Ci0gICAgICAgICAgICAgdG1wdyA9 IDE7IHRtcGggPSBoZWlnaHQgLSAyKihiZXZlbF93aWR0aCtib3JkZXJXKTsKLSAgICAgICAgICAg ICBpZiAodG1waCA+PSAoMTw8MzApKSB0bXBoID0gMTsKLSAgICAgICAgICAgICBGYlRrOjp0cmFu c2xhdGVTaXplKG9yaWVudCwgdG1wdywgdG1waCk7Ci0tICAgICAgICAgICAgKCppdGVtX2l0KS0+ cmVzaXplKHRtcHcsIHRtcGgpOyAgLy8gd2lkdGggb2YgMCBjaGFuZ2VzIHRvIDEgYW55d2F5Ci0r ICAgICAgICAgICAgKCppdGVtX2l0KS5yZXNpemUodG1wdywgdG1waCk7ICAvLyB3aWR0aCBvZiAw IGNoYW5nZXMgdG8gMSBhbnl3YXkKLSAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgIH0K LS0gICAgICAgIGludCBvZmZzZXQgPSBiZXZlbF93aWR0aDsKLS0gICAgICAgIGludCBzaXplX29m ZnNldCA9IDIqKGJvcmRlclcgKyBiZXZlbF93aWR0aCk7Ci0rICAgICAgICBvZmZzZXQgPSBiZXZl bF93aWR0aDsKLSsgICAgICAgIHNpemVfb2Zmc2V0ID0gMiooYm9yZGVyVyArIGJldmVsX3dpZHRo KTsKLSAKLSAgICAgICAgIGlmIChiZXZlbF93aWR0aCA9PSAwKSB7Ci0gICAgICAgICAgICAgb2Zm c2V0ID0gLWJvcmRlclc7Ci1AQCAtMTAwMCwyMiArMTAxMSwyOCBAQCB2b2lkIFRvb2xiYXI6OnJl YXJyYW5nZUl0ZW1zKCkgewotICAgICAgICAgfQotICAgICAgICAgbGFzdF9idyA9IGJvcmRlclc7 Ci0gCi0tICAgICAgICBpbnQgdG1weCA9IG5leHRfeCArIG9mZnNldCwKLS0gICAgICAgICAgICB0 bXB5ID0gb2Zmc2V0OwotLQotLSAgICAgICAgaWYgKCgqaXRlbV9pdCktPnR5cGUoKSA9PSBUb29s YmFySXRlbTo6UkVMQVRJVkUpIHsKLS0gICAgICAgICAgICB1bnNpZ25lZCBpbnQgaXRlbXcgPSAo Kml0ZW1faXQpLT5wcmVmZXJyZWRXaWR0aCgpLCBpdGVtaCA9ICgqaXRlbV9pdCktPmhlaWdodCgp OwotLSAgICAgICAgICAgIEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCBpdGVtdywgaXRlbWgp OwotLSAgICAgICAgICAgIHRtcHcgPSBpdGVtdyA/IHN0ZDo6Zmxvb3Ioc3RyZXRjaF9mYWN0b3Ig KiBpdGVtdykgOiByZWxhdGl2ZV93aWR0aDsKLS0gICAgICAgICAgICB0bXBoID0gaGVpZ2h0IC0g c2l6ZV9vZmZzZXQ7Ci0tICAgICAgICB9IGVsc2UgaWYgKCgqaXRlbV9pdCktPnR5cGUoKSA9PSBU b29sYmFySXRlbTo6U1FVQVJFKSB7Ci0tICAgICAgICAgICAgdG1wdyA9IHRtcGggPSBoZWlnaHQg LSBzaXplX29mZnNldDsKLS0gICAgICAgIH0gZWxzZSB7IC8vIGZpeGVkIHNpemUKLS0gICAgICAg ICAgICB1bnNpZ25lZCBpbnQgaXRlbXcgPSAoKml0ZW1faXQpLT53aWR0aCgpLCBpdGVtaCA9ICgq aXRlbV9pdCktPmhlaWdodCgpOwotLSAgICAgICAgICAgIEZiVGs6OnRyYW5zbGF0ZVNpemUob3Jp ZW50LCBpdGVtdywgaXRlbWgpOwotLSAgICAgICAgICAgIHRtcHcgPSBpdGVtdzsKLS0gICAgICAg ICAgICB0bXBoID0gaGVpZ2h0IC0gc2l6ZV9vZmZzZXQ7Ci0rICAgICAgICB0bXB4ID0gbmV4dF94 ICsgb2Zmc2V0LAotKyAgICAgICAgdG1weSA9IG9mZnNldDsKLSsgICAgICAgIHRtcGggPSBoZWln aHQgLSBzaXplX29mZnNldDsKLSsKLSsgICAgICAgIHN3aXRjaCAoICgqaXRlbV9pdCkudHlwZSgp ICkgewotKyAgICAgICAgICAgIGNhc2UgVG9vbGJhckl0ZW06OlNRVUFSRToKLSsgICAgICAgICAg ICAgICAgdG1wdyA9IHRtcGg7Ci0rICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAg IGNhc2UgVG9vbGJhckl0ZW06OlJFTEFUSVZFOgotKyAgICAgICAgICAgICAgICB0bXB3ID0gcmVs YXRpdmVfd2lkdGg7Ci0rICAgICAgICAgICAgICAgIGlmIChsZWZ0b3Zlcl93aWR0aCkgewotKyAg ICAgICAgICAgICAgICAgICAgLS1sZWZ0b3Zlcl93aWR0aDsKLSsgICAgICAgICAgICAgICAgICAg ICsrdG1wdzsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICBicmVhazsKLSsg ICAgICAgICAgICBjYXNlIFRvb2xiYXJJdGVtOjpGSVhFRDoKLSsgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IGl0ZW13ID0gKCppdGVtX2l0KS53aWR0aCgpLCBpdGVtaCA9ICgqaXRlbV9pdCku aGVpZ2h0KCk7Ci0rICAgICAgICAgICAgICAgIEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCBp dGVtdywgaXRlbWgpOwotKyAgICAgICAgICAgICAgICB0bXB3ID0gaXRlbXc7Ci0rICAgICAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICAgfQotKwotICAgICAgICAgaWYgKHRtcHcgPj0gKDE8PDMw KSkgdG1wdyA9IDE7Ci0gICAgICAgICBpZiAodG1waCA+PSAoMTw8MzApKSB0bXBoID0gMTsKLSAg ICAgICAgIG5leHRfeCArPSB0bXB3ICsgYmV2ZWxfd2lkdGg7Ci1AQCAtMTAyNSw4ICsxMDQyLDgg QEAgdm9pZCBUb29sYmFyOjpyZWFycmFuZ2VJdGVtcygpIHsKLSAgICAgICAgIEZiVGs6OnRyYW5z bGF0ZUNvb3JkcyhvcmllbnQsIHRtcHgsIHRtcHksIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAg RmJUazo6dHJhbnNsYXRlUG9zaXRpb24ob3JpZW50LCB0bXB4LCB0bXB5LCB0bXB3LCB0bXBoLCBi b3JkZXJXKTsKLSAgICAgICAgIEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCB0bXB3LCB0bXBo KTsKLS0gICAgICAgICgqaXRlbV9pdCktPm1vdmVSZXNpemUodG1weCwgdG1weSwgdG1wdywgdG1w aCk7Ci0tICAgICAgICAoKml0ZW1faXQpLT5zaG93KCk7Ci0rICAgICAgICAoKml0ZW1faXQpLm1v dmVSZXNpemUodG1weCwgdG1weSwgdG1wdywgdG1waCk7Ci0rICAgICAgICAvLygqaXRlbV9pdCku c2hvdygpOwotIAotICAgICB9Ci0gICAgIC8vIHVubG9jawpkaWZmIC0tZ2l0IGEvc3JjcGtncy9m bHV4Ym94L3BhdGNoZXMvdHJlbW9yX2dyYWJvaWRfaGVsbC5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJv eC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hlbGwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDE4OWEzMTQ2MDdiZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJv eC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hlbGwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwz NTAgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3NyYy9GYlRrL0V2ZW50TWFuYWdlci5jYyBiL3NyYy9G YlRrL0V2ZW50TWFuYWdlci5jYwotaW5kZXggM2RmNTZkZTUuLjUwMTc2NmNjIDEwMDY0NAotLS0t IGEvc3JjL0ZiVGsvRXZlbnRNYW5hZ2VyLmNjCi0rKysgYi9zcmMvRmJUay9FdmVudE1hbmFnZXIu Y2MKLUBAIC0xOTQsMjMgKzE5NCwyMiBAQCB2b2lkIEV2ZW50TWFuYWdlcjo6ZGlzcGF0Y2goV2lu ZG93IHdpbiwgWEV2ZW50ICZldiwgYm9vbCBwYXJlbnQpIHsKLSAKLSAgICAgLy8gZmluZCBvdXQg d2hpY2ggd2luZG93IGlzIHRoZSBwYXJlbnQgYW5kCi0gICAgIC8vIGRpc3BhdGNoIGV2ZW50Ci0t ICAgIFdpbmRvdyByb290LCBwYXJlbnRfd2luLCAqY2hpbGRyZW4gPSAwOwotLSAgICB1bnNpZ25l ZCBpbnQgbnVtX2NoaWxkcmVuOwotLSAgICBpZiAoWFF1ZXJ5VHJlZShGYlRrOjpBcHA6Omluc3Rh bmNlKCktPmRpc3BsYXkoKSwgd2luLAotLSAgICAgICAgICAgICAgICAgICAmcm9vdCwgJnBhcmVu dF93aW4sICZjaGlsZHJlbiwgJm51bV9jaGlsZHJlbikgIT0gMCkgewotLSAgICAgICAgaWYgKGNo aWxkcmVuICE9IDApCi0tICAgICAgICAgICAgWEZyZWUoY2hpbGRyZW4pOwotLQotLSAgICAgICAg aWYgKHBhcmVudF93aW4gIT0gMCAmJgotLSAgICAgICAgICAgIHBhcmVudF93aW4gIT0gcm9vdCkg ewotLSAgICAgICAgICAgIGlmIChtX3BhcmVudFtwYXJlbnRfd2luXSA9PSAwKQotLSAgICAgICAg ICAgICAgICByZXR1cm47Ci0tCi0tICAgICAgICAgICAgLy8gZGlzcGF0Y2ggZXZlbnQgdG8gcGFy ZW50Ci0tICAgICAgICAgICAgZGlzcGF0Y2gocGFyZW50X3dpbiwgZXYsIHRydWUpOwotLSAgICAg ICAgfQotLSAgICB9Ci0tCi0rLy8gICAgV2luZG93IHJvb3QsIHBhcmVudF93aW4sICpjaGlsZHJl biA9IDA7Ci0rLy8gICAgdW5zaWduZWQgaW50IG51bV9jaGlsZHJlbjsKLSsvLyAgICBpZiAoWFF1 ZXJ5VHJlZShGYlRrOjpBcHA6Omluc3RhbmNlKCktPmRpc3BsYXkoKSwgd2luLAotKy8vICAgICAg ICAgICAgICAgICAgICZyb290LCAmcGFyZW50X3dpbiwgJmNoaWxkcmVuLCAmbnVtX2NoaWxkcmVu KSAhPSAwKSB7Ci0rLy8gICAgICAgIGlmIChjaGlsZHJlbiAhPSAwKQotKy8vICAgICAgICAgICAg WEZyZWUoY2hpbGRyZW4pOwotKy8vCi0rLy8gICAgICAgIGlmIChwYXJlbnRfd2luICE9IDAgJiYK LSsvLyAgICAgICAgICAgIHBhcmVudF93aW4gIT0gcm9vdCkgewotKy8vICAgICAgICAgICAgaWYg KG1fcGFyZW50W3BhcmVudF93aW5dID09IDApCi0rLy8gICAgICAgICAgICAgICAgcmV0dXJuOwot Ky8vCi0rLy8gICAgICAgICAgICAvLyBkaXNwYXRjaCBldmVudCB0byBwYXJlbnQKLSsvLyAgICAg ICAgICAgIGRpc3BhdGNoKHBhcmVudF93aW4sIGV2LCB0cnVlKTsKLSsvLyAgICAgICAgfQotKy8v ICAgIH0KLSB9Ci0gCi0gfSAvLyBlbmQgbmFtZXNwYWNlIEZiVGsKLWRpZmYgLS1naXQgYS9zcmMv RmJUay9LZXlVdGlsLmNjIGIvc3JjL0ZiVGsvS2V5VXRpbC5jYwotaW5kZXggNzNmMmVhMDYuLmNm ODYzMDIxIDEwMDY0NAotLS0tIGEvc3JjL0ZiVGsvS2V5VXRpbC5jYwotKysrIGIvc3JjL0ZiVGsv S2V5VXRpbC5jYwotQEAgLTE0MSwxMyArMTQxLDE0IEBAIHZvaWQgS2V5VXRpbDo6Z3JhYkJ1dHRv bih1bnNpZ25lZCBpbnQgYnV0dG9uLCB1bnNpZ25lZCBpbnQgbW9kLCBXaW5kb3cgd2luLAotICAg ICBjb25zdCB1bnNpZ25lZCBpbnQgc2Nyb2xsbW9kID0gaW5zdGFuY2UoKS5zY3JvbGxsb2NrKCk7 Ci0gCi0gICAgIC8vIEdyYWIgd2l0aCBudW1sb2NrLCBjYXBzbG9jayBhbmQgc2NybG9jawotLSAg ICBmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykgewotLSAgICAgICAgWEdyYWJCdXR0b24oZGlz cGxheSwgYnV0dG9uLCBtb2QgfCAoaSAmIDEgPyBMb2NrTWFzayA6IDApIHwKLS0gICAgICAgICAg ICAgICAgICAgIChpICYgMiA/IG51bW1vZCA6IDApIHwgKGkgJiA0ID8gc2Nyb2xsbW9kIDogMCks Ci0tICAgICAgICAgICAgICAgICAgICB3aW4sIEZhbHNlLCBldmVudF9tYXNrLCBHcmFiTW9kZVN5 bmMsIEdyYWJNb2RlQXN5bmMsCi0tICAgICAgICAgICAgICAgICAgICBOb25lLCBjdXJzb3IpOwot LSAgICB9Ci0tCi0rICAgIC8vZm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHsKLSsgICAgLy8g ICAgWEdyYWJCdXR0b24oZGlzcGxheSwgYnV0dG9uLCBtb2QgfCAoaSAmIDEgPyBMb2NrTWFzayA6 IDApIHwKLSsgICAgLy8gICAgICAgICAgICAgICAgKGkgJiAyID8gbnVtbW9kIDogMCkgfCAoaSAm IDQgPyBzY3JvbGxtb2QgOiAwKSwKLSsgICAgLy8gICAgICAgICAgICAgICAgd2luLCBUcnVlLCBl dmVudF9tYXNrLCBHcmFiTW9kZVN5bmMsIEdyYWJNb2RlQXN5bmMsCi0rICAgIC8vICAgICAgICAg ICAgICAgIE5vbmUsIGN1cnNvcik7Ci0rICAgIC8vfQotKyAgICBYR3JhYkJ1dHRvbihkaXNwbGF5 LCBidXR0b24sIG1vZCwgd2luLCBUcnVlLCBldmVudF9tYXNrLAotKyAgICAgICAgICAgICAgICBH cmFiTW9kZVN5bmMsIEdyYWJNb2RlQXN5bmMsIE5vbmUsIGN1cnNvcik7Ci0gfQotIAotIC8qKgot ZGlmZiAtLWdpdCBhL3NyYy9LZXlzLmNjIGIvc3JjL0tleXMuY2MKLWluZGV4IDg2NTkxMzcxLi5j MjcwMzdlMiAxMDA2NDQKLS0tLSBhL3NyYy9LZXlzLmNjCi0rKysgYi9zcmMvS2V5cy5jYwotQEAg LTI3Nyw3ICsyNzcsNyBAQCB2b2lkIEtleXM6OmdyYWJXaW5kb3coV2luZG93IHdpbikgewotICAg ICBpZiAod2luX2l0ID09IG1fd2luZG93X21hcC5lbmQoKSkKLSAgICAgICAgIHJldHVybjsKLSAK LS0gICAgbV9oYW5kbGVyX21hcFt3aW5dLT5ncmFiQnV0dG9ucygpOwotKyAgICAvL21faGFuZGxl cl9tYXBbd2luXS0+Z3JhYkJ1dHRvbnMoKTsKLSAgICAgdF9rZXk6OmtleWxpc3RfdDo6aXRlcmF0 b3IgaXQgPSBtX2tleWxpc3QtPmtleWxpc3QuYmVnaW4oKTsKLSAgICAgdF9rZXk6OmtleWxpc3Rf dDo6aXRlcmF0b3IgaXRfZW5kID0gbV9rZXlsaXN0LT5rZXlsaXN0LmVuZCgpOwotICAgICBmb3Ig KDsgaXQgIT0gaXRfZW5kOyArK2l0KSB7Ci1AQCAtNTg2LDE2ICs1ODYsMTYgQEAgYm9vbCBLZXlz Ojpkb0FjdGlvbihpbnQgdHlwZSwgdW5zaWduZWQgaW50IG1vZHMsIHVuc2lnbmVkIGludCBrZXks Ci0gICAgICAgICBpc2RvdWJsZSA9IGRvdWJsZV9jbGljazsKLSAgICAgfQotIAotLSAgICBhdXRv IHJlc2V0S2V5Q2hhaW4gPSBbJl0oKSB7Ci0tICAgICAgICBmaXJzdF9rZXlfdGltZSA9IDA7Ci0t ICAgICAgICBuZXh0X2tleS5yZXNldCgpOwotLSAgICAgICAgaWYgKHNhdmVkX2tleW1vZGUpIHsK LS0gICAgICAgICAgICBzZXRLZXlNb2RlKHNhdmVkX2tleW1vZGUpOwotLSAgICAgICAgICAgIHNh dmVkX2tleW1vZGUucmVzZXQoKTsKLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgaWYgKHR5cGUg PT0gS2V5UHJlc3MgJiYgZmlyc3Rfa2V5X3RpbWUgJiYgdGltZSAtIGZpcnN0X2tleV90aW1lID4g NTAwMCkKLS0gICAgICAgIHJlc2V0S2V5Q2hhaW4oKTsKLSsvLyAgICBhdXRvIHJlc2V0S2V5Q2hh aW4gPSBbJl0oKSB7Ci0rLy8gICAgICAgIGZpcnN0X2tleV90aW1lID0gMDsKLSsvLyAgICAgICAg bmV4dF9rZXkucmVzZXQoKTsKLSsvLyAgICAgICAgaWYgKHNhdmVkX2tleW1vZGUpIHsKLSsvLyAg ICAgICAgICAgIHNldEtleU1vZGUoc2F2ZWRfa2V5bW9kZSk7Ci0rLy8gICAgICAgICAgICBzYXZl ZF9rZXltb2RlLnJlc2V0KCk7Ci0rLy8gICAgICAgIH0KLSsvLyAgICB9OwotKy8vICAgIGlmICh0 eXBlID09IEtleVByZXNzICYmIGZpcnN0X2tleV90aW1lICYmIHRpbWUgLSBmaXJzdF9rZXlfdGlt ZSA+IDUwMDApCi0rLy8gICAgICAgIHJlc2V0S2V5Q2hhaW4oKTsKLSAKLSAgICAgaWYgKCFuZXh0 X2tleSkKLSAgICAgICAgIG5leHRfa2V5ID0gbV9rZXlsaXN0OwotQEAgLTYxMiwyOSArNjEyLDI5 IEBAIGJvb2wgS2V5czo6ZG9BY3Rpb24oaW50IHR5cGUsIHVuc2lnbmVkIGludCBtb2RzLCB1bnNp Z25lZCBpbnQga2V5LAotICAgICAgICAgbmV4dF9rZXktPmZpbmQoTW90aW9uTm90aWZ5LCBtb2Rz LCBrZXksIGNvbnRleHQsIGZhbHNlKSkKLSAgICAgICAgIHJldHVybiB0cnVlOyAvLyBpZiB0aGVy ZSdzIGEgbW90aW9uIGFjdGlvbiwgcHJldmVudCByZXBsYXkgdG8gdGhlIGNsaWVudCAoYnV0IGRv IG5vdGhpbmcpCi0gCi0tICAgIGlmICh0ZW1wX2tleSAmJiAhdGVtcF9rZXktPmtleWxpc3QuZW1w dHkoKSkgeyAvLyBlbWFjcy1zdHlsZQotLSAgICAgICAgaWYgKCFzYXZlZF9rZXltb2RlKSB7Ci0t ICAgICAgICAgICAgZmlyc3Rfa2V5X3RpbWUgPSB0aW1lOwotLSAgICAgICAgICAgIHNhdmVkX2tl eW1vZGUgPSBtX2tleWxpc3Q7Ci0tICAgICAgICB9Ci0tICAgICAgICBuZXh0X2tleSA9IHRlbXBf a2V5OwotLSAgICAgICAgc2V0S2V5TW9kZShuZXh0X2tleSk7Ci0tICAgICAgICByZXR1cm4gdHJ1 ZTsKLS0gICAgfQotKy8vICAgIGlmICh0ZW1wX2tleSAmJiAhdGVtcF9rZXktPmtleWxpc3QuZW1w dHkoKSkgeyAvLyBlbWFjcy1zdHlsZQotKy8vICAgICAgICBpZiAoIXNhdmVkX2tleW1vZGUpIHsK LSsvLyAgICAgICAgICAgIGZpcnN0X2tleV90aW1lID0gdGltZTsKLSsvLyAgICAgICAgICAgIHNh dmVkX2tleW1vZGUgPSBtX2tleWxpc3Q7Ci0rLy8gICAgICAgIH0KLSsvLyAgICAgICAgbmV4dF9r ZXkgPSB0ZW1wX2tleTsKLSsvLyAgICAgICAgc2V0S2V5TW9kZShuZXh0X2tleSk7Ci0rLy8gICAg ICAgIHJldHVybiB0cnVlOwotKy8vICAgIH0KLSsKLSAgICAgaWYgKCF0ZW1wX2tleSB8fCB0ZW1w X2tleS0+bV9jb21tYW5kID09IDApIHsKLS0gICAgICAgIGlmICh0eXBlID09IEtleVByZXNzICYm Ci0tICAgICAgICAgICAgIUZiVGs6OktleVV0aWw6Omluc3RhbmNlKCkua2V5Y29kZVRvTW9kbWFz ayhrZXkpKSB7Ci0tICAgICAgICAgICAgLy8gaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBl bWFjcy1zdHlsZSBrZXljaGFpbiwgZXhpdCBpdAotLSAgICAgICAgICAgIHJlc2V0S2V5Q2hhaW4o KTsKLS0gICAgICAgIH0KLSsvLyAgICAgICAgaWYgKHR5cGUgPT0gS2V5UHJlc3MgJiYKLSsvLyAg ICAgICAgICAgICFGYlRrOjpLZXlVdGlsOjppbnN0YW5jZSgpLmtleWNvZGVUb01vZG1hc2soa2V5 KSkgewotKy8vICAgICAgICAgICAgLy8gaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBlbWFj cy1zdHlsZSBrZXljaGFpbiwgZXhpdCBpdAotKy8vICAgICAgICAgICAgcmVzZXRLZXlDaGFpbigp OwotKy8vICAgICAgICB9Ci0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLSAKLSAgICAg Ly8gaWYgZm9jdXMgY2hhbmdlcywgd2luZG93cyB3aWxsIGdldCBOb3RpZnlXaGlsZUdyYWJiZWQs Ci0gICAgIC8vIHdoaWNoIHRoZXkgdGVuZCB0byBpZ25vcmUKLS0gICAgaWYgKHR5cGUgPT0gS2V5 UHJlc3MpIHsKLSsgICAgaWYgKHR5cGUgPT0gS2V5UHJlc3MpCi0gICAgICAgICBYVW5ncmFiS2V5 Ym9hcmQoRmx1eGJveDo6aW5zdGFuY2UoKS0+ZGlzcGxheSgpLCBDdXJyZW50VGltZSk7Ci0tICAg IH0KLSAKLSAgICAgV2luQ2xpZW50ICpvbGQgPSBXaW5kb3dDbWQ8dm9pZD46OmNsaWVudCgpOwot ICAgICBXaW5kb3dDbWQ8dm9pZD46OnNldENsaWVudChjdXJyZW50KTsKLUBAIC02NTAsMTIgKzY1 MCwxMyBAQCBib29sIEtleXM6OmRvQWN0aW9uKGludCB0eXBlLCB1bnNpZ25lZCBpbnQgbW9kcywg dW5zaWduZWQgaW50IGtleSwKLSAgICAgdGVtcF9rZXktPm1fY29tbWFuZC0+ZXhlY3V0ZSgpOwot ICAgICBXaW5kb3dDbWQ8dm9pZD46OnNldENsaWVudChvbGQpOwotIAotLSAgICBpZiAoc2F2ZWRf a2V5bW9kZSkgewotLSAgICAgICAgaWYgKG5leHRfa2V5ID09IG1fa2V5bGlzdCkgLy8gZG9uJ3Qg cmVzZXQga2V5bW9kZSBpZiBjb21tYW5kIGNoYW5nZWQgaXQKLS0gICAgICAgICAgICBzZXRLZXlN b2RlKHNhdmVkX2tleW1vZGUpOwotLSAgICAgICAgc2F2ZWRfa2V5bW9kZS5yZXNldCgpOwotLSAg ICB9Ci0tICAgIG5leHRfa2V5LnJlc2V0KCk7Ci0rLy8gICAgaWYgKHNhdmVkX2tleW1vZGUpIHsK LSsvLyAgICAgICAgaWYgKG5leHRfa2V5ID09IG1fa2V5bGlzdCkgLy8gZG9uJ3QgcmVzZXQga2V5 bW9kZSBpZiBjb21tYW5kIGNoYW5nZWQgaXQKLSsvLyAgICAgICAgICAgIHNldEtleU1vZGUoc2F2 ZWRfa2V5bW9kZSk7Ci0rLy8gICAgICAgIHNhdmVkX2tleW1vZGUucmVzZXQoKTsKLSsvLyAgICB9 Ci0rLy8gICAgbmV4dF9rZXkucmVzZXQoKTsKLSsKLSAgICAgcmV0dXJuIHRydWU7Ci0gfQotIAot QEAgLTY4NSwxNSArNjg2LDE2IEBAIHZvaWQgS2V5czo6cmVjb25maWd1cmUoKSB7Ci0gfQotIAot IHZvaWQgS2V5czo6cmVncmFiKCkgewotLSAgICBzZXRLZXlNb2RlKG1fa2V5bGlzdCk7Ci0rICAg IC8vc2V0S2V5TW9kZShtX2tleWxpc3QpOwotIH0KLSAKLSB2b2lkIEtleXM6OmtleU1vZGUoY29u c3Qgc3RyaW5nJiBrZXlNb2RlKSB7Ci0tICAgIGtleXNwYWNlX3Q6Oml0ZXJhdG9yIGl0ID0gbV9t YXAuZmluZChrZXlNb2RlICsgIjoiKTsKLS0gICAgaWYgKGl0ID09IG1fbWFwLmVuZCgpKQotKyAg ICAvL2tleXNwYWNlX3Q6Oml0ZXJhdG9yIGl0ID0gbV9tYXAuZmluZChrZXlNb2RlICsgIjoiKTsK LSsgICAgLy9pZiAoaXQgPT0gbV9tYXAuZW5kKCkpCi0rICAgIC8vICAgIHNldEtleU1vZGUobV9t YXBbImRlZmF1bHQ6Il0pOwotKyAgICAvL2Vsc2UKLSsgICAgLy8gICAgc2V0S2V5TW9kZShpdC0+ c2Vjb25kKTsKLSAgICAgICAgIHNldEtleU1vZGUobV9tYXBbImRlZmF1bHQ6Il0pOwotLSAgICBl bHNlCi0tICAgICAgICBzZXRLZXlNb2RlKGl0LT5zZWNvbmQpOwotIH0KLSAKLSB2b2lkIEtleXM6 OnNldEtleU1vZGUoY29uc3QgRmJUazo6UmVmQ291bnQ8dF9rZXk+ICZrZXlNb2RlKSB7Ci1AQCAt NzAxLDEwICs3MDMsMTAgQEAgdm9pZCBLZXlzOjpzZXRLZXlNb2RlKGNvbnN0IEZiVGs6OlJlZkNv dW50PHRfa2V5PiAma2V5TW9kZSkgewotICAgICB1bmdyYWJCdXR0b25zKCk7Ci0gCi0gICAgIC8v IG5vdGlmeSBoYW5kbGVycyB0aGF0IHRoZWlyIGJ1dHRvbnMgaGF2ZSBiZWVuIHVuZ3JhYmJlZAot LSAgICBIYW5kbGVyTWFwOjppdGVyYXRvciBoX2l0ID0gbV9oYW5kbGVyX21hcC5iZWdpbigpLAot LSAgICAgICAgICAgICAgICAgICAgICAgICBoX2l0X2VuZCAgPSBtX2hhbmRsZXJfbWFwLmVuZCgp OwotLSAgICBmb3IgKDsgaF9pdCAhPSBoX2l0X2VuZDsgKytoX2l0KQotLSAgICAgICAgaF9pdC0+ c2Vjb25kLT5ncmFiQnV0dG9ucygpOwotKyAgICAvL0hhbmRsZXJNYXA6Oml0ZXJhdG9yIGhfaXQg PSBtX2hhbmRsZXJfbWFwLmJlZ2luKCksCi0rICAgIC8vICAgICAgICAgICAgICAgICAgICAgaF9p dF9lbmQgID0gbV9oYW5kbGVyX21hcC5lbmQoKTsKLSsgICAgLy9mb3IgKDsgaF9pdCAhPSBoX2l0 X2VuZDsgKytoX2l0KQotKyAgICAvLyAgICBoX2l0LT5zZWNvbmQtPmdyYWJCdXR0b25zKCk7Ci0g Ci0gICAgIHRfa2V5OjprZXlsaXN0X3Q6Oml0ZXJhdG9yIGl0ID0ga2V5TW9kZS0+a2V5bGlzdC5i ZWdpbigpOwotICAgICB0X2tleTo6a2V5bGlzdF90OjppdGVyYXRvciBpdF9lbmQgPSBrZXlNb2Rl LT5rZXlsaXN0LmVuZCgpOwotZGlmZiAtLWdpdCBhL3NyYy9XaW5kb3cuY2MgYi9zcmMvV2luZG93 LmNjCi1pbmRleCAzNDJlNDg4NS4uNDU3YzMwYzYgMTAwNjQ0Ci0tLS0gYS9zcmMvV2luZG93LmNj Ci0rKysgYi9zcmMvV2luZG93LmNjCi1AQCAtMTEzMywxMyArMTEzMywyNSBAQCB2b2lkIEZsdXhi b3hXaW5kb3c6OnVwZGF0ZVNpemVIaW50cygpIHsKLSB9Ci0gCi0gdm9pZCBGbHV4Ym94V2luZG93 OjpncmFiQnV0dG9ucygpIHsKLS0KLSsvL05PR1JBQgotKyAgICAvL2lmIChtX2NsaWVudC0+d2lu ZG93KCkgIT0gZnJhbWUoKS53aW5kb3coKS53aW5kb3coKSApIHJldHVybjsKLSAgICAgLy8gbmVl ZGVkIGZvciBjbGljayB0byBmb2N1cwotLSAgICBYR3JhYkJ1dHRvbihkaXNwbGF5LCBCdXR0b24x LCBBbnlNb2RpZmllciwKLS0gICAgICAgICAgICAgICAgZnJhbWUoKS53aW5kb3coKS53aW5kb3co KSwgVHJ1ZSwgQnV0dG9uUHJlc3NNYXNrLAotLSAgICAgICAgICAgICAgICBHcmFiTW9kZVN5bmMs IEdyYWJNb2RlU3luYywgTm9uZSwgTm9uZSk7Ci0tICAgIFhVbmdyYWJCdXR0b24oZGlzcGxheSwg QnV0dG9uMSwgTW9kMU1hc2t8TW9kMk1hc2t8TW9kM01hc2ssCi0tICAgICAgICAgICAgICAgICAg ZnJhbWUoKS53aW5kb3coKS53aW5kb3coKSk7Ci0rICAgIC8vIGdyYWJiaW5nIGFzeW5jIGhlcmUg YnJlYWtzIG1vdXNlMQotKyAgICAvL1hHcmFiQnV0dG9uKGRpc3BsYXksIEJ1dHRvbjEsIEFueU1v ZGlmaWVyLAotKyAgICAvLyAgICAgICAgICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCksIFRy dWUsIEJ1dHRvblByZXNzTWFzaywKLSsgICAgLy8gICAgICAgICAgICBHcmFiTW9kZVN5bmMsIEdy YWJNb2RlU3luYywgTm9uZSwgTm9uZSk7Ci0rICAgIC8vICAgICAgICAgICAgLy9HcmFiTW9kZUFz eW5jLCBHcmFiTW9kZUFzeW5jLCBOb25lLCBOb25lKTsKLSsgICAgLy9YVW5ncmFiQnV0dG9uKGRp c3BsYXksIEJ1dHRvbjEsIE1vZDFNYXNrfE1vZDJNYXNrfE1vZDNNYXNrLAotKyAgICAvLyAgICAg ICAgICAgICAgZnJhbWUoKS53aW5kb3coKS53aW5kb3coKSk7Ci0rICAgIC8vWEdyYWJQb2ludGVy KGRpc3BsYXksCi0rICAgIC8vICAgICAgICAgICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCks Ci0rICAgIC8vICAgICAgICAgICAgIFRydWUsCi0rICAgIC8vICAgICAgICAgICAgIEJ1dHRvblBy ZXNzTWFzaywKLSsgICAgLy8gICAgICAgICAgICAgR3JhYk1vZGVBc3luYywgR3JhYk1vZGVBc3lu YywKLSsgICAgLy8gICAgICAgICAgICAgTm9uZSwKLSsgICAgLy8gICAgICAgICAgICAgTm9uZSwK LSsgICAgLy8gICAgICAgICAgICAgQ3VycmVudFRpbWUpOwotKyAgICAvL1hVbmdyYWJQb2ludGVy KGRpc3BsYXksIEN1cnJlbnRUaW1lKTsKLSB9Ci0gCi0gCi1AQCAtMjQyOSw2MyArMjQ0MSw0MSBA QCB2b2lkIEZsdXhib3hXaW5kb3c6OmJ1dHRvblByZXNzRXZlbnQoWEJ1dHRvbkV2ZW50ICZiZSkg ewotICAgICBtX2xhc3RfcHJlc3NlZF9idXR0b24gPSBiZS5idXR0b247Ci0gCi0gICAgIEZiVGs6 Ok1lbnU6OmhpZGVTaG93bk1lbnUoKTsKLS0KLSsvL0ZJWCBBTExPVwotICAgICBLZXlzICprID0g Rmx1eGJveDo6aW5zdGFuY2UoKS0+a2V5cygpOwotICAgICBpbnQgY29udGV4dCA9IDA7Ci0gICAg IGNvbnRleHQgPSBmcmFtZSgpLmdldENvbnRleHQoYmUuc3Vid2luZG93ID8gYmUuc3Vid2luZG93 IDogYmUud2luZG93LCBiZS54X3Jvb3QsIGJlLnlfcm9vdCk7Ci0gICAgIGlmICghY29udGV4dCAm JiBiZS5zdWJ3aW5kb3cpCi0gICAgICAgICBjb250ZXh0ID0gZnJhbWUoKS5nZXRDb250ZXh0KGJl LndpbmRvdyk7Ci0gCi0tICAgIGlmIChrLT5kb0FjdGlvbihiZS50eXBlLCBiZS5zdGF0ZSwgYmUu YnV0dG9uLCBjb250ZXh0LCAmd2luQ2xpZW50KCksIGJlLnRpbWUpKSB7Ci0tICAgICAgICBYQWxs b3dFdmVudHMoZGlzcGxheSwgU3luY1BvaW50ZXIsIEN1cnJlbnRUaW1lKTsKLS0gICAgICAgIHJl dHVybjsKLS0gICAgfQotLQotLSAgICBXaW5DbGllbnQgKmNsaWVudCA9IDA7Ci0tICAgIGlmICgh c2NyZWVuKCkuZm9jdXNDb250cm9sKCkuaXNNb3VzZVRhYkZvY3VzKCkpIHsKLS0gICAgICAgIC8v IGRldGVybWluZSBpZiB3ZSdyZSBpbiBhIGxhYmVsIGJ1dHRvbiAodGFiKQotLSAgICAgICAgY2xp ZW50ID0gd2luQ2xpZW50T2ZMYWJlbEJ1dHRvbldpbmRvdyhiZS53aW5kb3cpOwotLSAgICB9Ci0t Ci0tCi0tICAgIC8vIC0gcmVmZWVkIHRoZSBldmVudCBpbnRvIHRoZSBxdWV1ZSBzbyB0aGUgYXBw IG9yIHRpdGxlYmFyIHN1YndpbmRvdyBnZXRzIGl0Ci0tICAgIGlmIChiZS5zdWJ3aW5kb3cpCi0t ICAgICAgICBYQWxsb3dFdmVudHMoZGlzcGxheSwgUmVwbGF5UG9pbnRlciwgQ3VycmVudFRpbWUp OwotLSAgICBlbHNlCi0tICAgICAgICBYQWxsb3dFdmVudHMoZGlzcGxheSwgU3luY1BvaW50ZXIs IEN1cnJlbnRUaW1lKTsKLS0KLS0gICAgLy8gaWYgbm90aGluZyB3YXMgYm91bmQgdmlhIGtleXMt ZmlsZSB0aGVuCi0tICAgIC8vIC0gcmFpc2UoKSBpZiBjbGlja1JhaXNlIGlzIGVuYWJsZWQKLS0g ICAgLy8gLSBoaWRlIG9wZW4gbWVudWVzCi0tICAgIC8vIC0gZm9jdXMgb24gY2xpY2tGb2N1cwot LSAgICBpZiAoZnJhbWUoKS53aW5kb3coKS53aW5kb3coKSA9PSBiZS53aW5kb3cpIHsKLS0gICAg ICAgIGlmIChzY3JlZW4oKS5jbGlja1JhaXNlcygpKQotLSAgICAgICAgICAgIHJhaXNlKCk7Ci0t Ci0tICAgICAgICBtX2J1dHRvbl9ncmFiX3ggPSBiZS54X3Jvb3QgLSBmcmFtZSgpLngoKSAtIGZy YW1lKCkud2luZG93KCkuYm9yZGVyV2lkdGgoKTsKLS0gICAgICAgIG1fYnV0dG9uX2dyYWJfeSA9 IGJlLnlfcm9vdCAtIGZyYW1lKCkueSgpIC0gZnJhbWUoKS53aW5kb3coKS5ib3JkZXJXaWR0aCgp OwotLSAgICB9Ci0tCi0tICAgIGlmICghbV9mb2N1c2VkICYmIGFjY2VwdHNGb2N1cygpICYmIG1f Y2xpY2tfZm9jdXMpCi0tICAgICAgICBmb2N1cygpOwotLQotLSAgICBpZiAoIXNjcmVlbigpLmZv Y3VzQ29udHJvbCgpLmlzTW91c2VUYWJGb2N1cygpICYmCi0tICAgICAgICBjbGllbnQgJiYgY2xp ZW50ICE9IG1fY2xpZW50ICYmCi0tICAgICAgICAhc2NyZWVuKCkuZm9jdXNDb250cm9sKCkuaXNJ Z25vcmVkKGJlLnhfcm9vdCwgYmUueV9yb290KSApIHsKLS0gICAgICAgIHNldEN1cnJlbnRDbGll bnQoKmNsaWVudCwgaXNGb2N1c2VkKCkpOwotLSAgICB9Ci0tCi0tCi0tCi0rc3RkOjpjb3V0IDw8 ICJidXR0b24gd2luZG93OiAiIDw8IGJlLndpbmRvdyA8PCAiXG5idXR0b24gc3Vid2luZG93OiAi IDw8IGJlLnN1YndpbmRvdyA8PCAiXG4iOwotK2stPmRvQWN0aW9uKGJlLnR5cGUsIGJlLnN0YXRl LCBiZS5idXR0b24sIGNvbnRleHQsICZ3aW5DbGllbnQoKSwgQ3VycmVudFRpbWUpOyAvLyB3L28g dGhpcywgbm8gbW91c2UgY21kcwotK1hBbGxvd0V2ZW50cyhkaXNwbGF5LCBSZXBsYXlQb2ludGVy LCBDdXJyZW50VGltZSk7IC8vIHcvbyB0aGlzLCBubyBtb3VzZQotKy8vIHVsdGltYXRlbHkgbm9u ZSBvZiB0aGUgYmVsb3cgbWF0dGVycwotKyAgICAvLyBpbmZpbml0ZSBsb29wCi0rICAgIC8vaWYg KGJlLnN1YndpbmRvdykgewotKyAgICAvLyAgLy9YRXZlbnQgb21mZyA9IChYRXZlbnQgKikmYmU7 Ci0rICAgIC8vICAvL2JlLndpbmRvdyA9IGJlLnN1YndpbmRvdzsKLSsgICAgLy8gIC8vYmUuc3Vi d2luZG93ID0gMDsKLSsgICAgLy8gIGludCBodWggPSBYU2VuZEV2ZW50KGRpc3BsYXksIGJlLndp bmRvdywgRmFsc2UsIEJ1dHRvblByZXNzTWFzaywgKFhFdmVudCopJmJlKTsKLSsgICAgLy8gIHN0 ZDo6Y291dCA8PCAieHNlbmRldmVudDogIiA8PCBodWggPDwgIlxuIjsKLSsgICAgLy99Ci0rICAg IC8vWFN5bmMoZGlzcGxheSwgMCk7Ci0rICAgIC8vaW50IHd0ZiA9IFhBbGxvd0V2ZW50cyhkaXNw bGF5LCBSZXBsYXlQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIHRpbWUgbWVhbnMgc3F1YXQgLSB3 b3JrcyBidXQgbm90IGZvciBtZW51cwotKyAgICAvL3N0ZDo6Y291dCA8PCAieGFsbG93ZXZlbnRz OiAiIDw8IHd0ZiA8PCAiXG4iOwotKyAgICAvL1hTeW5jKGRpc3BsYXksIDApOwotKyAgICAvL1hB bGxvd0V2ZW50cyhkaXNwbGF5LCBSZXBsYXlQb2ludGVyLCBiZS50aW1lKTsgLy8gdGltZSBtZWFu cyBzcXVhdCAtIHdvcmtzIGJ1dCBub3QgZm9yIG1lbnVzCi0rICAgIC8vWEFsbG93RXZlbnRzKGRp c3BsYXksIFN5bmNQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIHN5bmMgd2lsbCBub3QgZG91Ymxl Y2xpY2sgb3IgYWN0IHByb3BlcgotKyAgICAvL1hBbGxvd0V2ZW50cyhkaXNwbGF5LCBBc3luY1Bv aW50ZXIsIEN1cnJlbnRUaW1lKTsgLy8gXl4gc2FtZQotKyAgICAvL2lmIChiZS5zdWJ3aW5kb3cp Ci0rICAgIC8vICBYRmx1c2goZGlzcGxheSk7Ci0rICAgIC8vICAvL1hTeW5jKGRpc3BsYXksIFRy dWUpOwotIH0KLSAKLSBjb25zdCB1bnNpZ25lZCBpbnQgREVBRFpPTkUgPSA0OwotIAotIHZvaWQg Rmx1eGJveFdpbmRvdzo6YnV0dG9uUmVsZWFzZUV2ZW50KFhCdXR0b25FdmVudCAmcmUpIHsKLSAK LS0gICAgaWYgKG1fbGFzdF9wcmVzc2VkX2J1dHRvbiA9PSBzdGF0aWNfY2FzdDxpbnQ+KHJlLmJ1 dHRvbikpIHsKLS0gICAgICAgIG1fbGFzdF9wcmVzc2VkX2J1dHRvbiA9IDA7Ci0tICAgIH0KLSAK LSAgICAgaWYgKGlzTW92aW5nKCkpCi0gICAgICAgICBzdG9wTW92aW5nKCk7Ci1AQCAtMjUwMiw2 ICsyNDkyLDEzIEBAIHZvaWQgRmx1eGJveFdpbmRvdzo6YnV0dG9uUmVsZWFzZUV2ZW50KFhCdXR0 b25FdmVudCAmcmUpIHsKLSAKLSAgICAgICAgIEZsdXhib3g6Omluc3RhbmNlKCktPmtleXMoKS0+ ZG9BY3Rpb24ocmUudHlwZSwgcmUuc3RhdGUsIHJlLmJ1dHRvbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCwgJndpbkNsaWVudCgpLCByZS50 aW1lKTsKLSsgICAgICAvLyBzeW5jcyBkb250IG1ha2UgYSBkaWZmZXJlbmNlPwotKyAgICAgIC8v WFN5bmMoZGlzcGxheSwgMCk7Ci0rICAgICAgWEFsbG93RXZlbnRzKGRpc3BsYXksIFJlcGxheVBv aW50ZXIsIEN1cnJlbnRUaW1lKTsgLy8gdGltZSBtZWFucyBzcXVhdCAtIHdvcmtzIGJ1dCBub3Qg Zm9yIG1lbnVzCi0rICAgICAgLy9YU3luYyhkaXNwbGF5LCAwKTsKLSsgICAgfQotKyAgICBpZiAo bV9sYXN0X3ByZXNzZWRfYnV0dG9uID09IHN0YXRpY19jYXN0PGludD4ocmUuYnV0dG9uKSkgewot KyAgICAgICAgbV9sYXN0X3ByZXNzZWRfYnV0dG9uID0gMDsKLSAgICAgfQotIH0KLSAKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3VuY2x1dHRlcl9maXhfd29ya3NwYWNlY21k LnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvdW5jbHV0dGVyX2ZpeF93b3Jrc3BhY2Vj bWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2YzU3MmNlYTRmZi4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3VuY2x1dHRlcl9maXhfd29y a3NwYWNlY21kLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotZGlmZiAtLWdp dCBhL3NyYy9Xb3Jrc3BhY2VDbWQuY2MgYi9zcmMvV29ya3NwYWNlQ21kLmNjCi1pbmRleCBjMmU0 OTQ4NS4uOWI0MDU4YzggMTAwNjQ0Ci0tLS0gYS9zcmMvV29ya3NwYWNlQ21kLmNjCi0rKysgYi9z cmMvV29ya3NwYWNlQ21kLmNjCi1AQCAtNTIxLDIyICs1MjEsMjQgQEAgdm9pZCBBcnJhbmdlV2lu ZG93c0NtZDo6ZXhlY3V0ZSgpIHsKLSAgICAgY29uc3QgdW5zaWduZWQgaW50IGNhbF93aWR0aCA9 IG1heF93aWR0aC9jb2xzOyAvLyB3aWR0aCByYXRpbyAod2lkdGggb2YgZXZlcnkgd2luZG93KQot ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgY2FsX2hlaWdodCA9IG1heF9oZWlnaHQvcm93czsgLy8g aGVpZ2h0IHJhdGlvIChoZWlnaHQgb2YgZXZlcnkgd2luZG93KQotCi0rICAgIGludCBjZWxsX2Nl bnRlcl94ID0gMCwgY2VsbF9jZW50ZXJfeSA9IDAsIHdpbl9jZW50ZXJfeCA9IDAsIHdpbl9jZW50 ZXJfeSA9IDAsIHggPSAwLCB5ID0gMDsKLSsgICAgdW5zaWduZWQgaW50IGNsb3Nlc3RfZGlzdCA9 IH4wLCBkaXN0ID0gMCwgdyA9IDAsIGggPSAwOwotICAgICAvLyBSZXNpemVzIGFuZCBzZXRzIHdp bmRvd3MgcG9zaXRpb25zIGluIGNvbHVtbnMgYW5kIHJvd3MuCi0gICAgIGZvciAoaSA9IDA7IGkg PCByb3dzOyArK2kpIHsKLSAgICAgICAgIHhfb2ZmcyA9IG9yaWdfeF9vZmZzOwotICAgICAgICAg Zm9yIChqID0gMDsgaiA8IGNvbHMgJiYgIW5vcm1hbF93aW5kb3dzLmVtcHR5KCk7ICsraikgewot Ci0KLS0gICAgICAgICAgICBpbnQgY2VsbF9jZW50ZXJfeCA9IHhfb2ZmcyArICh4X29mZnMgKyBj YWxfd2lkdGgpIC8gMjsKLS0gICAgICAgICAgICBpbnQgY2VsbF9jZW50ZXJfeSA9IHlfb2ZmcyAr ICh5X29mZnMgKyBjYWxfaGVpZ2h0KSAvIDI7Ci0tICAgICAgICAgICAgdW5zaWduZWQgaW50IGNs b3Nlc3RfZGlzdCA9IH4wOwotKyAgICAgICAgICAgIGNlbGxfY2VudGVyX3ggPSB4X29mZnMgKyAo eF9vZmZzICsgY2FsX3dpZHRoKSAvIDI7Ci0rICAgICAgICAgICAgY2VsbF9jZW50ZXJfeSA9IHlf b2ZmcyArICh5X29mZnMgKyBjYWxfaGVpZ2h0KSAvIDI7Ci0rICAgICAgICAgICAgaW50IGNsb3Nl c3RfZGlzdCA9IH4wOwotCi0gICAgICAgICAgICAgV29ya3NwYWNlOjpXaW5kb3dzOjppdGVyYXRv ciBjbG9zZXN0ID0gbm9ybWFsX3dpbmRvd3MuZW5kKCk7Ci0gICAgICAgICAgICAgZm9yICh3aW4g PSBub3JtYWxfd2luZG93cy5iZWdpbigpOyB3aW4gIT0gbm9ybWFsX3dpbmRvd3MuZW5kKCk7ICsr d2luKSB7Ci0KLS0gICAgICAgICAgICAgICAgaW50IHdpbl9jZW50ZXJfeCA9ICgqd2luKS0+ZnJh bWUoKS54KCkgKyAoKCp3aW4pLT5mcmFtZSgpLngoKSArICgqd2luKS0+ZnJhbWUoKS53aWR0aCgp IC8gMik7Ci0tICAgICAgICAgICAgICAgIGludCB3aW5fY2VudGVyX3kgPSAoKndpbiktPmZyYW1l KCkueSgpICsgKCgqd2luKS0+ZnJhbWUoKS55KCkgKyAoKndpbiktPmZyYW1lKCkuaGVpZ2h0KCkg LyAyKTsKLS0gICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRpc3QgPSAod2luX2NlbnRlcl94 IC0gY2VsbF9jZW50ZXJfeCkgKiAod2luX2NlbnRlcl94IC0gY2VsbF9jZW50ZXJfeCkgKwotKyAg ICAgICAgICAgICAgICB3aW5fY2VudGVyX3ggPSAoKndpbiktPmZyYW1lKCkueCgpICsgKCgqd2lu KS0+ZnJhbWUoKS54KCkgKyAoKndpbiktPmZyYW1lKCkud2lkdGgoKSAvIDIpOwotKyAgICAgICAg ICAgICAgICB3aW5fY2VudGVyX3kgPSAoKndpbiktPmZyYW1lKCkueSgpICsgKCgqd2luKS0+ZnJh bWUoKS55KCkgKyAoKndpbiktPmZyYW1lKCkuaGVpZ2h0KCkgLyAyKTsKLSsgICAgICAgICAgICAg ICAgZGlzdCA9ICh3aW5fY2VudGVyX3ggLSBjZWxsX2NlbnRlcl94KSAqICh3aW5fY2VudGVyX3gg LSBjZWxsX2NlbnRlcl94KSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHdpbl9jZW50ZXJfeSAtIGNlbGxfY2VudGVyX3kpICogKHdpbl9jZW50ZXJfeSAtIGNlbGxfY2Vu dGVyX3kpOwotCi0gICAgICAgICAgICAgICAgIGlmIChkaXN0IDwgY2xvc2VzdF9kaXN0KSB7Ci1A QCAtNTQ1LDEwICs1NDcsMTAgQEAgdm9pZCBBcnJhbmdlV2luZG93c0NtZDo6ZXhlY3V0ZSgpIHsK LSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLQotLSAgICAgICAgICAgIGludCB4 ID0geF9vZmZzICsgKCpjbG9zZXN0KS0+eE9mZnNldCgpOwotLSAgICAgICAgICAgIGludCB5ID0g eV9vZmZzICsgKCpjbG9zZXN0KS0+eU9mZnNldCgpOwotLSAgICAgICAgICAgIHVuc2lnbmVkIGlu dCB3ID0gY2FsX3dpZHRoIC0gKCpjbG9zZXN0KS0+d2lkdGhPZmZzZXQoKTsKLS0gICAgICAgICAg ICB1bnNpZ25lZCBpbnQgaCA9IGNhbF9oZWlnaHQgLSAoKmNsb3Nlc3QpLT5oZWlnaHRPZmZzZXQo KTsKLSsgICAgICAgICAgICB4ID0geF9vZmZzICsgKCpjbG9zZXN0KS0+eE9mZnNldCgpOwotKyAg ICAgICAgICAgIHkgPSB5X29mZnMgKyAoKmNsb3Nlc3QpLT55T2Zmc2V0KCk7Ci0rICAgICAgICAg ICAgdyA9IGNhbF93aWR0aCAtICgqY2xvc2VzdCktPndpZHRoT2Zmc2V0KCk7Ci0rICAgICAgICAg ICAgaCA9IGNhbF9oZWlnaHQgLSAoKmNsb3Nlc3QpLT5oZWlnaHRPZmZzZXQoKTsKLQotICAgICAg ICAgICAgIC8vIHRoZSBsYXN0IHdpbmRvdyBnZXRzIGV2ZXJ5dGhpbmcgdGhhdCBpcyBsZWZ0Lgot ICAgICAgICAgICAgIGlmIChub3JtYWxfd2luZG93cy5zaXplKCkgPT0gMSkgewotQEAgLTYyMCwx MiArNjIyLDkgQEAgdm9pZCBVbmNsdXR0ZXJDbWQ6OmV4ZWN1dGUoKSB7Ci0gICAgICAgICByZXR1 cm47Ci0KLSAgICAgLy8gcGxhY2UKLS0gICAgTWluT3ZlcmxhcFBsYWNlbWVudCBtb3BwOwotICAg ICBpbnQgeCwgeTsKLS0gICAgZm9yICh3aW4gPSBwbGFjZWRfd2luZG93cy5iZWdpbigpOyB3aW4g IT0gcGxhY2VkX3dpbmRvd3MuZW5kKCk7ICsrd2luKSB7Ci0tICAgICAgICBtb3BwLnBsYWNlV2lu ZG93KCoqd2luLCBoZWFkLCB4LCB5KTsKLS0gICAgICAgICgqd2luKS0+bW92ZSh4LCB5KTsKLS0g ICAgfQotKyAgICBmb3IgKHdpbiA9IHBsYWNlZF93aW5kb3dzLmJlZ2luKCk7IHdpbiAhPSBwbGFj ZWRfd2luZG93cy5lbmQoKTsgKyt3aW4pCi0rICAgICAgICAoKndpbiktPnBsYWNlV2luZG93KCgq d2luKS0+Z2V0T25IZWFkKCkpOwotIH0KLQotIFJFR0lTVEVSX0NPTU1BTkQoc2hvd2Rlc2t0b3As IFNob3dEZXNrdG9wQ21kLCB2b2lkKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL3pvcl9sb29wcy5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29wcy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVkOTkyZjkwNzFkLi4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvem9yX2xvb3BzLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3NyYy9GYlRrL1NUTFV0aWwu aGggYi9zcmMvRmJUay9TVExVdGlsLmhoCi1pbmRleCBhYmM1NDcyOS4uOWM5YzI3ZjkgMTAwNjQ0 Ci0tLS0gYS9zcmMvRmJUay9TVExVdGlsLmhoCi0rKysgYi9zcmMvRmJUay9TVExVdGlsLmhoCi1A QCAtNDgsNDYgKzQ4LDYzIEBAIHN0cnVjdCBJZlRoZW5FbHNlPGZhbHNlLCBUYSwgVGI+IHsKLSAv Ly8gY2FsbHMgZGVsZXRlIG9uIGVhY2ggaXRlbSBpbiB0aGUgY29udGFpbmVyIGFuZCB0aGVuIGNs ZWFycyB0aGUgY29udGFpbmVyCi0gdGVtcGxhdGUgPHR5cGVuYW1lIEE+Ci0gdm9pZCBkZXN0cm95 QW5kQ2xlYXIoQSAmYSkgewotLSAgICB0eXBlZGVmIHR5cGVuYW1lIEE6Oml0ZXJhdG9yIGl0ZXJh dG9yOwotLSAgICBpdGVyYXRvciBpdCA9IGEuYmVnaW4oKTsKLS0gICAgaXRlcmF0b3IgaXRfZW5k ID0gYS5lbmQoKTsKLS0gICAgZm9yICg7IGl0ICE9IGl0X2VuZDsgKytpdCkKLS0gICAgICAgIGRl bGV0ZSAoKml0KTsKLSsgICAgLy90eXBlZGVmIHR5cGVuYW1lIEE6Oml0ZXJhdG9yIGl0ZXJhdG9y OwotKyAgICAvL2l0ZXJhdG9yIGl0ID0gYS5iZWdpbigpOwotKyAgICAvL2l0ZXJhdG9yIGl0X2Vu ZCA9IGEuZW5kKCk7Ci0rICAgIC8vZm9yICg7IGl0ICE9IGl0X2VuZDsgKytpdCkKLSsgICAgLy8g ICAgZGVsZXRlICgqaXQpOwotIAotKyAgICAvL2EuY2xlYXIoKTsKLSsgICAgdHlwZWRlZiB0eXBl bmFtZSBBOjppdGVyYXRvciBpdGVyYXRvcjsKLSsgICAgZm9yIChhdXRvIGl0IDogYSkKLSsgICAg ICAgIGRlbGV0ZSBpdDsKLSAgICAgYS5jbGVhcigpOwotIH0KLSAKLSAvLy8gY2FsbHMgZGVsZXRl IG9uIGVhY2ggaXRlbSB2YWx1ZSBpbiB0aGUgbWFwIGFuZCB0aGVuIGNsZWFycyB0aGUgbWFwCi0g dGVtcGxhdGUgPHR5cGVuYW1lIEE+Ci0gdm9pZCBkZXN0cm95QW5kQ2xlYXJTZWNvbmQoQSAmYSkg ewotKyAgICAvL3R5cGVkZWYgdHlwZW5hbWUgQTo6aXRlcmF0b3IgaXRlcmF0b3I7Ci0rICAgIC8v aXRlcmF0b3IgaXQgPSBhLmJlZ2luKCk7Ci0rICAgIC8vaXRlcmF0b3IgaXRfZW5kID0gYS5lbmQo KTsKLSsgICAgLy9mb3IgKDsgaXQgIT0gaXRfZW5kOyArK2l0KQotKyAgICAvLyAgICBkZWxldGUg aXQtPnNlY29uZDsKLSsgICAgLy9hLmNsZWFyKCk7Ci0gICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6 aXRlcmF0b3IgaXRlcmF0b3I7Ci0tICAgIGl0ZXJhdG9yIGl0ID0gYS5iZWdpbigpOwotLSAgICBp dGVyYXRvciBpdF9lbmQgPSBhLmVuZCgpOwotLSAgICBmb3IgKDsgaXQgIT0gaXRfZW5kOyArK2l0 KQotLSAgICAgICAgZGVsZXRlIGl0LT5zZWNvbmQ7Ci0rICAgIGZvciAoYXV0byBpdCA6IGEpCi0r ICAgICAgICBkZWxldGUgaXQuc2Vjb25kOwotICAgICBhLmNsZWFyKCk7Ci0gfQotIAotIAotIHRl bXBsYXRlIDx0eXBlbmFtZSBDLCB0eXBlbmFtZSBGPgotIEYgZm9yQWxsKEMmIGMsIEYgZikgewot KyAgICAvL3R5cGVkZWYgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7Ci0rICAgIC8vaXRl cmF0b3IgaSA9IGMuYmVnaW4oKTsKLSsgICAgLy9pdGVyYXRvciBlID0gYy5lbmQoKTsKLSsgICAg Ly9mb3IgKDsgaSAhPSBlOyBpKyspIHsKLSsgICAgLy8gICAgZigqaSk7Ci0rICAgIC8vfQotICAg ICB0eXBlZGVmIHR5cGVuYW1lIEM6Oml0ZXJhdG9yIGl0ZXJhdG9yOwotLSAgICBpdGVyYXRvciBp ID0gYy5iZWdpbigpOwotLSAgICBpdGVyYXRvciBlID0gYy5lbmQoKTsKLS0gICAgZm9yICg7IGkg IT0gZTsgaSsrKSB7Ci0tICAgICAgICBmKCppKTsKLS0gICAgfQotKyAgICBmb3IgKGF1dG8gaSA6 IGMpCi0rICAgICAgICBmKGkpOwotICAgICByZXR1cm4gZjsKLSB9Ci0gCi0gdGVtcGxhdGUgPHR5 cGVuYW1lIEMsIHR5cGVuYW1lIEksIHR5cGVuYW1lIEY+Ci0gRiBmb3JBbGxJZihDJiBjLCBJIGks IEYgZikgewotKyAgICAvL3R5cGVkZWYgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7Ci0r ICAgIC8vaXRlcmF0b3IgaXQgPSBjLmJlZ2luKCk7Ci0rICAgIC8vaXRlcmF0b3IgZW5kID0gYy5l bmQoKTsKLSsgICAgLy9mb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7Ci0rICAgIC8vICAgIGlmIChp KCppdCkpCi0rICAgIC8vICAgICAgICBmKCppdCk7Ci0rICAgIC8vfQotKyAgICAvL3JldHVybiBm OwotICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6Oml0ZXJhdG9yIGl0ZXJhdG9yOwotLSAgICBpdGVy YXRvciBpdCA9IGMuYmVnaW4oKTsKLS0gICAgaXRlcmF0b3IgZW5kID0gYy5lbmQoKTsKLS0gICAg Zm9yICg7IGl0ICE9IGVuZDsgKytpdCkgewotLSAgICAgICAgaWYgKGkoKml0KSkKLS0gICAgICAg ICAgICBmKCppdCk7Ci0rICAgIGZvciAoYXV0byBpdCA6IGMpIHsKLSsgICAgICAgIGlmIChpKGl0 KSkKLSsgICAgICAgICAgICBmKGl0KTsKLSAgICAgfQotICAgICByZXR1cm4gZjsKLSB9CmRpZmYg LS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvdGVtcGxhdGUgYi9zcmNwa2dzL2ZsdXhib3gvdGVtcGxh dGUKaW5kZXggNmIwZTRjZDI2MGNiLi5lMTBiNDI2YzQ5MjQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Zmx1eGJveC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZsdXhib3gvdGVtcGxhdGUKQEAgLTEsNTYg KzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZsdXhib3gnCiBwa2duYW1lPWZsdXhib3gK LXZlcnNpb249MS4zLjgKLSNub3N0cmlwPW5vc3RyaXAKLV9jb21taXQ9ZTJjYmQxNzllY2IyZWYy ZDc2ZTBhZDFmZGU4NGI0NDMyNTMwNTc5OQotcmV2aXNpb249MAotd3Jrc3JjPWZsdXhib3gtJHtf Y29tbWl0fQordmVyc2lvbj0xLjMuNworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZp Z3VyZQotY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1ubHMgLS1kaXNhYmxlLXhpbmVyYW1hIC0t ZGlzYWJsZS1zaGFwZSAtLWRpc2FibGUteHJlbmRlcgotIC0tZGlzYWJsZS1mcmliaWRpIC0tZGlz YWJsZS1zbGl0Citjb25maWd1cmVfYXJncz0iLS1lbmFibGUtbmxzCiAgYWNfY3ZfbGliX1gxMV9Y T3BlbkRpc3BsYXk9eWVzIGFjX2N2X2xpYl9YZnRfWGZ0Rm9udE9wZW49eWVzCiAgYWNfY3ZfbGli X1hyZW5kZXJfWFJlbmRlckNyZWF0ZVBpY3R1cmU9eWVzIGFjX2N2X2xpYl9YcG1fWHBtUmVhZEZp bGVUb1BpeG1hcD15ZXMKLSBhY19jdl9saWJfWGV4dF9YU2hhcGVDb21iaW5lU2hhcGU9bm8KKyBh Y19jdl9saWJfWGluZXJhbWFfWGluZXJhbWFRdWVyeVNjcmVlbnM9eWVzIGFjX2N2X2xpYl9YZXh0 X1hTaGFwZUNvbWJpbmVTaGFwZT15ZXMKICBhY19jdl9saWJfWHJhbmRyX1hSUlF1ZXJ5RXh0ZW5z aW9uPXllcyBhY19jdl9saWJfZnJpYmlkaV9mcmliaWRpX3ZlcnNpb25faW5mbz15ZXMiCi1ob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgbGlidG9vbCBnZXR0ZXh0IGdldHRleHQt ZGV2ZWwgY2xhbmcgbGx2bSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBs aWJ0b29sIGdldHRleHQgZ2V0dGV4dC1kZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJTTS1kZXZlbCBs aWJYcmVuZGVyLWRldmVsIGxpYlhmdC1kZXZlbCBsaWJYcG0tZGV2ZWwgaW1saWIyLWRldmVsCi0g bGliWGV4dC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwgZnJpYmlkaS1kZXZlbCIKKyBsaWJYZXh0LWRl dmVsIGxpYlhpbmVyYW1hLWRldmVsIGxpYlhyYW5kci1kZXZlbCBmcmliaWRpLWRldmVsIgogc2hv cnRfZGVzYz0iSGlnaGx5IGNvbmZpZ3VyYWJsZSBhbmQgbG93IHJlc291cmNlIFgxMSBXaW5kb3cg bWFuYWdlciIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJNSVQiCiBob21lcGFnZT0iaHR0cDovL3d3dy5mbHV4Ym94Lm9yZyIKLWRpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL2ZsdXhib3gvZmx1eGJveC9hcmNoaXZlLyR7X2NvbW1pdH0u dGFyLmd6IgotY2hlY2tzdW09Njc0MGQ5Y2Q0YTNlNjMxZTAxMzBjYmNiYzkxY2NhYzZhZjYzMzVk YzEyMGY5YWRjNWViYmM4ZGM5ZDMyNTlhMAotCi1ub3BpZT15ZXMKLVgxMV9GTEFHUz0iLU9zIC1w aXBlIgotI0ZSSUJJRElfQ0ZMQUdTPSItT3MgLXBpcGUiCi1YUkFORFJfQ0ZMQUdTPSItT3MgLXBp cGUiCi1BTV9DUFBGTEFHUz0iLU9zIC1waXBlIgotQ0ZMQUdTPSItT3MgLXBpcGUiCi1DWFhGTEFH Uz0iLU9zIC1waXBlIC1zdGQ9YysrMTEiCi1DQz0iY2xhbmciCi1DWFg9ImNsYW5nKysiCi1IT1NU X0NDPWNsYW5nCi1IT1NUX0NYWD1jbGFuZysrCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9mbHV4Ym94L2ZsdXhib3gvYXJjaGl2ZS9yZWZzL3RhZ3MvUmVsZWFzZS0ke3ZlcnNpb24vLy4v X30udGFyLmd6IgorY2hlY2tzdW09OTkwNDE0YWUzNDJhMzVjNTcwM2U1MDI1YThiZjAxOWIwYjRk YWRhNTVkNTcwNzFjNTFkM2Q0OThhYmI1Y2QzNgogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElO RSIgaW4KIAkqLW11c2wpIGNvbmZpZ3VyZV9hcmdzPSIke2NvbmZpZ3VyZV9hcmdzL2VuYWJsZS1u bHMvZGlzYWJsZS1ubHN9IiA7OwogZXNhYwogCiBwcmVfY29uZmlndXJlKCkgewotICBleHBvcnQg WDExX0ZMQUdTPSItT3MgLXBpcGUiCi0gICMgZXhwb3J0IEZSSUJJRElfQ0ZMQUdTPSItT3MgLXBp cGUiCi0gIGV4cG9ydCBYUkFORFJfQ0ZMQUdTPSItT3MgLXBpcGUiCi0gIGV4cG9ydCBBTV9DUFBG TEFHUz0iLU9zIC1waXBlIgotICBleHBvcnQgQ0ZMQUdTPSItT3MgLXBpcGUiCi0gIGV4cG9ydCBD WFhGTEFHUz0iLU9zIC1waXBlIC1zdGQ9YysrMTEiCi0gIGV4cG9ydCBDQz0iY2xhbmciCi0gIGV4 cG9ydCBDWFg9ImNsYW5nKysiCi0gIGV4cG9ydCBIT1NUX0NDPWNsYW5nCi0gIGV4cG9ydCBIT1NU X0NYWD1jbGFuZysrCi0gIGV4cG9ydCBQUkVGSVg9L3VzcgotICAuL2F1dG9nZW4uc2gKKwkuL2F1 dG9nZW4uc2gKIH0KIAogcG9zdF9pbnN0YWxsKCkgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVl cmRwL3RlbXBsYXRlIGIvc3JjcGtncy9mcmVlcmRwL3RlbXBsYXRlCmluZGV4IDUzZTY3NjkwZjg2 My4uMWI1MGU5YTg2YmIyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZyZWVyZHAvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9mcmVlcmRwL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZnJlZXJkcCcKIHBrZ25hbWU9ZnJlZXJkcAogdmVyc2lvbj0yLjkuMAotcmV2aXNp b249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFdJ VEhfQUxTQT1PTiAtRFdJVEhfQ1VQUz1PRkYgLURXSVRIX0ZGTVBFRz1PTgogIC1EV0lUSF9HU1RS RUFNRVJfMF8xMD1PRkYgLURXSVRIX0dTVFJFQU1FUl8xXzA9T0ZGIC1EV0lUSF9KUEVHPU9OCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dlcmJlcmEvdGVtcGxhdGUgYi9zcmNwa2dzL2dlcmJlcmEvdGVt cGxhdGUKaW5kZXggYWUxNGYzNWM3NjdjLi4yZGMwYWMwY2UwM2IgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ2VyYmVyYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dlcmJlcmEvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZXJiZXJhJwogcGtnbmFtZT1nZXJiZXJh CiB2ZXJzaW9uPTEuMTIuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21h a2UKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhfU1lTVEVNRD0wIC1EV0lUSF9BVkNPREVDPTEiCiBo b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbGRlbmRp Y3QvcGF0Y2hlcy9mZm1wZWc1LTEucGF0Y2ggYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9m Zm1wZWc1LTEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43 Y2ZjOThhZGEzNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hl cy9mZm1wZWc1LTEucGF0Y2gKQEAgLTAsMCArMSwyMzIgQEAKK0Zyb20gMDNiYmUwMWI3OWExZjA3 YTY3ODBjYjYwZjIzYTA4NzEwNGM1ZDc3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IEFiczYyIDxvdHRvbWFubkB5YW5kZXgucnU+CitEYXRlOiBGcmksIDMwIE1hciAyMDE4IDIyOjUz OjI0ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCB3YXJuaW5ncyB3aGlsZSBjb21waWxlIHdp dGggRkZNcGVnIDMuNC4yIChpc3N1ZSAjOTc4KQorCistLS0KKyBmZm1wZWdhdWRpby5jYyB8IDY4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisgMSBm aWxlIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS9mZm1wZWdhdWRpby5jYyBiL2ZmbXBlZ2F1ZGlvLmNjCitpbmRleCBlZDExNzJiZGQuLjU2 ZThmNzg4ZSAxMDA2NDQKKy0tLSBhL2ZmbXBlZ2F1ZGlvLmNjCisrKysgYi9mZm1wZWdhdWRpby5j YworQEAgLTkxLDYgKzkxLDcgQEAgc3RydWN0IERlY29kZXJDb250ZXh0CisgICBRQnl0ZUFycmF5 IGF1ZGlvRGF0YV87CisgICBRRGF0YVN0cmVhbSBhdWRpb0RhdGFTdHJlYW1fOworICAgQVZGb3Jt YXRDb250ZXh0ICogZm9ybWF0Q29udGV4dF87CisrICBBVkNvZGVjICogY29kZWNfOworICAgQVZD b2RlY0NvbnRleHQgKiBjb2RlY0NvbnRleHRfOworICAgQVZJT0NvbnRleHQgKiBhdmlvQ29udGV4 dF87CisgICBBVlN0cmVhbSAqIGF1ZGlvU3RyZWFtXzsKK0BAIC0xMTQsNiArMTE1LDcgQEAgRGVj b2RlckNvbnRleHQ6OkRlY29kZXJDb250ZXh0KCBRQnl0ZUFycmF5IGNvbnN0ICYgYXVkaW9EYXRh LCBRQXRvbWljSW50ICYgaXNDYW4KKyAgIGF1ZGlvRGF0YV8oIGF1ZGlvRGF0YSApLAorICAgYXVk aW9EYXRhU3RyZWFtXyggYXVkaW9EYXRhXyApLAorICAgZm9ybWF0Q29udGV4dF8oIE5VTEwgKSwK KysgIGNvZGVjXyggTlVMTCApLAorICAgY29kZWNDb250ZXh0XyggTlVMTCApLAorICAgYXZpb0Nv bnRleHRfKCBOVUxMICksCisgICBhdWRpb1N0cmVhbV8oIE5VTEwgKSwKK0BAIC0xNDMsNyArMTQ1 LDExIEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6Om9wZW5Db2RlYyggUVN0cmluZyAmIGVycm9yU3Ry aW5nICkKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorCisrI2lmIExJQkFWQ09ERUNfVkVSU0lP Tl9NQUpPUiA8IDU2IHx8ICggTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID09IDU2ICYmIExJQkFW Q09ERUNfVkVSU0lPTl9NSU5PUiA8IDU2ICkKKyAgIHVuc2lnbmVkIGNoYXIgKiBhdmlvQnVmZmVy ID0gKCB1bnNpZ25lZCBjaGFyICogKWF2X21hbGxvYygga0J1ZmZlclNpemUgKyBGRl9JTlBVVF9C VUZGRVJfUEFERElOR19TSVpFICk7CisrI2Vsc2UKKysgIHVuc2lnbmVkIGNoYXIgKiBhdmlvQnVm ZmVyID0gKCB1bnNpZ25lZCBjaGFyICogKWF2X21hbGxvYygga0J1ZmZlclNpemUgKyBBVl9JTlBV VF9CVUZGRVJfUEFERElOR19TSVpFICk7CisrI2VuZGlmCisgICBpZiAoICFhdmlvQnVmZmVyICkK KyAgIHsKKyAgICAgZXJyb3JTdHJpbmcgPSBRT2JqZWN0Ojp0ciggImF2X21hbGxvYygpIGZhaWxl ZC4iICk7CitAQCAtMTg2LDcgKzE5MiwxMSBAQCBib29sIERlY29kZXJDb250ZXh0OjpvcGVuQ29k ZWMoIFFTdHJpbmcgJiBlcnJvclN0cmluZyApCisgICAvLyBGaW5kIGF1ZGlvIHN0cmVhbSwgdXNl IHRoZSBmaXJzdCBhdWRpbyBzdHJlYW0gaWYgYXZhaWxhYmxlCisgICBmb3IgKCB1bnNpZ25lZCBp ID0gMDsgaSA8IGZvcm1hdENvbnRleHRfLT5uYl9zdHJlYW1zOyBpKysgKQorICAgeworKyNpZiBM SUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1NyB8fCAoIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpP UiA9PSA1NyAmJiBMSUJBVkNPREVDX1ZFUlNJT05fTUlOT1IgPCAzMyApCisgICAgIGlmICggZm9y bWF0Q29udGV4dF8tPnN0cmVhbXNbaV0tPmNvZGVjLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQ RV9BVURJTyApCisrI2Vsc2UKKysgICAgICBpZiAoIGZvcm1hdENvbnRleHRfLT5zdHJlYW1zW2ld LT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfQVVESU8gKQorKyNlbmRpZgor ICAgICB7CisgICAgICAgYXVkaW9TdHJlYW1fID0gZm9ybWF0Q29udGV4dF8tPnN0cmVhbXNbaV07 CisgICAgICAgYnJlYWs7CitAQCAtMTk4LDIyICsyMDgsMzggQEAgYm9vbCBEZWNvZGVyQ29udGV4 dDo6b3BlbkNvZGVjKCBRU3RyaW5nICYgZXJyb3JTdHJpbmcgKQorICAgICByZXR1cm4gZmFsc2U7 CisgICB9CisKKysjaWYgTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SIDwgNTcgfHwgKCBMSUJBVkNP REVDX1ZFUlNJT05fTUFKT1IgPT0gNTcgJiYgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SIDwgMzMg KQorICAgY29kZWNDb250ZXh0XyA9IGF1ZGlvU3RyZWFtXy0+Y29kZWM7CistICBBVkNvZGVjICog Y29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVjb2RlciggY29kZWNDb250ZXh0Xy0+Y29kZWNfaWQgKTsK Ky0gIGlmICggIWNvZGVjICkKKysgIGNvZGVjXyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKCBjb2Rl Y0NvbnRleHRfLT5jb2RlY19pZCApOworKyAgaWYgKCAhY29kZWNfICkKKyAgIHsKKyAgICAgZXJy b3JTdHJpbmcgPSBRT2JqZWN0Ojp0ciggIkNvZGVjIFtpZDogJTFdIG5vdCBmb3VuZC4iICkuYXJn KCBjb2RlY0NvbnRleHRfLT5jb2RlY19pZCApOworICAgICByZXR1cm4gZmFsc2U7CisgICB9Cisr I2Vsc2UKKysgIGNvZGVjXyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKCBhdWRpb1N0cmVhbV8tPmNv ZGVjcGFyLT5jb2RlY19pZCApOworKyAgaWYgKCAhY29kZWNfICkKKysgIHsKKysgICAgZXJyb3JT dHJpbmcgPSBRT2JqZWN0Ojp0ciggIkNvZGVjIFtpZDogJTFdIG5vdCBmb3VuZC4iICkuYXJnKCBh dWRpb1N0cmVhbV8tPmNvZGVjcGFyLT5jb2RlY19pZCApOworKyAgICByZXR1cm4gZmFsc2U7Cisr ICB9CisrICBjb2RlY0NvbnRleHRfID0gYXZjb2RlY19hbGxvY19jb250ZXh0MyggY29kZWNfICk7 CisrICBpZiAoICFjb2RlY0NvbnRleHRfICkKKysgIHsKKysgICAgZXJyb3JTdHJpbmcgPSBRT2Jq ZWN0Ojp0ciggImF2Y29kZWNfYWxsb2NfY29udGV4dDMoKSBmYWlsZWQuIiApOworKyAgICByZXR1 cm4gZmFsc2U7CisrICB9CisrICBhdmNvZGVjX3BhcmFtZXRlcnNfdG9fY29udGV4dCggY29kZWND b250ZXh0XywgYXVkaW9TdHJlYW1fLT5jb2RlY3BhciApOworKyNlbmRpZgorCistICByZXQgPSBh dmNvZGVjX29wZW4yKCBjb2RlY0NvbnRleHRfLCBjb2RlYywgTlVMTCApOworKyAgcmV0ID0gYXZj b2RlY19vcGVuMiggY29kZWNDb250ZXh0XywgY29kZWNfLCBOVUxMICk7CisgICBpZiAoIHJldCA8 IDAgKQorICAgeworICAgICBlcnJvclN0cmluZyA9IFFPYmplY3Q6OnRyKCAiYXZjb2RlY19vcGVu MigpIGZhaWxlZDogJTEuIiApLmFyZyggYXZFcnJvclN0cmluZyggcmV0ICkgKTsKKyAgICAgcmV0 dXJuIGZhbHNlOworICAgfQorCistICBhdl9sb2coIE5VTEwsIEFWX0xPR19JTkZPLCAiQ29kZWMg b3BlbjogJXM6IGNoYW5uZWxzOiAlZCwgcmF0ZTogJWQsIGZvcm1hdDogJXNcbiIsIGNvZGVjLT5s b25nX25hbWUsCisrICBhdl9sb2coIE5VTEwsIEFWX0xPR19JTkZPLCAiQ29kZWMgb3BlbjogJXM6 IGNoYW5uZWxzOiAlZCwgcmF0ZTogJWQsIGZvcm1hdDogJXNcbiIsIGNvZGVjXy0+bG9uZ19uYW1l LAorICAgICAgICAgICBjb2RlY0NvbnRleHRfLT5jaGFubmVscywgY29kZWNDb250ZXh0Xy0+c2Ft cGxlX3JhdGUsIGF2X2dldF9zYW1wbGVfZm10X25hbWUoIGNvZGVjQ29udGV4dF8tPnNhbXBsZV9m bXQgKSApOworICAgcmV0dXJuIHRydWU7CisgfQorQEAgLTI1MiwxMCArMjc4LDEzIEBAIHZvaWQg RGVjb2RlckNvbnRleHQ6OmNsb3NlQ29kZWMoKQorCisgICAvLyBDbG9zaW5nIGEgY29kZWMgY29u dGV4dCB3aXRob3V0IHByaW9yIGF2Y29kZWNfb3BlbjIoKSB3aWxsIHJlc3VsdCBpbgorICAgLy8g YSBjcmFzaCBpbiBmZm1wZWcKKy0gIGlmICggYXVkaW9TdHJlYW1fICYmIGF1ZGlvU3RyZWFtXy0+ Y29kZWMgJiYgYXVkaW9TdHJlYW1fLT5jb2RlYy0+Y29kZWMgKQorKyAgaWYgKCBhdWRpb1N0cmVh bV8gJiYgY29kZWNDb250ZXh0XyAmJiBjb2RlY18gKQorICAgeworICAgICBhdWRpb1N0cmVhbV8t PmRpc2NhcmQgPSBBVkRJU0NBUkRfQUxMOworLSAgICBhdmNvZGVjX2Nsb3NlKCBhdWRpb1N0cmVh bV8tPmNvZGVjICk7CisrICAgIGF2Y29kZWNfY2xvc2UoIGNvZGVjQ29udGV4dF8gKTsKKysjaWYg TElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID4gNTcgfHwgKCBMSUJBVkNPREVDX1ZFUlNJT05fTUFK T1IgPT0gNTcgJiYgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SID49IDMzICkKKysgICAgYXZjb2Rl Y19mcmVlX2NvbnRleHQoICZjb2RlY0NvbnRleHRfICk7CisrI2VuZGlmCisgICB9CisKKyAgIGF2 Zm9ybWF0X2Nsb3NlX2lucHV0KCAmZm9ybWF0Q29udGV4dF8gKTsKK0BAIC0zNTYsNiArMzg1LDcg QEAgYm9vbCBEZWNvZGVyQ29udGV4dDo6cGxheSggUVN0cmluZyAmIGVycm9yU3RyaW5nICkKKyAg ICAgaWYgKCBwYWNrZXQuc3RyZWFtX2luZGV4ID09IGF1ZGlvU3RyZWFtXy0+aW5kZXggKQorICAg ICB7CisgICAgICAgQVZQYWNrZXQgcGFjayA9IHBhY2tldDsKKysjaWYgTElCQVZDT0RFQ19WRVJT SU9OX01BSk9SIDwgNTcgfHwgKCBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPT0gNTcgJiYgTElC QVZDT0RFQ19WRVJTSU9OX01JTk9SIDwgMzcgKQorICAgICAgIGludCBnb3RGcmFtZSA9IDA7Cisg ICAgICAgZG8KKyAgICAgICB7CitAQCAtMzcwLDYgKzQwMCwxOSBAQCBib29sIERlY29kZXJDb250 ZXh0OjpwbGF5KCBRU3RyaW5nICYgZXJyb3JTdHJpbmcgKQorICAgICAgICAgcGFjay5kYXRhICs9 IGxlbjsKKyAgICAgICB9CisgICAgICAgd2hpbGUoIHBhY2suc2l6ZSA+IDAgKTsKKysjZWxzZQor KyAgICAgIGludCByZXQgPSBhdmNvZGVjX3NlbmRfcGFja2V0KCBjb2RlY0NvbnRleHRfLCAmcGFj ayApOworKyAgICAgIC8qIHJlYWQgYWxsIHRoZSBvdXRwdXQgZnJhbWVzIChpbiBnZW5lcmFsIHRo ZXJlIG1heSBiZSBhbnkgbnVtYmVyIG9mIHRoZW0pICovCisrICAgICAgd2hpbGUoIHJldCA+PSAw ICkKKysgICAgICB7CisrICAgICAgICByZXQgPSBhdmNvZGVjX3JlY2VpdmVfZnJhbWUoIGNvZGVj Q29udGV4dF8sIGZyYW1lKTsKKysKKysgICAgICAgIGlmICggUXQ0eDU6OkF0b21pY0ludDo6bG9h ZEFjcXVpcmUoIGlzQ2FuY2VsbGVkXyApIHx8IHJldCA8IDAgKQorKyAgICAgICAgICBicmVhazsK KysKKysgICAgICAgIHBsYXlGcmFtZSggZnJhbWUgKTsKKysgICAgICB9CisrI2VuZGlmCisgICAg IH0KKyAgICAgLy8gYXZfZnJlZV9wYWNrZXQoKSBtdXN0IGJlIGNhbGxlZCBhZnRlciBlYWNoIGNh bGwgdG8gYXZfcmVhZF9mcmFtZSgpCisgI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA8IDU3 IHx8ICggTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID09IDU3ICYmIExJQkFWQ09ERUNfVkVSU0lP Tl9NSU5PUiA8IDcgKQorQEAgLTM3OSw2ICs0MjIsNyBAQCBib29sIERlY29kZXJDb250ZXh0Ojpw bGF5KCBRU3RyaW5nICYgZXJyb3JTdHJpbmcgKQorICNlbmRpZgorICAgfQorCisrI2lmIExJQkFW Q09ERUNfVkVSU0lPTl9NQUpPUiA8IDU3IHx8ICggTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID09 IDU3ICYmIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5PUiA8IDM3ICkKKyAgIGlmICggIVF0NHg1OjpB dG9taWNJbnQ6OmxvYWRBY3F1aXJlKCBpc0NhbmNlbGxlZF8gKSAmJgorICAgICAgICBjb2RlY0Nv bnRleHRfLT5jb2RlYy0+Y2FwYWJpbGl0aWVzICYgQ09ERUNfQ0FQX0RFTEFZICkKKyAgIHsKK0BA IC0zOTEsNiArNDM1LDE4IEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6OnBsYXkoIFFTdHJpbmcgJiBl cnJvclN0cmluZyApCisgICAgICAgcGxheUZyYW1lKCBmcmFtZSApOworICAgICB9CisgICB9Cisr I2Vsc2UKKysgIC8qIGZsdXNoIHRoZSBkZWNvZGVyICovCisrICBhdl9pbml0X3BhY2tldCggJnBh Y2tldCApOworKyAgaW50IHJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQoY29kZWNDb250ZXh0Xywg JnBhY2tldCApOworKyAgd2hpbGUoIHJldCA+PSAwICkKKysgIHsKKysgICAgcmV0ID0gYXZjb2Rl Y19yZWNlaXZlX2ZyYW1lKGNvZGVjQ29udGV4dF8sIGZyYW1lKTsKKysgICAgaWYgKCBRdDR4NTo6 QXRvbWljSW50Ojpsb2FkQWNxdWlyZSggaXNDYW5jZWxsZWRfICkgfHwgcmV0IDwgMCApCisrICAg ICAgYnJlYWs7CisrICAgIHBsYXlGcmFtZSggZnJhbWUgKTsKKysgIH0KKysjZW5kaWYKKworICNp ZiBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1NAorICAgYXZfZnJlZSggZnJhbWUgKTsKKzMy CitzcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0Y2gKK0NvbW1lbnQgb24g dGhpcyBmaWxlCitAQCAtMCwwICsxLDMyIEBACitGcm9tIDk2NmY0YThiNzhlNjMyNGI5MzBlNWE1 MGYyYmI5MzBiZDg3ZTU2NWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBYnM2MiA8 b3R0b21hbm5AeWFuZGV4LnJ1PgorRGF0ZTogRnJpLCAyNyBTZXAgMjAxOSAxNzowMDo1MiArMDMw MAorU3ViamVjdDogW1BBVENIXSBGRm1wZWcgcGxheWVyOiBGaXggc29tZSBjcmFzaGVzIG9uIGJy b2tlbiBmaWxlcworCistLS0KKyBmZm1wZWdhdWRpby5jYyB8IDQgKysrKworIDEgZmlsZSBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2ZmbXBlZ2F1ZGlvLmNjIGIvZmZt cGVnYXVkaW8uY2MKK2luZGV4IDU2ZThmNzg4ZS4uNDE1ZmM3OWNiIDEwMDY0NAorLS0tIGEvZmZt cGVnYXVkaW8uY2MKKysrKyBiL2ZmbXBlZ2F1ZGlvLmNjCitAQCAtNTEsNyArNTEsOSBAQCBBdWRp b1NlcnZpY2UgJiBBdWRpb1NlcnZpY2U6Omluc3RhbmNlKCkKKworIEF1ZGlvU2VydmljZTo6QXVk aW9TZXJ2aWNlKCkKKyB7CisrI2lmIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgPCA1OCB8fCAo IExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgPT0gNTggJiYgTElCQVZGT1JNQVRfVkVSU0lPTl9N SU5PUiA8IDkgKQorICAgYXZfcmVnaXN0ZXJfYWxsKCk7CisrI2VuZGlmCisgICBhb19pbml0aWFs aXplKCk7CisgfQorCitAQCAtNDM4LDYgKzQ0MCw4IEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6OnBs YXkoIFFTdHJpbmcgJiBlcnJvclN0cmluZyApCisgI2Vsc2UKKyAgIC8qIGZsdXNoIHRoZSBkZWNv ZGVyICovCisgICBhdl9pbml0X3BhY2tldCggJnBhY2tldCApOworKyAgcGFja2V0LmRhdGEgPSBO VUxMOworKyAgcGFja2V0LnNpemUgPSAwOworICAgaW50IHJldCA9IGF2Y29kZWNfc2VuZF9wYWNr ZXQoY29kZWNDb250ZXh0XywgJnBhY2tldCApOworICAgd2hpbGUoIHJldCA+PSAwICkKKyAgIHsK KzI1CitzcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTMucGF0Y2gKK0NvbW1lbnQg b24gdGhpcyBmaWxlCitAQCAtMCwwICsxLDI1IEBACitGcm9tIDhhY2IyODhjOWU5YmRiM2M2YmYy ZTgwMzk1NGRkM2I2YWMyNzNjMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMaWFv IEp1bnh1YW4gPG1pa2VsanhAMTI2LmNvbT4KK0RhdGU6IFN1biwgMjAgRmViIDIwMjIgMTI6Mjg6 MDUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gYWRkIHN1cHBvcnQgZm9yIGZmbXBlZyA1LjAKKwor LS0tCisgZmZtcGVnYXVkaW8uY2MgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspCisKK2RpZmYgLS1naXQgYS9mZm1wZWdhdWRpby5jYyBiL2ZmbXBlZ2F1ZGlvLmNjCitp bmRleCBkNTUwZjRhNzcuLjc5NDhkMjE4NyAxMDA2NDQKKy0tLSBhL2ZmbXBlZ2F1ZGlvLmNjCisr KysgYi9mZm1wZWdhdWRpby5jYworQEAgLTk0LDcgKzk0LDExIEBAIHN0cnVjdCBEZWNvZGVyQ29u dGV4dAorICAgUUJ5dGVBcnJheSBhdWRpb0RhdGFfOworICAgUURhdGFTdHJlYW0gYXVkaW9EYXRh U3RyZWFtXzsKKyAgIEFWRm9ybWF0Q29udGV4dCAqIGZvcm1hdENvbnRleHRfOworKyNpZiBMSUJB VkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1OQorICAgQVZDb2RlYyAqIGNvZGVjXzsKKysjZWxzZQor KyAgY29uc3QgQVZDb2RlYyAqIGNvZGVjXzsKKysjZW5kaWYKKyAgIEFWQ29kZWNDb250ZXh0ICog Y29kZWNDb250ZXh0XzsKKyAgIEFWSU9Db250ZXh0ICogYXZpb0NvbnRleHRfOworICAgQVZTdHJl YW0gKiBhdWRpb1N0cmVhbV87CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hl cy9mZm1wZWc1LTIucGF0Y2ggYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45YzQ3N2IwYzEz NDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1 LTIucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAorCitGcm9tIDk2NmY0YThiNzhlNjMyNGI5MzBlNWE1 MGYyYmI5MzBiZDg3ZTU2NWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBYnM2MiA8 b3R0b21hbm5AeWFuZGV4LnJ1PgorRGF0ZTogRnJpLCAyNyBTZXAgMjAxOSAxNzowMDo1MiArMDMw MAorU3ViamVjdDogW1BBVENIXSBGRm1wZWcgcGxheWVyOiBGaXggc29tZSBjcmFzaGVzIG9uIGJy b2tlbiBmaWxlcworCistLS0KKyBmZm1wZWdhdWRpby5jYyB8IDQgKysrKworIDEgZmlsZSBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2ZmbXBlZ2F1ZGlvLmNjIGIvZmZt cGVnYXVkaW8uY2MKK2luZGV4IDU2ZThmNzg4ZS4uNDE1ZmM3OWNiIDEwMDY0NAorLS0tIGEvZmZt cGVnYXVkaW8uY2MKKysrKyBiL2ZmbXBlZ2F1ZGlvLmNjCitAQCAtNTEsNyArNTEsOSBAQCBBdWRp b1NlcnZpY2UgJiBBdWRpb1NlcnZpY2U6Omluc3RhbmNlKCkKKworIEF1ZGlvU2VydmljZTo6QXVk aW9TZXJ2aWNlKCkKKyB7CisrI2lmIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgPCA1OCB8fCAo IExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgPT0gNTggJiYgTElCQVZGT1JNQVRfVkVSU0lPTl9N SU5PUiA8IDkgKQorICAgYXZfcmVnaXN0ZXJfYWxsKCk7CisrI2VuZGlmCisgICBhb19pbml0aWFs aXplKCk7CisgfQorCitAQCAtNDM4LDYgKzQ0MCw4IEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6OnBs YXkoIFFTdHJpbmcgJiBlcnJvclN0cmluZyApCisgI2Vsc2UKKyAgIC8qIGZsdXNoIHRoZSBkZWNv ZGVyICovCisgICBhdl9pbml0X3BhY2tldCggJnBhY2tldCApOworKyAgcGFja2V0LmRhdGEgPSBO VUxMOworKyAgcGFja2V0LnNpemUgPSAwOworICAgaW50IHJldCA9IGF2Y29kZWNfc2VuZF9wYWNr ZXQoY29kZWNDb250ZXh0XywgJnBhY2tldCApOworICAgd2hpbGUoIHJldCA+PSAwICkKKyAgIHsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaCBi L3NyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcyMTAxOTAzZDFkMQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaApAQCAtMCwwICsx LDI1IEBACitGcm9tIDhhY2IyODhjOWU5YmRiM2M2YmYyZTgwMzk1NGRkM2I2YWMyNzNjMDUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMaWFvIEp1bnh1YW4gPG1pa2VsanhAMTI2LmNv bT4KK0RhdGU6IFN1biwgMjAgRmViIDIwMjIgMTI6Mjg6MDUgKzA4MDAKK1N1YmplY3Q6IFtQQVRD SF0gYWRkIHN1cHBvcnQgZm9yIGZmbXBlZyA1LjAKKworLS0tCisgZmZtcGVnYXVkaW8uY2MgfCA0 ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9m Zm1wZWdhdWRpby5jYyBiL2ZmbXBlZ2F1ZGlvLmNjCitpbmRleCBkNTUwZjRhNzcuLjc5NDhkMjE4 NyAxMDA2NDQKKy0tLSBhL2ZmbXBlZ2F1ZGlvLmNjCisrKysgYi9mZm1wZWdhdWRpby5jYworQEAg LTk0LDcgKzk0LDExIEBAIHN0cnVjdCBEZWNvZGVyQ29udGV4dAorICAgUUJ5dGVBcnJheSBhdWRp b0RhdGFfOworICAgUURhdGFTdHJlYW0gYXVkaW9EYXRhU3RyZWFtXzsKKyAgIEFWRm9ybWF0Q29u dGV4dCAqIGZvcm1hdENvbnRleHRfOworKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1 OQorICAgQVZDb2RlYyAqIGNvZGVjXzsKKysjZWxzZQorKyAgY29uc3QgQVZDb2RlYyAqIGNvZGVj XzsKKysjZW5kaWYKKyAgIEFWQ29kZWNDb250ZXh0ICogY29kZWNDb250ZXh0XzsKKyAgIEFWSU9D b250ZXh0ICogYXZpb0NvbnRleHRfOworICAgQVZTdHJlYW0gKiBhdWRpb1N0cmVhbV87CmRpZmYg LS1naXQgYS9zcmNwa2dzL2dvbGRlbmRpY3QvdGVtcGxhdGUgYi9zcmNwa2dzL2dvbGRlbmRpY3Qv dGVtcGxhdGUKaW5kZXggZjQxYjViMmM2ODk5Li40NTQ0YWU3MTBlZTYgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ29sZGVuZGljdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dvbGRlbmRpY3QvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnb2xkZW5kaWN0JwogcGtn bmFtZT1nb2xkZW5kaWN0CiB2ZXJzaW9uPTEuNS4wUkMyCi1yZXZpc2lvbj01CityZXZpc2lvbj02 CiBidWlsZF9zdHlsZT1xbWFrZQogY29uZmlndXJlX2FyZ3M9IkNPTkZJRys9emltX3N1cHBvcnQi CiBob3N0bWFrZWRlcGVuZHM9InF0NS1xbWFrZSBwa2ctY29uZmlnIHF0NS1ob3N0LXRvb2xzIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nc3QtbGliYXYvdGVtcGxhdGUgYi9zcmNwa2dzL2dzdC1saWJh di90ZW1wbGF0ZQppbmRleCBlOWE3OWRjNjUwYTUuLmYwODJiZDIxMWM2NSAxMDA2NDQKLS0tIGEv c3JjcGtncy9nc3QtbGliYXYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nc3QtbGliYXYvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnc3QtbGliYXYnCiBwa2du YW1lPWdzdC1saWJhdgogdmVyc2lvbj0xLjIwLjMKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1 aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgeWFzbSIKIG1ha2Vk ZXBlbmRzPSJvcmMtZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwgZmZtcGVnLWRldmVsIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nc3QtcGx1Z2lucy1iYWQxL3RlbXBsYXRlIGIvc3JjcGtncy9n c3QtcGx1Z2lucy1iYWQxL3RlbXBsYXRlCmluZGV4IGJiOWM0ZDg3ZjRjNi4uZjU1ZjgyZmQ0Yzc3 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dzdC1wbHVnaW5zLWJhZDEvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nc3QtcGx1Z2lucy1iYWQxL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ3N0LXBsdWdpbnMtYmFkMScKIHBrZ25hbWU9Z3N0LXBsdWdpbnMtYmFkMQog dmVyc2lvbj0xLjIwLjMKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX2hlbHBlcj0iZ2ly IgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRHBhY2thZ2Utb3JpZ2luPWh0 dHBzOi8vdm9pZGxpbnV4Lm9yZyAtRGRvYz1kaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9n c3QtcnRzcC1zZXJ2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dzdC1ydHNwLXNlcnZlci90ZW1wbGF0 ZQppbmRleCAzM2NkNjRjZWI5NWUuLjhjZWVhOGQzNGI0YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9n c3QtcnRzcC1zZXJ2ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nc3QtcnRzcC1zZXJ2ZXIvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnc3QtcnRzcC1zZXJ2 ZXInCiBwa2duYW1lPWdzdC1ydHNwLXNlcnZlcgogdmVyc2lvbj0xLjIwLjMKLXJldmlzaW9uPTIK K3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25m aWcgcHl0aG9uMyIKIG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdzdC1wbHVnaW5zLWJhZDEtZGV2 ZWwgZ29iamVjdC1pbnRyb3NwZWN0aW9uCmRpZmYgLS1naXQgYS9zcmNwa2dzL2d0azQvdGVtcGxh dGUgYi9zcmNwa2dzL2d0azQvdGVtcGxhdGUKaW5kZXggNmE1MDU2N2Y1M2E5Li42OTc2YWVlODQ4 MTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3RrNC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2d0azQv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdndGs0JwogcGtn bmFtZT1ndGs0CiB2ZXJzaW9uPTQuMTAuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EbWFuLXBh Z2VzPXRydWUgLURndGtfZG9jPXRydWUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3V2Y3ZpZXcvdGVt cGxhdGUgYi9zcmNwa2dzL2d1dmN2aWV3L3RlbXBsYXRlCmluZGV4IDM0NWNmNjAwNmYyNC4uZDQy ZmQzOGZhNGFkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2d1dmN2aWV3L3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ3V2Y3ZpZXcvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdndXZjdmlldycKIHBrZ25hbWU9Z3V2Y3ZpZXcKIHZlcnNpb249Mi4wLjcKLXJldmlzaW9u PTEKK3JldmlzaW9uPTIKIGNyZWF0ZV93cmtzcmM9eWVzCiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXN0YXRpYyAtLWRpc2FibGUtZGViaWFuLW1l bnUiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2hhbmRicmFrZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaGFu ZGJyYWtlL3RlbXBsYXRlCmluZGV4IGNhNWU0NTcxZTQ5Yy4uMTg4YTc5ZjJiZjVjIDEwMDY0NAot LS0gYS9zcmNwa2dzL2hhbmRicmFrZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2hhbmRicmFrZS90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2hhbmRicmFrZScK IHBrZ25hbWU9aGFuZGJyYWtlCiB2ZXJzaW9uPTEuNS4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1mb3JjZSAtLWRp c2FibGUtZ3RrLXVwZGF0ZS1jaGVja3MgLS1kaXNhYmxlLWRmLWZldGNoIC0taGFyZGVuCiAgJCh2 b3B0X2VuYWJsZSBmZGtfYWFjIGZkay1hYWMpICQodm9wdF9lbmFibGUgbnZlbmMpIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9oZWRnZXdhcnMvdGVtcGxhdGUgYi9zcmNwa2dzL2hlZGdld2Fycy90ZW1w bGF0ZQppbmRleCA0MTlmMjliOThiNDQuLmEzNDNiMzE3MmE3MiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9oZWRnZXdhcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9oZWRnZXdhcnMvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdoZWRnZXdhcnMnCiBwa2duYW1lPWhl ZGdld2FycwogdmVyc2lvbj0xLjAuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRE5PU0VSVkVSPTEgLUREQVRBX0lOU1RBTExfRElS PS91c3Ivc2hhcmUvJHtwa2duYW1lfQogIC1EUEhZU0ZTX1NZU1RFTT0xIC1ETUlOSU1BTF9GTEFH Uz0xIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pZGpjL3RlbXBsYXRlIGIvc3JjcGtncy9pZGpjL3Rl bXBsYXRlCmluZGV4IGRmNjAzMThiM2RiOS4uYjIwNWU3NDc0NWZlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2lkamMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pZGpjL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnaWRqYycKIHBrZ25hbWU9aWRqYwogdmVyc2lvbj0w LjkuMQotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQog aG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdpdCBweXRob24zIGF1dG9tYWtlIGdldHRleHQt ZGV2ZWwgbGlidG9vbCIKIG1ha2VkZXBlbmRzPSJsaWJ2b3JiaXMtZGV2ZWwgbGlib2dnLWRldmVs IGphY2stZGV2ZWwgbGlic2FtcGxlcmF0ZS1kZXZlbApkaWZmIC0tZ2l0IGEvc3JjcGtncy9rZmls ZW1ldGFkYXRhNS90ZW1wbGF0ZSBiL3NyY3BrZ3Mva2ZpbGVtZXRhZGF0YTUvdGVtcGxhdGUKaW5k ZXggODNmNGQ1ODNiY2I3Li5iOTBlZjA1NmExOTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2ZpbGVt ZXRhZGF0YTUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9rZmlsZW1ldGFkYXRhNS90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tmaWxlbWV0YWRhdGE1JwogcGtn bmFtZT1rZmlsZW1ldGFkYXRhNQogdmVyc2lvbj01LjEwMy4wCi1yZXZpc2lvbj0xCityZXZpc2lv bj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJrY29yZWFkZG9ucyBleHRy YS1jbWFrZS1tb2R1bGVzIHBrZy1jb25maWcgcXQ1LWhvc3QtdG9vbHMgcXQ1LXFtYWtlCiAgZ2V0 dGV4dCBrY29yZWFkZG9ucyBweXRob24zIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9raWQzL3RlbXBs YXRlIGIvc3JjcGtncy9raWQzL3RlbXBsYXRlCmluZGV4IDQ1NjIwNmQ5MGUxNi4uZjMyZjlkZWNi MGU3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2tpZDMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9raWQz L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2lkMycKIHBr Z25hbWU9a2lkMwogdmVyc2lvbj0zLjkuMQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRf c3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhfQVBQUz0nQ0xJOyQodm9wdF9pZiBL REUgS0RFIFF0KScKICAtRFdJVEhfRE9DQk9PS0RJUj0vdXNyL3NoYXJlL3hzbC9kb2Nib29rIC1E V0lUSF9GTEFDPSQodm9wdF9pZiBmbGFjIE9OIE9GRikKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva29k aS90ZW1wbGF0ZSBiL3NyY3BrZ3Mva29kaS90ZW1wbGF0ZQppbmRleCA4MDU3OTY0ZDc4YTMuLjk5 MTMyNWY2YzQ3NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9rb2RpL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3Mva29kaS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tv ZGknCiBwa2duYW1lPWtvZGkKIHZlcnNpb249MTkuNAotcmV2aXNpb249NgorcmV2aXNpb249Nwog X2NvZGVuYW1lPSJNYXRyaXgiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1E V0lUSF9GRk1QRUc9L3VzciAtREVOQUJMRV9MREdPTEQ9T0ZGCmRpZmYgLS1naXQgYS9zcmNwa2dz L2twaXBld2lyZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mva3BpcGV3aXJlL3RlbXBsYXRlCmluZGV4IDFk MWU5NjNmMjk2ZC4uMDdjZGMwYzczODRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2twaXBld2lyZS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2twaXBld2lyZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2twaXBld2lyZScKIHBrZ25hbWU9a3BpcGV3aXJlCiB2ZXJz aW9uPTUuMjcuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhv c3RtYWtlZGVwZW5kcz0iZXh0cmEtY21ha2UtbW9kdWxlcyBwbGFzbWEtd2F5bGFuZC1wcm90b2Nv bHMgZ2V0dGV4dAogIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyBwa2ctY29uZmlnIHdheWxhbmQt ZGV2ZWwga2NvcmVhZGRvbnMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliYXZyZXNhbXBsZSBiL3Ny Y3BrZ3MvbGliYXZyZXNhbXBsZQppbmRleCA4ODdmMzU0ZTdjNmIuLmE5ZjFlZWEwOTJkNSAxMjAw MDAKLS0tIGEvc3JjcGtncy9saWJhdnJlc2FtcGxlCisrKyBiL3NyY3BrZ3MvbGliYXZyZXNhbXBs ZQpAQCAtMSArMSBAQAotZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2ZmbXBl ZwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZXh0 cmFjdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9saWJleHRyYWN0b3IvdGVtcGxhdGUKaW5kZXggMjlk NWI4ZGYwMWY4Li5kZGQ0NzkwZjkzZTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZXh0cmFjdG9y L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliZXh0cmFjdG9yL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZXh0cmFjdG9yJwogcGtnbmFtZT1saWJleHRy YWN0b3IKIHZlcnNpb249MS4xMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWciCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9wZW5hbC90ZW1w bGF0ZSBiL3NyY3BrZ3MvbGlib3BlbmFsL3RlbXBsYXRlCmluZGV4IDc3MjE4ZjllNTM5ZC4uM2Y0 OWVkNzVhMWZkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYm9wZW5hbC90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2xpYm9wZW5hbC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2xpYm9wZW5hbCcKIHBrZ25hbWU9bGlib3BlbmFsCiB2ZXJzaW9uPTEuMjIuMgotcmV2 aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIt REFMU09GVF9FWEFNUExFUz1PRkYiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRlIGIvc3JjcGtncy9saWJvcGVuc2hv dC90ZW1wbGF0ZQppbmRleCBkYjgzMWY2OWI0NzQuLjgxYWEwZDcxMzZkOSAxMDA2NDQKLS0tIGEv c3JjcGtncy9saWJvcGVuc2hvdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90L3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlib3BlbnNob3Qn CiBwa2duYW1lPWxpYm9wZW5zaG90CiB2ZXJzaW9uPTAuMy4wCi1yZXZpc2lvbj0xCityZXZpc2lv bj0yCiBidWlsZF9zdHlsZT1jbWFrZQogIyBCdWlsZHMgZmFpbCB3aXRoIFJ1YnktMi40LjEKIGNv bmZpZ3VyZV9hcmdzPSItREVOQUJMRV9SVUJZPU9GRiAtRFVTRV9TWVNURU1fSlNPTkNQUD1PTiIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbG91ZGdhaW4vdGVtcGxhdGUgYi9zcmNwa2dzL2xvdWRnYWlu L3RlbXBsYXRlCmluZGV4IGRhNGYyZDU2ZTk0Yy4uNGQ2YmYyOWVmYjRmIDEwMDY0NAotLS0gYS9z cmNwa2dzL2xvdWRnYWluL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbG91ZGdhaW4vdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsb3VkZ2FpbicKIHBrZ25hbWU9 bG91ZGdhaW4KIHZlcnNpb249MC42LjgKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0 eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0ibGli ZWJ1cjEyOC1kZXZlbCB0YWdsaWItZGV2ZWwgZmZtcGVnLWRldmVsIgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tZWRpYXN0cmVhbWVyL3RlbXBsYXRlIGIvc3JjcGtncy9tZWRpYXN0cmVhbWVyL3RlbXBs YXRlCmluZGV4IGQwZTk3ZTg1OGUyOS4uZDI5MjEwYzFiZjljIDEwMDY0NAotLS0gYS9zcmNwa2dz L21lZGlhc3RyZWFtZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tZWRpYXN0cmVhbWVyL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWVkaWFzdHJlYW1lcicK IHBrZ25hbWU9bWVkaWFzdHJlYW1lcgogdmVyc2lvbj01LjIuNgotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9TVFJJQ1Q9 MCAtREVOQUJMRV9VTklUX1RFU1RTPTAiCiBob3N0bWFrZWRlcGVuZHM9InB5dGhvbjMiCmRpZmYg LS1naXQgYS9zcmNwa2dzL21lc2EvdGVtcGxhdGUgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKaW5k ZXggYmRlYjIyYjEzYWFhLi5kOWZmMGIyZmYyM2QgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVzYS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTIgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ21lc2EnCiBwa2duYW1lPW1lc2EKLXZlcnNpb249MjMuMC4wCit2 ZXJzaW9uPTIyLjMuNQogcmV2aXNpb249MQotI3dya3NyYz0iTWVzYS1kZzItMjAyMzAxMjUiCiBi dWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZ2x2bmQ9dHJ1ZSAtRHNoYXJlZC1n bGFwaT1lbmFibGVkIC1EZ2JtPWVuYWJsZWQgLURlZ2w9ZW5hYmxlZAogIC1Eb3NtZXNhPXRydWUg LURnbGVzMT1lbmFibGVkIC1EZ2xlczI9ZW5hYmxlZCAtRGdseD1kcmkgLURkcmkzPWVuYWJsZWQK ICAtRGxtc2Vuc29ycz1lbmFibGVkIC1EcGxhdGZvcm1zPXgxMSQodm9wdF9pZiB3YXlsYW5kICx3 YXlsYW5kKQotIC1EbGx2bT1lbmFibGVkIC1EYl9sdG89ZmFsc2UgLURjcHBfc3RkPWdudSsrMTci CisgLURsbHZtPWVuYWJsZWQgLURiX2x0bz1mYWxzZSAtRGNwcF9zdGQ9Z251KysxNCIKIGhvc3Rt YWtlZGVwZW5kcz0iZ2V0dGV4dCBmbGV4IGxsdm0gcGtnLWNvbmZpZyBweXRob24zLU1ha28gZ2xz bGFuZwogICQodm9wdF9pZiB3YXlsYW5kICd3YXlsYW5kLXByb3RvY29scyB3YXlsYW5kLWRldmVs JykiCiBtYWtlZGVwZW5kcz0iZWxmdXRpbHMtZGV2ZWwgZXhwYXQtZGV2ZWwgbGliWGRhbWFnZS1k ZXZlbApAQCAtMjMsMjMgKzIyLDExIEBAIGxpY2Vuc2U9Ik1JVCwgTEdQTC0yLjEtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93d3cubWVzYTNkLm9yZy8iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8v ZG9jcy5tZXNhM2Qub3JnL3JlbG5vdGVzLmh0bWwiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vbWVzYS5m cmVlZGVza3RvcC5vcmcvYXJjaGl2ZS9tZXNhLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MDFmM2NmZjM3NjNmMDllMGFkYWJjYjgwMTFlNGFlYmM2YWQ0OGY2YTRkZDRiYWU5MDRmZTkxODcw N2QyNTNlNAotIyBpbnRlbCBkZzIgamFuIDI1Ci0jY2hlY2tzdW09NGVjOGVjNjVkYmRiMWVlOTQ0 NGRiYTcyOTcwODkwMTI4YTE5NTQzYTU4Y2YwNTkzMWJkNmY1NGYxMjRlMTE3ZgotI2NoZWNrc3Vt PTM3YTFkZGFmMDNmNDE5MTllZTNjODljOTdjZmY0MWU4N2RlOTZlMDBlOWQzMjQ3OTU5Y2M4Mjc5 ZDgyOTQ1OTMKLSNkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbnRlbC1ncHUvTWVzYS9h cmNoaXZlL3JlZnMvdGFncy9kZzItMjAyMzAxMjUudGFyLmd6IgotI2NoZWNrc3VtPTIyMjAzMTg2 Nzc5MjIyZWM1MjQ0ZWNiNzRmYmFlNzA2ZDM1NTc1ODhjODIwODliMThjN2JmNzdhNTQ3OTlhNTkK K2NoZWNrc3VtPTNlZWQyZWNhZTJiYzY3NDQ5NDU2NmZhYWI5ZmNjOWJlYjIxY2Q4MDRjN2JhMmI1 OWExNjk0ZjNkNzIzNmU2YTkKIAogYnVpbGRfb3B0aW9ucz0id2F5bGFuZCIKIGJ1aWxkX29wdGlv bnNfZGVmYXVsdD0id2F5bGFuZCIKIAotZXhwb3J0IENDPWNsYW5nCi1leHBvcnQgQ1hYPWNsYW5n KysKLQotaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KLQljb25maWd1 cmVfYXJncys9IiAtRHVzZS1lbGYtdGxzPWZhbHNlIgotZmkKLQogIyBvbmx5IHVzZSBsbHZtcGlw ZSBvbiB0YXJnZXRzIHdoZXJlIGl0J3Mgc3VwcG9ydGVkIGFuZCByZWxpYWJsZQogIyBlc3BlY2lh bGx5IG9uIGJpZyBlbmRpYW4gaXQncyBhbGwga2luZHMgb2YgYnJva2VuLCBhbmQgZS5nLiBvbgog IyAzMi1iaXQgcG93ZXJwYyBpdCBkb2VzIG5vdCB3b3JrIGF0IGFsbCwgc28gZmFsbCBiYWNrIHRv IHNvZnRwaXBlCkBAIC0xMDQsNyArOTEsNyBAQCBmaQogaWYgWyAiJF9oYXZlX2ludGVsIiBdOyB0 aGVuCiAJX2hhdmVfdnVsa2FuPXllcwogCV9nYWxsaXVtX2RyaXZlcnMrPSIsY3JvY3VzLGlyaXMs aTkxNSIKLQlfdnVsa2FuX2RyaXZlcnMrPSIsaW50ZWwiCisJX3Z1bGthbl9kcml2ZXJzKz0iLGlu dGVsLGludGVsX2hhc3ZrIgogCXN1YnBhY2thZ2VzKz0iIG1lc2EtdnVsa2FuLWludGVsIgogCSMg dHJhbnNpdGlvbmFsIGR1bW15IHBhY2thZ2VzCiAJc3VicGFja2FnZXMrPSIgbWVzYS1pbnRlbC1k cmkiCkBAIC0xNTMsMTAgKzE0MCwxMCBAQCBmaQogCiAjIGVuYWJsZWQgY3VycmVudGx5IGJ5IGFt ZCBkcml2ZXJzCiBpZiBbICIkX2hhdmVfb3BlbmNsIiBdOyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRz Kz0iIGNsYW5nIgotCW1ha2VkZXBlbmRzKz0iIGNsYW5nIGxpYmNsYyIKKwlob3N0bWFrZWRlcGVu ZHMrPSIgY2xhbmcgcnVzdCBydXN0LWJpbmRnZW4iCisJbWFrZWRlcGVuZHMrPSIgY2xhbmcgbGli Y2xjIHJ1c3QgU1BJUlYtTExWTS1UcmFuc2xhdG9yLWRldmVsIFNQSVJWLVRvb2xzLWRldmVsIgog CXN1YnBhY2thZ2VzKz0iIG1lc2Etb3BlbmNsIgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EZ2FsbGl1 bS1vcGVuY2w9aWNkIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1EZ2FsbGl1bS1vcGVuY2w9aWNkIC1E Z2FsbGl1bS1ydXN0aWNsPXRydWUgLURydXN0X3N0ZD0yMDIxIgogZmkKIAogaWYgWyAiJF9oYXZl X2h3ZGVjIiBdOyB0aGVuCkBAIC0yMDAsNiArMTg3LDcgQEAgZXNhYwogcG9zdF9jb25maWd1cmUo KSB7CiAJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCWZpbmQgLWluYW1lICIqLm5pbmph IiAtZXhlYyBzZWQgLWkgInt9IiBcCisJCQktZSAiL3J1c3RjL3M7IC0tc3lzcm9vdCAke1hCUFNf Q1JPU1NfQkFTRX0vdXNyOztnIiBcCiAJCQktZSAiczsgL3Vzci9saWIvOyAke1hCUFNfQ1JPU1Nf QkFTRX0vdXNyL2xpYi87ZyIgXAogCQkJLWUgInM7LUwvdXNyL2xpYjstTCR7WEJQU19DUk9TU19C QVNFfS91c3IvbGliO2ciIFwKIAkJCS1lICJzOy1JL3Vzci9pbmNsdWRlOy1JJHtYQlBTX0NST1NT X0JBU0V9L3Vzci9pbmNsdWRlO2ciIFwKQEAgLTI5OCw2ICsyODYsNyBAQCBNZXNhTGliLWRldmVs X3BhY2thZ2UoKSB7CiAJCWZpCiAJCWlmIFsgIiRfaGF2ZV9vcGVuY2wiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9saWIvbGliTWVzYU9wZW5DTC5zbworCQkJdm1vdmUgdXNyL2xpYi9saWJSdXN0aWNs T3BlbkNMLnNvCiAJCWZpCiAJfQogfQpAQCAtMzE2LDYgKzMwNSw3IEBAIG1lc2Etb3BlbmNsX3Bh Y2thZ2UoKSB7CiAJCXZtb3ZlIGV0Yy9PcGVuQ0wKIAkJdm1vdmUgdXNyL2xpYi9nYWxsaXVtLXBp cGUKIAkJdm1vdmUgInVzci9saWIvbGliTWVzYU9wZW5DTC5zby4qIgorCQl2bW92ZSAidXNyL2xp Yi9saWJSdXN0aWNsT3BlbkNMLnNvLioiCiAJfQogfQogCkBAIC0zNDYsMTQgKzMzNiwxNSBAQCBt ZXNhLXZkcGF1X3BhY2thZ2UoKSB7CiBtZXNhLXZ1bGthbi1pbnRlbF9wYWNrYWdlKCkgewogCXNo b3J0X2Rlc2M9Ik1lc2EgSW50ZWwgVnVsa2FuIGRyaXZlciIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJ dm1vdmUgInVzci9zaGFyZS92dWxrYW4vaWNkLmQvaW50ZWxfaWNkKi5qc29uIgotCQl2bW92ZSAi dXNyL2xpYi9saWJ2dWxrYW5faW50ZWwuc28iCisJCXZtb3ZlICJ1c3Ivc2hhcmUvdnVsa2FuL2lj ZC5kL2ludGVsKi5qc29uIgorCQl2bW92ZSAidXNyL2xpYi9saWJ2dWxrYW5faW50ZWwqLnNvIgog CX0KIH0KIAogbWVzYS12dWxrYW4tcmFkZW9uX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYz0iTWVz YSBSYWRlb24gVnVsa2FuIGRyaXZlciIKIAlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9z aGFyZS9kcmlyYy5kLzAwLXJhZHYtZGVmYXVsdHMuY29uZiIKIAkJdm1vdmUgInVzci9zaGFyZS92 dWxrYW4vaWNkLmQvcmFkZW9uX2ljZCouanNvbiIKIAkJdm1vdmUgInVzci9saWIvbGlidnVsa2Fu X3JhZGVvbi5zbyIKIAl9CmRpZmYgLS1naXQgYS9zcmNwa2dzL21nYmEvcGF0Y2hlcy9mZm1wZWc1 LnBhdGNoIGIvc3JjcGtncy9tZ2JhL3BhdGNoZXMvZmZtcGVnNS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFkNzA0OWVmY2FjMwotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvbWdiYS9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKQEAgLTAsMCArMSwxMTcgQEAK K0Zyb20gY2RjNzUzNTE2Nzk4ODgyYTgwNWRiMWQyMDQyZGJjZTgzMTMzODJiZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJ5YW4gVGFuZHkgPHJ5YW5AbmFyZGlzLmNhPgorRGF0ZTog VGh1LCAzIEZlYiAyMDIyIDE5OjAyOjUyIC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIEZGbXBlZzog U3VwcG9ydCBGRm1wZWcgNS4wCisKKy0tLQorIHNyYy9mZWF0dXJlL2ZmbXBlZy9mZm1wZWctZGVj b2Rlci5jIHwgIDMgKystCisgc3JjL2ZlYXR1cmUvZmZtcGVnL2ZmbXBlZy1lbmNvZGVyLmMgfCAy NSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRp b25zKCspLCAxMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9mZWF0dXJlL2ZmbXBl Zy9mZm1wZWctZGVjb2Rlci5jIGIvc3JjL2ZlYXR1cmUvZmZtcGVnL2ZmbXBlZy1kZWNvZGVyLmMK K2luZGV4IGMzYmI2ZDFjNWMuLmRhYTQ3ZmJmMmMgMTAwNjQ0CistLS0gYS9zcmMvZmVhdHVyZS9m Zm1wZWcvZmZtcGVnLWRlY29kZXIuYworKysrIGIvc3JjL2ZlYXR1cmUvZmZtcGVnL2ZmbXBlZy1k ZWNvZGVyLmMKK0BAIC01LDYgKzUsNyBAQAorICAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBh dCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uICovCisgI2luY2x1ZGUgImZmbXBlZy1kZWNv ZGVyLmgiCisKKysjaW5jbHVkZSA8bGliYXZjb2RlYy9hdmNvZGVjLmg+CisgI2luY2x1ZGUgPGxp YnN3c2NhbGUvc3dzY2FsZS5oPgorCisgdm9pZCBGRm1wZWdEZWNvZGVySW5pdChzdHJ1Y3QgRkZt cGVnRGVjb2RlciogZGVjb2RlcikgeworQEAgLTM4LDcgKzM5LDcgQEAgYm9vbCBGRm1wZWdEZWNv ZGVyT3BlbihzdHJ1Y3QgRkZtcGVnRGVjb2RlciogZGVjb2RlciwgY29uc3QgY2hhciogaW5maWxl KSB7CisgI2Vsc2UKKyAJCWVudW0gQVZNZWRpYVR5cGUgdHlwZSA9IGRlY29kZXItPmNvbnRleHQt PnN0cmVhbXNbaV0tPmNvZGVjLT5jb2RlY190eXBlOworICNlbmRpZgorLQkJc3RydWN0IEFWQ29k ZWMqIGNvZGVjOworKwkJY29uc3Qgc3RydWN0IEFWQ29kZWMqIGNvZGVjOworIAkJc3RydWN0IEFW Q29kZWNDb250ZXh0KiBjb250ZXh0ID0gTlVMTDsKKyAJCWlmICh0eXBlID09IEFWTUVESUFfVFlQ RV9WSURFTyAmJiBkZWNvZGVyLT52aWRlb1N0cmVhbSA8IDApIHsKKyAJCQlkZWNvZGVyLT52aWRl byA9IGF2Y29kZWNfYWxsb2NfY29udGV4dDMoTlVMTCk7CitkaWZmIC0tZ2l0IGEvc3JjL2ZlYXR1 cmUvZmZtcGVnL2ZmbXBlZy1lbmNvZGVyLmMgYi9zcmMvZmVhdHVyZS9mZm1wZWcvZmZtcGVnLWVu Y29kZXIuYworaW5kZXggYWQ3NmNhNTdiMi4uYmU2YmQzYWY1ZSAxMDA2NDQKKy0tLSBhL3NyYy9m ZWF0dXJlL2ZmbXBlZy9mZm1wZWctZW5jb2Rlci5jCisrKysgYi9zcmMvZmVhdHVyZS9mZm1wZWcv ZmZtcGVnLWVuY29kZXIuYworQEAgLTEyLDYgKzEyLDkgQEAKKworICNpbmNsdWRlIDxsaWJhdmNv ZGVjL3ZlcnNpb24uaD4KKyAjaW5jbHVkZSA8bGliYXZjb2RlYy9hdmNvZGVjLmg+CisrI2lmIExJ QkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA+PSA1OAorKyNpbmNsdWRlIDxsaWJhdmNvZGVjL2JzZi5o PgorKyNlbmRpZgorCisgI2luY2x1ZGUgPGxpYmF2ZmlsdGVyL2J1ZmZlcnNpbmsuaD4KKyAjaW5j bHVkZSA8bGliYXZmaWx0ZXIvYnVmZmVyc3JjLmg+CitAQCAtMTIxLDcgKzEyNCw3IEBAIGJvb2wg RkZtcGVnRW5jb2RlclNldEF1ZGlvKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBjb25z dCBjaGFyKiBhY29kZWMsIHVuCisgCQlyZXR1cm4gdHJ1ZTsKKyAJfQorCistCUFWQ29kZWMqIGNv ZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZShhY29kZWMpOworKwljb25zdCBBVkNv ZGVjKiBjb2RlYyA9IGF2Y29kZWNfZmluZF9lbmNvZGVyX2J5X25hbWUoYWNvZGVjKTsKKyAJaWYg KCFjb2RlYykgeworIAkJcmV0dXJuIGZhbHNlOworIAl9CitAQCAtMTkzLDcgKzE5Niw3IEBAIGJv b2wgRkZtcGVnRW5jb2RlclNldFZpZGVvKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBj b25zdCBjaGFyKiB2Y29kZWMsIGluCisgCQlyZXR1cm4gdHJ1ZTsKKyAJfQorCistCUFWQ29kZWMq IGNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZSh2Y29kZWMpOworKwljb25zdCBB VkNvZGVjKiBjb2RlYyA9IGF2Y29kZWNfZmluZF9lbmNvZGVyX2J5X25hbWUodmNvZGVjKTsKKyAJ aWYgKCFjb2RlYykgeworIAkJcmV0dXJuIGZhbHNlOworIAl9CitAQCAtMjEzLDcgKzIxNiw3IEBA IGJvb2wgRkZtcGVnRW5jb2RlclNldFZpZGVvKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVy LCBjb25zdCBjaGFyKiB2Y29kZWMsIGluCisgCWlmIChlbmNvZGVyLT5waXhGb3JtYXQgPT0gQVZf UElYX0ZNVF9OT05FKSB7CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KKy0JaWYgKHZiciA8IDAgJiYg IWF2X29wdF9maW5kKCZjb2RlYy0+cHJpdl9jbGFzcywgImNyZiIsIE5VTEwsIDAsIDApKSB7Cisr CWlmICh2YnIgPCAwICYmICFhdl9vcHRfZmluZCgodm9pZCopICZjb2RlYy0+cHJpdl9jbGFzcywg ImNyZiIsIE5VTEwsIDAsIDApKSB7CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KKyAJZW5jb2Rlci0+ dmlkZW9Db2RlYyA9IHZjb2RlYzsKK0BAIC0yMjMsNyArMjI2LDcgQEAgYm9vbCBGRm1wZWdFbmNv ZGVyU2V0VmlkZW8oc3RydWN0IEZGbXBlZ0VuY29kZXIqIGVuY29kZXIsIGNvbnN0IGNoYXIqIHZj b2RlYywgaW4KKyB9CisKKyBib29sIEZGbXBlZ0VuY29kZXJTZXRDb250YWluZXIoc3RydWN0IEZG bXBlZ0VuY29kZXIqIGVuY29kZXIsIGNvbnN0IGNoYXIqIGNvbnRhaW5lcikgeworLQlBVk91dHB1 dEZvcm1hdCogb2Zvcm1hdCA9IGF2X2d1ZXNzX2Zvcm1hdChjb250YWluZXIsIDAsIDApOworKwlj b25zdCBBVk91dHB1dEZvcm1hdCogb2Zvcm1hdCA9IGF2X2d1ZXNzX2Zvcm1hdChjb250YWluZXIs IDAsIDApOworIAlpZiAoIW9mb3JtYXQpIHsKKyAJCXJldHVybiBmYWxzZTsKKyAJfQorQEAgLTI0 MSw5ICsyNDQsOSBAQCB2b2lkIEZGbXBlZ0VuY29kZXJTZXRMb29waW5nKHN0cnVjdCBGRm1wZWdF bmNvZGVyKiBlbmNvZGVyLCBib29sIGxvb3ApIHsKKyB9CisKKyBib29sIEZGbXBlZ0VuY29kZXJW ZXJpZnlDb250YWluZXIoc3RydWN0IEZGbXBlZ0VuY29kZXIqIGVuY29kZXIpIHsKKy0JQVZPdXRw dXRGb3JtYXQqIG9mb3JtYXQgPSBhdl9ndWVzc19mb3JtYXQoZW5jb2Rlci0+Y29udGFpbmVyRm9y bWF0LCAwLCAwKTsKKy0JQVZDb2RlYyogYWNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlf bmFtZShlbmNvZGVyLT5hdWRpb0NvZGVjKTsKKy0JQVZDb2RlYyogdmNvZGVjID0gYXZjb2RlY19m aW5kX2VuY29kZXJfYnlfbmFtZShlbmNvZGVyLT52aWRlb0NvZGVjKTsKKysJY29uc3QgQVZPdXRw dXRGb3JtYXQqIG9mb3JtYXQgPSBhdl9ndWVzc19mb3JtYXQoZW5jb2Rlci0+Y29udGFpbmVyRm9y bWF0LCAwLCAwKTsKKysJY29uc3QgQVZDb2RlYyogYWNvZGVjID0gYXZjb2RlY19maW5kX2VuY29k ZXJfYnlfbmFtZShlbmNvZGVyLT5hdWRpb0NvZGVjKTsKKysJY29uc3QgQVZDb2RlYyogdmNvZGVj ID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZShlbmNvZGVyLT52aWRlb0NvZGVjKTsKKyAJ aWYgKChlbmNvZGVyLT5hdWRpb0NvZGVjICYmICFhY29kZWMpIHx8IChlbmNvZGVyLT52aWRlb0Nv ZGVjICYmICF2Y29kZWMpIHx8ICFvZm9ybWF0IHx8ICghYWNvZGVjICYmICF2Y29kZWMpKSB7Cisg CQlyZXR1cm4gZmFsc2U7CisgCX0KK0BAIC0yNTcsOCArMjYwLDggQEAgYm9vbCBGRm1wZWdFbmNv ZGVyVmVyaWZ5Q29udGFpbmVyKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyKSB7CisgfQor CisgYm9vbCBGRm1wZWdFbmNvZGVyT3BlbihzdHJ1Y3QgRkZtcGVnRW5jb2RlciogZW5jb2Rlciwg Y29uc3QgY2hhciogb3V0ZmlsZSkgeworLQlBVkNvZGVjKiBhY29kZWMgPSBhdmNvZGVjX2ZpbmRf ZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPmF1ZGlvQ29kZWMpOworLQlBVkNvZGVjKiB2Y29kZWMg PSBhdmNvZGVjX2ZpbmRfZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPnZpZGVvQ29kZWMpOworKwlj b25zdCBBVkNvZGVjKiBhY29kZWMgPSBhdmNvZGVjX2ZpbmRfZW5jb2Rlcl9ieV9uYW1lKGVuY29k ZXItPmF1ZGlvQ29kZWMpOworKwljb25zdCBBVkNvZGVjKiB2Y29kZWMgPSBhdmNvZGVjX2ZpbmRf ZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPnZpZGVvQ29kZWMpOworIAlpZiAoKGVuY29kZXItPmF1 ZGlvQ29kZWMgJiYgIWFjb2RlYykgfHwgKGVuY29kZXItPnZpZGVvQ29kZWMgJiYgIXZjb2RlYykg fHwgIUZGbXBlZ0VuY29kZXJWZXJpZnlDb250YWluZXIoZW5jb2RlcikpIHsKKyAJCXJldHVybiBm YWxzZTsKKyAJfQorQEAgLTI3Miw5ICsyNzUsOSBAQCBib29sIEZGbXBlZ0VuY29kZXJPcGVuKHN0 cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBjaGFyKiBvdXRmaWxlKSB7CisgCWVu Y29kZXItPmN1cnJlbnRWaWRlb0ZyYW1lID0gMDsKKyAJZW5jb2Rlci0+c2tpcFJlc2lkdWUgPSAw OworCistCUFWT3V0cHV0Rm9ybWF0KiBvZm9ybWF0ID0gYXZfZ3Vlc3NfZm9ybWF0KGVuY29kZXIt PmNvbnRhaW5lckZvcm1hdCwgMCwgMCk7CisrCWNvbnN0IEFWT3V0cHV0Rm9ybWF0KiBvZm9ybWF0 ID0gYXZfZ3Vlc3NfZm9ybWF0KGVuY29kZXItPmNvbnRhaW5lckZvcm1hdCwgMCwgMCk7CisgI2lm bmRlZiBVU0VfTElCQVYKKy0JYXZmb3JtYXRfYWxsb2Nfb3V0cHV0X2NvbnRleHQyKCZlbmNvZGVy LT5jb250ZXh0LCBvZm9ybWF0LCAwLCBvdXRmaWxlKTsKKysJYXZmb3JtYXRfYWxsb2Nfb3V0cHV0 X2NvbnRleHQyKCZlbmNvZGVyLT5jb250ZXh0LCAoQVZPdXRwdXRGb3JtYXQqKSBvZm9ybWF0LCAw LCBvdXRmaWxlKTsKKyAjZWxzZQorIAllbmNvZGVyLT5jb250ZXh0ID0gYXZmb3JtYXRfYWxsb2Nf Y29udGV4dCgpOworIAlzdHJuY3B5KGVuY29kZXItPmNvbnRleHQtPmZpbGVuYW1lLCBvdXRmaWxl LCBzaXplb2YoZW5jb2Rlci0+Y29udGV4dC0+ZmlsZW5hbWUpIC0gMSk7CmRpZmYgLS1naXQgYS9z cmNwa2dzL21nYmEvdGVtcGxhdGUgYi9zcmNwa2dzL21nYmEvdGVtcGxhdGUKaW5kZXggMDViY2Ex NWMxNzUwLi5mNWI2Yjg0NjQ0MjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWdiYS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL21nYmEvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdtZ2JhJwogcGtnbmFtZT1tZ2JhCiB2ZXJzaW9uPTAuMTAuMQotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBxdDUtaG9zdC10b29scyBxdDUtcW1ha2UgZGVza3RvcC1maWxlLXV0aWxzIgogbWFrZWRlcGVu ZHM9IlNETDItZGV2ZWwgZmZtcGVnLWRldmVsIGxpYmVkaXQtZGV2ZWwgbGliZXBveHktZGV2ZWwg bGlibWFnaWNrLWRldmVsCmRpZmYgLS1naXQgYS9zcmNwa2dzL21pbmlkbG5hL3RlbXBsYXRlIGIv c3JjcGtncy9taW5pZGxuYS90ZW1wbGF0ZQppbmRleCBlODA4MWIxY2JjNjcuLjllZTk3MTQ4NjFm ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9taW5pZGxuYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21p bmlkbG5hL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWlu aWRsbmEnCiBwa2duYW1lPW1pbmlkbG5hCiB2ZXJzaW9uPTEuMy4yCi1yZXZpc2lvbj0xCityZXZp c2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iCiAgLS1z YmluZGlyPS91c3IvYmluCmRpZmYgLS1naXQgYS9zcmNwa2dzL21peHh4L3RlbXBsYXRlIGIvc3Jj cGtncy9taXh4eC90ZW1wbGF0ZQppbmRleCA2MTlkZGNhMGQzMzIuLjRiOWVhMDBkM2ZiMyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9taXh4eC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21peHh4L3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWl4eHgnCiBwa2duYW1l PW1peHh4CiB2ZXJzaW9uPTIuMy4zCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHls ZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIgogaG9z dG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIHBrZy1jb25maWcgcHJvdG9idWYgcXQ1 LWhvc3QtdG9vbHMgcXQ1LWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tbHQvdGVtcGxhdGUg Yi9zcmNwa2dzL21sdC90ZW1wbGF0ZQppbmRleCA4OTMzZWI0ZTdiYjkuLmVkNmIyNzUwM2Y5YSAx MDA2NDQKLS0tIGEvc3JjcGtncy9tbHQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tbHQvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtbHQnCiBwa2duYW1lPW1s dAogdmVyc2lvbj02LjI2LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNv bmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tcHJlZml4PS91c3IgLS1saWJkaXI9L3Vzci9saWIk WEJQU19UQVJHRVRfV09SRFNJWkUKICAtLWVuYWJsZS1ncGwgLS1lbmFibGUtZ3BsMyAtLWRpc2Fi bGUtc3dmZGVjIC0td2l0aG91dC1rZGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWx0Ny90ZW1wbGF0 ZSBiL3NyY3BrZ3MvbWx0Ny90ZW1wbGF0ZQppbmRleCBlNTk3MmNjMDQxMWIuLmQwZTllYzAyZTU4 YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tbHQ3L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbWx0Ny90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ21sdDcnCiBwa2du YW1lPW1sdDcKIHZlcnNpb249Ny4xMi4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9z dHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EU1dJR19QWVRIT049T04iCiBob3N0bWFrZWRl cGVuZHM9ImRveHlnZW4gcGtnLWNvbmZpZyBsYWRzcGEtc2RrIHN3aWcgcHl0aG9uMyB3aGljaApk aWZmIC0tZ2l0IGEvc3JjcGtncy9tb2MvdGVtcGxhdGUgYi9zcmNwa2dzL21vYy90ZW1wbGF0ZQpp bmRleCBjNDJiZTY1MGExZDIuLjRiOTU0MjY1OTliZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9tb2Mv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9tb2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdtb2MnCiBwa2duYW1lPW1vYwogdmVyc2lvbj0yLjUuMgotcmV2aXNp b249NgorcmV2aXNpb249NwogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImRiLWRldmVsIG5jdXJzZXMtZGV2ZWwgbGli Y3VybC1kZXZlbCBwb3B0LWRldmVsIGZmbXBlZy1kZXZlbApkaWZmIC0tZ2l0IGEvc3JjcGtncy9t b3Rpb24vdGVtcGxhdGUgYi9zcmNwa2dzL21vdGlvbi90ZW1wbGF0ZQppbmRleCAzY2YzYzMwMzVj NWIuLjdkY2ExMmQ4NTFlMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9tb3Rpb24vdGVtcGxhdGUKKysr IGIvc3JjcGtncy9tb3Rpb24vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdtb3Rpb24nCiBwa2duYW1lPW1vdGlvbgogdmVyc2lvbj00LjUuMQotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRz PSJhdXRvbWFrZSBwa2ctY29uZmlnIGdldHRleHQtZGV2ZWwgdGFyIgogbWFrZWRlcGVuZHM9ImZm bXBlZy1kZXZlbCBsaWJtaWNyb2h0dHBkLWRldmVsIHY0bC11dGlscy1kZXZlbCBnZXR0ZXh0LWRl dmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tcGQvdGVtcGxhdGUgYi9zcmNwa2dzL21wZC90ZW1w bGF0ZQppbmRleCA2MzcwMWI3ZDU2YjEuLmRmMzVlNzUxZWE2MCAxMDA2NDQKLS0tIGEvc3JjcGtn cy9tcGQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tcGQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtcGQnCiBwa2duYW1lPW1wZAogdmVyc2lvbj0wLjIzLjEy Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2Fy Z3M9Ii1Eb3B1cz1lbmFibGVkIC1EbWlrbW9kPWVuYWJsZWQgLURuZWlnaGJvcj10cnVlCiAgLURz b3VuZGNsb3VkPWVuYWJsZWQgLURwaXBlPXRydWUgLUR0d29sYW1lPWVuYWJsZWQgLURiemlwMj1l bmFibGVkCmRpZmYgLS1naXQgYS9zcmNwa2dzL21wdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXB2L3Rl bXBsYXRlCmluZGV4IGUxNjNjNDk2YzZlYi4uZDRmZWZiZjVlM2M3IDEwMDY0NAotLS0gYS9zcmNw a2dzL21wdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21wdi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ21wdicKIHBrZ25hbWU9bXB2CiB2ZXJzaW9uPTAuMzUu MQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9h cmdzPSItRGNkZGE9ZW5hYmxlZCAtRGR2YmluPWVuYWJsZWQgLURkdmRuYXY9ZW5hYmxlZAogIC1E bGlibXB2PXRydWUgLURjcGx1Z2lucz1lbmFibGVkCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2lr Y3ViZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXVzaWtjdWJlL3RlbXBsYXRlCmluZGV4IDRiNzkzMDA0 MTEyNi4uN2NkNjVjZjc2Yjc3IDEwMDY0NAotLS0gYS9zcmNwa2dzL211c2lrY3ViZS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL211c2lrY3ViZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ211c2lrY3ViZScKIHBrZ25hbWU9bXVzaWtjdWJlCiB2ZXJzaW9uPTAu OTkuNAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIG1ha2VfY21k PW1ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRE5PX05DVVJTRVNXPTEiCmRpZmYgLS1naXQgYS9zcmNw a2dzL25vdGN1cnNlcy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvbm90Y3Vyc2VzL3RlbXBsYXRlCmluZGV4 IDZkZDhhMDkxMzE5Zi4uMzExMGMzMGM5YWZmIDEwMDY0NAotLS0gYS9zcmNwa2dzL25vdGN1cnNl cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL25vdGN1cnNlcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ25vdGN1cnNlcycKIHBrZ25hbWU9bm90Y3Vyc2VzCiB2 ZXJzaW9uPTMuMC45Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQog Y29uZmlndXJlX2FyZ3M9Ii1EVVNFX1NUQVRJQz1PTiAkKHZvcHRfYm9vbCBtYW4gVVNFX1BBTkRP QykiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgJCh2b3B0X2lmIG1hbiBwYW5kb2MpIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vYnMvdGVtcGxhdGUgYi9zcmNwa2dzL29icy90ZW1wbGF0ZQpp bmRleCAxYTcxMzJhZTgzMmYuLjA3OGZlYmE2MmJiYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9vYnMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9vYnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdvYnMnCiBwa2duYW1lPW9icwogdmVyc2lvbj0yOS4wLjIKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGFyY2hzPSJpNjg2KiB4ODZfNjQqIHBwYzY0bGUqIGFhcmNoNjQq IgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRE9CU19WRVJTSU9OX09WRVJS SURFPSR7dmVyc2lvbn0gLURFTkFCTEVfSkFDSz1PTgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vbGl2 ZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb2xpdmUvdGVtcGxhdGUKaW5kZXggMTJhNDY5MzZjOTkwLi41 MjkwZDhlNWFhY2QgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb2xpdmUvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9vbGl2ZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J29saXZlJwogcGtnbmFtZT1vbGl2ZQogdmVyc2lvbj0wLjEuMgotcmV2aXNpb249MgorcmV2aXNp b249MwogYnVpbGRfc3R5bGU9cW1ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIHF0NS1o b3N0LXRvb2xzIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0icXQ1LWRldmVsIHF0NS1tdWx0aW1l ZGlhLWRldmVsIHF0NS1zdmctZGV2ZWwgZmZtcGVnLWRldmVsIGZyZWkwci1wbHVnaW5zIgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL29teHBsYXllci90 ZW1wbGF0ZQppbmRleCBlNzBiZjc4NzNkNGQuLjgwYWJkZWZlNzdiNCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvbXhwbGF5ZXInCiBwa2duYW1l PW9teHBsYXllcgogdmVyc2lvbj0yMDE5MDEwMgotcmV2aXNpb249MQorcmV2aXNpb249Mgogc2hv cnRfZGVzYz0iQ29tbWFuZGxpbmUgT01YIHBsYXllciBmb3IgdGhlIFJhc3BiZXJyeSBQaSIKIG1h aW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt MiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUgYi9zcmNwa2dzL29w ZW5pbWFnZWlvL3RlbXBsYXRlCmluZGV4IGNjOWQ3YTMzOTg0ZS4uZWU5ODhhZTJjZTA3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3Blbmlt YWdlaW8vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVu aW1hZ2VpbycKIHBrZ25hbWU9b3BlbmltYWdlaW8KIHZlcnNpb249Mi4zLjE4LjAKLXJldmlzaW9u PTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9cWVtdQogY29u ZmlndXJlX2FyZ3M9Ii1EVVNFX09QRU5HTD0wIC1EVVNFX1FUPTAgLURVU0VfUFlUSE9OPTAgLURP SUlPX0JVSUxEX1RFU1RTPTEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbm13L3RlbXBsYXRlIGIv c3JjcGtncy9vcGVubXcvdGVtcGxhdGUKaW5kZXggNTI1MWEwMjgzZGMxLi5lMzc3MWM3YWFmMWEg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3Blbm13L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3Blbm13 L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3Blbm13Jwog cGtnbmFtZT1vcGVubXcKIHZlcnNpb249MC40Ny4wCi1yZXZpc2lvbj00CityZXZpc2lvbj01CiBi dWlsZF9zdHlsZT1jbWFrZQogX3JlY2FzdF9jb21taXQ9ZTc1YWRmODZmOTFlYjMwODIyMjAwODVl NDJkZGE2MjY3OWY5YTNlYQogX2J1bGxldF90YWc9My4xNwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuc2hvdC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbnNob3QvdGVtcGxhdGUKaW5kZXggMzIyNzE3 ZDQwYWJjLi5jMDc0ZTAzMzg3NzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbnNob3QvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ29wZW5zaG90JwogcGtnbmFtZT1vcGVuc2hvdAogdmVyc2lvbj0zLjAu MAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKIGhv c3RtYWtlZGVwZW5kcz0icHl0aG9uMyBweXRob24zLXNldHVwdG9vbHMiCiBtYWtlZGVwZW5kcz0i ZmZtcGVnLWRldmVsIHB5dGhvbjMtUHlRdDUiCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW50b29u ei90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbnRvb256L3RlbXBsYXRlCmluZGV4IGVlOWY3NjAzZjU1 Zi4uM2U4MTgzNGNhMGVkIDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW50b29uei90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL29wZW50b29uei90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ29wZW50b29ueicKIHBrZ25hbWU9b3BlbnRvb256CiB2ZXJzaW9uPTEuNi4w Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF93cmtzcmM9InRvb256L3NvdXJjZXMiCiBi dWlsZF9zdHlsZT1jbWFrZQogbWFrZV9jbWQ9bWFrZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9waWFu b2Jhci90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGlhbm9iYXIvdGVtcGxhdGUKaW5kZXggYTliMjllOTE5 OTNmLi44MWVmY2QxMjJjNGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGlhbm9iYXIvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9waWFub2Jhci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ3BpYW5vYmFyJwogcGtnbmFtZT1waWFub2JhcgogdmVyc2lvbj0yMDIyLjA0 LjAxCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtbWFrZWZpbGUKIG1h a2VfYnVpbGRfYXJncz0iVj0xIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9wcHNzcHAvdGVtcGxhdGUgYi9zcmNwa2dzL3Bwc3NwcC90ZW1wbGF0ZQpp bmRleCA3OTg0YTczM2Q0YmUuLmRiOWM5NWQwNzg0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9wcHNz cHAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wcHNzcHAvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwcHNzcHAnCiBwa2duYW1lPXBwc3NwcAogdmVyc2lvbj0x LjE0LjQKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIF9nbHNsYW5nX2NvbW1pdD1kYzExYWRkZTIz YzQ1NWEyNGUxM2RkNTRkZTliNGVkZThiZGQ3ZGI4CiBfU1BJUlZfQ3Jvc3NfY29tbWl0PTlhY2I5 ZWMzMWY1YThlZjgwZWE2Yjk5NGJiNzdiZTc4N2IwOGQzZDEKIF9hcm1pcHNfY29tbWl0PTY3MTll ZGViYWFlMDMzMzBlZTU0NDFkOWIyODI4MDY3MmVkZjAwZDUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cHFpdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHFpdi90ZW1wbGF0ZQppbmRleCA1NDJmYzI3YTJkMzIu LjkzMDhkOTQ5YjZhMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9wcWl2L3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvcHFpdi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3BxaXYnCiBwa2duYW1lPXBxaXYKIHZlcnNpb249Mi4xMgotcmV2aXNpb249MQorcmV2aXNpb249 MgogYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWci CiBtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBndGsrMy1kZXZlbCAkKHZvcHRfaWYgZmZtcGVnIGZm bXBlZy1kZXZlbCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcW1tcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv cW1tcC90ZW1wbGF0ZQppbmRleCAyNmM2NjFlZDE2YmUuLmExNTBkNzQ0MWM3YSAxMDA2NDQKLS0t IGEvc3JjcGtncy9xbW1wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcW1tcC90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3FtbXAnCiBwa2duYW1lPXFtbXAKIHZl cnNpb249MS42LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBj b25maWd1cmVfYXJncz0iLURVU0VfSEFMOkJPT0w9RkFMU0UgLURRTU1QX0RFRkFVTFRfVUk6U1RS SU5HPXNpbXBsZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBx dDUtcW1ha2UiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxhdGUgYi9z cmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxhdGUKaW5kZXggZjlkNzhlY2VkOTI5Li4wYTcxNDg0 MjA4YmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdxdDUtd2ViZW5naW5lJwogcGtnbmFtZT1xdDUtd2ViZW5naW5lCiB2ZXJzaW9u PTUuMTUuMTEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIF92ZXJzaW9uPSIke3ZlcnNpb259LWx0 cyIKIF9jaHJvbWl1bV9jb21taXQ9YmUzNDllYWY2MmU3Nzk1NTc5MWQ3YmYyOWY4OTNmMWU4YTM3 ZGFmNAogYXJjaHM9Ing4Nl82NCogaTY4NiogYXJtdls2N10qIHBwYzY0KiBhYXJjaDY0KiIKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlIGIvc3JjcGtncy9xdDUvdGVtcGxhdGUKaW5k ZXggZjRmOWY1YjUzNDRhLi5iNTE3YjQ5ZWFkMmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1L3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCkBAIC01LDcgKzUsNyBAQCBwa2duYW1l PXF0NQogdmVyc2lvbj01LjE1LjcrMjAyMjExMTkKICMgY29tbWl0IGY4YzlmYjMwNGJjM2U1M2Iz YWEwN2Y5NjJjZDc0ZTkxNjBkZWNjY2MKICMgYmFzZSByZXBvOiBodHRwczovL2ludmVudC5rZGUu b3JnL3F0L3F0L3F0NQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWV0YQog aG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjbGFuZyBmbGV4IHBlcmwgZ2xpYi1kZXZlbCBwa2ctY29u ZmlnCiAgcHl0aG9uIHJlMmMgcnVieSB3aGljaCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LW11 bHRpbWVkaWEvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlCmluZGV4 IGQ4OWU3ZDU0ZWI1YS4uYWFlMTVlNTdjYTdiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1tdWx0 aW1lZGlhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtbXVsdGltZWRpYScKIHBrZ25h bWU9cXQ2LW11bHRpbWVkaWEKIHZlcnNpb249Ni40LjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURRVF9GRUFUVVJFX2dzdHJlYW1l cj1PTiIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtaG9zdC10b29scyBw a2ctY29uZmlnIHF0Ni1zaGFkZXJ0b29scyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQppbmRleCA5OTAx MjczMmI1M2EuLjk2ODQ2ZmVhZWU4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13ZWJlbmdpbmUnCiBwa2duYW1lPXF0Ni13 ZWJlbmdpbmUKIHZlcnNpb249Ni40LjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0 eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iCiAgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0 ZW1fZmZtcGVnPU9OCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0YXYvdGVtcGxhdGUgYi9zcmNwa2dz L3F0YXYvdGVtcGxhdGUKaW5kZXggMzRjMzBiMmMwYzc4Li43NzVkNWExMzlhOWUgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvcXRhdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0YXYvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdGF2JwogcGtnbmFtZT1xdGF2CiB2 ZXJzaW9uPTEuMTMuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9cW1ha2UK IGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIgogbWFrZWRlcGVuZHM9 ImZmbXBlZy1kZXZlbCBsaWJhc3MtZGV2ZWwgbGlib3BlbmFsLWRldmVsCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0b3gvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoIGIvc3JjcGtncy9xdG94L3BhdGNoZXMv ZmZtcGVnNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNi YWJlMWM5ODQ0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXRveC9wYXRjaGVzL2ZmbXBl ZzUucGF0Y2gKQEAgLTAsMCArMSw3OSBAQAorRnJvbSAxNTY3M2E1MmI2YjQ4MDVkNDgyYjY5Mjgx ZTIxOTQ3ZmI3MDk2ZTA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW50aG9ueSBC aWxpbnNraSA8bWVAYWJpbGluc2tpLmNvbT4KK0RhdGU6IFRodSwgMTAgRmViIDIwMjIgMTc6MjQ6 MzggLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4KG1hY09TKTogVXBkYXRlIHZpZGVvIEFQSSB1 c2FnZSBmb3IgbmV3ZXIgbGliYXZjb2RlYworCitOZXdlciB2ZXJzaW9uIG9mIGF2Zm9ybWF0X29w ZW5faW5wdXQsIGF2X2ZpbmRfaW5wdXRfZm9ybWF0LAorYXZjb2RlY19maW5kX2RlY29kZXIgcHJl dmlvdXNseSB1c2VkIG5vbi1jb25zdCBwb2ludGVycyB0aGF0IGFyZSBub3cKK2NvbnN0LiBTdXBw b3J0IGJvdGggdmVyc2lvbiBmb3IgY29tcGF0aWJpbHRpeSB3aXRoIG90aGVyIHBsYXRmb3Jtcy4K Ky0tLQorIHNyYy92aWRlby9jYW1lcmFkZXZpY2UuY3BwIHwgOSArKysrKystLS0KKyBzcmMvdmlk ZW8vY2FtZXJhZGV2aWNlLmggICB8IDEgLQorIHNyYy92aWRlby9jYW1lcmFzb3VyY2UuY3BwIHwg MyArLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL3NyYy92aWRlby9jYW1lcmFkZXZpY2UuY3BwIGIvc3JjL3ZpZGVvL2Nh bWVyYWRldmljZS5jcHAKK2luZGV4IDNiMDc5NjhiMzIuLmEwMTJhMGY3OGQgMTAwNjQ0CistLS0g YS9zcmMvdmlkZW8vY2FtZXJhZGV2aWNlLmNwcAorKysrIGIvc3JjL3ZpZGVvL2NhbWVyYWRldmlj ZS5jcHAKK0BAIC0zMSw2ICszMSw5IEBAIGV4dGVybiAiQyIgeworICNpbmNsdWRlICJjYW1lcmFk ZXZpY2UuaCIKKyAjaW5jbHVkZSAic3JjL3BlcnNpc3RlbmNlL3NldHRpbmdzLmgiCisKKysvLyBu byBsb25nZXIgbmVlZGVkIHdoZW4gYXZmb3JtYXQgdmVyc2lvbiA8IDU5IGlzIG5vIGxvbmdlciBz dXBwb3J0ZWQKKyt1c2luZyBBdkZpbmRJbnB1dEZvcm1hdFJldCA9IGRlY2x0eXBlKGF2X2ZpbmRf aW5wdXRfZm9ybWF0KCIiKSk7CisrCisgI2lmIGRlZmluZWQoUV9PU19MSU5VWCkgfHwgZGVmaW5l ZChRX09TX0ZSRUVCU0QpCisgI2RlZmluZSBVU0lOR19WNEwgMQorICNlbHNlCitAQCAtNzEsOCAr NzQsOCBAQCBleHRlcm4gIkMiIHsKKworIFFIYXNoPFFTdHJpbmcsIENhbWVyYURldmljZSo+IENh bWVyYURldmljZTo6b3BlbkRldmljZXM7CisgUU11dGV4IENhbWVyYURldmljZTo6b3BlbkRldmlj ZUxvY2ssIENhbWVyYURldmljZTo6aWZvcm1hdExvY2s7CistQVZJbnB1dEZvcm1hdCogQ2FtZXJh RGV2aWNlOjppZm9ybWF0e251bGxwdHJ9OworLUFWSW5wdXRGb3JtYXQqIENhbWVyYURldmljZTo6 aWRlc2t0b3BGb3JtYXR7bnVsbHB0cn07Cisrc3RhdGljIEF2RmluZElucHV0Rm9ybWF0UmV0IGlk ZXNrdG9wRm9ybWF0e251bGxwdHJ9OworK3N0YXRpYyBBdkZpbmRJbnB1dEZvcm1hdFJldCBpZm9y bWF0e251bGxwdHJ9OworCisgQ2FtZXJhRGV2aWNlOjpDYW1lcmFEZXZpY2UoY29uc3QgUVN0cmlu ZyYgZGV2TmFtZSwgQVZGb3JtYXRDb250ZXh0KiBjb250ZXh0KQorICAgICA6IGRldk5hbWV7ZGV2 TmFtZX0KK0BAIC05Miw3ICs5NSw3IEBAIENhbWVyYURldmljZSogQ2FtZXJhRGV2aWNlOjpvcGVu KFFTdHJpbmcgZGV2TmFtZSwgQVZEaWN0aW9uYXJ5Kiogb3B0aW9ucykKKyAgICAgICAgIGdvdG8g b3V0OworICAgICB9CisKKy0gICAgQVZJbnB1dEZvcm1hdCogZm9ybWF0OworKyAgICBBdkZpbmRJ bnB1dEZvcm1hdFJldCBmb3JtYXQ7CisgICAgIGlmIChkZXZOYW1lLnN0YXJ0c1dpdGgoIngxMWdy YWIjIikpIHsKKyAgICAgICAgIGRldk5hbWUgPSBkZXZOYW1lLm1pZCg4KTsKKyAgICAgICAgIGZv cm1hdCA9IGlkZXNrdG9wRm9ybWF0OworZGlmZiAtLWdpdCBhL3NyYy92aWRlby9jYW1lcmFkZXZp Y2UuaCBiL3NyYy92aWRlby9jYW1lcmFkZXZpY2UuaAoraW5kZXggOTEwODczMzI1Yi4uYzA1ZjFk YmVkNCAxMDA2NDQKKy0tLSBhL3NyYy92aWRlby9jYW1lcmFkZXZpY2UuaAorKysrIGIvc3JjL3Zp ZGVvL2NhbWVyYWRldmljZS5oCitAQCAtNjQsNSArNjQsNCBAQCBjbGFzcyBDYW1lcmFEZXZpY2UK KyAgICAgc3RkOjphdG9taWNfaW50IHJlZmNvdW50OworICAgICBzdGF0aWMgUUhhc2g8UVN0cmlu ZywgQ2FtZXJhRGV2aWNlKj4gb3BlbkRldmljZXM7CisgICAgIHN0YXRpYyBRTXV0ZXggb3BlbkRl dmljZUxvY2ssIGlmb3JtYXRMb2NrOworLSAgICBzdGF0aWMgQVZJbnB1dEZvcm1hdCAqaWZvcm1h dCwgKmlkZXNrdG9wRm9ybWF0OworIH07CitkaWZmIC0tZ2l0IGEvc3JjL3ZpZGVvL2NhbWVyYXNv dXJjZS5jcHAgYi9zcmMvdmlkZW8vY2FtZXJhc291cmNlLmNwcAoraW5kZXggMTM0YmM0OWFmYy4u M2E4OTlmMTFkMCAxMDA2NDQKKy0tLSBhL3NyYy92aWRlby9jYW1lcmFzb3VyY2UuY3BwCisrKysg Yi9zcmMvdmlkZW8vY2FtZXJhc291cmNlLmNwcAorQEAgLTI3OCw3ICsyNzgsNiBAQCB2b2lkIENh bWVyYVNvdXJjZTo6b3BlbkRldmljZSgpCisgICAgIH0KKworICAgICAvLyBXZSBuZWVkIHRvIGNy ZWF0ZSBhIG5ldyBDYW1lcmFEZXZpY2UKKy0gICAgQVZDb2RlYyogY29kZWM7CisgICAgIGRldmlj ZSA9IENhbWVyYURldmljZTo6b3BlbihkZXZpY2VOYW1lLCBtb2RlKTsKKworICAgICBpZiAoIWRl dmljZSkgeworQEAgLTMyMiw3ICszMjEsNyBAQCB2b2lkIENhbWVyYVNvdXJjZTo6b3BlbkRldmlj ZSgpCisgICAgIEFWQ29kZWNQYXJhbWV0ZXJzKiBjcGFyYW1zID0gZGV2aWNlLT5jb250ZXh0LT5z dHJlYW1zW3ZpZGVvU3RyZWFtSW5kZXhdLT5jb2RlY3BhcjsKKyAgICAgY29kZWNJZCA9IGNwYXJh bXMtPmNvZGVjX2lkOworICNlbmRpZgorLSAgICBjb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVy KGNvZGVjSWQpOworKyAgICBjb25zdCBBVkNvZGVjKiBjb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNv ZGVyKGNvZGVjSWQpOworICAgICBpZiAoIWNvZGVjKSB7CisgICAgICAgICBxV2FybmluZygpIDw8 ICJDb2RlYyBub3QgZm91bmQiOworICAgICAgICAgZW1pdCBvcGVuRmFpbGVkKCk7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0b3gvdGVtcGxhdGUgYi9zcmNwa2dzL3F0b3gvdGVtcGxhdGUKaW5kZXgg MTYwMTlkN2VhZWM5Li41Y2VhMGIxMWI2OTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXRveC90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3F0b3gvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdxdG94JwogcGtnbmFtZT1xdG94CiB2ZXJzaW9uPTEuMTcuNgotcmV2aXNp b249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFVQ REFURV9DSEVDSz1PRkYKICAtREdJVF9ERVNDUklCRT0ke3ZlcnNpb259CmRpZmYgLS1naXQgYS9z cmNwa2dzL3JldHJvYXJjaC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmV0cm9hcmNoL3RlbXBsYXRlCmlu ZGV4IDI0MGQzZGY5ZGIwMC4uNmQwYjE2YWUyNTk4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3JldHJv YXJjaC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3JldHJvYXJjaC90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3JldHJvYXJjaCcKIHBrZ25hbWU9cmV0cm9hcmNo CiB2ZXJzaW9uPTEuMTQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y29u ZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1wcmVmaXg9L3VzciAtLXN5c2NvbmZkaXI9L2V0YyAt LWVuYWJsZS1uZXR3b3JraW5nCiAgLS1lbmFibGUtdWRldiAtLWRpc2FibGUtYnVpbHRpbmZsYWMg LS1kaXNhYmxlLWJ1aWx0aW5nbHNsYW5nCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NjcmNweS90ZW1w bGF0ZSBiL3NyY3BrZ3Mvc2NyY3B5L3RlbXBsYXRlCmluZGV4IGVlNmU2OThlMzg3Zi4uOGFkYTVj YTQzMjNmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3NjcmNweS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3NjcmNweS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Nj cmNweScKIHBrZ25hbWU9c2NyY3B5CiB2ZXJzaW9uPTIuMAotcmV2aXNpb249MQorcmV2aXNpb249 MgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGNvbXBpbGVfc2VydmVyPWZh bHNlCiAgLURwcmVidWlsdF9zZXJ2ZXI9L3Vzci9zaGFyZS9zY3JjcHkvc2NyY3B5LXNlcnZlci12 JHt2ZXJzaW9ufSIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2ZS90ZW1wbGF0 ZSBiL3NyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2ZS90ZW1wbGF0ZQppbmRleCBkNjUwODZiOGYwMDgu LjcyNzQ3Y2JiMGEwMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9zcGVrLWFsdGVybmF0aXZlL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2ZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NwZWstYWx0ZXJuYXRpdmUnCiBwa2duYW1lPXNwZWst YWx0ZXJuYXRpdmUKIHZlcnNpb249MC44LjIuMwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJhdXRvbWFrZSBnZXR0ZXh0 LWRldmVsIGludGx0b29sIGxpYnRvb2wgcGtnLWNvbmZpZyB3eFdpZGdldHMtY29tbW9uIgogbWFr ZWRlcGVuZHM9ImZmbXBlZy1kZXZlbCB3eFdpZGdldHMtZ3RrMy1kZXZlbCIKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvc3NyL3RlbXBsYXRlIGIvc3JjcGtncy9zc3IvdGVtcGxhdGUKaW5kZXggYjA1NWI5 ZWMwNzc0Li44NDJiMjQyM2FhZDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3NyL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3Mvc3NyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnc3NyJwogcGtnbmFtZT1zc3IKIHZlcnNpb249MC40LjQKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURXSVRIX1FUNT1PTiIK IGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3Vtby90 ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQppbmRleCAwZjliOWVjODE1ZjUuLmEzZmUx MzRhYTVhYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9zdW1vL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv c3Vtby90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3N1bW8n CiBwa2duYW1lPXN1bW8KIHZlcnNpb249MS4xMi4wCi1yZXZpc2lvbj01CityZXZpc2lvbj02CiBi dWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJsaWJnZGFsLXRvb2xzIHBrZy1jb25m aWcgc3dpZyBweXRob24zLXNldHVwdG9vbHMiCiBtYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCBm Zm1wZWctZGV2ZWwgZm94LWRldmVsIGdsMnBzLWRldmVsIGxpYmdkYWwtZGV2ZWwKZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvc3luZmlnL3RlbXBsYXRlIGIvc3JjcGtncy9zeW5maWcvdGVtcGxhdGUKaW5k ZXggMTgyZGMzY2QyODBmLi4yOWFmYjM1NzJlNDcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3luZmln L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3luZmlnL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBAQAog IyBTaG91bGQgYmUga2VwdCBpbiBzeW5jIHdpdGggJ3N5bmZpZ3N0dWRpbycgYW5kICdFVEwnCiBw a2duYW1lPXN5bmZpZwogdmVyc2lvbj0xLjQuNAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1ib29zdC1saWJk aXI9JHtYQlBTX0NST1NTX0JBU0V9L3Vzci9saWIiCiBob3N0bWFrZWRlcGVuZHM9ImJvb3N0LWJ1 aWxkIEltYWdlTWFnaWNrIHBrZy1jb25maWcgaW50bHRvb2wiCmRpZmYgLS1naXQgYS9zcmNwa2dz L3RlbGVncmFtLWRlc2t0b3AvdGVtcGxhdGUgYi9zcmNwa2dzL3RlbGVncmFtLWRlc2t0b3AvdGVt cGxhdGUKaW5kZXggYWFlOWYzMTM1MTAwLi43OTQzYjM2ZjBiOGEgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvdGVsZWdyYW0tZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RlbGVncmFtLWRlc2t0 b3AvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0ZWxlZ3Jh bS1kZXNrdG9wJwogcGtnbmFtZT10ZWxlZ3JhbS1kZXNrdG9wCiB2ZXJzaW9uPTQuNi41Ci1yZXZp c2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVscGVyPSJxZW11 IgogY29uZmlndXJlX2FyZ3M9Ii1EVERFU0tUT1BfQVBJX0lEPTIwOTIzNQpkaWZmIC0tZ2l0IGEv c3JjcGtncy90Z19vd3QvdGVtcGxhdGUgYi9zcmNwa2dzL3RnX293dC90ZW1wbGF0ZQppbmRleCA5 N2QxOTVkZGIzNGEuLjU1MTYxNGIyNDk1NiAxMDA2NDQKLS0tIGEvc3JjcGtncy90Z19vd3QvdGVt cGxhdGUKKysrIGIvc3JjcGtncy90Z19vd3QvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICd0Z19vd3QnCiBwa2duYW1lPXRnX293dAogdmVyc2lvbj0wLjAuMC4y MDIzMDEwNwotcmV2aXNpb249MQorcmV2aXNpb249MgogX2NvbW1pdD01MDk4NzMwYjllYjYxNzNm MGI1MjA2OGZlMjU1NWI3YzEwMTUxMjNhCiBfbGlieXV2X2NvbW1pdD0wMDk1MDg0MGQxYzliY2Ji M2ViNmViYzVhYWM1NzkzZTcxMTY2YzhiCiBfYWJzZWlsX2NvbW1pdD04YzBiOTRlNzkzYTY2NDk1 ZTBiMWYzNGE1ZWIyNmJkN2RjNjcyZGIwCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RpbWcvdGVtcGxh dGUgYi9zcmNwa2dzL3RpbWcvdGVtcGxhdGUKaW5kZXggOTFmMTUxNmIyNTk3Li4zMzQ0NDNkM2Y5 YmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdGltZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RpbWcv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0aW1nJwogcGtn bmFtZT10aW1nCiB2ZXJzaW9uPTEuNC40Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9z dHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EV0lUSF9PUEVOU0xJREVfU1VQUE9SVD1vZmYg LVduby1kZXYiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2l0IgpkaWZmIC0tZ2l0IGEv c3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMv dGVtcGxhdGUKaW5kZXggM2U3OTY2YzJiNGE5Li4yODU0MjViYTE4NTEgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90cmFja2VyLW1pbmVy cy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXIt bWluZXJzJwogcGtnbmFtZT10cmFja2VyLW1pbmVycwogdmVyc2lvbj0zLjQuMwotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1xZW11CiAjIG1p c3NpbmcgbGliZ3JzcyBmb3IgbWluZXJfcnNzCmRpZmYgLS1naXQgYS9zcmNwa2dzL3R2aGVhZGVu ZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHZoZWFkZW5kL3RlbXBsYXRlCmluZGV4IGU2YjE2ZDdjY2Yz Yi4uYTIwMDQ0ODAzMzJiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3R2aGVhZGVuZC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3R2aGVhZGVuZC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ3R2aGVhZGVuZCcKIHBrZ25hbWU9dHZoZWFkZW5kCiB2ZXJzaW9uPTQuMi44 Ci1yZXZpc2lvbj02CityZXZpc2lvbj03CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25m aWd1cmVfYXJncz0iLS1lbmFibGUtZHZic2NhbiAtLWRpc2FibGUtZmZtcGVnX3N0YXRpYwogLS1k aXNhYmxlLWhkaG9tZXJ1bl9zdGF0aWMgLS1kaXNhYmxlLWJpbnRyYXlfY2FjaGUgLS1kaXNhYmxl LWxpYngyNjRfc3RhdGljCmRpZmYgLS1naXQgYS9zcmNwa2dzL3VucGFwZXIvdGVtcGxhdGUgYi9z cmNwa2dzL3VucGFwZXIvdGVtcGxhdGUKaW5kZXggMzhlZDQ3YTU4NDAxLi5iMDU5MjBkMTMxMDEg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdW5wYXBlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3VucGFw ZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd1bnBhcGVy JwogcGtnbmFtZT11bnBhcGVyCiB2ZXJzaW9uPTYuMQotcmV2aXNpb249MworcmV2aXNpb249NAog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2 b2lkbGludXgub3JnPiIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBsaWJ4c2x0IgpkaWZm IC0tZ2l0IGEvc3JjcGtncy92YmEtbS90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmJhLW0vdGVtcGxhdGUK aW5kZXggYmExNTNlMGI1OGNhLi5hYTYwOTM2NDVlOTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmJh LW0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy92YmEtbS90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAK IHBrZ25hbWU9dmJhLW0KIHJldmVydHM9MTI5Ml8yCiB2ZXJzaW9uPTIuMS41Ci1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxF X0dUSz1UUlVFIC1ERU5BQkxFX0ZGTVBFRz1UUlVFIC1ERU5BQkxFX0xJTks9VFJVRSAtRENNQUtF X0JVSUxEX1RZUEU9UmVsZWFzZSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmln IHVuemlwIHppcCB5YXNtIHd4V2lkZ2V0cy1ndGszLWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy92aWNlL3RlbXBsYXRlIGIvc3JjcGtncy92aWNlL3RlbXBsYXRlCmluZGV4IDA5MjQ3NjdjZmNm Yi4uZmZhOTUzODRmNjRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZpY2UvdGVtcGxhdGUKKysrIGIv c3JjcGtncy92aWNlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAndmljZScKIHBrZ25hbWU9dmljZQogdmVyc2lvbj0zLjUKLXJldmlzaW9uPTEKK3JldmlzaW9u PTIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSIKIAkkKHZvcHRf ZW5hYmxlIHNkbDIgc2RsdWkyKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy93YXlwaXBlL3RlbXBsYXRl IGIvc3JjcGtncy93YXlwaXBlL3RlbXBsYXRlCmluZGV4IDVjNDE2MTkwMDA2MC4uMWE0NmZlMjdm N2Q4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3dheXBpcGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy93 YXlwaXBlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnd2F5 cGlwZScKIHBrZ25hbWU9d2F5cGlwZQogdmVyc2lvbj0wLjguNAotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfc3R5bGU9bWVzb24KICMgbHRvIGlzIG9mZiBiZWNhdXNlIGl0IGNhdXNlcyBs aW5raW5nIGVycm9ycyBpbiBhcm12NmwgYW5kIGFybXY3bCAoZHVlIHRvIE5FT04pCiBjb25maWd1 cmVfYXJncz0iLUR3ZXJyb3I9ZmFsc2UgLUR3aXRoX2RtYWJ1Zj1lbmFibGVkIC1Ed2l0aF9sejQ9 ZW5hYmxlZApkaWZmIC0tZ2l0IGEvc3JjcGtncy93Zi1yZWNvcmRlci90ZW1wbGF0ZSBiL3NyY3Br Z3Mvd2YtcmVjb3JkZXIvdGVtcGxhdGUKaW5kZXggZTI3OGViMDAxNjAwLi41ZDAxNGE1ZjI4YWYg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvd2YtcmVjb3JkZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy93 Zi1yZWNvcmRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3dmLXJlY29yZGVyJwogcGtnbmFtZT13Zi1yZWNvcmRlcgogdmVyc2lvbj0wLjMuMAotcmV2aXNp b249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBzY2RvYyB3YXlsYW5kLWRldmVsIgogbWFrZWRlcGVuZHM9IndheWxhbmQtcHJvdG9j b2xzIHdheWxhbmQtZGV2ZWwgZmZtcGVnLWRldmVsIHgyNjQtZGV2ZWwKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MveHByYS90ZW1wbGF0ZSBiL3NyY3BrZ3MveHByYS90ZW1wbGF0ZQppbmRleCAzOGY4MzI4 M2IxZTUuLmI2ZTAxZmYwYTgxMyAxMDA2NDQKLS0tIGEvc3JjcGtncy94cHJhL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MveHByYS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3hwcmEnCiBwa2duYW1lPXhwcmEKIHZlcnNpb249NC40LjQKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBtYWtlX2J1aWxkX2FyZ3M9Ii0t d2l0aG91dC1jdWRhX2tlcm5lbHMgLS13aXRob3V0LWN1ZGFfcmVidWlsZCIKIG1ha2VfaW5zdGFs bF9hcmdzPSIkKHZvcHRfd2l0aCBkb2NzKSAke21ha2VfYnVpbGRfYXJnc30iCg== --===============4169727803340512661==--