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 4369 invoked from network); 22 Mar 2023 22:59:01 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 22 Mar 2023 22:59:01 -0000 Content-Type: multipart/mixed; boundary="===============2515605002502958228==" 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: Wed, 22 Mar 2023 23:59:01 +0100 List-Id: Message-ID: <20230322225901.410-qCGvfGSsIMlexwV15lN-fadrTSgX36_2wn43lHQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============2515605002502958228== 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= --===============2515605002502958228== 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 R0VUX01BQ0hJTkUiIGluCiAJaTY4Ni1tdXNsKQoKRnJvbSBmZjBiYjgwN2U5NTZhMzA5NmVhYzk0 ODdkZmYxOGZhZmEyOWZmZjk1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB6bGljZSA8 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 ICAgICAgICAgICAgICAgICAgICAgICB8IDE2NiArKystLQogc3JjcGtncy9mZm1wZWc0L3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDQ2ICstCiBzcmNwa2dzL2ZmbXBlZ3RodW1ibmFp bGVyL3RlbXBsYXRlICAgICAgICAgICAgfCAgIDYgKy0KIHNyY3BrZ3MvZmZtcGVndGh1bWJzL3Rl bXBsYXRlICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9mZm1zMi9wYXRjaGVzL2Zm bXBlZzUucGF0Y2ggICAgICAgICAgIHwgNDE5ICsrKysrKysrKysrKysKIHNyY3BrZ3MvZmZtczIv dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uRml4LWluZmluaXRl LWxvb3AtaW4tTWVudS1jeWNsZWl0ZW1zLnBhdGNoIHwgIDYwIC0tCiAuLi42YzRkMzBmNWIyODlj NDI5YzVjYTg4ZDgwMDIwMGRiNGZjNGYucGF0Y2ggfCAgMjMgKwogLi4uL01pbk92ZXJsYXBQbGFj ZW1lbnQuY2NfaW1wcm92ZS5wYXRjaCAgICAgIHwgIDI5IC0KIHNyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL2NlbnRlci5wYXRjaCAgICAgICAgICB8IDMwNyAtLS0tLS0tLS0tCiBzcmNwa2dzL2ZsdXhi b3gvcGF0Y2hlcy9jb250YWluZXJfbG9ja3MucGF0Y2ggfCAzMjUgLS0tLS0tLS0tLQogLi4uL3Bh dGNoZXMvY29udGFpbmVyX3JlbGF0aXZlX3JlbGF0aXZlLnBhdGNoIHwgIDE1IC0KIHNyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL2ZsdXhfaW1wcm92ZS5wYXRjaCAgICB8IDIwNSAtLS0tLS0tCiBzcmNw a2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4X292ZXJzaXplLnBhdGNoICAgfCAgMjQgLQogLi4uL2Zs dXhib3gvcGF0Y2hlcy9mb2N1c19jbG9zZV9tZW51LnBhdGNoICAgIHwgIDE3IC0KIHNyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2UucGF0Y2ggICAgICB8ICAxNiAtCiBzcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy90b29sYmFyX3JlZG8ucGF0Y2ggICAgfCAyMjggLS0tLS0tLQogLi4uL2Zs dXhib3gvcGF0Y2hlcy90cmVtb3JfZ3JhYm9pZF9oZWxsLnBhdGNoIHwgMzUwIC0tLS0tLS0tLS0t CiAuLi4vcGF0Y2hlcy91bmNsdXR0ZXJfZml4X3dvcmtzcGFjZWNtZC5wYXRjaCAgfCAgNjUgLS0K IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaCAgICAgICB8ICA4NyAtLS0K IHNyY3BrZ3MvZmx1eGJveC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICA0NSArLQog c3JjcGtncy9mcmVlcmRwL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL2dlcmJlcmEvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNy Y3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMS5wYXRjaCAgICB8IDIzMiArKysrKysr CiBzcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0Y2ggICAgfCAgMzMgKwog c3JjcGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNS0zLnBhdGNoICAgIHwgIDI1ICsKIHNy Y3BrZ3MvZ29sZGVuZGljdC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3Jj cGtncy9nc3QtbGliYXYvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNw a2dzL2dzdC1wbHVnaW5zLWJhZDEvdGVtcGxhdGUgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3Br Z3MvZ3N0LXJ0c3Atc2VydmVyL3RlbXBsYXRlICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtn cy9ndGs0L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dz L2d1dmN2aWV3L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mv aGFuZGJyYWtlL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9o ZWRnZXdhcnMvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2lk amMvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mva2Zp bGVtZXRhZGF0YTUvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9raWQz L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2tvZGkv dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mva3BpcGV3 aXJlL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJhdnJl c2FtcGxlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYmV4dHJh Y3Rvci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGlib3BlbmFs L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJvcGVuc2hv dC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xvdWRnYWluL3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbWVkaWFzdHJlYW1l ci90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tZ2JhL3BhdGNoZXMv ZmZtcGVnNS5wYXRjaCAgICAgICAgICAgIHwgMTE3ICsrKysKIHNyY3BrZ3MvbWdiYS90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9taW5pZGxuYS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21peHh4L3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbWx0L3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tbHQ3L3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21vYy90ZW1wbGF0ZSAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbW90aW9uL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tcGQvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21wdi90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbXVzaWtjdWJlL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9ub3RjdXJzZXMvdGVtcGxhdGUgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL29icy90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvb2xpdmUvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvb3Blbm13L3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL29wZW50b29uei90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvcGlhbm9iYXIvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogc3JjcGtncy9wcHNzcHAvdGVtcGxhdGUgICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBzcmNwa2dzL3BxaXYvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvcW1tcC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjcGtncy9xdDUtd2ViZW5naW5lL3RlbXBsYXRlICAgICAgICAgICAg ICAgIHwgICAyICstCiBzcmNwa2dzL3F0NS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUgICAgICAgICAgICAg ICB8ICAgMiArLQogc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlICAgICAgICAgICAgICAg IHwgICAyICstCiBzcmNwa2dzL3F0YXYvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvcXRveC9wYXRjaGVzL2ZmbXBlZzUucGF0Y2ggICAgICAgICAgICB8 ICA3OSArKysKIHNyY3BrZ3MvcXRveC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjcGtncy9yZXRyb2FyY2gvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmNwa2dzL3NjcmNweS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIHNyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2ZS90ZW1wbGF0ZSAgICAgICAgICAgICB8ICAg MiArLQogc3JjcGtncy9zc3IvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBzcmNwa2dzL3N1bW8vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3Mvc3luZmlnL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogc3JjcGtncy90ZWxlZ3JhbS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgIHwgICAyICst CiBzcmNwa2dzL3RnX293dC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyY3BrZ3MvdGltZy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL3R2aGVhZGVuZC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNy Y3BrZ3MvdW5wYXBlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3Jj cGtncy92YmEtbS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNw a2dzL3ZpY2UvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3Br Z3Mvd2F5cGlwZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtn cy93Zi1yZWNvcmRlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dz L3hwcmEvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIDExNiBmaWxl cyBjaGFuZ2VkLCAxNzUzIGluc2VydGlvbnMoKyksIDE5OTQgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9hdWJpby9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2F1ZGFjaW91cy1wbHVnaW5zL3BhdGNoZXMvZmZtcGVnNS5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21hcHJpbnQvcGF0Y2hlcy9mZm1wZWc1 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mZm1zMi9wYXRjaGVzL2ZmbXBlZzUu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8wMDAxLUZp eC1pbmZpbml0ZS1sb29wLWluLU1lbnUtY3ljbGVpdGVtcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzIyODY2YzRkMzBmNWIyODljNDI5YzVjYTg4ZDgw MDIwMGRiNGZjNGYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0 Y2hlcy9NaW5PdmVybGFwUGxhY2VtZW50LmNjX2ltcHJvdmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jZW50ZXIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jb250YWluZXJfbG9ja3MucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jb250YWluZXJfcmVsYXRpdmVf cmVsYXRpdmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hl cy9mbHV4X2ltcHJvdmUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gv cGF0Y2hlcy9mbHV4X292ZXJzaXplLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9m bHV4Ym94L3BhdGNoZXMvZm9jdXNfY2xvc2VfbWVudS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2UucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90b29sYmFyX3JlZG8ucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90cmVtb3JfZ3JhYm9pZF9oZWxsLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvdW5jbHV0dGVy X2ZpeF93b3Jrc3BhY2VjbWQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhi b3gvcGF0Y2hlcy96b3JfbG9vcHMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dv bGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTMucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL21nYmEvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdG94L3BhdGNoZXMvZmZtcGVnNS5wYXRjaAoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvUU1QbGF5Mi90ZW1wbGF0ZSBiL3NyY3BrZ3MvUU1QbGF5Mi90ZW1wbGF0ZQppbmRleCBh ZDczY2JiMDFiYWUuLjU1Mjg0YzA1MTE2MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9RTVBsYXkyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvUU1QbGF5Mi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ1FNUGxheTInCiBwa2duYW1lPVFNUGxheTIKIHZlcnNpb249MjMu MDIuMDUKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgcXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIgogbWFrZWRlcGVu ZHM9ImFsc2EtbGliLWRldmVsIGZmbXBlZy1kZXZlbCBsaWJhc3MtZGV2ZWwgbGliY2Rpby1kZXZl bCBsaWJnbWUtZGV2ZWwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYWxzYS1wbHVnaW5zL3RlbXBsYXRl IGIvc3JjcGtncy9hbHNhLXBsdWdpbnMvdGVtcGxhdGUKaW5kZXggMGJmYTZkOWZkMjY0Li5hNTcw OGE3ZDgyYTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYWxzYS1wbHVnaW5zL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvYWxzYS1wbHVnaW5zL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnYWxzYS1wbHVnaW5zJwogcGtnbmFtZT1hbHNhLXBsdWdpbnMKIHZlcnNpb249 MS4yLjcuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3Vy ZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1tYWVtby1wbHVnaW4iCiBob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWciCmRpZmYgLS1naXQgYS9zcmNwa2dzL2FyY2FuL3RlbXBsYXRlIGIvc3Jj cGtncy9hcmNhbi90ZW1wbGF0ZQppbmRleCA3YmU5NjUyZWNjZjMuLmNjYzdkZjExY2VhYyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9hcmNhbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2FyY2FuL3RlbXBs YXRlCkBAIC0yLDcgKzIsNyBAQAogIyAhISBrZWVwIHN5bmNlZCB3aXRoOiBhY2ZnZnMgYWNsaXAg YWxvYWRpbWFnZQogcGtnbmFtZT1hcmNhbgogdmVyc2lvbj0wLjYuMi4xCi1yZXZpc2lvbj0xCity ZXZpc2lvbj0yCiBjcmVhdGVfd3Jrc3JjPXllcwogYnVpbGRfd3Jrc3JjPWFyY2FuL3NyYwogYnVp bGRfc3R5bGU9Y21ha2UKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYXR0cmFjdC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYXR0cmFjdC90ZW1wbGF0ZQppbmRleCAyNjE0NGU5MzFhM2MuLjI0MDE3ZDJiYWNjMiAx MDA2NDQKLS0tIGEvc3JjcGtncy9hdHRyYWN0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYXR0cmFj dC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2F0dHJhY3Qn CiBwa2duYW1lPWF0dHJhY3QKIHZlcnNpb249Mi42LjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IGJ1aWxkX3N0eWxlPWdudS1tYWtlZmlsZQogbWFrZV9idWlsZF9hcmdzPSJWRVJCT1NFPTEiCiBt YWtlX3VzZV9lbnY9eWVzCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F1YmlvL3BhdGNoZXMvZmZtcGVn NS5wYXRjaCBiL3NyY3BrZ3MvYXViaW8vcGF0Y2hlcy9mZm1wZWc1LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTJjOGUxMWVjZmYwCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9hdWJpby9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKQEAgLTAsMCArMSwzNyBA QAorY29tbWl0IDM1ZWVlMDAzZjAzNGExYTIwOTdjZDQ1NTdkZWI3NzNlYWNiMThmN2IKK0F1dGhv cjogdGliZXF1YWRvcmlhbiA8dGliZXF1YWRvcmlhbkBwb3N0ZW8uZGU+CitEYXRlOiAgIFNhdCBN YXIgMTkgMTg6NDA6MTEgMjAyMiArMDEwMAorCisgICAgYXViaW86IHJlYnVpbGQgYWdhaW5zdCBm Zm1wZWctNS4wCisKK2RpZmYgLS1naXQgYS9zcmNwa2dzL2F1YmlvL3BhdGNoZXMvZmZtcGVnLTUu MC5wYXRjaCBiL3NyY3BrZ3MvYXViaW8vcGF0Y2hlcy9mZm1wZWctNS4wLnBhdGNoCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uYWFjZTQxYTZlNgorLS0tIC9kZXYvbnVs bAorKysrIGIvc3JjcGtncy9hdWJpby9wYXRjaGVzL2ZmbXBlZy01LjAucGF0Y2gKK0BAIC0wLDAg KzEsMjUgQEAKKytGcm9tIDhhMDU0MjBlNWRkOGM3YjhiMjQ0N2Y4MmRjOTE5NzY1ODc2NTExYjMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCisrRnJvbTogUGF1bCBCcm9zc2llciA8cGllbUBwaWVt Lm9yZz4KKytEYXRlOiBUdWUsIDI1IEphbiAyMDIyIDE4OjMwOjI3ICswMTAwCisrU3ViamVjdDog W1BBVENIXSBbc291cmNlX2F2Y29kZWNdIGRlZmluZSBGRl9BUElfTEFWRl9BVkNUWCBmb3IgbGli YXZjb2RlYyA+CisrIDU5LCB0aHggQGJlcm9saW51eCAoY2xvc2VzIGdoLTM1MykKKysKKystLS0K Kysgc3JjL2lvL3NvdXJjZV9hdmNvZGVjLmMgfCA0ICsrKysKKysgMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKQorKworK2RpZmYgLS1naXQgYS9zcmMvaW8vc291cmNlX2F2Y29kZWMuYyBi L3NyYy9pby9zb3VyY2VfYXZjb2RlYy5jCisraW5kZXggZTBhZTkzYjUuLjE0MjFiZDlhIDEwMDY0 NAorKy0tLSBhL3NyYy9pby9zb3VyY2VfYXZjb2RlYy5jCisrKysrIGIvc3JjL2lvL3NvdXJjZV9h dmNvZGVjLmMKKytAQCAtNjgsNiArNjgsMTAgQEAKKysgI2RlZmluZSBBVUJJT19BVkNPREVDX01B WF9CVUZGRVJfU0laRSBBVl9JTlBVVF9CVUZGRVJfTUlOX1NJWkUKKysgI2VuZGlmCisrIAorKysj aWYgTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID49IDU5CisrKyNkZWZpbmUgRkZfQVBJX0xBVkZf QVZDVFggMQorKysjZW5kaWYKKysrCisrIHN0cnVjdCBfYXViaW9fc291cmNlX2F2Y29kZWNfdCB7 CisrICAgdWludF90IGhvcF9zaXplOworKyAgIHVpbnRfdCBzYW1wbGVyYXRlOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9hdWJpby90ZW1wbGF0ZSBiL3NyY3BrZ3MvYXViaW8vdGVtcGxhdGUKaW5kZXgg YWQxYzRiMjU2OTkxLi43ZDg3NWNjMDI1NDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXViaW8vdGVt cGxhdGUKKysrIGIvc3JjcGtncy9hdWJpby90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2F1YmlvJwogcGtnbmFtZT1hdWJpbwogdmVyc2lvbj0wLjQuOQotcmV2 aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9d2FmMwogIyBYWFggbGFzaCwgcHVyZSBh bmQgc3dpZyBzdXBwb3J0LgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHR4dDJtYW4iCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2F1ZGFjaW91cy1wbHVnaW5zL3BhdGNoZXMvZmZtcGVnNS5wYXRj aCBiL3NyY3BrZ3MvYXVkYWNpb3VzLXBsdWdpbnMvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGU1ZTM0MDk5ZDcxCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9hdWRhY2lvdXMtcGx1Z2lucy9wYXRjaGVzL2ZmbXBlZzUucGF0 Y2gKQEAgLTAsMCArMSw0MyBAQAorY29tbWl0IDI5OGFhMzcxYzU2YzJmNTJjMjVhMzNkOWJkZWM0 OTE4YjExY2ViZGMKK0F1dGhvcjogdGliZXF1YWRvcmlhbiA8dGliZXF1YWRvcmlhbkBwb3N0ZW8u ZGU+CitEYXRlOiAgIFNhdCBNYXIgMTkgMTg6NDA6MTIgMjAyMiArMDEwMAorCisgICAgYXVkYWNp b3VzLXBsdWdpbnM6IHJlYnVpbGQgYWdhaW5zdCBmZm1wZWctNS4wCisKK2RpZmYgLS1naXQgYS9z cmNwa2dzL2F1ZGFjaW91cy1wbHVnaW5zL3BhdGNoZXMvZmZtcGVnLTUuMC5wYXRjaCBiL3NyY3Br Z3MvYXVkYWNpb3VzLXBsdWdpbnMvcGF0Y2hlcy9mZm1wZWctNS4wLnBhdGNoCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uNjE3YzExMjE1YgorLS0tIC9kZXYvbnVsbAor KysrIGIvc3JjcGtncy9hdWRhY2lvdXMtcGx1Z2lucy9wYXRjaGVzL2ZmbXBlZy01LjAucGF0Y2gK K0BAIC0wLDAgKzEsMzEgQEAKKytGcm9tIGY2MGJlYjQwMGVlYjFlNDc3OGJiZmQ3MzhiYzRhNGNj ZWYzZGU1MzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCisrRnJvbTogSm9obiBMaW5kZ3JlbiA8 am9obkBqbGluZGdyZW4ubmV0PgorK0RhdGU6IFNhdCwgNSBNYXIgMjAyMiAxMjowNTozNCAtMDUw MAorK1N1YmplY3Q6IFtQQVRDSF0gRml4IGJ1aWxkIHdpdGggRkZtcGVnIDUuMAorKworKy0tLQor KyBzcmMvZmZhdWRpby9mZmF1ZGlvLWNvcmUuY2MgfCA0ICsrLS0KKysgMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKysKKytkaWZmIC0tZ2l0IGEvc3JjL2Zm YXVkaW8vZmZhdWRpby1jb3JlLmNjIGIvc3JjL2ZmYXVkaW8vZmZhdWRpby1jb3JlLmNjCisraW5k ZXggMTZkYzYzZTNhLi5hMmI5NWZkNmMgMTAwNjQ0CisrLS0tIGEvc3JjL2ZmYXVkaW8vZmZhdWRp by1jb3JlLmNjCisrKysrIGIvc3JjL2ZmYXVkaW8vZmZhdWRpby1jb3JlLmNjCisrQEAgLTI3NCw3 ICsyNzQsNyBAQCBzdGF0aWMgQVZJbnB1dEZvcm1hdCAqIGdldF9mb3JtYXRfYnlfY29udGVudCAo Y29uc3QgY2hhciAqIG5hbWUsIFZGU0ZpbGUgJiBmaWxlKQorKyAgICAgICAgIEFWUHJvYmVEYXRh IGQgPSB7bmFtZSwgYnVmLCBmaWxsZWR9OworKyAgICAgICAgIHNjb3JlID0gdGFyZ2V0OworKyAK KystICAgICAgICBmID0gYXZfcHJvYmVfaW5wdXRfZm9ybWF0MiAoJiBkLCB0cnVlLCAmIHNjb3Jl KTsKKysrICAgICAgICBmID0gKEFWSW5wdXRGb3JtYXQgKikgYXZfcHJvYmVfaW5wdXRfZm9ybWF0 MiAoJiBkLCB0cnVlLCAmIHNjb3JlKTsKKysgICAgICAgICBpZiAoZikKKysgICAgICAgICAgICAg YnJlYWs7CisrIAorK0BAIC0zNDcsNyArMzQ3LDcgQEAgc3RhdGljIGJvb2wgZmluZF9jb2RlYyAo QVZGb3JtYXRDb250ZXh0ICogYywgQ29kZWNJbmZvICogY2luZm8pCisrICNlbmRpZgorKyAgICAg ICAgIGlmIChzdHJlYW0gJiYgc3RyZWFtLT5jb2RlY3BhciAmJiBzdHJlYW0tPmNvZGVjcGFyLT5j b2RlY190eXBlID09IEFWTUVESUFfVFlQRV9BVURJTykKKysgICAgICAgICB7CisrLSAgICAgICAg ICAgIEFWQ29kZWMgKiBjb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyIChzdHJlYW0tPmNvZGVj cGFyLT5jb2RlY19pZCk7CisrKyAgICAgICAgICAgIEFWQ29kZWMgKiBjb2RlYyA9IChBVkNvZGVj ICopIGF2Y29kZWNfZmluZF9kZWNvZGVyIChzdHJlYW0tPmNvZGVjcGFyLT5jb2RlY19pZCk7Cisr IAorKyAgICAgICAgICAgICBpZiAoY29kZWMpCisrICAgICAgICAgICAgIHsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvYXVkYWNpb3VzLXBsdWdpbnMvdGVtcGxhdGUgYi9zcmNwa2dzL2F1ZGFjaW91cy1w bHVnaW5zL3RlbXBsYXRlCmluZGV4IDkxMGVjMGQxODkxZi4uZGVmMDY3OGJjNjExIDEwMDY0NAot LS0gYS9zcmNwa2dzL2F1ZGFjaW91cy1wbHVnaW5zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYXVk YWNpb3VzLXBsdWdpbnMvdGVtcGxhdGUKQEAgLTIsNyArMiw3IEBACiAjS2VlcCBpbiBzeW5jIHdp dGggYXVkYWNpb3VzIQogcGtnbmFtZT1hdWRhY2lvdXMtcGx1Z2lucwogdmVyc2lvbj00LjIKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3Vy ZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGd0aykgJCh2b3B0X2VuYWJsZSBxdCkiCiBob3N0bWFrZWRl cGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBnbGliLWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9hdWRhY2l0eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYXVkYWNpdHkvdGVtcGxhdGUKaW5kZXggZDUw OWMwYTg5NDA3Li5jMThhNGVlYjBhNzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXVkYWNpdHkvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9hdWRhY2l0eS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2F1ZGFjaXR5JwogcGtnbmFtZT1hdWRhY2l0eQogdmVyc2lvbj0y LjQuMQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQog Y29uZmlndXJlX2FyZ3M9Ii0td2l0aC1mZm1wZWc9c3lzdGVtIC0td2l0aC1saWJzbmRmaWxlPXN5 c3RlbSAtLXdpdGgtZXhwYXQ9c3lzdGVtCiAgLS13aXRoLWxpYnNveHI9c3lzdGVtIC0td2l0aC1s YW1lPXN5c3RlbSAtLXdpdGgtbHYyPXN5c3RlbSBhY19jdl9wYXRoX1dYX0NPTkZJRz13eC1jb25m aWctZ3RrMyIKQEAgLTMzLDUgKzMzLDQgQEAgcG9zdF9pbnN0YWxsKCkgewogCXZjb3B5IHBsdWct aW5zIC91c3Ivc2hhcmUvYXVkYWNpdHkKIAogCXJtICR7REVTVERJUn0vdXNyL3NoYXJlL2RvYy9h dWRhY2l0eS9MSUNFTlNFLnR4dAotCXZsaWNlbnNlIExJQ0VOU0UudHh0IExJQ0VOU0UKIH0KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvYXZpZGVtdXgvdGVtcGxhdGUgYi9zcmNwa2dzL2F2aWRlbXV4L3Rl bXBsYXRlCmluZGV4IDI1M2EwMjQzZTIyNS4uNTU3Mjg1OTgyZDJiIDEwMDY0NAotLS0gYS9zcmNw a2dzL2F2aWRlbXV4L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYXZpZGVtdXgvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhdmlkZW11eCcKIHBrZ25hbWU9YXZp ZGVtdXgKIHZlcnNpb249Mi44LjAKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKICMgQ2FuJ3QgYmUg Y29tcGlsZWQgZm9yIGFhcmNoNjQsIGFybSogb3IgbWlwcyoKIGFyY2hzPSJ4ODZfNjQqIGk2ODYq IgogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBwa2ctY29uZmlnIHF0NS1ob3N0LXRvb2xzIHF0NS1k ZXZlbCB0YXIgeWFzbSIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmFyZXNpcC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYmFyZXNpcC90ZW1wbGF0ZQppbmRleCBmMWJkMTgxNzA0OGIuLmIyMWUyMjMzNDMxNiAx MDA2NDQKLS0tIGEvc3JjcGtncy9iYXJlc2lwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmFyZXNp cC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JhcmVzaXAn CiBwa2duYW1lPWJhcmVzaXAKIHZlcnNpb249Mi4xMC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2 ZWwiCiBtYWtlZGVwZW5kcz0ibGliZ3NtLWRldmVsIGxpYnBuZy1kZXZlbCBvcGVuc3NsLWRldmVs IGxpYnNuZGZpbGUtZGV2ZWwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmxlbmRlci90ZW1wbGF0ZSBi L3NyY3BrZ3MvYmxlbmRlci90ZW1wbGF0ZQppbmRleCBhMzI1NWNkZGJjOTUuLjRlYzczZTA1YWNm NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmxl bmRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2JsZW5k ZXInCiBwa2duYW1lPWJsZW5kZXIKIHZlcnNpb249My40LjEKLXJldmlzaW9uPTEKK3JldmlzaW9u PTIKIGFyY2hzPSJ4ODZfNjQqIHBwYzY0KiIKIGJ1aWxkX3N0eWxlPSJjbWFrZSIKIHB5Y29tcGls ZV9kaXJzPSIvdXNyL3NoYXJlL2JsZW5kZXIvJHt2ZXJzaW9uJS4qfS9zY3JpcHRzIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jYW50YXRhL3RlbXBsYXRlIGIvc3JjcGtncy9jYW50YXRhL3RlbXBsYXRl CmluZGV4IDRiNDE3ZDgwZDVjMi4uOGE5MGFhYTRjMDdhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nh bnRhdGEvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jYW50YXRhL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2FudGF0YScKIHBrZ25hbWU9Y2FudGF0YQogdmVy c2lvbj0yLjUuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBxdDUtcW1ha2UgcXQ1LWhvc3QtdG9vbHMgcXQ1LXRv b2xzIgogbWFrZWRlcGVuZHM9InF0NS1kZXZlbCBxdDUtdG9vbHMtZGV2ZWwgcXQ1LXN2Zy1kZXZl bCBxdDUteG1scGF0dGVybnMtZGV2ZWwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2NleHRyYWN0b3Iv dGVtcGxhdGUgYi9zcmNwa2dzL2NjZXh0cmFjdG9yL3RlbXBsYXRlCmluZGV4IDlhYmNkODI4NTJi Mi4uN2ZlMmJhNGYyN2I2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NjZXh0cmFjdG9yL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvY2NleHRyYWN0b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjY2V4dHJhY3RvcicKIHBrZ25hbWU9Y2NleHRyYWN0b3IKIHZlcnNp b249MC45MwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfd3Jrc3JjPSJsaW51eCIKIGJ1 aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1vY3IgLS1l bmFibGUtaGFyZHN1YngiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9tYXByaW50L3BhdGNoZXMv ZmZtcGVnNS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21hcHJpbnQvcGF0Y2hlcy9mZm1wZWc1LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTlmZDMwN2EyM2M4Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9jaHJvbWFwcmludC9wYXRjaGVzL2ZmbXBlZzUucGF0 Y2gKQEAgLTAsMCArMSw1NjkgQEAKK0Zyb20gOGNjYWQ2OTM3MTc3YjFiOTJlNDBhYjhmNDQ0N2Vh MjdiYWMwMDlhNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9MdWs9 QzM9QTE9QzU9QTE9MjBMYWxpbnNrPUMzPUJEPz0gPGxhbGluc2t5QGdtYWlsLmNvbT4KK0RhdGU6 IEZyaSwgNCBOb3YgMjAyMiAyMTo0NzozOCArMDEwMAorU3ViamVjdDogW1BBVENIXSBVc2UgRkZt cGVnIDUueCAoIzEyMCkKKworKiBVc2UgRkZtcGVnIDUuMS4yIGZvciBDSSBidWlsZHMKKworKiBC dWlsZCBvbiBVYnVudHUgMjAuMDQKKworKiBVcGdyYWRlIGNvZGUgdG8gRkZtcGVnIDUueCBBUElz CisKKyogT25seSBzZXQgRkZtcGVnIGluY2x1ZGUgZGlycyBpZiBidWlsZGluZyB0b29scworCisq IE5vIGxvbmdlciBuZWVkZWQKKworKiBVc2UgdWJ1bnR1IDIwLjA0CistLS0KKyAuZ2l0aHViL3dv cmtmbG93cy9idWlsZC55bWwgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KKyBDTWFrZUxpc3Rz LnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTYgLS0KKyBwYWNrYWdlL2J1 aWxkLnNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KKyBzcmMvYXVkaW8v ZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvci5oICAgICAgICAgICAgfCAgIDIgLQorIHNyYy9hdWRpby9m Zm1wZWdfYXVkaW9fcHJvY2Vzc29yX2F2cmVzYW1wbGUuaCB8ICA3MiAtLS0tLS0tCisgc3JjL2F1 ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNzb3Jfc3dyZXNhbXBsZS5oIHwgIDE4ICstCisgc3JjL2F1 ZGlvL2ZmbXBlZ19hdWRpb19yZWFkZXIuaCAgICAgICAgICAgICAgIHwgMTk3ICsrKysrKysrKy0t LS0tLS0tLQorIHRlc3RzL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgNiArCisgOCBmaWxlcyBjaGFuZ2VkLCAxMjIgaW5zZXJ0aW9ucygrKSwgMTk5IGRlbGV0aW9u cygtKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nv cl9hdnJlc2FtcGxlLmgKKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0 cy50eHQKK2luZGV4IGY4ZDZhMzIuLjRkYTI0MDUgMTAwNjQ0CistLS0gYS9DTWFrZUxpc3RzLnR4 dAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC04NCw5ICs4NCw2IEBAIGZpbmRfcGFja2FnZShG Rm1wZWcpCisgaWYoRkZNUEVHX0xJQlJBUklFUykKKyAJY21ha2VfcHVzaF9jaGVja19zdGF0ZShS RVNFVCkKKyAJc2V0KENNQUtFX1JFUVVJUkVEX0xJQlJBUklFUyAke0ZGTVBFR19MSUJSQVJJRVN9 ICR7Q01BS0VfVEhSRUFEX0xJQlNfSU5JVH0gLWxtKQorLQljaGVja19mdW5jdGlvbl9leGlzdHMo YXZfcGFja2V0X3VucmVmIEhBVkVfQVZfUEFDS0VUX1VOUkVGKQorLQljaGVja19mdW5jdGlvbl9l eGlzdHMoYXZfZnJhbWVfYWxsb2MgSEFWRV9BVl9GUkFNRV9BTExPQykKKy0JY2hlY2tfZnVuY3Rp b25fZXhpc3RzKGF2X2ZyYW1lX2ZyZWUgSEFWRV9BVl9GUkFNRV9GUkVFKQorIAljbWFrZV9wb3Bf Y2hlY2tfc3RhdGUoKQorIGVuZGlmKCkKKworQEAgLTE2MywxNCArMTYwLDExIEBAIG1lc3NhZ2Uo U1RBVFVTICJVc2luZyAke0ZGVF9MSUJ9IGZvciBGRlQgY2FsY3VsYXRpb25zIikKKyBpZihOT1Qg QVVESU9fUFJPQ0VTU09SX0xJQikKKyAJaWYoRkZNUEVHX0xJQlNXUkVTQU1QTEVfRk9VTkQpCisg CQlzZXQoQVVESU9fUFJPQ0VTU09SX0xJQiAic3dyZXNhbXBsZSIpCistCWVsc2VpZihGRk1QRUdf TElCQVZSRVNBTVBMRV9GT1VORCkKKy0JCXNldChBVURJT19QUk9DRVNTT1JfTElCICJhdnJlc2Ft cGxlIikKKyAJZW5kaWYoKQorIGVuZGlmKCkKKworIGlmKEFVRElPX1BST0NFU1NPUl9MSUIgU1RS RVFVQUwgInN3cmVzYW1wbGUiKQorIAlpZihGRk1QRUdfTElCU1dSRVNBTVBMRV9GT1VORCkKKy0J CXNldChVU0VfQVZSRVNBTVBMRSBPRkYpCisgCQlzZXQoVVNFX1NXUkVTQU1QTEUgT04pCisgCQlz ZXQoQVVESU9fUFJPQ0VTU09SX0xJQlJBUklFUyAke0ZGTVBFR19MSUJTV1JFU0FNUExFX0xJQlJB UklFU30pCisgCQlzZXQoQVVESU9fUFJPQ0VTU09SX0lOQ0xVREVfRElSUyAke0ZGTVBFR19MSUJT V1JFU0FNUExFX0lOQ0xVREVfRElSU30pCitAQCAtMTc4LDE2ICsxNzIsNiBAQCBpZihBVURJT19Q Uk9DRVNTT1JfTElCIFNUUkVRVUFMICJzd3Jlc2FtcGxlIikKKyAJCW1lc3NhZ2UoRkFUQUxfRVJS T1IgIlNlbGVjdGVkICR7QVVESU9fUFJPQ0VTU09SX0xJQn0gZm9yIGF1ZGlvIHByb2Nlc3Npbmcs IGJ1dCB0aGUgbGlicmFyeSBpcyBub3QgZm91bmQiKQorIAllbmRpZigpCisgCW1lc3NhZ2UoU1RB VFVTICJVc2luZyAke0FVRElPX1BST0NFU1NPUl9MSUJ9IGZvciBhdWRpbyBjb252ZXJzaW9uIikK Ky1lbHNlaWYoQVVESU9fUFJPQ0VTU09SX0xJQiBTVFJFUVVBTCAiYXZyZXNhbXBsZSIpCistCWlm KEZGTVBFR19MSUJBVlJFU0FNUExFX0ZPVU5EKQorLQkJc2V0KFVTRV9BVlJFU0FNUExFIE9OKQor LQkJc2V0KFVTRV9TV1JFU0FNUExFIE9GRikKKy0JCXNldChBVURJT19QUk9DRVNTT1JfTElCUkFS SUVTICR7RkZNUEVHX0xJQkFWUkVTQU1QTEVfTElCUkFSSUVTfSkKKy0JCXNldChBVURJT19QUk9D RVNTT1JfSU5DTFVERV9ESVJTICR7RkZNUEVHX0xJQkFWUkVTQU1QTEVfSU5DTFVERV9ESVJTfSkK Ky0JZWxzZSgpCistCQltZXNzYWdlKEZBVEFMX0VSUk9SICJTZWxlY3RlZCAke0FVRElPX1BST0NF U1NPUl9MSUJ9IGZvciBhdWRpbyBwcm9jZXNzaW5nLCBidXQgdGhlIGxpYnJhcnkgaXMgbm90IGZv dW5kIikKKy0JZW5kaWYoKQorLQltZXNzYWdlKFNUQVRVUyAiVXNpbmcgJHtBVURJT19QUk9DRVNT T1JfTElCfSBmb3IgYXVkaW8gY29udmVyc2lvbiIpCisgZWxzZSgpCisgCW1lc3NhZ2UoU1RBVFVT ICJCdWlsZGluZyB3aXRob3V0IGF1ZGlvIGNvbnZlcnNpb24gc3VwcG9ydCwgcGxlYXNlIGluc3Rh bGwgRkZtcGVnIHdpdGggbGlic3dyZXNhbXBsZSIpCisgZW5kaWYoKQorZGlmZiAtLWdpdCBhL3Bh Y2thZ2UvYnVpbGQuc2ggYi9wYWNrYWdlL2J1aWxkLnNoCitpbmRleCBkYTYzMWFlLi5iNDFkMzZl IDEwMDc1NQorLS0tIGEvcGFja2FnZS9idWlsZC5zaAorKysrIGIvcGFja2FnZS9idWlsZC5zaAor QEAgLTcsOCArNyw4IEBAIHNldCAtZXV4CisKKyBCQVNFX0RJUj0kKGNkICQoZGlybmFtZSAkMCkv Li4gJiYgcHdkKQorCistRkZNUEVHX1ZFUlNJT049NC40LjEKKy1GRk1QRUdfQlVJTERfVEFHPXY0 LjQuMS0xCisrRkZNUEVHX1ZFUlNJT049NS4xLjIKKytGRk1QRUdfQlVJTERfVEFHPXYke0ZGTVBF R19WRVJTSU9OfS0xCisKKyBUTVBfQlVJTERfRElSPSRCQVNFX0RJUi8kKG1rdGVtcCAtZCBidWls ZC5YWFhYWFhYWCkKKyB0cmFwICdybSAtcmYgJFRNUF9CVUlMRF9ESVInIEVYSVQKK2RpZmYgLS1n aXQgYS9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvci5oIGIvc3JjL2F1ZGlvL2ZmbXBl Z19hdWRpb19wcm9jZXNzb3IuaAoraW5kZXggNzYyOGZjNy4uMzlmNGY2ZCAxMDA2NDQKKy0tLSBh L3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcHJvY2Vzc29yLmgKKysrKyBiL3NyYy9hdWRpby9mZm1w ZWdfYXVkaW9fcHJvY2Vzc29yLmgKK0BAIC0xMCw4ICsxMCw2IEBACisKKyAjaWYgZGVmaW5lZChV U0VfU1dSRVNBTVBMRSkKKyAjaW5jbHVkZSAiYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9z d3Jlc2FtcGxlLmgiCistI2VsaWYgZGVmaW5lZChVU0VfQVZSRVNBTVBMRSkKKy0jaW5jbHVkZSAi YXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9hdnJlc2FtcGxlLmgiCisgI2Vsc2UKKyAjZXJy b3IgIm5vIGF1ZGlvIHByb2Nlc3NpbmcgbGlicmFyeSIKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS9z cmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9hdnJlc2FtcGxlLmggYi9zcmMvYXVkaW8v ZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9hdnJlc2FtcGxlLmgKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggYmQ4NWY5Mi4uMDAwMDAwMAorLS0tIGEvc3JjL2F1ZGlvL2ZmbXBlZ19hdWRp b19wcm9jZXNzb3JfYXZyZXNhbXBsZS5oCisrKysgL2Rldi9udWxsCitAQCAtMSw3MiArMCwwIEBA CistLy8gQ29weXJpZ2h0IChDKSAyMDE2ICBMdWthcyBMYWxpbnNreQorLS8vIERpc3RyaWJ1dGVk IHVuZGVyIHRoZSBNSVQgbGljZW5zZSwgc2VlIHRoZSBMSUNFTlNFIGZpbGUgZm9yIGRldGFpbHMu CistCistI2lmbmRlZiBDSFJPTUFQUklOVF9BVURJT19GRk1QRUdfQVVESU9fUFJPQ0VTU09SX0FW UkVTQU1QTEVfSF8KKy0jZGVmaW5lIENIUk9NQVBSSU5UX0FVRElPX0ZGTVBFR19BVURJT19QUk9D RVNTT1JfQVZSRVNBTVBMRV9IXworLQorLWV4dGVybiAiQyIgeworLSNpbmNsdWRlIDxsaWJhdnJl c2FtcGxlL2F2cmVzYW1wbGUuaD4KKy19CistCistbmFtZXNwYWNlIGNocm9tYXByaW50IHsKKy0K Ky1jbGFzcyBGRm1wZWdBdWRpb1Byb2Nlc3NvciB7CistcHVibGljOgorLQlGRm1wZWdBdWRpb1By b2Nlc3NvcigpIHsKKy0JCW1fcmVzYW1wbGVfY3R4ID0gYXZyZXNhbXBsZV9hbGxvY19jb250ZXh0 KCk7CistCX0KKy0KKy0JfkZGbXBlZ0F1ZGlvUHJvY2Vzc29yKCkgeworLQkJYXZyZXNhbXBsZV9m cmVlKCZtX3Jlc2FtcGxlX2N0eCk7CistCX0KKy0KKy0Jdm9pZCBTZXRDb21wYXRpYmxlTW9kZSgp IHsKKy0JCWF2X29wdF9zZXRfaW50KG1fcmVzYW1wbGVfY3R4LCAiZmlsdGVyX3NpemUiLCAxNiwg MCk7CistCQlhdl9vcHRfc2V0X2ludChtX3Jlc2FtcGxlX2N0eCwgInBoYXNlX3NoaWZ0IiwgOCwg MCk7CistCQlhdl9vcHRfc2V0X2ludChtX3Jlc2FtcGxlX2N0eCwgImxpbmVhcl9pbnRlcnAiLCAx LCAwKTsKKy0JCWF2X29wdF9zZXRfZG91YmxlKG1fcmVzYW1wbGVfY3R4LCAiY3V0b2ZmIiwgMC44 LCAwKTsKKy0JfQorLQorLQl2b2lkIFNldElucHV0Q2hhbm5lbExheW91dChpbnQ2NF90IGNoYW5u ZWxfbGF5b3V0KSB7CistCQlhdl9vcHRfc2V0X2ludChtX3Jlc2FtcGxlX2N0eCwgImluX2NoYW5u ZWxfbGF5b3V0IiwgY2hhbm5lbF9sYXlvdXQsIDApOworLQl9CistCistCXZvaWQgU2V0SW5wdXRT YW1wbGVGb3JtYXQoQVZTYW1wbGVGb3JtYXQgc2FtcGxlX2Zvcm1hdCkgeworLQkJYXZfb3B0X3Nl dF9pbnQobV9yZXNhbXBsZV9jdHgsICJpbl9zYW1wbGVfZm10Iiwgc2FtcGxlX2Zvcm1hdCwgMCk7 CistCX0KKy0KKy0Jdm9pZCBTZXRJbnB1dFNhbXBsZVJhdGUoaW50IHNhbXBsZV9yYXRlKSB7Cist CQlhdl9vcHRfc2V0X2ludChtX3Jlc2FtcGxlX2N0eCwgImluX3NhbXBsZV9yYXRlIiwgc2FtcGxl X3JhdGUsIDApOworLQl9CistCistCXZvaWQgU2V0T3V0cHV0Q2hhbm5lbExheW91dChpbnQ2NF90 IGNoYW5uZWxfbGF5b3V0KSB7CistCQlhdl9vcHRfc2V0X2ludChtX3Jlc2FtcGxlX2N0eCwgIm91 dF9jaGFubmVsX2xheW91dCIsIGNoYW5uZWxfbGF5b3V0LCAwKTsKKy0JfQorLQorLQl2b2lkIFNl dE91dHB1dFNhbXBsZUZvcm1hdChBVlNhbXBsZUZvcm1hdCBzYW1wbGVfZm9ybWF0KSB7CistCQlh dl9vcHRfc2V0X2ludChtX3Jlc2FtcGxlX2N0eCwgIm91dF9zYW1wbGVfZm10Iiwgc2FtcGxlX2Zv cm1hdCwgMCk7CistCX0KKy0KKy0Jdm9pZCBTZXRPdXRwdXRTYW1wbGVSYXRlKGludCBzYW1wbGVf cmF0ZSkgeworLQkJYXZfb3B0X3NldF9pbnQobV9yZXNhbXBsZV9jdHgsICJvdXRfc2FtcGxlX2Zt dCIsIHNhbXBsZV9yYXRlLCAwKTsKKy0JfQorLQorLQlpbnQgSW5pdCgpIHsKKy0JCXJldHVybiBh dnJlc2FtcGxlX29wZW4obV9yZXNhbXBsZV9jdHgpOworLQl9CistCistCWludCBDb252ZXJ0KHVp bnQ4X3QgKipvdXQsIGludCBvdXRfY291bnQsIGNvbnN0IHVpbnQ4X3QgKippbiwgaW50IGluX2Nv dW50KSB7CistCQlyZXR1cm4gYXZyZXNhbXBsZV9jb252ZXJ0KG1fcmVzYW1wbGVfY3R4LCBvdXQs IDAsIG91dF9jb3VudCwgKHVpbnQ4X3QgKiopIGluLCAwLCBpbl9jb3VudCk7CistCX0KKy0KKy0J aW50IEZsdXNoKHVpbnQ4X3QgKipvdXQsIGludCBvdXRfY291bnQpIHsKKy0JCXJldHVybiBhdnJl c2FtcGxlX3JlYWQobV9yZXNhbXBsZV9jdHgsIG91dCwgb3V0X2NvdW50KTsKKy0JfQorLQorLXBy aXZhdGU6CistCUFWQXVkaW9SZXNhbXBsZUNvbnRleHQgKm1fcmVzYW1wbGVfY3R4ID0gbnVsbHB0 cjsKKy19OworLQorLX07IC8vIG5hbWVzcGFjZSBjaHJvbWFwcmludAorLQorLSNlbmRpZgorZGlm ZiAtLWdpdCBhL3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcHJvY2Vzc29yX3N3cmVzYW1wbGUuaCBi L3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcHJvY2Vzc29yX3N3cmVzYW1wbGUuaAoraW5kZXggYjg2 MjY2Yi4uYjFkNGJlYSAxMDA2NDQKKy0tLSBhL3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcHJvY2Vz c29yX3N3cmVzYW1wbGUuaAorKysrIGIvc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNzb3Jf c3dyZXNhbXBsZS5oCitAQCAtMjgsMzAgKzI4LDI4IEBAIHB1YmxpYzoKKyAJCWF2X29wdF9zZXRf ZG91YmxlKG1fc3dyX2N0eCwgImN1dG9mZiIsIDAuOCwgMCk7CisgCX0KKworLQl2b2lkIFNldElu cHV0Q2hhbm5lbExheW91dChpbnQ2NF90IGNoYW5uZWxfbGF5b3V0KSB7CistCQlhdl9vcHRfc2V0 X2ludChtX3N3cl9jdHgsICJpY2wiLCBjaGFubmVsX2xheW91dCwgMCk7CistCQlhdl9vcHRfc2V0 X2ludChtX3N3cl9jdHgsICJpY2giLCBhdl9nZXRfY2hhbm5lbF9sYXlvdXRfbmJfY2hhbm5lbHMo Y2hhbm5lbF9sYXlvdXQpLCAwKTsKKysJdm9pZCBTZXRJbnB1dENoYW5uZWxMYXlvdXQoQVZDaGFu bmVsTGF5b3V0ICpjaGFubmVsX2xheW91dCkgeworKwkJYXZfb3B0X3NldF9pbnQobV9zd3JfY3R4 LCAiaW5fY2hhbm5lbF9sYXlvdXQiLCBjaGFubmVsX2xheW91dC0+dS5tYXNrLCAwKTsKKyAJfQor CisgCXZvaWQgU2V0SW5wdXRTYW1wbGVGb3JtYXQoQVZTYW1wbGVGb3JtYXQgc2FtcGxlX2Zvcm1h dCkgeworLQkJYXZfb3B0X3NldF9pbnQobV9zd3JfY3R4LCAiaXNmIiwgc2FtcGxlX2Zvcm1hdCwg MCk7CisrCQlhdl9vcHRfc2V0X3NhbXBsZV9mbXQobV9zd3JfY3R4LCAiaW5fc2FtcGxlX2ZtdCIs IHNhbXBsZV9mb3JtYXQsIDApOworIAl9CisKKyAJdm9pZCBTZXRJbnB1dFNhbXBsZVJhdGUoaW50 IHNhbXBsZV9yYXRlKSB7CistCQlhdl9vcHRfc2V0X2ludChtX3N3cl9jdHgsICJpc3IiLCBzYW1w bGVfcmF0ZSwgMCk7CisrCQlhdl9vcHRfc2V0X2ludChtX3N3cl9jdHgsICJpbl9zYW1wbGVfcmF0 ZSIsIHNhbXBsZV9yYXRlLCAwKTsKKyAJfQorCistCXZvaWQgU2V0T3V0cHV0Q2hhbm5lbExheW91 dChpbnQ2NF90IGNoYW5uZWxfbGF5b3V0KSB7CistCQlhdl9vcHRfc2V0X2ludChtX3N3cl9jdHgs ICJvY2wiLCBjaGFubmVsX2xheW91dCwgMCk7CistCQlhdl9vcHRfc2V0X2ludChtX3N3cl9jdHgs ICJvY2giLCBhdl9nZXRfY2hhbm5lbF9sYXlvdXRfbmJfY2hhbm5lbHMoY2hhbm5lbF9sYXlvdXQp LCAwKTsKKysJdm9pZCBTZXRPdXRwdXRDaGFubmVsTGF5b3V0KEFWQ2hhbm5lbExheW91dCAqY2hh bm5lbF9sYXlvdXQpIHsKKysJCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgIm91dF9jaGFubmVs X2xheW91dCIsIGNoYW5uZWxfbGF5b3V0LT51Lm1hc2ssIDApOworIAl9CisKKyAJdm9pZCBTZXRP dXRwdXRTYW1wbGVGb3JtYXQoQVZTYW1wbGVGb3JtYXQgc2FtcGxlX2Zvcm1hdCkgeworLQkJYXZf b3B0X3NldF9pbnQobV9zd3JfY3R4LCAib3NmIiwgc2FtcGxlX2Zvcm1hdCwgMCk7CisrCQlhdl9v cHRfc2V0X3NhbXBsZV9mbXQobV9zd3JfY3R4LCAib3V0X3NhbXBsZV9mbXQiLCBzYW1wbGVfZm9y bWF0LCAwKTsKKyAJfQorCisgCXZvaWQgU2V0T3V0cHV0U2FtcGxlUmF0ZShpbnQgc2FtcGxlX3Jh dGUpIHsKKy0JCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgIm9zciIsIHNhbXBsZV9yYXRlLCAw KTsKKysJCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgIm91dF9zYW1wbGVfcmF0ZSIsIHNhbXBs ZV9yYXRlLCAwKTsKKyAJfQorCisgCWludCBJbml0KCkgeworZGlmZiAtLWdpdCBhL3NyYy9hdWRp by9mZm1wZWdfYXVkaW9fcmVhZGVyLmggYi9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3JlYWRlci5o CitpbmRleCA1NTUwMTY0Li4xYzZiMzQ2IDEwMDY0NAorLS0tIGEvc3JjL2F1ZGlvL2ZmbXBlZ19h dWRpb19yZWFkZXIuaAorKysrIGIvc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19yZWFkZXIuaAorQEAg LTYyLDcgKzYyLDcgQEAgcHVibGljOgorIAlib29sIFJlYWQoY29uc3QgaW50MTZfdCAqKmRhdGEs IHNpemVfdCAqc2l6ZSk7CisKKyAJYm9vbCBJc09wZW4oKSBjb25zdCB7IHJldHVybiBtX29wZW5l ZDsgfQorLQlib29sIElzRmluaXNoZWQoKSBjb25zdCB7IHJldHVybiBtX2ZpbmlzaGVkICYmICFt X2dvdF9mcmFtZTsgfQorKwlib29sIElzRmluaXNoZWQoKSBjb25zdCB7IHJldHVybiAhbV9oYXNf bW9yZV9wYWNrZXRzICYmICFtX2hhc19tb3JlX2ZyYW1lczsgfQorCisgCXN0ZDo6c3RyaW5nIEdl dEVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQorIAlpbnQgR2V0RXJyb3JDb2RlKCkg Y29uc3QgeyByZXR1cm4gbV9lcnJvcl9jb2RlOyB9CitAQCAtNzQsMjAgKzc0LDE5IEBAIHByaXZh dGU6CisgCXVpbnQ4X3QgKm1fY29udmVydF9idWZmZXJbMV0gPSB7IG51bGxwdHIgfTsKKyAJaW50 IG1fY29udmVydF9idWZmZXJfbmJfc2FtcGxlcyA9IDA7CisKKy0JQVZJbnB1dEZvcm1hdCAqbV9p bnB1dF9mbXQgPSBudWxscHRyOworKwljb25zdCBBVklucHV0Rm9ybWF0ICptX2lucHV0X2ZtdCA9 IG51bGxwdHI7CisgCUFWRGljdGlvbmFyeSAqbV9pbnB1dF9vcHRzID0gbnVsbHB0cjsKKworIAlB VkZvcm1hdENvbnRleHQgKm1fZm9ybWF0X2N0eCA9IG51bGxwdHI7CisgCUFWQ29kZWNDb250ZXh0 ICptX2NvZGVjX2N0eCA9IG51bGxwdHI7CistCUFWRnJhbWUgKm1fZnJhbWUgPSBudWxscHRyOwor IAlpbnQgbV9zdHJlYW1faW5kZXggPSAtMTsKKyAJc3RkOjpzdHJpbmcgbV9lcnJvcjsKKyAJaW50 IG1fZXJyb3JfY29kZSA9IDA7CistCWJvb2wgbV9maW5pc2hlZCA9IGZhbHNlOworIAlib29sIG1f b3BlbmVkID0gZmFsc2U7CistCWludCBtX2dvdF9mcmFtZSA9IDA7CistCUFWUGFja2V0IG1fcGFj a2V0OworLQlBVlBhY2tldCBtX3BhY2tldDA7CisrCWJvb2wgbV9oYXNfbW9yZV9wYWNrZXRzID0g dHJ1ZTsKKysJYm9vbCBtX2hhc19tb3JlX2ZyYW1lcyA9IHRydWU7CisrCUFWUGFja2V0ICptX3Bh Y2tldCA9IG51bGxwdHI7CisrCUFWRnJhbWUgKm1fZnJhbWUgPSBudWxscHRyOworCisgCWludCBt X291dHB1dF9zYW1wbGVfcmF0ZSA9IDA7CisgCWludCBtX291dHB1dF9jaGFubmVscyA9IDA7CitA QCAtOTgsMTkgKzk3LDEyIEBAIHByaXZhdGU6CisKKyBpbmxpbmUgRkZtcGVnQXVkaW9SZWFkZXI6 OkZGbXBlZ0F1ZGlvUmVhZGVyKCkgeworIAlhdl9sb2dfc2V0X2xldmVsKEFWX0xPR19RVUlFVCk7 CistCistCWF2X2luaXRfcGFja2V0KCZtX3BhY2tldCk7CistCW1fcGFja2V0LmRhdGEgPSBudWxs cHRyOworLQltX3BhY2tldC5zaXplID0gMDsKKy0KKy0JbV9wYWNrZXQwID0gbV9wYWNrZXQ7Cisg fQorCisgaW5saW5lIEZGbXBlZ0F1ZGlvUmVhZGVyOjp+RkZtcGVnQXVkaW9SZWFkZXIoKSB7Cisg CUNsb3NlKCk7CisgCWF2X2RpY3RfZnJlZSgmbV9pbnB1dF9vcHRzKTsKKyAJYXZfZnJlZXAoJm1f Y29udmVydF9idWZmZXJbMF0pOworLQlhdl9wYWNrZXRfdW5yZWYoJm1fcGFja2V0MCk7CisgfQor CisgaW5saW5lIGJvb2wgRkZtcGVnQXVkaW9SZWFkZXI6OlNldElucHV0Rm9ybWF0KGNvbnN0IGNo YXIgKm5hbWUpIHsKK0BAIC0xMzUsMTEgKzEyNywxMCBAQCBpbmxpbmUgYm9vbCBGRm1wZWdBdWRp b1JlYWRlcjo6T3Blbihjb25zdCBzdGQ6OnN0cmluZyAmZmlsZV9uYW1lKSB7CisKKyAJQ2xvc2Uo KTsKKworLSAgICBhdl9pbml0X3BhY2tldCgmbV9wYWNrZXQpOworLQltX3BhY2tldC5kYXRhID0g bnVsbHB0cjsKKy0JbV9wYWNrZXQuc2l6ZSA9IDA7CistCistCW1fcGFja2V0MCA9IG1fcGFja2V0 OworKwltX3BhY2tldCA9IGF2X3BhY2tldF9hbGxvYygpOworKwlpZiAoIW1fcGFja2V0KSB7Cisr CQlyZXR1cm4gZmFsc2U7CisrCX0KKworIAlyZXQgPSBhdmZvcm1hdF9vcGVuX2lucHV0KCZtX2Zv cm1hdF9jdHgsIGZpbGVfbmFtZS5jX3N0cigpLCBtX2lucHV0X2ZtdCwgJm1faW5wdXRfb3B0cyk7 CisgCWlmIChyZXQgPCAwKSB7CitAQCAtMTUzLDI2ICsxNDQsMzEgQEAgaW5saW5lIGJvb2wgRkZt cGVnQXVkaW9SZWFkZXI6Ok9wZW4oY29uc3Qgc3RkOjpzdHJpbmcgJmZpbGVfbmFtZSkgeworIAkJ cmV0dXJuIGZhbHNlOworIAl9CisKKy0JQVZDb2RlYyAqY29kZWM7CisrCWNvbnN0IEFWQ29kZWMg KmNvZGVjOworIAlyZXQgPSBhdl9maW5kX2Jlc3Rfc3RyZWFtKG1fZm9ybWF0X2N0eCwgQVZNRURJ QV9UWVBFX0FVRElPLCAtMSwgLTEsICZjb2RlYywgMCk7CisgCWlmIChyZXQgPCAwKSB7CisgCQlT ZXRFcnJvcigiQ291bGQgbm90IGZpbmQgYW55IGF1ZGlvIHN0cmVhbSBpbiB0aGUgZmlsZSIsIHJl dCk7CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KKyAJbV9zdHJlYW1faW5kZXggPSByZXQ7CisrCWF1 dG8gc3RyZWFtID0gbV9mb3JtYXRfY3R4LT5zdHJlYW1zW21fc3RyZWFtX2luZGV4XTsKKworLQlt X2NvZGVjX2N0eCA9IG1fZm9ybWF0X2N0eC0+c3RyZWFtc1ttX3N0cmVhbV9pbmRleF0tPmNvZGVj OworKwltX2NvZGVjX2N0eCA9IGF2Y29kZWNfYWxsb2NfY29udGV4dDMoY29kZWMpOworIAltX2Nv ZGVjX2N0eC0+cmVxdWVzdF9zYW1wbGVfZm10ID0gQVZfU0FNUExFX0ZNVF9TMTY7CisKKysJcmV0 ID0gYXZjb2RlY19wYXJhbWV0ZXJzX3RvX2NvbnRleHQobV9jb2RlY19jdHgsIHN0cmVhbS0+Y29k ZWNwYXIpOworKwlpZiAocmV0IDwgMCkgeworKwkJU2V0RXJyb3IoIkNvdWxkIG5vdCBjb3B5IHRo ZSBzdHJlYW0gcGFyYW1ldGVycyIsIHJldCk7CisrCQlyZXR1cm4gZmFsc2U7CisrCX0KKysKKyAJ cmV0ID0gYXZjb2RlY19vcGVuMihtX2NvZGVjX2N0eCwgY29kZWMsIG51bGxwdHIpOworIAlpZiAo cmV0IDwgMCkgeworIAkJU2V0RXJyb3IoIkNvdWxkIG5vdCBvcGVuIHRoZSBjb2RlYyIsIHJldCk7 CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KKworLQlpZiAoIW1fY29kZWNfY3R4LT5jaGFubmVsX2xh eW91dCkgeworLQkJbV9jb2RlY19jdHgtPmNoYW5uZWxfbGF5b3V0ID0gYXZfZ2V0X2RlZmF1bHRf Y2hhbm5lbF9sYXlvdXQobV9jb2RlY19jdHgtPmNoYW5uZWxzKTsKKy0JfQorKwlhdl9kdW1wX2Zv cm1hdChtX2Zvcm1hdF9jdHgsIDAsICJmb28iLCAwKTsKKworIAltX2ZyYW1lID0gYXZfZnJhbWVf YWxsb2MoKTsKKyAJaWYgKCFtX2ZyYW1lKSB7CitAQCAtMTgzLDE5ICsxNzksMjMgQEAgaW5saW5l IGJvb2wgRkZtcGVnQXVkaW9SZWFkZXI6Ok9wZW4oY29uc3Qgc3RkOjpzdHJpbmcgJmZpbGVfbmFt ZSkgeworIAkJbV9vdXRwdXRfc2FtcGxlX3JhdGUgPSBtX2NvZGVjX2N0eC0+c2FtcGxlX3JhdGU7 CisgCX0KKworLQlpZiAoIW1fb3V0cHV0X2NoYW5uZWxzKSB7CistCQltX291dHB1dF9jaGFubmVs cyA9IG1fY29kZWNfY3R4LT5jaGFubmVsczsKKysJQVZDaGFubmVsTGF5b3V0IG91dHB1dF9jaGFu bmVsX2xheW91dDsKKysJaWYgKG1fb3V0cHV0X2NoYW5uZWxzKSB7CisrCQlhdl9jaGFubmVsX2xh eW91dF9kZWZhdWx0KCZvdXRwdXRfY2hhbm5lbF9sYXlvdXQsIG1fb3V0cHV0X2NoYW5uZWxzKTsK KysJfSBlbHNlIHsKKysJCW1fb3V0cHV0X2NoYW5uZWxzID0gbV9jb2RlY19jdHgtPmNoX2xheW91 dC5uYl9jaGFubmVsczsKKysJCWF2X2NoYW5uZWxfbGF5b3V0X2RlZmF1bHQoJm91dHB1dF9jaGFu bmVsX2xheW91dCwgbV9vdXRwdXRfY2hhbm5lbHMpOworIAl9CisKKy0JaWYgKG1fY29kZWNfY3R4 LT5zYW1wbGVfZm10ICE9IEFWX1NBTVBMRV9GTVRfUzE2IHx8IG1fY29kZWNfY3R4LT5jaGFubmVs cyAhPSBtX291dHB1dF9jaGFubmVscyB8fCBtX2NvZGVjX2N0eC0+c2FtcGxlX3JhdGUgIT0gbV9v dXRwdXRfc2FtcGxlX3JhdGUpIHsKKysJaWYgKG1fY29kZWNfY3R4LT5zYW1wbGVfZm10ICE9IEFW X1NBTVBMRV9GTVRfUzE2IHx8IG1fY29kZWNfY3R4LT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgIT0g bV9vdXRwdXRfY2hhbm5lbHMgfHwgbV9jb2RlY19jdHgtPnNhbXBsZV9yYXRlICE9IG1fb3V0cHV0 X3NhbXBsZV9yYXRlKSB7CisgCQltX2NvbnZlcnRlci5yZXNldChuZXcgRkZtcGVnQXVkaW9Qcm9j ZXNzb3IoKSk7CisgCQltX2NvbnZlcnRlci0+U2V0Q29tcGF0aWJsZU1vZGUoKTsKKyAJCW1fY29u dmVydGVyLT5TZXRJbnB1dFNhbXBsZUZvcm1hdChtX2NvZGVjX2N0eC0+c2FtcGxlX2ZtdCk7Cisg CQltX2NvbnZlcnRlci0+U2V0SW5wdXRTYW1wbGVSYXRlKG1fY29kZWNfY3R4LT5zYW1wbGVfcmF0 ZSk7CistCQltX2NvbnZlcnRlci0+U2V0SW5wdXRDaGFubmVsTGF5b3V0KG1fY29kZWNfY3R4LT5j aGFubmVsX2xheW91dCk7CisrCQltX2NvbnZlcnRlci0+U2V0SW5wdXRDaGFubmVsTGF5b3V0KCYo bV9jb2RlY19jdHgtPmNoX2xheW91dCkpOworIAkJbV9jb252ZXJ0ZXItPlNldE91dHB1dFNhbXBs ZUZvcm1hdChBVl9TQU1QTEVfRk1UX1MxNik7CisgCQltX2NvbnZlcnRlci0+U2V0T3V0cHV0U2Ft cGxlUmF0ZShtX291dHB1dF9zYW1wbGVfcmF0ZSk7CistCQltX2NvbnZlcnRlci0+U2V0T3V0cHV0 Q2hhbm5lbExheW91dChhdl9nZXRfZGVmYXVsdF9jaGFubmVsX2xheW91dChtX291dHB1dF9jaGFu bmVscykpOworKwkJbV9jb252ZXJ0ZXItPlNldE91dHB1dENoYW5uZWxMYXlvdXQoJm91dHB1dF9j aGFubmVsX2xheW91dCk7CisgCQlhdXRvIHJldCA9IG1fY29udmVydGVyLT5Jbml0KCk7CisgCQlp ZiAocmV0ICE9IDApIHsKKyAJCQlTZXRFcnJvcigiQ291bGQgbm90IGNyZWF0ZSBhbiBhdWRpbyBj b252ZXJ0ZXIgaW5zdGFuY2UiLCByZXQpOworQEAgLTIwMywxMCArMjAzLDExIEBAIGlubGluZSBi b29sIEZGbXBlZ0F1ZGlvUmVhZGVyOjpPcGVuKGNvbnN0IHN0ZDo6c3RyaW5nICZmaWxlX25hbWUp IHsKKyAJCX0KKyAJfQorCisrCWF2X2NoYW5uZWxfbGF5b3V0X3VuaW5pdCgmb3V0cHV0X2NoYW5u ZWxfbGF5b3V0KTsKKysKKyAJbV9vcGVuZWQgPSB0cnVlOworLQltX2ZpbmlzaGVkID0gZmFsc2U7 CistCW1fZ290X2ZyYW1lID0gMDsKKy0JbV9uYl9wYWNrZXRzID0gMDsKKysJbV9oYXNfbW9yZV9w YWNrZXRzID0gdHJ1ZTsKKysJbV9oYXNfbW9yZV9mcmFtZXMgPSB0cnVlOworIAltX2RlY29kZV9l cnJvciA9IDA7CisKKyAJcmV0dXJuIHRydWU7CitAQCAtMjE0LDYgKzIxNSw3IEBAIGlubGluZSBi b29sIEZGbXBlZ0F1ZGlvUmVhZGVyOjpPcGVuKGNvbnN0IHN0ZDo6c3RyaW5nICZmaWxlX25hbWUp IHsKKworIGlubGluZSB2b2lkIEZGbXBlZ0F1ZGlvUmVhZGVyOjpDbG9zZSgpIHsKKyAJYXZfZnJh bWVfZnJlZSgmbV9mcmFtZSk7CisrCWF2X3BhY2tldF9mcmVlKCZtX3BhY2tldCk7CisKKyAJbV9z dHJlYW1faW5kZXggPSAtMTsKKworQEAgLTI1Miw5MSArMjU0LDk4IEBAIGlubGluZSBib29sIEZG bXBlZ0F1ZGlvUmVhZGVyOjpSZWFkKGNvbnN0IGludDE2X3QgKipkYXRhLCBzaXplX3QgKnNpemUp IHsKKyAJCXJldHVybiBmYWxzZTsKKyAJfQorCisrCSpkYXRhID0gbnVsbHB0cjsKKysJKnNpemUg PSAwOworKworIAlpbnQgcmV0OworKwlib29sIG5lZWRzX3BhY2tldCA9IGZhbHNlOworIAl3aGls ZSAodHJ1ZSkgeworLQkJd2hpbGUgKG1fcGFja2V0LnNpemUgPD0gMCkgeworLQkJCWF2X3BhY2tl dF91bnJlZigmbV9wYWNrZXQwKTsKKy0JCQlhdl9pbml0X3BhY2tldCgmbV9wYWNrZXQpOworLQkJ CW1fcGFja2V0LmRhdGEgPSBudWxscHRyOworLQkJCW1fcGFja2V0LnNpemUgPSAwOworLQkJCXJl dCA9IGF2X3JlYWRfZnJhbWUobV9mb3JtYXRfY3R4LCAmbV9wYWNrZXQpOworKwkJd2hpbGUgKG5l ZWRzX3BhY2tldCAmJiBtX3BhY2tldC0+c2l6ZSA9PSAwKSB7CisrCQkJcmV0ID0gYXZfcmVhZF9m cmFtZShtX2Zvcm1hdF9jdHgsIG1fcGFja2V0KTsKKyAJCQlpZiAocmV0IDwgMCkgeworIAkJCQlp ZiAocmV0ID09IEFWRVJST1JfRU9GKSB7CistCQkJCQltX2ZpbmlzaGVkID0gdHJ1ZTsKKysJCQkJ CW5lZWRzX3BhY2tldCA9IGZhbHNlOworKwkJCQkJbV9oYXNfbW9yZV9wYWNrZXRzID0gZmFsc2U7 CisgCQkJCQlicmVhazsKKy0JCQkJfSBlbHNlIHsKKysJCQkJfQorKwkJCQlTZXRFcnJvcigiRXJy b3IgcmVhZGluZyBmcm9tIHRoZSBhdWRpbyBzb3VyY2UiLCByZXQpOworKwkJCQlyZXR1cm4gZmFs c2U7CisrCQkJfQorKwkJCWlmIChtX3BhY2tldC0+c3RyZWFtX2luZGV4ID09IG1fc3RyZWFtX2lu ZGV4KSB7CisrCQkJCW5lZWRzX3BhY2tldCA9IGZhbHNlOworKwkJCX0gZWxzZSB7CisrCQkJCWF2 X3BhY2tldF91bnJlZihtX3BhY2tldCk7CisrCQkJfQorKwkJfQorKworKwkJaWYgKG1fcGFja2V0 LT5zaXplICE9IDApIHsKKysJCQlyZXQgPSBhdmNvZGVjX3NlbmRfcGFja2V0KG1fY29kZWNfY3R4 LCBtX3BhY2tldCk7CisrCQkJaWYgKHJldCA8IDApIHsKKysJCQkJaWYgKHJldCAhPSBBVkVSUk9S KEVBR0FJTikpIHsKKyAJCQkJCVNldEVycm9yKCJFcnJvciByZWFkaW5nIGZyb20gdGhlIGF1ZGlv IHNvdXJjZSIsIHJldCk7CisgCQkJCQlyZXR1cm4gZmFsc2U7CisgCQkJCX0KKy0JCQl9CistCQkJ bV9wYWNrZXQwID0gbV9wYWNrZXQ7CistCQkJaWYgKG1fcGFja2V0LnN0cmVhbV9pbmRleCAhPSBt X3N0cmVhbV9pbmRleCkgeworLQkJCQltX3BhY2tldC5kYXRhID0gbnVsbHB0cjsKKy0JCQkJbV9w YWNrZXQuc2l6ZSA9IDA7CisgCQkJfSBlbHNlIHsKKy0JCQkJbV9uYl9wYWNrZXRzKys7CisrCQkJ CWF2X3BhY2tldF91bnJlZihtX3BhY2tldCk7CisgCQkJfQorIAkJfQorCistCQlyZXQgPSBhdmNv ZGVjX2RlY29kZV9hdWRpbzQobV9jb2RlY19jdHgsIG1fZnJhbWUsICZtX2dvdF9mcmFtZSwgJm1f cGFja2V0KTsKKysJCXJldCA9IGF2Y29kZWNfcmVjZWl2ZV9mcmFtZShtX2NvZGVjX2N0eCwgbV9m cmFtZSk7CisgCQlpZiAocmV0IDwgMCkgeworLQkJCWlmIChtX2RlY29kZV9lcnJvcikgeworLQkJ CQlTZXRFcnJvcigiRXJyb3IgZGVjb2RpbmcgYXVkaW8gZnJhbWUiLCBtX2RlY29kZV9lcnJvcik7 CistCQkJCXJldHVybiBmYWxzZTsKKysJCQlpZiAocmV0ID09IEFWRVJST1JfRU9GKSB7CisrCQkJ CW1faGFzX21vcmVfZnJhbWVzID0gZmFsc2U7CisrCQkJfSBlbHNlIGlmIChyZXQgPT0gQVZFUlJP UihFQUdBSU4pKSB7CisrCQkJCWlmIChtX2hhc19tb3JlX3BhY2tldHMpIHsKKysJCQkJCW5lZWRz X3BhY2tldCA9IHRydWU7CisrCQkJCQljb250aW51ZTsKKysJCQkJfSBlbHNlIHsKKysJCQkJCW1f aGFzX21vcmVfZnJhbWVzID0gZmFsc2U7CisrCQkJCX0KKyAJCQl9CistCQkJbV9kZWNvZGVfZXJy b3IgPSByZXQ7CistCQkJbV9wYWNrZXQuZGF0YSA9IG51bGxwdHI7CistCQkJbV9wYWNrZXQuc2l6 ZSA9IDA7CistCQkJY29udGludWU7CisrCQkJU2V0RXJyb3IoIkVycm9yIGRlY29kaW5nIHRoZSBh dWRpbyBzb3VyY2UiLCByZXQpOworKwkJCXJldHVybiBmYWxzZTsKKyAJCX0KKworLQkJYnJlYWs7 CistCX0KKy0KKy0JbV9kZWNvZGVfZXJyb3IgPSAwOworLQorLQljb25zdCBpbnQgZGVjb2RlZCA9 IHN0ZDo6bWluKHJldCwgbV9wYWNrZXQuc2l6ZSk7CistCW1fcGFja2V0LmRhdGEgKz0gZGVjb2Rl ZDsKKy0JbV9wYWNrZXQuc2l6ZSAtPSBkZWNvZGVkOworLQorLQlpZiAobV9nb3RfZnJhbWUpIHsK Ky0JCWlmIChtX2NvbnZlcnRlcikgeworLQkJCWlmIChtX2ZyYW1lLT5uYl9zYW1wbGVzID4gbV9j b252ZXJ0X2J1ZmZlcl9uYl9zYW1wbGVzKSB7CistCQkJCWludCBsaW5zaXplOworLQkJCQlhdl9m cmVlcCgmbV9jb252ZXJ0X2J1ZmZlclswXSk7CistCQkJCW1fY29udmVydF9idWZmZXJfbmJfc2Ft cGxlcyA9IHN0ZDo6bWF4KDEwMjQgKiA4LCBtX2ZyYW1lLT5uYl9zYW1wbGVzKTsKKy0JCQkJcmV0 ID0gYXZfc2FtcGxlc19hbGxvYyhtX2NvbnZlcnRfYnVmZmVyLCAmbGluc2l6ZSwgbV9jb2RlY19j dHgtPmNoYW5uZWxzLCBtX2NvbnZlcnRfYnVmZmVyX25iX3NhbXBsZXMsIEFWX1NBTVBMRV9GTVRf UzE2LCAxKTsKKy0JCQkJaWYgKHJldCA8IDApIHsKKy0JCQkJCVNldEVycm9yKCJDb3VsZG4ndCBh bGxvY2F0ZSBhdWRpbyBjb252ZXJ0ZXIgYnVmZmVyIiwgcmV0KTsKKysJCWlmIChtX2ZyYW1lLT5u Yl9zYW1wbGVzID4gMCkgeworKwkJCWlmIChtX2NvbnZlcnRlcikgeworKwkJCQlpZiAobV9mcmFt ZS0+bmJfc2FtcGxlcyA+IG1fY29udmVydF9idWZmZXJfbmJfc2FtcGxlcykgeworKwkJCQkJaW50 IGxpbnNpemU7CisrCQkJCQlhdl9mcmVlcCgmbV9jb252ZXJ0X2J1ZmZlclswXSk7CisrCQkJCQlt X2NvbnZlcnRfYnVmZmVyX25iX3NhbXBsZXMgPSBzdGQ6Om1heCgxMDI0ICogOCwgbV9mcmFtZS0+ bmJfc2FtcGxlcyk7CisrCQkJCQlyZXQgPSBhdl9zYW1wbGVzX2FsbG9jKG1fY29udmVydF9idWZm ZXIsICZsaW5zaXplLCBtX2NvZGVjX2N0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzLCBtX2NvbnZl cnRfYnVmZmVyX25iX3NhbXBsZXMsIEFWX1NBTVBMRV9GTVRfUzE2LCAxKTsKKysJCQkJCWlmIChy ZXQgPCAwKSB7CisrCQkJCQkJU2V0RXJyb3IoIkNvdWxkbid0IGFsbG9jYXRlIGF1ZGlvIGNvbnZl cnRlciBidWZmZXIiLCByZXQpOworKwkJCQkJCXJldHVybiBmYWxzZTsKKysJCQkJCX0KKysJCQkJ fQorKwkJCQlhdXRvIG5iX3NhbXBsZXMgPSBtX2NvbnZlcnRlci0+Q29udmVydChtX2NvbnZlcnRf YnVmZmVyLCBtX2NvbnZlcnRfYnVmZmVyX25iX3NhbXBsZXMsIChjb25zdCB1aW50OF90ICoqKSBt X2ZyYW1lLT5kYXRhLCBtX2ZyYW1lLT5uYl9zYW1wbGVzKTsKKysJCQkJaWYgKG5iX3NhbXBsZXMg PCAwKSB7CisrCQkJCQlTZXRFcnJvcigiQ291bGRuJ3QgY29udmVydCBhdWRpbyIsIHJldCk7Cisg CQkJCQlyZXR1cm4gZmFsc2U7CisgCQkJCX0KKy0JCQl9CistCQkJYXV0byBuYl9zYW1wbGVzID0g bV9jb252ZXJ0ZXItPkNvbnZlcnQobV9jb252ZXJ0X2J1ZmZlciwgbV9jb252ZXJ0X2J1ZmZlcl9u Yl9zYW1wbGVzLCAoY29uc3QgdWludDhfdCAqKikgbV9mcmFtZS0+ZGF0YSwgbV9mcmFtZS0+bmJf c2FtcGxlcyk7CistCQkJaWYgKG5iX3NhbXBsZXMgPCAwKSB7CistCQkJCVNldEVycm9yKCJDb3Vs ZG4ndCBjb252ZXJ0IGF1ZGlvIiwgcmV0KTsKKy0JCQkJcmV0dXJuIGZhbHNlOworLQkJCX0KKy0J CQkqZGF0YSA9IChjb25zdCBpbnQxNl90ICopIG1fY29udmVydF9idWZmZXJbMF07CistCQkJKnNp emUgPSBuYl9zYW1wbGVzOworLQkJfSBlbHNlIHsKKy0JCQkqZGF0YSA9IChjb25zdCBpbnQxNl90 ICopIG1fZnJhbWUtPmRhdGFbMF07CistCQkJKnNpemUgPSBtX2ZyYW1lLT5uYl9zYW1wbGVzOwor LQkJfQorLQl9IGVsc2UgeworLQkJaWYgKG1fZmluaXNoZWQgJiYgbV9jb252ZXJ0ZXIpIHsKKy0J CQlhdXRvIG5iX3NhbXBsZXMgPSBtX2NvbnZlcnRlci0+Rmx1c2gobV9jb252ZXJ0X2J1ZmZlciwg bV9jb252ZXJ0X2J1ZmZlcl9uYl9zYW1wbGVzKTsKKy0JCQlpZiAobmJfc2FtcGxlcyA8IDApIHsK Ky0JCQkJU2V0RXJyb3IoIkNvdWxkbid0IGNvbnZlcnQgYXVkaW8iLCByZXQpOworLQkJCQlyZXR1 cm4gZmFsc2U7CistCQkJfSBlbHNlIGlmIChuYl9zYW1wbGVzID4gMCkgeworLQkJCQltX2dvdF9m cmFtZSA9IDE7CisgCQkJCSpkYXRhID0gKGNvbnN0IGludDE2X3QgKikgbV9jb252ZXJ0X2J1ZmZl clswXTsKKyAJCQkJKnNpemUgPSBuYl9zYW1wbGVzOworKwkJCX0gZWxzZSB7CisrCQkJCSpkYXRh ID0gKGNvbnN0IGludDE2X3QgKikgbV9mcmFtZS0+ZGF0YVswXTsKKysJCQkJKnNpemUgPSBtX2Zy YW1lLT5uYl9zYW1wbGVzOworKwkJCX0KKysJCX0gZWxzZSB7CisrCQkJaWYgKG1fY29udmVydGVy KSB7CisrCQkJCWlmIChJc0ZpbmlzaGVkKCkpIHsKKysJCQkJCWF1dG8gbmJfc2FtcGxlcyA9IG1f Y29udmVydGVyLT5GbHVzaChtX2NvbnZlcnRfYnVmZmVyLCBtX2NvbnZlcnRfYnVmZmVyX25iX3Nh bXBsZXMpOworKwkJCQkJaWYgKG5iX3NhbXBsZXMgPCAwKSB7CisrCQkJCQkJU2V0RXJyb3IoIkNv dWxkbid0IGNvbnZlcnQgYXVkaW8iLCByZXQpOworKwkJCQkJCXJldHVybiBmYWxzZTsKKysJCQkJ CX0gZWxzZSBpZiAobmJfc2FtcGxlcyA+IDApIHsKKysJCQkJCQkqZGF0YSA9IChjb25zdCBpbnQx Nl90ICopIG1fY29udmVydF9idWZmZXJbMF07CisrCQkJCQkJKnNpemUgPSBuYl9zYW1wbGVzOwor KwkJCQkJfQorKwkJCQl9CisgCQkJfQorIAkJfQorLQl9CisKKy0JcmV0dXJuIHRydWU7CisrCQly ZXR1cm4gdHJ1ZTsKKysJfQorIH0KKworIGlubGluZSB2b2lkIEZGbXBlZ0F1ZGlvUmVhZGVyOjpT ZXRFcnJvcihjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgZXJybnVtKSB7CitkaWZmIC0tZ2l0IGEv dGVzdHMvQ01ha2VMaXN0cy50eHQgYi90ZXN0cy9DTWFrZUxpc3RzLnR4dAoraW5kZXggYTJiNTE3 Yi4uMTIzZTY0MyAxMDA2NDQKKy0tLSBhL3Rlc3RzL0NNYWtlTGlzdHMudHh0CisrKysgYi90ZXN0 cy9DTWFrZUxpc3RzLnR4dAorQEAgLTM4LDYgKzM4LDEyIEBAIHNldChTUkNTCisKKyBpZihCVUlM RF9UT09MUykKKyAJc2V0KFNSQ1MgJHtTUkNTfSAuLi9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Jl YWRlcl90ZXN0LmNwcCkKKysgICAgaW5jbHVkZV9kaXJlY3RvcmllcygKKysgICAgICAgICR7RkZN UEVHX0xJQkFWRk9STUFUX0lOQ0xVREVfRElSU30KKysgICAgICAgICR7RkZNUEVHX0xJQkFWQ09E RUNfSU5DTFVERV9ESVJTfQorKyAgICAgICAgJHtGRk1QRUdfTElCQVZVVElMX0lOQ0xVREVfRElS U30KKysgICAgICAgICR7QVVESU9fUFJPQ0VTU09SX0lOQ0xVREVfRElSU30KKysgICAgKQorIAls aW5rX2xpYnJhcmllcyhmcGNhbGNfbGlicykKKyBlbmRpZigpCisKKy0tIAorMi4zOC4xCisKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWFwcmludC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21h cHJpbnQvdGVtcGxhdGUKaW5kZXggN2VmNzgzODk0OWYzLi4xZjdiYmM3MGEyMmMgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY2hyb21hcHJpbnQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jaHJvbWFwcmlu dC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nocm9tYXBy aW50JwogcGtnbmFtZT1jaHJvbWFwcmludAogdmVyc2lvbj0xLjUuMQotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RPT0xT PU9OIgogbWFrZV9jaGVja190YXJnZXQ9ImNoZWNrIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXggM2MxYzFjYWYz NzY1Li4xZjI4Y2RlNWQzYzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9 Y2hyb21pdW0KICMgU2VlIGh0dHBzOi8vY2hyb21pdW1kYXNoLmFwcHNwb3QuY29tL3JlbGVhc2Vz P3BsYXRmb3JtPUxpbnV4IGZvciB0aGUgbGF0ZXN0IHZlcnNpb24KIHZlcnNpb249MTExLjAuNTU2 My42NAotcmV2aXNpb249MQorcmV2aXNpb249MgogYXJjaHM9Imk2ODYqIHg4Nl82NCogYWFyY2g2 NCogYXJtdjdsKiIKIGhvc3RtYWtlZGVwZW5kcz0iCiAgJCh2b3B0X2lmIGNsYW5nICJjbGFuZyBs bGQgbGx2bTEyIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY211cy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y211cy90ZW1wbGF0ZQppbmRleCAwZmNiNDI0Y2UzMzYuLjA1Yjc3ZDBmZWNhZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9jbXVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY211cy90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NtdXMnCiBwa2duYW1lPWNtdXMKIHZl cnNpb249Mi4xMC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jb25maWd1 cmUKIGNvbmZpZ3VyZV9hcmdzPSJwcmVmaXg9L3VzciBMRD0kQ0MiCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWciCmRpZmYgLS1naXQgYS9zcmNwa2dzL2N5YW5yaXAvdGVtcGxhdGUgYi9zcmNw a2dzL2N5YW5yaXAvdGVtcGxhdGUKaW5kZXggOTc5NmUzNDYxNjAxLi41ZGIzMGUwMjBkMTcgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvY3lhbnJpcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2N5YW5yaXAv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjeWFucmlwJwog cGtnbmFtZT1jeWFucmlwCiB2ZXJzaW9uPTAuOS4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgogbWFrZWRlcGVu ZHM9ImZmbXBlZy1kZXZlbCBsaWJjZGlvLWRldmVsIGxpYmNkaW8tcGFyYW5vaWEtZGV2ZWwgbGli Y3VybC1kZXZlbCBsaWJtdXNpY2JyYWluejUtZGV2ZWwiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Rl YWRiZWVmL3RlbXBsYXRlIGIvc3JjcGtncy9kZWFkYmVlZi90ZW1wbGF0ZQppbmRleCBiNjY0YmIx YjliZDkuLmYwZmNjZWQ4NjRiZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9kZWFkYmVlZi90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2RlYWRiZWVmL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZGVhZGJlZWYnCiBwa2duYW1lPWRlYWRiZWVmCiB2ZXJzaW9uPTEuOC44 Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBjcmVhdGVfd3Jrc3JjPXllcwogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1vc3MgLS1kaXNhYmxlLWxm bSAtLWRpc2FibGUtbm90aWZ5IC0tZGlzYWJsZS1ndGsyIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9k b2xwaGluLWVtdS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZG9scGhpbi1lbXUvdGVtcGxhdGUKaW5kZXgg N2VhMTk3Y2ViMmE4Li43YWViMGE1YjY0NWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZG9scGhpbi1l bXUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kb2xwaGluLWVtdS90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2RvbHBoaW4tZW11JwogcGtnbmFtZT1kb2xwaGlu LWVtdQogdmVyc2lvbj01LjAuMTYxMDEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIF9kb2xwaGlu X2NvbW1pdD04ZWNmYTUzN2EyNDJkZTc0ZDJlMzcyZTMwZDlkNzliMTQ1ODRiMmZiCiBfbWdiYV9j b21taXQ9NDBkNGM0MzBmYzM2Y2FlYjdlYTMyZmQzOTYyNDk0N2VkNDg3ZDJmMgogI1ZlcnNpb24v aGFzaCBwYWlyIGNhbiBiZSBmb3VuZCBhdCBodHRwczovL2RvbHBoaW4tZW11Lm9yZy9kb3dubG9h ZC8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZHJvaWRjYW0tb2JzLXBsdWdpbi90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZHJvaWRjYW0tb2JzLXBsdWdpbi90ZW1wbGF0ZQppbmRleCBmYzljOWJmNmI5ZDUuLmZi MDQ4MDc1NGRmNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9kcm9pZGNhbS1vYnMtcGx1Z2luL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZHJvaWRjYW0tb2JzLXBsdWdpbi90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Ryb2lkY2FtLW9icy1wbHVnaW4nCiBwa2duYW1l PWRyb2lkY2FtLW9icy1wbHVnaW4KIHZlcnNpb249Mi4wLjEKLXJldmlzaW9uPTEKK3JldmlzaW9u PTIKIGJ1aWxkX3N0eWxlPWdudS1tYWtlZmlsZQogbWFrZV91c2VfZW52PXllcwogbWFrZV9idWls ZF9hcmdzPSJBTExPV19TVEFUSUM9bm8iCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Ryb2lkY2FtL3Rl bXBsYXRlIGIvc3JjcGtncy9kcm9pZGNhbS90ZW1wbGF0ZQppbmRleCAxYzNmMWI4YjFmYzYuLjMy YTkyMjBiNzlhNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9kcm9pZGNhbS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2Ryb2lkY2FtL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZHJvaWRjYW0nCiBwa2duYW1lPWRyb2lkY2FtCiB2ZXJzaW9uPTEuOC4yCi1yZXZpc2lv bj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtbWFrZWZpbGUKIG1ha2VfYnVpbGRfYXJn cz0iVVNCTVVYRD0tbHVzYm11eGQtMi4wIEpQRUc9LWx0dXJib2pwZWciCiBob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWciCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTkvdGVtcGxhdGUg Yi9zcmNwa2dzL2VsZWN0cm9uMTkvdGVtcGxhdGUKaW5kZXggMDY4MTM2YmU3NjIzLi4zMmNlMzAx ZTczMGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xOS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2VsZWN0cm9uMTkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdlbGVjdHJvbjE5JwogcGtnbmFtZT1lbGVjdHJvbjE5CiB2ZXJzaW9uPTE5LjAuOAotcmV2 aXNpb249MgorcmV2aXNpb249MwogX25vZGV2ZXI9MTYuMTQuMgogX2Nocm9taXVtdmVyPTEwMi4w LjUwMDUuMTI1CiBhcmNocz0ieDg2XzY0KiBhYXJjaDY0KiBwcGM2NGxlKiIKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZmZtcGVnL3RlbXBsYXRlIGIvc3JjcGtncy9mZm1wZWcvdGVtcGxhdGUKaW5kZXgg Mzg5NzhjNTA4NWEzLi4xYWMxZTRiOGRmNDkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmZtcGVnL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZmZtcGVnL3RlbXBsYXRlCkBAIC0xMiwyNSArMTIsMzEgQEAg ZGlzdGZpbGVzPSJodHRwczovL3d3dy5mZm1wZWcub3JnL3JlbGVhc2VzL2ZmbXBlZy0ke3ZlcnNp b259LnRhci54eiIKIGNoZWNrc3VtPTYxOWU3MDZkNjYyYzg0MjA4NTk4MzJkZGMyNTljZDRkNDA5 NmE0OGEyY2UxZWVmZDA1MmRiOWU0NDBlZWYzZGMKIAogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29u ZmlnIHBlcmwgeWFzbSIKLW1ha2VkZXBlbmRzPSJjaHJvbWFwcmludC1kZXZlbCBsaWJnY3J5cHQt ZGV2ZWwgbGFkc3BhLXNkayBsY21zMi1kZXZlbCBsaWJhb20tZGV2ZWwKLSBhbHNhLWxpYi1kZXZl bCBiemlwMi1kZXZlbCBsaWJ4Y2ItZGV2ZWwgbGlibHptYS1kZXZlbCBTREwyLWRldmVsIHNuZGlv LWRldmVsIHpsaWItZGV2ZWwKLSBmcmVpMHItcGx1Z2lucyBsaWJjZGlvLXBhcmFub2lhLWRldmVs IHJ1YmJlcmJhbmQtZGV2ZWwgbGlidmlkc3RhYi1kZXZlbCB4MjY0LWRldmVsIHgyNjUtZGV2ZWwK LSB4dmlkY29yZS1kZXZlbCBmZGstYWFjLWRldmVsIGxpYnRscy1kZXZlbCBnbXAtZGV2ZWwgbGli YXNzLWRldmVsIGxpYmJsdXJheS1kZXZlbCBsaWJjYWNhLWRldmVsCi0gY2VsdC1kZXZlbCBjb2Rl YzItZGV2ZWwgbGliZGF2MWQtZGV2ZWwgbGliZHJtLWRldmVsIGZvbnRjb25maWctZGV2ZWwgZnJl ZXR5cGUtZGV2ZWwKLSBmcmliaWRpLWRldmVsIGdsc2xhbmctZGV2ZWwgU1BJUlYtVG9vbHMtZGV2 ZWwgbGliZ21lLWRldmVsIGxpYmdzbS1kZXZlbCBqYWNrLWRldmVsCi0gbGlibW9kcGx1Zy1kZXZl bCBsYW1lLWRldmVsIGxpYm9wZW5jdjQtZGV2ZWwgbGlib3BlbmpwZWcyLWRldmVsIGxpYm9wZW5t cHQtZGV2ZWwgb3B1cy1kZXZlbAotIGxpYnBsYWNlYm8tZGV2ZWwgbGlicHVsc2VhdWRpbyByYWJi aXRtcS1jLWRldmVsIGxpYnJpc3QtZGV2ZWwgbGlicnN2Zy1kZXZlbCBsaWJydG1wLWRldmVsCi0g c25hcHB5LWRldmVsIGxpYnNveHItZGV2ZWwgc3BlZXgtZGV2ZWwgc3J0LWRldmVsIGxpYnNzaC1k ZXZlbCBsaWJ0aGVvcmEtZGV2ZWwgdHdvbGFtZS1kZXZlbAotIGxpYnZvcmJpcy1kZXZlbCBsaWJ2 cHg2LWRldmVsIGxpYndlYnAtZGV2ZWwgbGlieG1sMi1kZXZlbCB6aW1nLWRldmVsIGxpbHYtZGV2 ZWwgbHYyCi0gbGlib3BlbmFsLWRldmVsIG1lc2Egb3BlbnNzbC1kZXZlbCB2YXBvdXJzeW50aC1k ZXZlbCBvY2wtaWNkLWRldmVsIGxpYm15c29mYS1kZXZlbCB2dWxrYW4tbG9hZGVyCi0gJCh2b3B0 X2lmIHZhYXBpIGxpYnZhLWRldmVsKQotICQodm9wdF9pZiB2ZHBhdSBsaWJ2ZHBhdS1kZXZlbCkK LSAkKHZvcHRfaWYgbnZlbmMgbnYtY29kZWMtaGVhZGVycykKLSAkKHZvcHRfaWYgbnZkZWMgbnYt Y29kZWMtaGVhZGVycykKLSAkKHZvcHRfaWYgc3Z0YXYxIGxpYnN2dC1hdjEtZGV2ZWwpCi0iCitt YWtlZGVwZW5kcz0iemxpYi1kZXZlbCBiemlwMi1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxp Yi1kZXZlbCBsaWJYZml4ZXMtZGV2ZWwKKyBsaWJYZXh0LWRldmVsIGxpYlh2TUMtZGV2ZWwgbGli eGNiLWRldmVsIGxhbWUtZGV2ZWwgbGlidGhlb3JhLWRldmVsCisgbGlidm9yYmlzLWRldmVsIHgy NjQtZGV2ZWwgeHZpZGNvcmUtZGV2ZWwgamFjay1kZXZlbCBTREwyLWRldmVsCisgbGliY2Rpby1w YXJhbm9pYS1kZXZlbCBsaWJydG1wLWRldmVsIGxpYm1vZHBsdWctZGV2ZWwgZ251dGxzLWRldmVs Cisgc3BlZXgtZGV2ZWwgY2VsdC1kZXZlbCBoYXJmYnV6ei1kZXZlbCBsaWJhc3MtZGV2ZWwgb3B1 cy1kZXZlbCBvY2wtaWNkLWRldmVsCisgbGliYnMyYi1kZXZlbCBsaWJ2aWRzdGFiLWRldmVsICQo dm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwpCisgJCh2b3B0X2lmIHZhYXBpIGxp YnZhLWRldmVsKSAkKHZvcHRfaWYgdmRwYXUgbGlidmRwYXUtZGV2ZWwpCisgJCh2b3B0X2lmIHgy NjUgeDI2NS1kZXZlbCkgJCh2b3B0X2lmIHY0bDIgdjRsLXV0aWxzLWRldmVsKQorICQodm9wdF9p ZiBmZGtfYWFjIGZkay1hYWMtZGV2ZWwpICQodm9wdF9pZiB2cHggbGlidnB4LWRldmVsKQorICQo dm9wdF9pZiBhb20gbGliYW9tLWRldmVsKSAkKHZvcHRfaWYgc25kaW8gc25kaW8tZGV2ZWwpCisg JCh2b3B0X2lmIGRhdjFkIGxpYmRhdjFkLWRldmVsKSAkKHZvcHRfaWYgemltZyB6aW1nLWRldmVs KQorICQodm9wdF9pZiB3ZWJwIGxpYndlYnAtZGV2ZWwpICQodm9wdF9pZiBzb2ZhIGxpYm15c29m YS1kZXZlbCkKKyAkKHZvcHRfaWYgZHJtIGxpYmRybS1kZXZlbCkgJCh2b3B0X2lmIHN2dGF2MSBs aWJzdnQtYXYxLWRldmVsKQorICQodm9wdF9pZiBzcnQgc3J0LWRldmVsKSAkKHZvcHRfaWYgcmlz dCBsaWJyaXN0LWRldmVsKQorICQodm9wdF9pZiB2dWxrYW4gJ3Z1bGthbi1sb2FkZXIgVnVsa2Fu LUhlYWRlcnMgVnVsa2FuLVRvb2xzIFZ1bGthbi1WYWxpZGF0aW9uTGF5ZXJzJykKKyAkKHZvcHRf aWYgbnZlbmMgbnYtY29kZWMtaGVhZGVycykgJCh2b3B0X2lmIG52ZGVjIG52LWNvZGVjLWhlYWRl cnMpIgogZGVwZW5kcz0iZmZwbGF5Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotYnVpbGRfb3B0 aW9ucz0idmFhcGkgdmRwYXUgbnZlbmMgbnZkZWMgc3Z0YXYxIgorCitidWlsZF9vcHRpb25zPSJ4 MjY1IHY0bDIgdmFhcGkgdmRwYXUgdnB4IGZka19hYWMgYW9tIG52ZW5jIHNuZGlvIHB1bHNlYXVk aW8KKyBkYXYxZCB6aW1nIHdlYnAgc29mYSB2dWxrYW4gZHJtIHN2dGF2MSBzcnQgcmlzdCBudmRl YyIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0ieDI2NSB2NGwyIHZweCBhb20gc25kaW8gcHVsc2Vh dWRpbyBkYXYxZCB3ZWJwIHZ1bGthbiBkcm0gc3J0IHJpc3QiCitkZXNjX29wdGlvbl9zcnQ9IkVu YWJsZSBzdXBwb3J0IGZvciBTUlQgKFNlY3VyZSwgUmVsaWFibGUsIFRyYW5zcG9ydCkiCitkZXNj X29wdGlvbl9yaXN0PSJFbmFibGUgc3VwcG9ydCBmb3IgUklTVCAoUmVsaWFibGUgSW50ZXJuZXQg U3RyZWFtIFRyYW5zcG9ydCkiCitkZXNjX29wdGlvbl9zb2ZhPSJFbmFibGUgc3VwcG9ydCBmb3Ig QUVTIFNPRkEiCitkZXNjX29wdGlvbl93ZWJwPSJFbmFibGUgc3VwcG9ydCBmb3IgV2ViUCIKIAog Y2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJaTY4Nip8eDg2XzY0KikgYnVpbGRfb3B0 aW9uc19kZWZhdWx0Kz0iIHZhYXBpIHZkcGF1IG52ZW5jIG52ZGVjIjs7CkBAIC00Niw2ICs1Miwy MiBAQCBpZiBbICIkWEJQU19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgogCW1ha2VkZXBlbmRz Kz0iIGxpYmF0b21pYy1kZXZlbCIKIGZpCiAKK19hcHBseV9wYXRjaCgpIHsKKwlsb2NhbCBhcmdz PSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgorCisJaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9u ZSIgXTsgdGhlbgorCQlwYXRjaCAtTiAkYXJncyAtaSAkMgorCQl0b3VjaCAuJHtwbmFtZX1fZG9u ZQorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUi IGluCisJCXBwYzY0bGUqKSA7OworCQlwcGMqKSBfYXBwbHlfcGF0Y2ggLXAxICR7RklMRVNESVJ9 L2FsdGl2ZWMucGF0Y2ggOzsKKwllc2FjCit9CisKIGRvX2NvbmZpZ3VyZSgpIHsKIAkjIEZpeCBn Y2Mgb24geDg2XzY0LW11c2wgb25seQogCWlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiA9ICJ4 ODZfNjQtbXVzbCIgXTsgdGhlbgpAQCAtNzYsNDcgKzk4LDM5IEBAIGRvX2NvbmZpZ3VyZSgpIHsK IAkJX2FyZ3MrPSIgLS1leHRyYS1saWJzPS1sYXRvbWljIgogCWZpCiAKLQkuL2NvbmZpZ3VyZSBc Ci0JCS0tcHJlZml4PScvdXNyJyBcCi0JCS0tZXh0cmEtY2ZsYWdzPSctSS9vcHQvY3VkYS9pbmNs dWRlJyBcCi0JCS0tZXh0cmEtbGRmbGFncz0nLUwvb3B0L2N1ZGEvbGliNjQnIFwKKwkuL2NvbmZp Z3VyZSAtLXByZWZpeD0vdXNyIC0tZGlzYWJsZS1kZWJ1ZyAtLWVuYWJsZS1ncGwgLS1lbmFibGUt Z251dGxzIFwKIAkJLS1kaXNhYmxlLXN0cmlwcGluZyBcCi0JCS0tZW5hYmxlLXNoYXJlZCAtLWVu YWJsZS1zdGF0aWMgXAotCQktLWVuYWJsZS1ub25mcmVlIC0tZW5hYmxlLWdwbCBcCi0JCS0tZW5h YmxlLXZlcnNpb24zIC0tZW5hYmxlLWxpYnhjYiBcCi0JCS0tZW5hYmxlLWZyZWkwciAtLWVuYWJs ZS1saWJjZGlvIFwKLQkJLS1lbmFibGUtbGlicnViYmVyYmFuZCAtLWVuYWJsZS1saWJ2aWRzdGFi IFwKLQkJLS1lbmFibGUtbGlieDI2NCAtLWVuYWJsZS1saWJ4MjY1IC0tZW5hYmxlLWxpYnh2aWQg XAotCQktLWVuYWJsZS1saWJmZGstYWFjIC0tZW5hYmxlLWxpYnRscyAtLWVuYWJsZS1nbXAgXAot CQktLWVuYWJsZS1jaHJvbWFwcmludCAtLWVuYWJsZS1nY3J5cHQgLS1lbmFibGUtbGFkc3BhIFwK LQkJLS1lbmFibGUtbGNtczIgLS1lbmFibGUtbGliYW9tIC0tZW5hYmxlLWxpYmFzcyBcCi0JCS0t ZW5hYmxlLWxpYmJsdXJheSAtLWVuYWJsZS1saWJjYWNhIC0tZW5hYmxlLWxpYmNlbHQgXAotCQkt LWVuYWJsZS1saWJjb2RlYzIgLS1lbmFibGUtbGliZGF2MWQgLS1lbmFibGUtbGliZHJtIFwKLQkJ LS1lbmFibGUtbGliZm9udGNvbmZpZyAtLWVuYWJsZS1saWJmcmVldHlwZSBcCi0JCS0tZW5hYmxl LWxpYmZyaWJpZGkgLS1lbmFibGUtbGliZ2xzbGFuZyBcCi0JCS0tZW5hYmxlLWxpYmdtZSAtLWVu YWJsZS1saWJnc20gXAotCQktLWVuYWJsZS12YXBvdXJzeW50aCAtLWVuYWJsZS1vcGVuc3NsIC0t ZW5hYmxlLW9wZW5nbCBcCi0JCS0tZW5hYmxlLW9wZW5hbCAtLWVuYWJsZS1sdjIgLS1lbmFibGUt bGliemltZyBcCi0JCS0tZW5hYmxlLWxpYnhtbDIgLS1lbmFibGUtbGlid2VicCAtLWVuYWJsZS1s aWJ2b3JiaXMgXAotCQktLWVuYWJsZS1saWJ0d29sYW1lIC0tZW5hYmxlLWxpYnRoZW9yYSAtLWVu YWJsZS1saWJzc2ggXAotCQktLWVuYWJsZS1saWJzcnQgLS1lbmFibGUtbGlic3BlZXggLS1lbmFi bGUtbGlic294ciBcCi0JCS0tZW5hYmxlLWxpYnJ0bXAgLS1lbmFibGUtbGlicnN2ZyAtLWVuYWJs ZS1saWJyaXN0IFwKLQkJLS1lbmFibGUtbGlicmFiYml0bXEgLS1lbmFibGUtbGlicHVsc2UgLS1l bmFibGUtbGlicGxhY2VibyBcCi0JCS0tZW5hYmxlLWxpYm9wdXMgLS1lbmFibGUtbGlib3Blbm1w dCAtLWVuYWJsZS1saWJvcGVuanBlZyBcCi0JCS0tZW5hYmxlLWxpYm1wM2xhbWUgLS1lbmFibGUt bGlibW9kcGx1ZyAtLWVuYWJsZS1saWJqYWNrIFwKLQkJLS1lbmFibGUtb3BlbmNsIC0tZW5hYmxl LWxpYnZweCAtLWVuYWJsZS1saWJteXNvZmEgXAotCQkkKHZvcHRfZW5hYmxlIHZhYXBpKSBcCi0J CSQodm9wdF9lbmFibGUgdmRwYXUpIFwKKwkJLS1lbmFibGUtbGliY2RpbyAtLWVuYWJsZS12ZXJz aW9uMyAtLWVuYWJsZS1ydW50aW1lLWNwdWRldGVjdCBcCisJCS0tZW5hYmxlLWxpYm1wM2xhbWUg LS1lbmFibGUtbGlidm9yYmlzIC0tZW5hYmxlLWxpYnh2aWQgXAorCQktLWVuYWJsZS1saWJ4MjY0 ICQodm9wdF9lbmFibGUgdnB4IGxpYnZweCkgLS1lbmFibGUtbGlidGhlb3JhIFwKKwkJLS1lbmFi bGUtc2hhcmVkIC0tZW5hYmxlLXN0YXRpYyAtLWVuYWJsZS1saWJ4Y2IgXAorCQkkKHZvcHRfZW5h YmxlIHB1bHNlYXVkaW8gbGlicHVsc2UpIC0tZW5hYmxlLWxpYmZyZWV0eXBlIC0tZW5hYmxlLWxp Ym1vZHBsdWcgXAorCQktLWVuYWJsZS1saWJzcGVleCAtLWVuYWJsZS1saWJjZWx0IC0tZW5hYmxl LWxpYmFzcyBcCisJCS0tZW5hYmxlLWxpYm9wdXMgLS1lbmFibGUtbGlicnRtcCAtLWVuYWJsZS1s aWJqYWNrIFwKKwkJJCh2b3B0X2lmIGZka19hYWMgJy0tZW5hYmxlLW5vbmZyZWUgLS1lbmFibGUt bGliZmRrLWFhYycpIFwKKwkJLS1kaXNhYmxlLWxpYm9wZW5jb3JlX2Ftcm5iIC0tZGlzYWJsZS1s aWJvcGVuY29yZV9hbXJ3YiBcCisJCS0tZGlzYWJsZS1saWJvcGVuanBlZyBcCisJCS0tZW5hYmxl LXBvc3Rwcm9jIC0tZW5hYmxlLW9wZW5jbCAke19hcmdzfSBcCisJCSQodm9wdF9lbmFibGUgeDI2 NSBsaWJ4MjY1KSBcCisJCSQodm9wdF9lbmFibGUgdjRsMiBsaWJ2NGwyKSBcCisJCSQodm9wdF9l bmFibGUgYW9tIGxpYmFvbSkgJCh2b3B0X2VuYWJsZSB2YWFwaSkgJCh2b3B0X2VuYWJsZSB2ZHBh dSkgXAorCQktLWVuYWJsZS1saWJiczJiIC0tZW5hYmxlLWxpYnZpZHN0YWIgXAorCQkkKHZvcHRf ZW5hYmxlIGRhdjFkIGxpYmRhdjFkKSBcCisJCSQodm9wdF9lbmFibGUgemltZyBsaWJ6aW1nKSBc CisJCSQodm9wdF9lbmFibGUgd2VicCBsaWJ3ZWJwKSBcCisJCSQodm9wdF9lbmFibGUgc29mYSBs aWJteXNvZmEpIFwKKwkJJCh2b3B0X2VuYWJsZSB2dWxrYW4pIFwKKwkJJCh2b3B0X2VuYWJsZSBk cm0gbGliZHJtKSBcCisJCSQodm9wdF9lbmFibGUgc3Z0YXYxIGxpYnN2dGF2MSkgXAorCQkkKHZv cHRfZW5hYmxlIHNydCBsaWJzcnQpIFwKKwkJJCh2b3B0X2VuYWJsZSByaXN0IGxpYnJpc3QpIFwK IAkJJCh2b3B0X2lmIG52ZW5jICctLWVuYWJsZS1udmVuYycpIFwKLQkJJCh2b3B0X2lmIG52ZGVj ICctLWVuYWJsZS1udmRlYycpIFwKLQkJJCh2b3B0X2VuYWJsZSBzdnRhdjEgbGlic3Z0YXYxKQor CQkkKHZvcHRfaWYgbnZkZWMgJy0tZW5hYmxlLW52ZGVjJykKIH0KLQogZG9fYnVpbGQoKSB7CiAJ bWFrZSAke21ha2Vqb2JzfQogCW1ha2UgZG9jL2Zme21wZWcscGxheX0uMQogfQotCiBkb19pbnN0 YWxsKCkgewogCW1ha2UgREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwgaW5zdGFsbC1tYW4KIH0K QEAgLTEzMyw2ICsxNDcsMTAgQEAgbGliYXZkZXZpY2VfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVz ci9saWIvbGliYXZkZXZpY2Uuc28uKiIKIAl9CiB9CitsaWJhdnJlc2FtcGxlX3BhY2thZ2UoKSB7 CisJc2hvcnRfZGVzYz0iUGFja2FnZSBkZXByZWNhdGVkLCByZW1vdmFsIG5lZWRlZCIKKwlidWls ZF9zdHlsZT1tZXRhCit9CiBsaWJhdmZvcm1hdF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2M9IkZG bXBlZyBmaWxlIGZvcm1hdCBsaWJyYXJ5IgogCXBrZ19pbnN0YWxsKCkgewpAQCAtMTgwLDQ3ICsx OTgsNyBAQCBmZm1wZWctZGV2ZWxfcGFja2FnZSgpIHsKIAkJbGlic3dzY2FsZT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufQogCQlsaWJzd3Jlc2FtcGxlPj0ke3ZlcnNpb259XyR7cmV2aXNpb259Igog CXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlhbHRlcm5hdGl2ZXM9IgotCSBm Zm1wZWctZGV2ZWw6bGliYXZjb2RlYy4zOi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZjb2RlYzUu MwotCSBmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2UuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2 ZGV2aWNlNS4zCi0JIGZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci4zOi91c3Ivc2hhcmUvbWFuL21h bjMvbGliYXZmaWx0ZXI1LjMKLQkgZmZtcGVnLWRldmVsOmxpYmxpYmF2Zm9ybWF0LjM6L3Vzci9z aGFyZS9tYW4vbWFuMy9saWJhdmZvcm1hdDUuMwotCSBmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLjM6 L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJhdnV0aWw1LjMKLQkgZmZtcGVnLWRldmVsOmxpYnN3cmVz YW1wbGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3cmVzYW1wbGU1LjMKLQkgZmZtcGVnLWRl dmVsOmxpYnN3c2NhbGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3c2NhbGU1LjMKLQkgZmZt cGVnLWRldmVsOmxpYmF2Y29kZWM6L3Vzci9pbmNsdWRlL2xpYmF2Y29kZWM1Ci0JIGZmbXBlZy1k ZXZlbDpsaWJhdmRldmljZTovdXNyL2luY2x1ZGUvbGliYXZkZXZpY2U1Ci0JIGZmbXBlZy1kZXZl bDpsaWJhdmZvcm1hdDovdXNyL2luY2x1ZGUvbGliYXZmb3JtYXQ1Ci0JIGZmbXBlZy1kZXZlbDps aWJhdnV0aWw6L3Vzci9pbmNsdWRlL2xpYmF2dXRpbDUKLQkgZmZtcGVnLWRldmVsOmxpYmF2cG9z dHByb2M6L3Vzci9pbmNsdWRlL2xpYmF2cG9zdHByb2M1Ci0JIGZmbXBlZy1kZXZlbDpsaWJzd3Jl c2FtcGxlOi91c3IvaW5jbHVkZS9saWJzd3Jlc2FtcGxlNQotCSBmZm1wZWctZGV2ZWw6bGlic3dj YWFsZTovdXNyL2luY2x1ZGUvbGlic3dzY2FsZTUKLQkgZmZtcGVnLWRldmVsOmxpYmF2Y29kZWMu cGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2Y29kZWM1LnBjCi0JIGZmbXBlZy1kZXZlbDpsaWJh dmRldmljZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZkZXZpY2U1LnBjCi0JIGZmbXBlZy1k ZXZlbDpsaWJhdmZpbHRlci5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmaWx0ZXI1LnBjCi0J IGZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmb3Jt YXQ1LnBjCi0JIGZmbXBlZy1kZXZlbDpsaWJhdnV0aWwucGM6L3Vzci9saWIvcGtnY29uZmlnL2xp YmF2dXRpbDUucGMKLQkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnBjOi91c3IvbGliL3BrZ2Nv bmZpZy9saWJwb3N0cHJvYzUucGMKLQkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUucGM6L3Vz ci9saWIvcGtnY29uZmlnL2xpYnN3cmVzYW1wbGU1LnBjCi0JIGZmbXBlZy1kZXZlbDpsaWJzd3Nj YWxlLnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJzd3NjYWxlNS5wYwotCSBmZm1wZWctZGV2ZWw6 bGliYXZjb2RlYy5hOi91c3IvbGliL2xpYmF2Y29kZWM1LmEKLQkgZmZtcGVnLWRldmVsOmxpYmF2 Y29kZWMuc286L3Vzci9saWIvbGliYXZjb2RlYzUuc28KLQkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2 aWNlLmE6L3Vzci9saWIvbGliYXZkZXZpY2U1LmEKLQkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNl LnNvOi91c3IvbGliL2xpYmF2ZGV2aWNlNS5zbwotCSBmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIu YTovdXNyL2xpYi9saWJhdmZpbHRlcjUuYQotCSBmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuc286 L3Vzci9saWIvbGliYXZmaWx0ZXI1LnNvCi0JIGZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5hOi91 c3IvbGliL2xpYmF2Zm9ybWF0NS5hCi0JIGZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5zbzovdXNy L2xpYi9saWJhdmZvcm1hdDUuc28KLQkgZmZtcGVnLWRldmVsOmxpYmF2dXRpbC5hOi91c3IvbGli L2xpYmF2dXRpbDUuYQotCSBmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLnNvOi91c3IvbGliL2xpYmF2 dXRpbDUuc28KLQkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLmE6L3Vzci9saWIvbGlicG9zdHBy b2M1LmEKLQkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnNvOi91c3IvbGliL2xpYnBvc3Rwcm9j NS5zbwotCSBmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS5hOi91c3IvbGliL2xpYnN3cmVzYW1w bGU1LmEKLQkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUuc286L3Vzci9saWIvbGlic3dyZXNh bXBsZTUuc28KLQkgZmZtcGVnLWRldmVsOmxpYnN3c2NhbGUuYTovdXNyL2xpYi9saWJzd3NjYWxl NS5hCi0JIGZmbXBlZy1kZXZlbDpsaWJzd3NjYWxlLnNvOi91c3IvbGliL2xpYnN3c2NhbGU1LnNv Ci0JIGZmbXBlZy1kZXZlbDpmZm1wZWc6L3Vzci9zaGFyZS9mZm1wZWc1Ci0JIgorCWNvbmZsaWN0 cz0iZmZtcGVnNC1kZXZlbCIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUK IAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKQEAgLTIzMSw3ICsyMDksNyBAQCBmZm1wZWctZGV2 ZWxfcGFja2FnZSgpIHsKIAl9CiB9CiBmZnBsYXlfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjPSJT aW1wbGUgbWVkaWEgcGxheWVyIHVzaW5nIEZGbXBlZyBhbmQgU0RMMiIKKwlzaG9ydF9kZXNjPSJT aW1wbGUgdmlkZW8gcGxheWVyIHVzaW5nIEZGbXBlZyBhbmQgU0RMMiIKIAlwa2dfaW5zdGFsbCgp IHsKIAkJdm1vdmUgdXNyL2Jpbi9mZnBsYXkKIAkJdm1vdmUgInVzci9zaGFyZS9tYW4vbWFuMS9m ZnBsYXkqIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mZm1wZWc0L3RlbXBsYXRlIGIvc3JjcGtncy9m Zm1wZWc0L3RlbXBsYXRlCmluZGV4IGNkOTE1NDk3OGIzZS4uN2JjNjRiYjM5ZjQxIDEwMDY0NAot LS0gYS9zcmNwa2dzL2ZmbXBlZzQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9mZm1wZWc0L3RlbXBs YXRlCkBAIC0yLDggKzIsOCBAQAogIyBhdWRhY2l0eSBhbHNvIG5lZWRzIHRvIGJlIGJ1bXBlZCB3 aGVuIGEgbmV3IGZmbXBlZyB2ZXJzaW9uIGJ1bXBzIGxpYmF2Zm9ybWF0J3Mgc29uYW1lIQogcGtn bmFtZT1mZm1wZWc0CiB2ZXJzaW9uPTQuNC4zCi1yZXZpc2lvbj0zCi1zaG9ydF9kZXNjPSJmZm1w ZWc0IGxpYnJhcmllcyBvbmx5IC0gRGVjb2RpbmcsIGVuY29kaW5nIGFuZCBzdHJlYW1pbmcgc29m dHdhcmUiCityZXZpc2lvbj0xCitzaG9ydF9kZXNjPSJEZWNvZGluZywgZW5jb2RpbmcgYW5kIHN0 cmVhbWluZyBzb2Z0d2FyZSAtIGZmbXBlZzQgbGlicmFyaWVzIG9ubHkiCiBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5mZm1wZWcub3JnIgpAQCAtMjAyLDQ3ICsyMDIsNyBA QCBmZm1wZWc0LWRldmVsX3BhY2thZ2UoKSB7CiAJCWxpYnN3cmVzYW1wbGU0Pj0ke3ZlcnNpb259 XyR7cmV2aXNpb259CiAJCWxpYmF2cmVzYW1wbGU0Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259Igog CXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKLQlhbHRlcm5hdGl2ZXM9IgotCQlm Zm1wZWctZGV2ZWw6bGliYXZjb2RlYy4zOi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZjb2RlYzQu MwotCQlmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2UuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2 ZGV2aWNlNC4zCi0JCWZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci4zOi91c3Ivc2hhcmUvbWFuL21h bjMvbGliYXZmaWx0ZXI0LjMKLQkJZmZtcGVnLWRldmVsOmxpYmxpYmF2Zm9ybWF0LjM6L3Vzci9z aGFyZS9tYW4vbWFuMy9saWJhdmZvcm1hdDQuMwotCQlmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLjM6 L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJhdnV0aWw0LjMKLQkJZmZtcGVnLWRldmVsOmxpYnN3cmVz YW1wbGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3cmVzYW1wbGU0LjMKLQkJZmZtcGVnLWRl dmVsOmxpYnN3c2NhbGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3c2NhbGU0LjMKLQkJZmZt cGVnLWRldmVsOmxpYmF2Y29kZWM6L3Vzci9pbmNsdWRlL2xpYmF2Y29kZWM0Ci0JCWZmbXBlZy1k ZXZlbDpsaWJhdmRldmljZTovdXNyL2luY2x1ZGUvbGliYXZkZXZpY2U0Ci0JCWZmbXBlZy1kZXZl bDpsaWJhdmZvcm1hdDovdXNyL2luY2x1ZGUvbGliYXZmb3JtYXQ0Ci0JCWZmbXBlZy1kZXZlbDps aWJhdnV0aWw6L3Vzci9pbmNsdWRlL2xpYmF2dXRpbDQKLQkJZmZtcGVnLWRldmVsOmxpYmF2cG9z dHByb2M6L3Vzci9pbmNsdWRlL2xpYmF2cG9zdHByb2M0Ci0JCWZmbXBlZy1kZXZlbDpsaWJzd3Jl c2FtcGxlOi91c3IvaW5jbHVkZS9saWJzd3Jlc2FtcGxlNAotCQlmZm1wZWctZGV2ZWw6bGlic3dj YWFsZTovdXNyL2luY2x1ZGUvbGlic3dzY2FsZTQKLQkJZmZtcGVnLWRldmVsOmxpYmF2Y29kZWMu cGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2Y29kZWM0LnBjCi0JCWZmbXBlZy1kZXZlbDpsaWJh dmRldmljZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZkZXZpY2U0LnBjCi0JCWZmbXBlZy1k ZXZlbDpsaWJhdmZpbHRlci5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmaWx0ZXI0LnBjCi0J CWZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmb3Jt YXQ0LnBjCi0JCWZmbXBlZy1kZXZlbDpsaWJhdnV0aWwucGM6L3Vzci9saWIvcGtnY29uZmlnL2xp YmF2dXRpbDQucGMKLQkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnBjOi91c3IvbGliL3BrZ2Nv bmZpZy9saWJwb3N0cHJvYzQucGMKLQkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUucGM6L3Vz ci9saWIvcGtnY29uZmlnL2xpYnN3cmVzYW1wbGU0LnBjCi0JCWZmbXBlZy1kZXZlbDpsaWJzd3Nj YWxlLnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJzd3NjYWxlNC5wYwotCQlmZm1wZWctZGV2ZWw6 bGliYXZjb2RlYy5hOi91c3IvbGliL2xpYmF2Y29kZWM0LmEKLQkJZmZtcGVnLWRldmVsOmxpYmF2 Y29kZWMuc286L3Vzci9saWIvbGliYXZjb2RlYzQuc28KLQkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2 aWNlLmE6L3Vzci9saWIvbGliYXZkZXZpY2U0LmEKLQkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNl LnNvOi91c3IvbGliL2xpYmF2ZGV2aWNlNC5zbwotCQlmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIu YTovdXNyL2xpYi9saWJhdmZpbHRlcjQuYQotCQlmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuc286 L3Vzci9saWIvbGliYXZmaWx0ZXI0LnNvCi0JCWZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5hOi91 c3IvbGliL2xpYmF2Zm9ybWF0NC5hCi0JCWZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5zbzovdXNy L2xpYi9saWJhdmZvcm1hdDQuc28KLQkJZmZtcGVnLWRldmVsOmxpYmF2dXRpbC5hOi91c3IvbGli L2xpYmF2dXRpbDQuYQotCQlmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLnNvOi91c3IvbGliL2xpYmF2 dXRpbDQuc28KLQkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLmE6L3Vzci9saWIvbGlicG9zdHBy b2M0LmEKLQkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnNvOi91c3IvbGliL2xpYnBvc3Rwcm9j NC5zbwotCQlmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS5hOi91c3IvbGliL2xpYnN3cmVzYW1w bGU0LmEKLQkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUuc286L3Vzci9saWIvbGlic3dyZXNh bXBsZTQuc28KLQkJZmZtcGVnLWRldmVsOmxpYnN3c2NhbGUuYTovdXNyL2xpYi9saWJzd3NjYWxl NC5hCi0JCWZmbXBlZy1kZXZlbDpsaWJzd3NjYWxlLnNvOi91c3IvbGliL2xpYnN3c2NhbGU0LnNv Ci0JCWZmbXBlZy1kZXZlbDpmZm1wZWc6L3Vzci9zaGFyZS9mZm1wZWc0Ci0JIgorCWNvbmZsaWN0 cz0iZmZtcGVnLWRldmVsIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQog CQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mZm1wZWd0aHVt Ym5haWxlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmZtcGVndGh1bWJuYWlsZXIvdGVtcGxhdGUKaW5k ZXggMDM5ZWVhNzYyMmIzLi4zNWQ1NDYwMThkMTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmZtcGVn dGh1bWJuYWlsZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9mZm1wZWd0aHVtYm5haWxlci90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZmbXBlZ3RodW1ibmFp bGVyJwogcGtnbmFtZT1mZm1wZWd0aHVtYm5haWxlcgogdmVyc2lvbj0yLjIuMgotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyIKIG1ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBmZm1w ZWctZGV2ZWwiCkBAIC05LDggKzksOCBAQCBkZXBlbmRzPSJmZm1wZWciCiBzaG9ydF9kZXNjPSJM aWdodHdlaWdodCB2aWRlbyB0aHVtYm5haWxlciIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBo YW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgotaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXJrdmRiLyR7cGtnbmFtZX0iCi1kaXN0ZmlsZXM9IiR7aG9t ZXBhZ2V9L3JlbGVhc2VzL2Rvd25sb2FkLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci5iejIiCitob21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL2Rpcmt2ZGIiCitkaXN0Zmls ZXM9IiR7aG9tZXBhZ2V9LyR7cGtnbmFtZX0vcmVsZWFzZXMvZG93bmxvYWQvJHt2ZXJzaW9ufS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLmJ6MiIKIGNoZWNrc3VtPTFjYjI0MDU5YzM4MjIzZjY1 N2IzMDBjODRkZDgwNDkxYjcwNDBkNGI2OTQ3MWM0ZmVhNjliZTg2MmJjOTliNWIKIAogcG9zdF9p bnN0YWxsKCkgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mZm1wZWd0aHVtYnMvdGVtcGxhdGUgYi9z cmNwa2dzL2ZmbXBlZ3RodW1icy90ZW1wbGF0ZQppbmRleCA1ZjBiOTQxNGRhZGEuLjExYjg4MTkz NTI4ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9mZm1wZWd0aHVtYnMvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9mZm1wZWd0aHVtYnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdmZm1wZWd0aHVtYnMnCiBwa2duYW1lPWZmbXBlZ3RodW1icwogdmVyc2lvbj0yMi4x Mi4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2Vk ZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIGtjb3JlYWRkb25zIGtjb25maWctZGV2ZWwKICBw a2ctY29uZmlnIHF0NS1ob3N0LXRvb2xzIHF0NS1xbWFrZSBnZXR0ZXh0IgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9mZm1zMi9wYXRjaGVzL2ZmbXBlZzUucGF0Y2ggYi9zcmNwa2dzL2ZmbXMyL3BhdGNo ZXMvZmZtcGVnNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjA3NjZkYjE3MjQ3MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZmZtczIvcGF0Y2hlcy9m Zm1wZWc1LnBhdGNoCkBAIC0wLDAgKzEsNDE5IEBACitGcm9tIDI4ZmM0OTNmZGEyZmEyMDY0YWZl ZWIwYTVkODVmZGM0MmRiMDVkY2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEZXJl ayBCdWl0ZW5odWlzIDxkZXJlay5idWl0ZW5odWlzQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgNCBN YXkgMjAyMSAxNDoxMjo0MSArMDEwMAorU3ViamVjdDogW1BBVENIIDEvM10gYWxsOiBVcGRhdGUg QVZQYWNrZXQgQVBJIHVzYWdlCisKK0FWUGFja2V0cyBtdXN0IGFsbCBiZSBvbiB0aGUgaGVhcCBu b3csIHNpbmNlIGl0IGlzIG5vIGxvbmdlcgorcGFydCBvZiB0aGUgbGliYXYqIEFCSS4KKworU2ln bmVkLW9mZi1ieTogRGVyZWsgQnVpdGVuaHVpcyA8ZGVyZWsuYnVpdGVuaHVpc0BnbWFpbC5jb20+ CistLS0KKyBzcmMvY29yZS9hdWRpb3NvdXJjZS5jcHAgfCAxNiArKysrKystLS0tCisgc3JjL2Nv cmUvaW5kZXhpbmcuY3BwICAgIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLQorIHNyYy9jb3JlL2luZGV4aW5nLmggICAgICB8ICA0ICstLQorIHNyYy9jb3JlL3V0 aWxzLmNwcCAgICAgICB8ICA2IC0tLS0KKyBzcmMvY29yZS91dGlscy5oICAgICAgICAgfCAgMSAt Cisgc3JjL2NvcmUvdmlkZW9zb3VyY2UuY3BwIHwgMzAgKysrKysrKysrKy0tLS0tLS0tLQorIDYg ZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9zcmMvY29yZS9hdWRpb3NvdXJjZS5jcHAgYi9zcmMvY29yZS9hdWRpb3NvdXJjZS5j cHAKK2luZGV4IDM3Y2Y5YWVlZi4uZTRjZTk3Y2RiIDEwMDY0NAorLS0tIGEvc3JjL2NvcmUvYXVk aW9zb3VyY2UuY3BwCisrKysgYi9zcmMvY29yZS9hdWRpb3NvdXJjZS5jcHAKK0BAIC0yODUsMTAg KzI4NSwxNSBAQCBGRk1TX0F1ZGlvU291cmNlOjpBdWRpb0Jsb2NrICpGRk1TX0F1ZGlvU291cmNl OjpDYWNoZUJsb2NrKENhY2hlSXRlcmF0b3IgJnBvcykgeworIGludCBGRk1TX0F1ZGlvU291cmNl OjpEZWNvZGVOZXh0QmxvY2soQ2FjaGVJdGVyYXRvciAqcG9zKSB7CisgICAgIEN1cnJlbnRGcmFt ZSA9ICZGcmFtZXNbUGFja2V0TnVtYmVyXTsKKworLSAgICBBVlBhY2tldCBQYWNrZXQ7CistICAg IGlmICghUmVhZFBhY2tldCgmUGFja2V0KSkKKysgICAgQVZQYWNrZXQgKlBhY2tldCA9IGF2X3Bh Y2tldF9hbGxvYygpOworKyAgICBpZiAoIVBhY2tldCkKKysgICAgICAgIHRocm93IEZGTVNfRXhj ZXB0aW9uKEZGTVNfRVJST1JfUEFSU0VSLCBGRk1TX0VSUk9SX0FMTE9DQVRJT05fRkFJTEVELAor KyAgICAgICAgICAgICJDb3VsZCBub3QgYWxsb2NhdGUgcGFja2V0LiIpOworKyAgICBpZiAoIVJl YWRQYWNrZXQoUGFja2V0KSkgeworKyAgICAgICAgYXZfcGFja2V0X2ZyZWUoJlBhY2tldCk7Cisg ICAgICAgICB0aHJvdyBGRk1TX0V4Y2VwdGlvbihGRk1TX0VSUk9SX1BBUlNFUiwgRkZNU19FUlJP Ul9VTktOT1dOLAorICAgICAgICAgICAgICJSZWFkUGFja2V0IHVuZXhwZWN0ZWRseSBmYWlsZWQg dG8gcmVhZCBhIHBhY2tldCIpOworKyAgICB9CisKKyAgICAgLy8gUmVhZFBhY2tldCBtYXkgaGF2 ZSBjaGFuZ2VkIHRoZSBwYWNrZXQgbnVtYmVyCisgICAgIEN1cnJlbnRGcmFtZSA9ICZGcmFtZXNb UGFja2V0TnVtYmVyXTsKK0BAIC0yOTcsOCArMzAyLDkgQEAgaW50IEZGTVNfQXVkaW9Tb3VyY2U6 OkRlY29kZU5leHRCbG9jayhDYWNoZUl0ZXJhdG9yICpwb3MpIHsKKyAgICAgaW50IE51bWJlck9m U2FtcGxlcyA9IDA7CisgICAgIEF1ZGlvQmxvY2sgKkNhY2hlZEJsb2NrID0gbnVsbHB0cjsKKwor LSAgICBpbnQgUmV0ID0gYXZjb2RlY19zZW5kX3BhY2tldChDb2RlY0NvbnRleHQsICZQYWNrZXQp OworLSAgICBhdl9wYWNrZXRfdW5yZWYoJlBhY2tldCk7CisrICAgIGludCBSZXQgPSBhdmNvZGVj X3NlbmRfcGFja2V0KENvZGVjQ29udGV4dCwgUGFja2V0KTsKKysgICAgYXZfcGFja2V0X3VucmVm KFBhY2tldCk7CisrICAgIGF2X3BhY2tldF9mcmVlKCZQYWNrZXQpOworCisgICAgIGF2X2ZyYW1l X3VucmVmKERlY29kZUZyYW1lKTsKKyAgICAgUmV0ID0gYXZjb2RlY19yZWNlaXZlX2ZyYW1lKENv ZGVjQ29udGV4dCwgRGVjb2RlRnJhbWUpOworQEAgLTUxMyw4ICs1MTksNiBAQCB2b2lkIEZGTVNf QXVkaW9Tb3VyY2U6OlNlZWsoKSB7CisgfQorCisgYm9vbCBGRk1TX0F1ZGlvU291cmNlOjpSZWFk UGFja2V0KEFWUGFja2V0ICpQYWNrZXQpIHsKKy0gICAgSW5pdE51bGxQYWNrZXQoKlBhY2tldCk7 CistCisgICAgIHdoaWxlIChhdl9yZWFkX2ZyYW1lKEZvcm1hdENvbnRleHQsIFBhY2tldCkgPj0g MCkgeworICAgICAgICAgaWYgKFBhY2tldC0+c3RyZWFtX2luZGV4ID09IFRyYWNrTnVtYmVyKSB7 CisgICAgICAgICAgICAgLy8gUmVxdWlyZWQgYmVjYXVzZSBub3QgYWxsIGF1ZGlvIHBhY2tldHMs IGVzcGVjaWFsbHkgaW4gb2dnLCBoYXZlIGEgcHRzLiBVc2UgdGhlIHByZXZpb3VzIHZhbGlkIHBh Y2tldCdzIHB0cyBpbnN0ZWFkLgorZGlmZiAtLWdpdCBhL3NyYy9jb3JlL2luZGV4aW5nLmNwcCBi L3NyYy9jb3JlL2luZGV4aW5nLmNwcAoraW5kZXggMjNmYjk1YjEyLi5lNTQ3YzVhYmYgMTAwNjQ0 CistLS0gYS9zcmMvY29yZS9pbmRleGluZy5jcHAKKysrKyBiL3NyYy9jb3JlL2luZGV4aW5nLmNw cAorQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIEZGTVNfSW5kZXhlcjo6Q2hlY2tBdWRpb1Byb3Bl cnRpZXMoaW50IFRyYWNrLCBBVkNvZGVjQ29udGV4dCAqQ29udGV4dCkgeworICAgICB9CisgfQor Cistdm9pZCBGRk1TX0luZGV4ZXI6OlBhcnNlVmlkZW9QYWNrZXQoU2hhcmVkQVZDb250ZXh0ICZW aWRlb0NvbnRleHQsIEFWUGFja2V0ICZwa3QsIGludCAqUmVwZWF0UGljdCwKKyt2b2lkIEZGTVNf SW5kZXhlcjo6UGFyc2VWaWRlb1BhY2tldChTaGFyZWRBVkNvbnRleHQgJlZpZGVvQ29udGV4dCwg QVZQYWNrZXQgKnBrdCwgaW50ICpSZXBlYXRQaWN0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCAqRnJhbWVUeXBlLCBib29sICpJbnZpc2libGUsIGVudW0gQVZQaWN0 dXJlU3RydWN0dXJlICpMYXN0UGljU3RydWN0KSB7CisgICAgIGlmIChWaWRlb0NvbnRleHQuUGFy c2VyKSB7CisgICAgICAgICB1aW50OF90ICpPQjsKK0BAIC0zMzAsOCArMzMwLDggQEAgdm9pZCBG Rk1TX0luZGV4ZXI6OlBhcnNlVmlkZW9QYWNrZXQoU2hhcmVkQVZDb250ZXh0ICZWaWRlb0NvbnRl eHQsIEFWUGFja2V0ICZwa3QKKyAgICAgICAgIGF2X3BhcnNlcl9wYXJzZTIoVmlkZW9Db250ZXh0 LlBhcnNlciwKKyAgICAgICAgICAgICBWaWRlb0NvbnRleHQuQ29kZWNDb250ZXh0LAorICAgICAg ICAgICAgICZPQiwgJk9CU2l6ZSwKKy0gICAgICAgICAgICBwa3QuZGF0YSwgcGt0LnNpemUsCist ICAgICAgICAgICAgcGt0LnB0cywgcGt0LmR0cywgcGt0LnBvcyk7CisrICAgICAgICAgICAgcGt0 LT5kYXRhLCBwa3QtPnNpemUsCisrICAgICAgICAgICAgcGt0LT5wdHMsIHBrdC0+ZHRzLCBwa3Qt PnBvcyk7CisKKyAgICAgICAgIC8vIEguMjY0IChQQUZGKSBhbmQgSEVWQyBtYXkgaGF2ZSBvbmUg ZmllbGQgcGVyIHBhY2tldCwgc28gd2UgbmVlZCB0byB0cmFjaworICAgICAgICAgLy8gd2hlbiB3 ZSBoYXZlIGEgZnVsbCBvciBoYWxmIGZyYW1lIGF2YWlsYWJsZSwgYW5kIG1hcmsgb25lIG9mIHRo ZW0gYXMKK0BAIC0zNTEsMTUgKzM1MSwxNSBAQCB2b2lkIEZGTVNfSW5kZXhlcjo6UGFyc2VWaWRl b1BhY2tldChTaGFyZWRBVkNvbnRleHQgJlZpZGVvQ29udGV4dCwgQVZQYWNrZXQgJnBrdAorCisg ICAgICAgICAqUmVwZWF0UGljdCA9IFZpZGVvQ29udGV4dC5QYXJzZXItPnJlcGVhdF9waWN0Owor ICAgICAgICAgKkZyYW1lVHlwZSA9IFZpZGVvQ29udGV4dC5QYXJzZXItPnBpY3RfdHlwZTsKKy0g ICAgICAgICpJbnZpc2libGUgPSAoSW5jb21wbGV0ZUZyYW1lIHx8IFZpZGVvQ29udGV4dC5QYXJz ZXItPnJlcGVhdF9waWN0IDwgMCB8fCAocGt0LmZsYWdzICYgQVZfUEtUX0ZMQUdfRElTQ0FSRCkp OworKyAgICAgICAgKkludmlzaWJsZSA9IChJbmNvbXBsZXRlRnJhbWUgfHwgVmlkZW9Db250ZXh0 LlBhcnNlci0+cmVwZWF0X3BpY3QgPCAwIHx8IChwa3QtPmZsYWdzICYgQVZfUEtUX0ZMQUdfRElT Q0FSRCkpOworICAgICB9IGVsc2UgeworLSAgICAgICAgKkludmlzaWJsZSA9ICEhKHBrdC5mbGFn cyAmIEFWX1BLVF9GTEFHX0RJU0NBUkQpOworKyAgICAgICAgKkludmlzaWJsZSA9ICEhKHBrdC0+ ZmxhZ3MgJiBBVl9QS1RfRkxBR19ESVNDQVJEKTsKKyAgICAgfQorCisgICAgIGlmIChWaWRlb0Nv bnRleHQuQ29kZWNDb250ZXh0LT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9WUDgpCistICAgICAg ICBQYXJzZVZQOChwa3QuZGF0YVswXSwgSW52aXNpYmxlLCBGcmFtZVR5cGUpOworKyAgICAgICAg UGFyc2VWUDgocGt0LT5kYXRhWzBdLCBJbnZpc2libGUsIEZyYW1lVHlwZSk7CisgICAgIGVsc2Ug aWYgKFZpZGVvQ29udGV4dC5Db2RlY0NvbnRleHQtPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1ZQ OSkKKy0gICAgICAgIFBhcnNlVlA5KHBrdC5kYXRhWzBdLCBJbnZpc2libGUsIEZyYW1lVHlwZSk7 CisrICAgICAgICBQYXJzZVZQOShwa3QtPmRhdGFbMF0sIEludmlzaWJsZSwgRnJhbWVUeXBlKTsK KyB9CisKKyB2b2lkIEZGTVNfSW5kZXhlcjo6RnJlZSgpIHsKK0BAIC00NTgsMzIgKzQ1OCwzNiBA QCBGRk1TX0luZGV4ICpGRk1TX0luZGV4ZXI6OkRvSW5kZXhpbmcoKSB7CisgICAgICAgICB9Cisg ICAgIH0KKworLSAgICBBVlBhY2tldCBQYWNrZXQ7CistICAgIEluaXROdWxsUGFja2V0KFBhY2tl dCk7CisrICAgIEFWUGFja2V0ICpQYWNrZXQgPSBhdl9wYWNrZXRfYWxsb2MoKTsKKysgICAgaWYg KCFQYWNrZXQpCisrICAgICAgICB0aHJvdyBGRk1TX0V4Y2VwdGlvbihGRk1TX0VSUk9SX0NPREVD LCBGRk1TX0VSUk9SX0FMTE9DQVRJT05fRkFJTEVELAorKyAgICAgICAgICAgICJDb3VsZCBub3Qg YWxsb2NhdGUgcGFja2V0LiIpOworICAgICBzdGQ6OnZlY3RvcjxpbnQ2NF90PiBMYXN0VmFsaWRU UyhGb3JtYXRDb250ZXh0LT5uYl9zdHJlYW1zLCBBVl9OT1BUU19WQUxVRSk7CisKKyAgICAgaW50 NjRfdCBmaWxlc2l6ZSA9IGF2aW9fc2l6ZShGb3JtYXRDb250ZXh0LT5wYik7CisgICAgIGVudW0g QVZQaWN0dXJlU3RydWN0dXJlIExhc3RQaWNTdHJ1Y3QgPSBBVl9QSUNUVVJFX1NUUlVDVFVSRV9V TktOT1dOOworLSAgICB3aGlsZSAoYXZfcmVhZF9mcmFtZShGb3JtYXRDb250ZXh0LCAmUGFja2V0 KSA+PSAwKSB7CisrICAgIHdoaWxlIChhdl9yZWFkX2ZyYW1lKEZvcm1hdENvbnRleHQsIFBhY2tl dCkgPj0gMCkgeworICAgICAgICAgLy8gVXBkYXRlIHByb2dyZXNzCisgICAgICAgICAvLyBGb3Jt YXRDb250ZXh0LT5wYiBjYW4gYXBwYXJlbnRseSBiZSBOVUxMIHdoZW4gb3BlbmluZyBpbWFnZXMu CisgICAgICAgICBpZiAoSUMgJiYgRm9ybWF0Q29udGV4dC0+cGIpIHsKKy0gICAgICAgICAgICBp ZiAoKCpJQykoRm9ybWF0Q29udGV4dC0+cGItPnBvcywgZmlsZXNpemUsIElDUHJpdmF0ZSkpCisr ICAgICAgICAgICAgaWYgKCgqSUMpKEZvcm1hdENvbnRleHQtPnBiLT5wb3MsIGZpbGVzaXplLCBJ Q1ByaXZhdGUpKSB7CisrICAgICAgICAgICAgICAgIGF2X3BhY2tldF9mcmVlKCZQYWNrZXQpOwor ICAgICAgICAgICAgICAgICB0aHJvdyBGRk1TX0V4Y2VwdGlvbihGRk1TX0VSUk9SX0NBTkNFTExF RCwgRkZNU19FUlJPUl9VU0VSLAorICAgICAgICAgICAgICAgICAgICAgIkNhbmNlbGxlZCBieSB1 c2VyIik7CisrICAgICAgICAgICAgfQorICAgICAgICAgfQorLSAgICAgICAgaWYgKCFJbmRleE1h c2suY291bnQoUGFja2V0LnN0cmVhbV9pbmRleCkpIHsKKy0gICAgICAgICAgICBhdl9wYWNrZXRf dW5yZWYoJlBhY2tldCk7CisrICAgICAgICBpZiAoIUluZGV4TWFzay5jb3VudChQYWNrZXQtPnN0 cmVhbV9pbmRleCkpIHsKKysgICAgICAgICAgICBhdl9wYWNrZXRfdW5yZWYoUGFja2V0KTsKKyAg ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgIH0KKworLSAgICAgICAgaW50IFRyYWNrID0g UGFja2V0LnN0cmVhbV9pbmRleDsKKysgICAgICAgIGludCBUcmFjayA9IFBhY2tldC0+c3RyZWFt X2luZGV4OworICAgICAgICAgRkZNU19UcmFjayAmVHJhY2tJbmZvID0gKCpUcmFja0luZGljZXMp W1RyYWNrXTsKKy0gICAgICAgIGJvb2wgS2V5RnJhbWUgPSAhIShQYWNrZXQuZmxhZ3MgJiBBVl9Q S1RfRkxBR19LRVkpOworKyAgICAgICAgYm9vbCBLZXlGcmFtZSA9ICEhKFBhY2tldC0+ZmxhZ3Mg JiBBVl9QS1RfRkxBR19LRVkpOworICAgICAgICAgUmVhZFRTKFBhY2tldCwgTGFzdFZhbGlkVFNb VHJhY2tdLCAoKlRyYWNrSW5kaWNlcylbVHJhY2tdLlVzZURUUyk7CisKKyAgICAgICAgIGlmIChG b3JtYXRDb250ZXh0LT5zdHJlYW1zW1RyYWNrXS0+Y29kZWNwYXItPmNvZGVjX3R5cGUgPT0gQVZN RURJQV9UWVBFX1ZJREVPKSB7CistICAgICAgICAgICAgaW50NjRfdCBQVFMgPSBUcmFja0luZm8u VXNlRFRTID8gUGFja2V0LmR0cyA6IFBhY2tldC5wdHM7CisrICAgICAgICAgICAgaW50NjRfdCBQ VFMgPSBUcmFja0luZm8uVXNlRFRTID8gUGFja2V0LT5kdHMgOiBQYWNrZXQtPnB0czsKKyAgICAg ICAgICAgICBpZiAoUFRTID09IEFWX05PUFRTX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgIC8v IFZQeCBhbHQtcmVmcyBhcmUgb3V0cHV0IGFzIHBhY2tldHMgd2hpY2ggbGFjayB0aW1lc3RtcHMg b3IgZHVyYXRpb25zLCBzaW5jZQorICAgICAgICAgICAgICAgICAvLyB0aGV5IGFyZSBpbnZpc2li bGUuIEN1cnJlbnRseSwgdGhlIHRpbWVzdGFtcCBtYW5nbGluZyBjb2RlIGluIGxpYmF2Zm9ybWF0 CitAQCAtNDk1LDkgKzQ5OSwxMSBAQCBGRk1TX0luZGV4ICpGRk1TX0luZGV4ZXI6OkRvSW5kZXhp bmcoKSB7CisgICAgICAgICAgICAgICAgIC8vIEZGTVMyIGN1cnJlbnRseSBzb3J0cyBwYWNrZXRz IGJ5IFBUUywgd2hpY2ggd2lsbCBicmVhayBkZWNvZGluZywgb3RoZXJ3aXNlLgorICAgICAgICAg ICAgICAgICBib29sIEhhc0FsdFJlZnMgPSAoRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tUcmFja10t PmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9WUDggfHwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdENvbnRleHQtPnN0cmVhbXNbVHJhY2tdLT5jb2Rl Y3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVlA5KTsKKy0gICAgICAgICAgICAgICAgaWYg KFBhY2tldC5kdXJhdGlvbiA9PSAwICYmICFIYXNBbHRSZWZzKQorKyAgICAgICAgICAgICAgICBp ZiAoUGFja2V0LT5kdXJhdGlvbiA9PSAwICYmICFIYXNBbHRSZWZzKSB7CisrICAgICAgICAgICAg ICAgICAgICBhdl9wYWNrZXRfZnJlZSgmUGFja2V0KTsKKyAgICAgICAgICAgICAgICAgICAgIHRo cm93IEZGTVNfRXhjZXB0aW9uKEZGTVNfRVJST1JfSU5ERVhJTkcsIEZGTVNfRVJST1JfUEFSU0VS LAorICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHBhY2tldCBwdHMsIGR0cywgYW5k IGR1cmF0aW9uIik7CisrICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICBpZiAo VHJhY2tJbmZvLmVtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICBQVFMgPSAwOworQEAgLTUx Myw3ICs1MTksNyBAQCBGRk1TX0luZGV4ICpGRk1TX0luZGV4ZXI6OkRvSW5kZXhpbmcoKSB7Cisg ICAgICAgICAgICAgUGFyc2VWaWRlb1BhY2tldChBVkNvbnRleHRzW1RyYWNrXSwgUGFja2V0LCAm UmVwZWF0UGljdCwgJkZyYW1lVHlwZSwgJkludmlzaWJsZSwgJkxhc3RQaWNTdHJ1Y3QpOworCisg ICAgICAgICAgICAgVHJhY2tJbmZvLkFkZFZpZGVvRnJhbWUoUFRTLCBSZXBlYXRQaWN0LCBLZXlG cmFtZSwKKy0gICAgICAgICAgICAgICAgRnJhbWVUeXBlLCBQYWNrZXQucG9zLCBJbnZpc2libGUp OworKyAgICAgICAgICAgICAgICBGcmFtZVR5cGUsIFBhY2tldC0+cG9zLCBJbnZpc2libGUpOwor ICAgICAgICAgfSBlbHNlIGlmIChGb3JtYXRDb250ZXh0LT5zdHJlYW1zW1RyYWNrXS0+Y29kZWNw YXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPKSB7CisgICAgICAgICAgICAgLy8g Rm9yIHZpZGVvIHNlZWtpbmcgdGltZXN0YW1wcyBhcmUgdXNlZCBvbmx5IGlmIGFsbCBwYWNrZXRz IGhhdmUKKyAgICAgICAgICAgICAvLyB0aW1lc3RhbXBzLCB3aGlsZSBmb3IgYXVkaW8gdGhleSdy ZSB1c2VkIGlmIGFueSBoYXZlIHRpbWVzdGFtcHMsCitAQCAtNTIyLDI4ICs1MjgsMjkgQEAgRkZN U19JbmRleCAqRkZNU19JbmRleGVyOjpEb0luZGV4aW5nKCkgeworICAgICAgICAgICAgICAgICBU cmFja0luZm8uSGFzVFMgPSB0cnVlOworCisgICAgICAgICAgICAgaW50NjRfdCBTdGFydFNhbXBs ZSA9IEFWQ29udGV4dHNbVHJhY2tdLkN1cnJlbnRTYW1wbGU7CistICAgICAgICAgICAgdWludDMy X3QgU2FtcGxlQ291bnQgPSBJbmRleEF1ZGlvUGFja2V0KFRyYWNrLCAmUGFja2V0LCBBVkNvbnRl eHRzW1RyYWNrXSwgKlRyYWNrSW5kaWNlcyk7CisrICAgICAgICAgICAgdWludDMyX3QgU2FtcGxl Q291bnQgPSBJbmRleEF1ZGlvUGFja2V0KFRyYWNrLCBQYWNrZXQsIEFWQ29udGV4dHNbVHJhY2td LCAqVHJhY2tJbmRpY2VzKTsKKyAgICAgICAgICAgICBUcmFja0luZm8uU2FtcGxlUmF0ZSA9IEFW Q29udGV4dHNbVHJhY2tdLkNvZGVjQ29udGV4dC0+c2FtcGxlX3JhdGU7CisKKyAgICAgICAgICAg ICBUcmFja0luZm8uQWRkQXVkaW9GcmFtZShMYXN0VmFsaWRUU1tUcmFja10sCistICAgICAgICAg ICAgICAgIFN0YXJ0U2FtcGxlLCBTYW1wbGVDb3VudCwgS2V5RnJhbWUsIFBhY2tldC5wb3MsIFBh Y2tldC5mbGFncyAmIEFWX1BLVF9GTEFHX0RJU0NBUkQpOworKyAgICAgICAgICAgICAgICBTdGFy dFNhbXBsZSwgU2FtcGxlQ291bnQsIEtleUZyYW1lLCBQYWNrZXQtPnBvcywgUGFja2V0LT5mbGFn cyAmIEFWX1BLVF9GTEFHX0RJU0NBUkQpOworICAgICAgICAgfQorCistICAgICAgICBpZiAoIShQ YWNrZXQuZmxhZ3MgJiBBVl9QS1RfRkxBR19ESVNDQVJEKSkKKy0gICAgICAgICAgICBUcmFja0lu Zm8uTGFzdER1cmF0aW9uID0gUGFja2V0LmR1cmF0aW9uOworKyAgICAgICAgaWYgKCEoUGFja2V0 LT5mbGFncyAmIEFWX1BLVF9GTEFHX0RJU0NBUkQpKQorKyAgICAgICAgICAgIFRyYWNrSW5mby5M YXN0RHVyYXRpb24gPSBQYWNrZXQtPmR1cmF0aW9uOworCistICAgICAgICBhdl9wYWNrZXRfdW5y ZWYoJlBhY2tldCk7CisrICAgICAgICBhdl9wYWNrZXRfdW5yZWYoUGFja2V0KTsKKyAgICAgfQor KyAgICBhdl9wYWNrZXRfZnJlZSgmUGFja2V0KTsKKworICAgICBUcmFja0luZGljZXMtPkZpbmFs aXplKEFWQ29udGV4dHMsIEZvcm1hdENvbnRleHQtPmlmb3JtYXQtPm5hbWUpOworICAgICByZXR1 cm4gVHJhY2tJbmRpY2VzLnJlbGVhc2UoKTsKKyB9CisKKy12b2lkIEZGTVNfSW5kZXhlcjo6UmVh ZFRTKGNvbnN0IEFWUGFja2V0ICZQYWNrZXQsIGludDY0X3QgJlRTLCBib29sICZVc2VEVFMpIHsK Ky0gICAgaWYgKCFVc2VEVFMgJiYgUGFja2V0LnB0cyAhPSBBVl9OT1BUU19WQUxVRSkKKy0gICAg ICAgIFRTID0gUGFja2V0LnB0czsKKyt2b2lkIEZGTVNfSW5kZXhlcjo6UmVhZFRTKGNvbnN0IEFW UGFja2V0ICpQYWNrZXQsIGludDY0X3QgJlRTLCBib29sICZVc2VEVFMpIHsKKysgICAgaWYgKCFV c2VEVFMgJiYgUGFja2V0LT5wdHMgIT0gQVZfTk9QVFNfVkFMVUUpCisrICAgICAgICBUUyA9IFBh Y2tldC0+cHRzOworICAgICBpZiAoVFMgPT0gQVZfTk9QVFNfVkFMVUUpCisgICAgICAgICBVc2VE VFMgPSB0cnVlOworLSAgICBpZiAoVXNlRFRTICYmIFBhY2tldC5kdHMgIT0gQVZfTk9QVFNfVkFM VUUpCistICAgICAgICBUUyA9IFBhY2tldC5kdHM7CisrICAgIGlmIChVc2VEVFMgJiYgUGFja2V0 LT5kdHMgIT0gQVZfTk9QVFNfVkFMVUUpCisrICAgICAgICBUUyA9IFBhY2tldC0+ZHRzOworIH0K K2RpZmYgLS1naXQgYS9zcmMvY29yZS9pbmRleGluZy5oIGIvc3JjL2NvcmUvaW5kZXhpbmcuaAor aW5kZXggM2NmYzNjMzBiLi41YzA2ODY4ODkgMTAwNjQ0CistLS0gYS9zcmMvY29yZS9pbmRleGlu Zy5oCisrKysgYi9zcmMvY29yZS9pbmRleGluZy5oCitAQCAtODAsMTAgKzgwLDEwIEBAIHN0cnVj dCBGRk1TX0luZGV4ZXIgeworICAgICBpbnQ2NF90IEZpbGVzaXplOworICAgICB1aW50OF90IERp Z2VzdFsyMF07CisKKy0gICAgdm9pZCBSZWFkVFMoY29uc3QgQVZQYWNrZXQgJlBhY2tldCwgaW50 NjRfdCAmVFMsIGJvb2wgJlVzZURUUyk7CisrICAgIHZvaWQgUmVhZFRTKGNvbnN0IEFWUGFja2V0 ICpQYWNrZXQsIGludDY0X3QgJlRTLCBib29sICZVc2VEVFMpOworICAgICB2b2lkIENoZWNrQXVk aW9Qcm9wZXJ0aWVzKGludCBUcmFjaywgQVZDb2RlY0NvbnRleHQgKkNvbnRleHQpOworICAgICB1 aW50MzJfdCBJbmRleEF1ZGlvUGFja2V0KGludCBUcmFjaywgQVZQYWNrZXQgKlBhY2tldCwgU2hh cmVkQVZDb250ZXh0ICZDb250ZXh0LCBGRk1TX0luZGV4ICZUcmFja0luZGljZXMpOworLSAgICB2 b2lkIFBhcnNlVmlkZW9QYWNrZXQoU2hhcmVkQVZDb250ZXh0ICZWaWRlb0NvbnRleHQsIEFWUGFj a2V0ICZwa3QsIGludCAqUmVwZWF0UGljdCwgaW50ICpGcmFtZVR5cGUsIGJvb2wgKkludmlzaWJs ZSwgZW51bSBBVlBpY3R1cmVTdHJ1Y3R1cmUgKkxhc3RQaWNTdHJ1Y3QpOworKyAgICB2b2lkIFBh cnNlVmlkZW9QYWNrZXQoU2hhcmVkQVZDb250ZXh0ICZWaWRlb0NvbnRleHQsIEFWUGFja2V0ICpw a3QsIGludCAqUmVwZWF0UGljdCwgaW50ICpGcmFtZVR5cGUsIGJvb2wgKkludmlzaWJsZSwgZW51 bSBBVlBpY3R1cmVTdHJ1Y3R1cmUgKkxhc3RQaWNTdHJ1Y3QpOworICAgICB2b2lkIEZyZWUoKTsK KyBwdWJsaWM6CisgICAgIEZGTVNfSW5kZXhlcihjb25zdCBjaGFyICpGaWxlbmFtZSk7CitkaWZm IC0tZ2l0IGEvc3JjL2NvcmUvdXRpbHMuY3BwIGIvc3JjL2NvcmUvdXRpbHMuY3BwCitpbmRleCBj ZTY3NTMzZmQuLjhhMmU5OTcxMCAxMDA2NDQKKy0tLSBhL3NyYy9jb3JlL3V0aWxzLmNwcAorKysr IGIvc3JjL2NvcmUvdXRpbHMuY3BwCitAQCAtNjIsMTIgKzYyLDYgQEAgdm9pZCBDbGVhckVycm9y SW5mbyhGRk1TX0Vycm9ySW5mbyAqRXJyb3JJbmZvKSB7CisgICAgIH0KKyB9CisKKy12b2lkIElu aXROdWxsUGFja2V0KEFWUGFja2V0ICZwa3QpIHsKKy0gICAgYXZfaW5pdF9wYWNrZXQoJnBrdCk7 CistICAgIHBrdC5kYXRhID0gbnVsbHB0cjsKKy0gICAgcGt0LnNpemUgPSAwOworLX0KKy0KKyB2 b2lkIEZpbGxBUChGRk1TX0F1ZGlvUHJvcGVydGllcyAmQVAsIEFWQ29kZWNDb250ZXh0ICpDVFgs IEZGTVNfVHJhY2sgJkZyYW1lcykgeworICAgICBBUC5TYW1wbGVGb3JtYXQgPSBzdGF0aWNfY2Fz dDxGRk1TX1NhbXBsZUZvcm1hdD4oYXZfZ2V0X3BhY2tlZF9zYW1wbGVfZm10KENUWC0+c2FtcGxl X2ZtdCkpOworICAgICBBUC5CaXRzUGVyU2FtcGxlID0gYXZfZ2V0X2J5dGVzX3Blcl9zYW1wbGUo Q1RYLT5zYW1wbGVfZm10KSAqIDg7CitkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvdXRpbHMuaCBiL3Ny Yy9jb3JlL3V0aWxzLmgKK2luZGV4IDk4MTlkYzdjOS4uMDAzYWI3OTRlIDEwMDY0NAorLS0tIGEv c3JjL2NvcmUvdXRpbHMuaAorKysrIGIvc3JjL2NvcmUvdXRpbHMuaAorQEAgLTU4LDcgKzU4LDYg QEAgc3RkOjp1bmlxdWVfcHRyPFQ+IG1ha2VfdW5pcXVlKEFyZ3MmJi4uLiBhcmdzKSB7CisgfQor Cisgdm9pZCBDbGVhckVycm9ySW5mbyhGRk1TX0Vycm9ySW5mbyAqRXJyb3JJbmZvKTsKKy12b2lk IEluaXROdWxsUGFja2V0KEFWUGFja2V0ICZwa3QpOworIHZvaWQgRmlsbEFQKEZGTVNfQXVkaW9Q cm9wZXJ0aWVzICZBUCwgQVZDb2RlY0NvbnRleHQgKkNUWCwgRkZNU19UcmFjayAmRnJhbWVzKTsK KworIHZvaWQgTEFWRk9wZW5GaWxlKGNvbnN0IGNoYXIgKlNvdXJjZUZpbGUsIEFWRm9ybWF0Q29u dGV4dCAqJkZvcm1hdENvbnRleHQsIGludCBUcmFjayk7CitkaWZmIC0tZ2l0IGEvc3JjL2NvcmUv dmlkZW9zb3VyY2UuY3BwIGIvc3JjL2NvcmUvdmlkZW9zb3VyY2UuY3BwCitpbmRleCAwNmJkMTYx MGUuLmI4ODk5NzBlMiAxMDA2NDQKKy0tLSBhL3NyYy9jb3JlL3ZpZGVvc291cmNlLmNwcAorKysr IGIvc3JjL2NvcmUvdmlkZW9zb3VyY2UuY3BwCitAQCAtNjczLDMwICs2NzMsMzQgQEAgdm9pZCBG Rk1TX1ZpZGVvU291cmNlOjpEZWNvZGVOZXh0RnJhbWUoaW50NjRfdCAmQVN0YXJ0VGltZSwgaW50 NjRfdCAmUG9zKSB7CisgICAgIGlmIChIYXNQZW5kaW5nRGVsYXllZEZyYW1lcygpKQorICAgICAg ICAgcmV0dXJuOworCistICAgIEFWUGFja2V0IFBhY2tldDsKKy0gICAgSW5pdE51bGxQYWNrZXQo UGFja2V0KTsKKy0KKy0gICAgd2hpbGUgKFJlYWRGcmFtZSgmUGFja2V0KSA+PSAwKSB7CistICAg ICAgICBpZiAoUGFja2V0LnN0cmVhbV9pbmRleCAhPSBWaWRlb1RyYWNrKSB7CistICAgICAgICAg ICAgYXZfcGFja2V0X3VucmVmKCZQYWNrZXQpOworKyAgICBBVlBhY2tldCAqUGFja2V0ID0gYXZf cGFja2V0X2FsbG9jKCk7CisrICAgIGlmICghUGFja2V0KQorKyAgICAgICAgdGhyb3cgRkZNU19F eGNlcHRpb24oRkZNU19FUlJPUl9ERUNPRElORywgRkZNU19FUlJPUl9BTExPQ0FUSU9OX0ZBSUxF RCwKKysgICAgICAgICAgICAiQ291bGQgbm90IGFsbG9jYXRlIHBhY2tldC4iKTsKKysKKysgICAg d2hpbGUgKFJlYWRGcmFtZShQYWNrZXQpID49IDApIHsKKysgICAgICAgIGlmIChQYWNrZXQtPnN0 cmVhbV9pbmRleCAhPSBWaWRlb1RyYWNrKSB7CisrICAgICAgICAgICAgYXZfcGFja2V0X3VucmVm KFBhY2tldCk7CisgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICB9CisKKyAgICAgICAg IGlmIChBU3RhcnRUaW1lIDwgMCkKKy0gICAgICAgICAgICBBU3RhcnRUaW1lID0gRnJhbWVzLlVz ZURUUyA/IFBhY2tldC5kdHMgOiBQYWNrZXQucHRzOworKyAgICAgICAgICAgIEFTdGFydFRpbWUg PSBGcmFtZXMuVXNlRFRTID8gUGFja2V0LT5kdHMgOiBQYWNrZXQtPnB0czsKKworICAgICAgICAg aWYgKFBvcyA8IDApCistICAgICAgICAgICAgUG9zID0gUGFja2V0LnBvczsKKysgICAgICAgICAg ICBQb3MgPSBQYWNrZXQtPnBvczsKKworLSAgICAgICAgYm9vbCBGcmFtZUZpbmlzaGVkID0gRGVj b2RlUGFja2V0KCZQYWNrZXQpOworLSAgICAgICAgYXZfcGFja2V0X3VucmVmKCZQYWNrZXQpOwor LSAgICAgICAgaWYgKEZyYW1lRmluaXNoZWQpCisrICAgICAgICBib29sIEZyYW1lRmluaXNoZWQg PSBEZWNvZGVQYWNrZXQoUGFja2V0KTsKKysgICAgICAgIGF2X3BhY2tldF91bnJlZihQYWNrZXQp OworKyAgICAgICAgaWYgKEZyYW1lRmluaXNoZWQpIHsKKysgICAgICAgICAgICBhdl9wYWNrZXRf ZnJlZSgmUGFja2V0KTsKKyAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisgICAgIH0K KworICAgICAvLyBGbHVzaCBmaW5hbCBmcmFtZXMKKy0gICAgSW5pdE51bGxQYWNrZXQoUGFja2V0 KTsKKy0gICAgRGVjb2RlUGFja2V0KCZQYWNrZXQpOworKyAgICBEZWNvZGVQYWNrZXQoUGFja2V0 KTsKKysgICAgYXZfcGFja2V0X2ZyZWUoJlBhY2tldCk7CisgfQorCisgYm9vbCBGRk1TX1ZpZGVv U291cmNlOjpTZWVrVG8oaW50IG4sIGludCBTZWVrT2Zmc2V0KSB7CisKK0Zyb20gYmY5ZTAzZTll MDg1MzRjMDI0ZTVhNzQ0YTY0MzdjNGFhYzE2MDIwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IERlcmVrIEJ1aXRlbmh1aXMgPGRlcmVrLmJ1aXRlbmh1aXNAZ21haWwuY29tPgorRGF0 ZTogVHVlLCA0IE1heSAyMDIxIDE0OjIwOjQ3ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMi8zXSBj b25maWd1cmU6IFJlbW92ZSBkZXByZWNhdGVkIEFQSSB1c2UKKworU2lnbmVkLW9mZi1ieTogRGVy ZWsgQnVpdGVuaHVpcyA8ZGVyZWsuYnVpdGVuaHVpc0BnbWFpbC5jb20+CistLS0KKyBjb25maWd1 cmUuYWMgfCA0ICsrLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRl eCBiMzVlZjgwYmMuLmQxOTcxNGQwZiAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIv Y29uZmlndXJlLmFjCitAQCAtMTAyLDEwICsxMDIsMTAgQEAgQ0ZMQUdTPSIkX0NGTEFHUyAkRkZN UEVHX0NGTEFHUyIKKworIEFDX0RFRlVOKFtURVNUX0ZGTVBFR10sCisgICAgICAgICAgW0FDX0xJ TktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKy0gICAgICAgICAgICAjaW5jbHVkZSA8bGli YXZjb2RlYy9hdmNvZGVjLmg+CisrICAgICAgICAgICAgI2luY2x1ZGUgPGxpYmF2Zm9ybWF0L2F2 Zm9ybWF0Lmg+CisgICAgICAgICAgICAgI2luY2x1ZGUgPGxpYnN3c2NhbGUvc3dzY2FsZS5oPgor ICAgICAgICAgICAgIF1dLFtbCistICAgICAgICAgICAgICAgIGF2Y29kZWNfcmVnaXN0ZXJfYWxs KCk7CisrICAgICAgICAgICAgICAgIGF2Zm9ybWF0X25ldHdvcmtfaW5pdCgpOworICAgICAgICAg ICAgICAgICBzd3NjYWxlX3ZlcnNpb24oKTsKKyAgICAgICAgICAgICBdXSldLCBbZXZhbCAkMT15 ZXNdLCBbZXZhbCAkMT1ub10pCisgICAgICAgICBdKQorCitGcm9tIGExOGM4Mjk2Njg3ZTI2N2Iy MGVjOTBlZjgxNjcxYjc3ZDM5M2EzNmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBE ZXJlayBCdWl0ZW5odWlzIDxkZXJlay5idWl0ZW5odWlzQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwg NCBNYXkgMjAyMSAxNDo0MToyMSArMDEwMAorU3ViamVjdDogW1BBVENIIDMvM10gVXNlIGF1dG8g Zm9yIEFWQ29kZWMKKworVGhlIGdlbml1c2VzIG92ZXIgYXQgRkZtcGVnIGRlY2lkZWQgdG8gY29u c3RpZnkgdGhpcyBBUEksIHNvIG9sZAordmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkgd2lsbCByZXR1 cm4gQVZDb2RlYyAqLCB3aGlsZSBuZXcgdmVyc2lvbnMKK29mIHRoZSBsaWJhcnkgd2lsbCByZXR1 cm4gY29uc3QgQVZDb2RlYyAqLCB3aGljaCwgaW4gQysrLCBhcmUgbm90CitPSyB0byBjb252ZXJ0 IGJldHdlZW4uCisKK1JhdGhlciB0aGFuIHVzZSBzb21lIG1hY3JvIGhlbGwgaW4gZmZtc2NvbXBh dC5oLCB3ZSBjYW4gd29yayBhcm91bmQKK3RoaXMgYnkgdXNpbmcgYXV0by4KKworR3Jvc3MuCisK K1NpZ25lZC1vZmYtYnk6IERlcmVrIEJ1aXRlbmh1aXMgPGRlcmVrLmJ1aXRlbmh1aXNAZ21haWwu Y29tPgorLS0tCisgc3JjL2NvcmUvYXVkaW9zb3VyY2UuY3BwIHwgMiArLQorIHNyYy9jb3JlL2lu ZGV4aW5nLmNwcCAgICB8IDYgKysrLS0tCisgc3JjL2NvcmUvdmlkZW9zb3VyY2UuY3BwIHwgMiAr LQorIDMgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvc3JjL2NvcmUvYXVkaW9zb3VyY2UuY3BwIGIvc3JjL2NvcmUvYXVkaW9zb3Vy Y2UuY3BwCitpbmRleCBlNGNlOTdjZGIuLmFjMDk2NjYzNiAxMDA2NDQKKy0tLSBhL3NyYy9jb3Jl L2F1ZGlvc291cmNlLmNwcAorKysrIGIvc3JjL2NvcmUvYXVkaW9zb3VyY2UuY3BwCitAQCAtNDY5 LDcgKzQ2OSw3IEBAIHZvaWQgRkZNU19BdWRpb1NvdXJjZTo6T3BlbkZpbGUoKSB7CisKKyAgICAg TEFWRk9wZW5GaWxlKFNvdXJjZUZpbGUuY19zdHIoKSwgRm9ybWF0Q29udGV4dCwgVHJhY2tOdW1i ZXIpOworCistICAgIEFWQ29kZWMgKkNvZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIoRm9ybWF0 Q29udGV4dC0+c3RyZWFtc1tUcmFja051bWJlcl0tPmNvZGVjcGFyLT5jb2RlY19pZCk7CisrICAg IGF1dG8gKkNvZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIoRm9ybWF0Q29udGV4dC0+c3RyZWFt c1tUcmFja051bWJlcl0tPmNvZGVjcGFyLT5jb2RlY19pZCk7CisgICAgIGlmIChDb2RlYyA9PSBu dWxscHRyKQorICAgICAgICAgdGhyb3cgRkZNU19FeGNlcHRpb24oRkZNU19FUlJPUl9ERUNPRElO RywgRkZNU19FUlJPUl9DT0RFQywKKyAgICAgICAgICAgICAiQXVkaW8gY29kZWMgbm90IGZvdW5k Iik7CitkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvaW5kZXhpbmcuY3BwIGIvc3JjL2NvcmUvaW5kZXhp bmcuY3BwCitpbmRleCBlNTQ3YzVhYmYuLjU5ZmI0ZThlYSAxMDA2NDQKKy0tLSBhL3NyYy9jb3Jl L2luZGV4aW5nLmNwcAorKysrIGIvc3JjL2NvcmUvaW5kZXhpbmcuY3BwCitAQCAtMzg0LDcgKzM4 NCw3IEBAIEZGTVNfVHJhY2tUeXBlIEZGTVNfSW5kZXhlcjo6R2V0VHJhY2tUeXBlKGludCBUcmFj aykgeworIH0KKworIGNvbnN0IGNoYXIgKkZGTVNfSW5kZXhlcjo6R2V0VHJhY2tDb2RlYyhpbnQg VHJhY2spIHsKKy0gICAgQVZDb2RlYyAqY29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVjb2RlcihGb3Jt YXRDb250ZXh0LT5zdHJlYW1zW1RyYWNrXS0+Y29kZWNwYXItPmNvZGVjX2lkKTsKKysgICAgYXV0 byAqY29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVjb2RlcihGb3JtYXRDb250ZXh0LT5zdHJlYW1zW1Ry YWNrXS0+Y29kZWNwYXItPmNvZGVjX2lkKTsKKyAgICAgcmV0dXJuIGNvZGVjID8gY29kZWMtPm5h bWUgOiBudWxscHRyOworIH0KKworQEAgLTQwMiw3ICs0MDIsNyBAQCBGRk1TX0luZGV4ICpGRk1T X0luZGV4ZXI6OkRvSW5kZXhpbmcoKSB7CisgICAgICAgICAgICAgVXNlRFRTKTsKKworICAgICAg ICAgaWYgKEluZGV4TWFzay5jb3VudChpKSAmJiBGb3JtYXRDb250ZXh0LT5zdHJlYW1zW2ldLT5j b2RlY3Bhci0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfVklERU8pIHsKKy0gICAgICAgICAg ICBBVkNvZGVjICpWaWRlb0NvZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIoRm9ybWF0Q29udGV4 dC0+c3RyZWFtc1tpXS0+Y29kZWNwYXItPmNvZGVjX2lkKTsKKysgICAgICAgICAgICBhdXRvICpW aWRlb0NvZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIoRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tp XS0+Y29kZWNwYXItPmNvZGVjX2lkKTsKKyAgICAgICAgICAgICBpZiAoIVZpZGVvQ29kZWMpIHsK KyAgICAgICAgICAgICAgICAgRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tpXS0+ZGlzY2FyZCA9IEFW RElTQ0FSRF9BTEw7CisgICAgICAgICAgICAgICAgIEluZGV4TWFzay5lcmFzZShpKTsKK0BAIC00 MzMsNyArNDMzLDcgQEAgRkZNU19JbmRleCAqRkZNU19JbmRleGVyOjpEb0luZGV4aW5nKCkgewor ICAgICAgICAgICAgICAgICBJbmRleE1hc2suaW5zZXJ0KGkpOworICAgICAgICAgICAgIH0KKyAg ICAgICAgIH0gZWxzZSBpZiAoSW5kZXhNYXNrLmNvdW50KGkpICYmIEZvcm1hdENvbnRleHQtPnN0 cmVhbXNbaV0tPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9BVURJTykgewor LSAgICAgICAgICAgIEFWQ29kZWMgKkF1ZGlvQ29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVjb2RlcihG b3JtYXRDb250ZXh0LT5zdHJlYW1zW2ldLT5jb2RlY3Bhci0+Y29kZWNfaWQpOworKyAgICAgICAg ICAgIGF1dG8gKkF1ZGlvQ29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVjb2RlcihGb3JtYXRDb250ZXh0 LT5zdHJlYW1zW2ldLT5jb2RlY3Bhci0+Y29kZWNfaWQpOworICAgICAgICAgICAgIGlmIChBdWRp b0NvZGVjID09IG51bGxwdHIpCisgICAgICAgICAgICAgICAgIHRocm93IEZGTVNfRXhjZXB0aW9u KEZGTVNfRVJST1JfQ09ERUMsIEZGTVNfRVJST1JfVU5TVVBQT1JURUQsCisgICAgICAgICAgICAg ICAgICAgICAiQXVkaW8gY29kZWMgbm90IGZvdW5kIik7CitkaWZmIC0tZ2l0IGEvc3JjL2NvcmUv dmlkZW9zb3VyY2UuY3BwIGIvc3JjL2NvcmUvdmlkZW9zb3VyY2UuY3BwCitpbmRleCBiODg5OTcw ZTIuLjg5NTZjMjI1NiAxMDA2NDQKKy0tLSBhL3NyYy9jb3JlL3ZpZGVvc291cmNlLmNwcAorKysr IGIvc3JjL2NvcmUvdmlkZW9zb3VyY2UuY3BwCitAQCAtMTcxLDcgKzE3MSw3IEBAIEZGTVNfVmlk ZW9Tb3VyY2U6OkZGTVNfVmlkZW9Tb3VyY2UoY29uc3QgY2hhciAqU291cmNlRmlsZSwgRkZNU19J bmRleCAmSW5kZXgsIGluCisKKyAgICAgICAgIExBVkZPcGVuRmlsZShTb3VyY2VGaWxlLCBGb3Jt YXRDb250ZXh0LCBWaWRlb1RyYWNrKTsKKworLSAgICAgICAgQVZDb2RlYyAqQ29kZWMgPSBhdmNv ZGVjX2ZpbmRfZGVjb2RlcihGb3JtYXRDb250ZXh0LT5zdHJlYW1zW1ZpZGVvVHJhY2tdLT5jb2Rl Y3Bhci0+Y29kZWNfaWQpOworKyAgICAgICAgYXV0byAqQ29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVj b2RlcihGb3JtYXRDb250ZXh0LT5zdHJlYW1zW1ZpZGVvVHJhY2tdLT5jb2RlY3Bhci0+Y29kZWNf aWQpOworICAgICAgICAgaWYgKENvZGVjID09IG51bGxwdHIpCisgICAgICAgICAgICAgdGhyb3cg RkZNU19FeGNlcHRpb24oRkZNU19FUlJPUl9ERUNPRElORywgRkZNU19FUlJPUl9DT0RFQywKKyAg ICAgICAgICAgICAgICAgIlZpZGVvIGNvZGVjIG5vdCBmb3VuZCIpOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9mZm1zMi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmZtczIvdGVtcGxhdGUKaW5kZXggNjhlOGEw YzE0YmNlLi4yYWNmYWRhYzQ0YjMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmZtczIvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9mZm1zMi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2ZmbXMyJwogcGtnbmFtZT1mZm1zMgogdmVyc2lvbj0yLjQwCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0i LS1lbmFibGUtc2hhcmVkIC0tZGlzYWJsZS1zdGF0aWMiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgYXV0b2NvbmYgYXV0b21ha2UgbGlidG9vbCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1 eGJveC9wYXRjaGVzLzAwMDEtRml4LWluZmluaXRlLWxvb3AtaW4tTWVudS1jeWNsZWl0ZW1zLnBh dGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMDAwMS1GaXgtaW5maW5pdGUtbG9vcC1pbi1N ZW51LWN5Y2xlaXRlbXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjNDUw ZmQ0NWJmYi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzAwMDEt Rml4LWluZmluaXRlLWxvb3AtaW4tTWVudS1jeWNsZWl0ZW1zLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNjAgKzAsMCBAQAotRnJvbSA5ZDgyMDJmMzIzMzhhM2YwOGQzZmEzOTA1N2RjNWVlYzVk OTdiZTRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0aGlhcyBHdW16IDxha2ly YUBmbHV4Ym94Lm9yZz4KLURhdGU6IFNhdCwgMjggTWF5IDIwMjIgMTE6MTM6NDMgKzAyMDAKLVN1 YmplY3Q6IFtQQVRDSF0gRml4IGluZmluaXRlIGxvb3AgaW4gTWVudTo6Y3ljbGVpdGVtcygpCi1N SU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVdoZW4gYSBtZW51IGNvbnRhaW5z IG5vIHNlbGVjdGFibGUgaXRlbSAoZXhhbXBsZSBnaXZlbjogYSAibGlzdCIgb2YgdXNlcgotc3R5 bGVzIGFuZCB0aGUgb25seSBhdmFpbGFibGUgb25lIGlzIGFscmVhZHkgc2VsZWN0ZWQpLCBjeWNs aW5nIHRocm91Z2gKLXRoZSBtZW51IHdpbGwgbGVhZCB0byBhbiBpbmZpbml0ZSBsb29wIGFuZCB0 aHVzIGEgZGlzZnVuY3Rpb25hbCBmbHV4Ym94LgotCi1UaGlzIGNvbW1pdCBhZGRyZXNzZXMgdGhl IGlzc3VlIGJ5IGNoZWNraW5nIGlmIHRoZXJlIGlzIGFueSBzZWxlY3RhYmxlCi1pdGVtIGJlZm9y ZSBlbnRlcmluZyB0aGUgY3ljbGluZyBzdGFnZS4KLQotRGlzY292ZXJlZCBieSBTw6liYXN0aWVu IEJhbGxldFsxXS4KLQotWzFdOiBodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL2ZsdXhib3gvYnVn cy8xMTg1LwotLS0tCi0gc3JjL0ZiVGsvTWVudS5jYyB8IDIxICsrKysrKysrKysrKysrKy0tLS0t LQotIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvc3JjL0ZiVGsvTWVudS5jYyBiL3NyYy9GYlRrL01lbnUuY2MKLWluZGV4IDZi MmRiM2E0Li5mZjA0MGJhZSAxMDA2NDQKLS0tLSBhL3NyYy9GYlRrL01lbnUuY2MKLSsrKyBiL3Ny Yy9GYlRrL01lbnUuY2MKLUBAIC0zMjAsMTUgKzMyMCwyNCBAQCB2b2lkIE1lbnU6Omxvd2VyKCkg ewotIAotIHZvaWQgTWVudTo6Y3ljbGVJdGVtcyhib29sIHJldmVyc2UpIHsKLSAKLS0gICAgaWYg KG1faXRlbXMuZW1wdHkoKSkKLS0gICAgICAgIHJldHVybjsKLS0KLS0gICAgaW50IG9mZnNldCA9 IHJldmVyc2UgPyAtMSA6IDE7Ci0gICAgIGludCBsID0gbV9pdGVtcy5zaXplKCk7Ci0tICAgIGlu dCBpID0gbV9hY3RpdmVfaW5kZXg7Ci0rICAgIGludCBpOwotKyAgICBpbnQgb2Zmc2V0ID0gcmV2 ZXJzZSA/IC0xIDogMTsKLSAgICAgc2l6ZV90IGlnbm9yZTsKLSAKLS0gICAgZm9yIChpICs9IG9m ZnNldDsgaSAhPSBtX2FjdGl2ZV9pbmRleDsgaSArPSBvZmZzZXQgKSB7Ci0rICAgIC8vIGNoZWNr IGlmIHRoZXJlIGlzIF9hbnlfIHNlbGVjdGFibGUgaXRlbQotKyAgICBmb3IgKGkgPSAwOyBpIDwg bDsgaSsrKSB7Ci0rICAgICAgICBpZiAoaXNJdGVtU2VsZWN0YWJsZShpKSkgewotKyAgICAgICAg ICAgIGJyZWFrOwotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIC8vIG5vIHNlbGVjdGFibGUg aXRlbQotKyAgICBpZiAoaSA+PSBsKSB7Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsg ICAgZm9yIChpID0gbV9hY3RpdmVfaW5kZXggKyBvZmZzZXQ7IGkgIT0gbV9hY3RpdmVfaW5kZXg7 IGkgKz0gb2Zmc2V0ICkgewotICAgICAgICAgaWYgKGkgPCAwKSB7Ci0gICAgICAgICAgICAgaSA9 IGwgLSAxOwotICAgICAgICAgfSBlbHNlIGlmIChpID49IGwpIHsKLS0tIAotMi4zOS4wCi0KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzIyODY2YzRkMzBmNWIyODljNDI5YzVj YTg4ZDgwMDIwMGRiNGZjNGYucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8yMjg2NmM0 ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4MDAyMDBkYjRmYzRmLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGRkNDRlNTM4Y2U4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMjI4NjZjNGQzMGY1YjI4OWM0MjljNWNhODhkODAwMjAw ZGI0ZmM0Zi5wYXRjaApAQCAtMCwwICsxLDIzIEBACisKK0Zyb20gMjI4NjZjNGQzMGY1YjI4OWM0 MjljNWNhODhkODAwMjAwZGI0ZmM0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEpv aG4gU2VubmVzYWVsIDxqb2huQGFtaW5raW5nLmNvbT4KK0RhdGU6IE1vbiwgMiBOb3YgMjAxNSAx NToxNDozMiAtMDYwMAorU3ViamVjdDogW1BBVENIXSBmaXhlcyBidWcgIzExMzgKKworLS0tCisg dXRpbC9mbHV4Ym94LXJlbW90ZS5jYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3V0aWwvZmx1eGJveC1yZW1vdGUu Y2MgYi91dGlsL2ZsdXhib3gtcmVtb3RlLmNjCitpbmRleCA1OTg1MmU2YTcuLjUwNDAxNWI1MCAx MDA2NDQKKy0tLSBhL3V0aWwvZmx1eGJveC1yZW1vdGUuY2MKKysrKyBiL3V0aWwvZmx1eGJveC1y ZW1vdGUuY2MKK0BAIC03Myw3ICs3Myw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikgeworICAgICBpZiAoc3RyY21wKGNtZCwgInJlc3VsdCIpID09IDApIHsKKyAgICAgICAgIFhU ZXh0UHJvcGVydHkgdGV4dF9wcm9wOworICAgICAgICAgaWYgKFhHZXRUZXh0UHJvcGVydHkoZGlz cCwgcm9vdCwgJnRleHRfcHJvcCwgYXRvbV9yZXN1bHQpICE9IDAKKy0gICAgICAgICAgICAmJiB0 ZXh0X3Byb3AudmFsdWUgPiAwCisrICAgICAgICAgICAgJiYgdGV4dF9wcm9wLnZhbHVlICE9IDAK KyAgICAgICAgICAgICAmJiB0ZXh0X3Byb3Aubml0ZW1zID4gMCkgeworIAorICAgICAgICAgICAg IHByaW50ZigiJXMiLCB0ZXh0X3Byb3AudmFsdWUpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvTWluT3ZlcmxhcFBsYWNlbWVudC5jY19pbXByb3ZlLnBhdGNoIGIvc3JjcGtn cy9mbHV4Ym94L3BhdGNoZXMvTWluT3ZlcmxhcFBsYWNlbWVudC5jY19pbXByb3ZlLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjY0YjExYWIyYTguLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9NaW5PdmVybGFwUGxhY2VtZW50LmNjX2ltcHJv dmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0tLS0gYS9zcmMvTWluT3Zl cmxhcFBsYWNlbWVudC5jYyAgMjAxNS0wMi0wOCAwNTo0NDozNC4wMDAwMDAwMDAgLTA1MDAKLSsr KyBiL3NyYy9NaW5PdmVybGFwUGxhY2VtZW50LmNjICAyMDIyLTA3LTE4IDE1OjE0OjQxLjAxMjI3 NTIwMCAtMDQwMAotQEAgLTE5NiwxOSArMTk2LDIxIEBACi0gICAgIHN0ZDo6c2V0PEFyZWE+Ojpp dGVyYXRvciBtaW5fcmVnID0gYXJlYXMuZW5kKCk7Ci0KLSAgICAgc3RkOjpzZXQ8QXJlYT46Oml0 ZXJhdG9yIGFyX2l0ID0gYXJlYXMuYmVnaW4oKTsKLSsgICAgaW50IG92ZXJsYXAgPSAwLCBtaW5f cmlnaHQgPSAwLCBtaW5fYm90dG9tID0gMCwgbWF4X2xlZnQgPSAwLCBtYXhfdG9wID0gMDsKLSsK LSAgICAgZm9yICg7IGFyX2l0ICE9IGFyZWFzLmVuZCgpOyArK2FyX2l0KSB7Ci0KLS0gICAgICAg IGludCBvdmVybGFwID0gMDsKLSsgICAgICAgIG92ZXJsYXAgPSAwOwotICAgICAgICAgaXQgPSBj b25zdF93aW5kb3dsaXN0LnJiZWdpbigpOwotICAgICAgICAgZm9yICg7IGl0ICE9IGl0X2VuZDsg KytpdCkgewotCi0gICAgICAgICAgICAgZ2V0V2luZG93RGltZW5zaW9ucygqKCppdCksIGxlZnQs IHRvcCwgcmlnaHQsIGJvdHRvbSk7Ci0KLSAgICAgICAgICAgICAvLyBnZXQgdGhlIGNvb3JkaW5h dGVzIG9mIHRoZSBvdmVybGFwIHJlZ2lvbgotLSAgICAgICAgICAgIGludCBtaW5fcmlnaHQgPSBz dGQ6Om1pbihyaWdodCwgYXJfaXQtPnggKyB3aW5fdyk7Ci0tICAgICAgICAgICAgaW50IG1pbl9i b3R0b20gPSBzdGQ6Om1pbihib3R0b20sIGFyX2l0LT55ICsgd2luX2gpOwotLSAgICAgICAgICAg IGludCBtYXhfbGVmdCA9IHN0ZDo6bWF4KGxlZnQsIGFyX2l0LT54KTsKLS0gICAgICAgICAgICBp bnQgbWF4X3RvcCA9IHN0ZDo6bWF4KHRvcCwgYXJfaXQtPnkpOwotKyAgICAgICAgICAgIG1pbl9y aWdodCA9IHN0ZDo6bWluKHJpZ2h0LCBhcl9pdC0+eCArIHdpbl93KTsKLSsgICAgICAgICAgICBt aW5fYm90dG9tID0gc3RkOjptaW4oYm90dG9tLCBhcl9pdC0+eSArIHdpbl9oKTsKLSsgICAgICAg ICAgICBtYXhfbGVmdCA9IHN0ZDo6bWF4KGxlZnQsIGFyX2l0LT54KTsKLSsgICAgICAgICAgICBt YXhfdG9wID0gc3RkOjptYXgodG9wLCBhcl9pdC0+eSk7Ci0KLSAgICAgICAgICAgICAvLyBub3cg Y29tcHV0ZSB0aGUgb3ZlcmxhcCBhbmQgYWRkIHRvIHJ1bm5pbmcgdG90YWwKLSAgICAgICAgICAg ICBpZiAobWluX3JpZ2h0ID4gbWF4X2xlZnQgJiYgbWluX2JvdHRvbSA+IG1heF90b3ApCmRpZmYg LS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jZW50ZXIucGF0Y2ggYi9zcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy9jZW50ZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDM5ZTNlNGM3ZjM3ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVz L2NlbnRlci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwNyArMCwwIEBACi1Gcm9tIGVjODM5 OTNjMjM2ZGU5Yzk0NDJlMmZjZDMxYzA4YWFlODUyYTVhMTYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiB6bGljZSA8emxpY2U1NTVAZ21haWwuY29tPgotRGF0ZTogRnJpLCAyMiBKdWwg MjAyMiAyMToyMTozMyAtMDQwMAotU3ViamVjdDogW1BBVENIIDEvMl0gd2hpdGVzcGFjZSBjbGVh bnVwCi0KLS0tLQotIGRvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dCB8ICA4ICsrKystLS0tCi0gc3Jj L1NjcmVlblBsYWNlbWVudC5jYyAgIHwgMTIgKysrKysrLS0tLS0tCi0gc3JjL1NjcmVlblBsYWNl bWVudC5oaCAgIHwgMTAgKysrKystLS0tLQotIDMgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9u cygrKSwgMTUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kb2MvYXNjaWlkb2MvZmx1eGJv eC50eHQgYi9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQKLWluZGV4IDk1NjI0ODQyLi4wZTNmMjdi OSAxMDA2NDQKLS0tLSBhL2RvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dAotKysrIGIvZG9jL2FzY2lp ZG9jL2ZsdXhib3gudHh0Ci1AQCAtNCw3ICs0LDcgQEAgSGVucmlrIEtpbm51bmVuIDxmbHV4Z2Vu QGZsdXhib3gub3JnPgotIHYxLjMuNywgMDggRmVicnVhcnkgMjAxNQotIDptYW4gc291cmNlOiAg IGZsdXhib3gudHh0Ci0gOm1hbiB2ZXJzaW9uOiAge3JldmlzaW9ufQotLTptYW4gbWFudWFsOiAg IEZsdXhib3ggTWFudWFsICAKLSs6bWFuIG1hbnVhbDogICBGbHV4Ym94IE1hbnVhbAotIAotIE5B TUUKLSAtLS0tCi1AQCAtNDc1LDcgKzQ3NSw3IEBAIEJ5IGRlZmF1bHQsIHRoaXMgbWVudSBjb250 YWluczoKLSAKLSAqUmVtZW1iZXIuLi4qOjo6Ci0gU3BlY2lmeSB3aGljaCB3aW5kb3cgc2V0dGlu Z3Mgc2hvdWxkIGJlIHN0b3JlZCBpbiB0aGUgYGFwcHMnIGZpbGUgYW5kCi0tcmVzdW1lZCB0aGUg bmV4dCB0aW1lIHRoaXMgd2luZG93IGlzIG9wZW5lZC4gCi0rcmVzdW1lZCB0aGUgbmV4dCB0aW1l IHRoaXMgd2luZG93IGlzIG9wZW5lZC4KLSArCi0gU3BlY2lmaWNhbGx5IHRoZSBzZXR0aW5nIHlv dSBtYXkgc3RvcmUgYXJlOgotICsKLUBAIC03NDAsNyArNzQwLDcgQEAgVGhlcmUgYXJlIHRocmVl IG1vcmUgc2V0dGluZ3MgaW4gdGhlIGBgRm9jdXMgTW9kZWwnJyBtZW51OgotIAotIFRBQiBPUFRJ T05TCi0gLS0tLS0tLS0tLS0KLS1UaGlzIHNlY3Rpb24gb2YgZmx1eGJveCBjb25maWd1cmF0aW9u IG1lbnUgbGV0cyB5b3UgY29uZmlndXJlIG1hbnkgZmVhdHVyZXMgb2YgCi0rVGhpcyBzZWN0aW9u IG9mIGZsdXhib3ggY29uZmlndXJhdGlvbiBtZW51IGxldHMgeW91IGNvbmZpZ3VyZSBtYW55IGZl YXR1cmVzIG9mCi0gdGFicy4gSW5zaWRlIG9mIGl0IHRoZXJlIGFyZSB0aHJlZSBtYWluIG9wdGlv bnM6Ci0gCi0gKlBsYWNlbWVudCo6OjoKLUBAIC0xMDYwLDcgKzEwNjAsNyBAQCB3aGVuZXZlciB0 aGUgbW91c2UgbW92ZXMgb3ZlciB0aGVtLCBidXQgb25seSB3aGVuIHRoZSBtb3VzZSBpcyBtb3Zp bmcuIFdpdGgKLSBhcmVhLCBldmVuIGlmIHRoaXMgaXMgZHVlIHRvIGxheWVyIGNoYW5nZXMsIHdp bmRvdyBtb3ZlbWVudCwgY2hhbmdpbmcgZGVza3RvcHMsIGNsb3Npbmcgd2luZG93cywgZXRjLgot ICsKLSBEZWZhdWx0OiAqQ2xpY2tUb0ZvY3VzKgotLSAgICAgIAotKwotICpzZXNzaW9uLnNjcmVl bjAuYXV0b1JhaXNlKjogJ2Jvb2xlYW4nOjoKLSBXaGVuIFRydWUsIHRoaXMgc2V0dGluZyBhdXRv bWF0aWNhbGx5IHJhaXNlcyBhbnkgd2luZG93IHRoYXQgZ2FpbnMgZm9jdXMuCi0gKwotZGlmZiAt LWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuY2MgYi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCi1p bmRleCAxOWRkZjc4YS4uY2E1OGQ4M2YgMTAwNjQ0Ci0tLS0gYS9zcmMvU2NyZWVuUGxhY2VtZW50 LmNjCi0rKysgYi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCi1AQCAtNDMsMTQgKzQzLDE0IEBAIHVz aW5nIHN0ZDo6Y2VycjsKLSB1c2luZyBzdGQ6OmVuZGw7Ci0gCi0gU2NyZWVuUGxhY2VtZW50OjpT Y3JlZW5QbGFjZW1lbnQoQlNjcmVlbiAmc2NyZWVuKToKLS0gICAgbV9yb3dfZGlyZWN0aW9uKHNj cmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgTEVGVFJJR0hULCAKLS0gICAgICAgICAgICAgICAgICAg IHNjcmVlbi5uYW1lKCkrIi5yb3dQbGFjZW1lbnREaXJlY3Rpb24iLCAKLSsgICAgbV9yb3dfZGly ZWN0aW9uKHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgTEVGVFJJR0hULAotKyAgICAgICAgICAg ICAgICAgICAgc2NyZWVuLm5hbWUoKSsiLnJvd1BsYWNlbWVudERpcmVjdGlvbiIsCi0gICAgICAg ICAgICAgICAgICAgICBzY3JlZW4uYWx0TmFtZSgpKyIuUm93UGxhY2VtZW50RGlyZWN0aW9uIiks Ci0tICAgIG1fY29sX2RpcmVjdGlvbihzY3JlZW4ucmVzb3VyY2VNYW5hZ2VyKCksIFRPUEJPVFRP TSwgCi0tICAgICAgICAgICAgICAgICAgICBzY3JlZW4ubmFtZSgpKyIuY29sUGxhY2VtZW50RGly ZWN0aW9uIiwgCi0rICAgIG1fY29sX2RpcmVjdGlvbihzY3JlZW4ucmVzb3VyY2VNYW5hZ2VyKCks IFRPUEJPVFRPTSwKLSsgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi5jb2xQbGFj ZW1lbnREaXJlY3Rpb24iLAotICAgICAgICAgICAgICAgICAgICAgc2NyZWVuLmFsdE5hbWUoKSsi LkNvbFBsYWNlbWVudERpcmVjdGlvbiIpLAotLSAgICBtX3BsYWNlbWVudF9wb2xpY3koc2NyZWVu LnJlc291cmNlTWFuYWdlcigpLCBST1dNSU5PVkVSTEFQUExBQ0VNRU5ULCAKLS0gICAgICAgICAg ICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi53aW5kb3dQbGFjZW1lbnQiLCAKLSsgICAgbV9w bGFjZW1lbnRfcG9saWN5KHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgUk9XTUlOT1ZFUkxBUFBM QUNFTUVOVCwKLSsgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi53aW5kb3dQ bGFjZW1lbnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuLmFsdE5hbWUoKSsiLldp bmRvd1BsYWNlbWVudCIpLAotICAgICBtX29sZF9wb2xpY3koUk9XU01BUlRQTEFDRU1FTlQpLAot ICAgICBtX3NjcmVlbihzY3JlZW4pCi1kaWZmIC0tZ2l0IGEvc3JjL1NjcmVlblBsYWNlbWVudC5o aCBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKLWluZGV4IDBmMjEwZDk0Li5mMTIzNDk4MyAxMDA2 NDQKLS0tLSBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKLSsrKyBiL3NyYy9TY3JlZW5QbGFjZW1l bnQuaGgKLUBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEJTY3JlZW47Ci0gCi0gLyoqCi0gICogTWFp biBjbGFzcyBmb3Igc3RyYXRlZ3kgaGFuZGxpbmcKLS0gKiBUaGlzIGlzIGEgYnJpZGdlIGJldHdl ZW4gc2NyZWVuIGFuZCAKLSsgKiBUaGlzIGlzIGEgYnJpZGdlIGJldHdlZW4gc2NyZWVuIGFuZAot ICAqIHRoZSByZWFsIHBsYWNlbWVudCBzdHJhdGVneSAocm93Y29sLCB1bmRlcm1vdXNlIGV0YykK LSAgKiBUaGUgcGxhY2VXaW5kb3cgZnVuY3Rpb24gaW4gdGhpcyBjbGFzcyBpcyBndWFyYW50ZWVk IHRvIHN1Y2NlZWQuCi0gICogSXQgaG9sZHMgYSBwb2ludGVyIHRvIHRoZSByZWFsIHBsYWNlbWVu dCBzdHJhdGVneSB3aGljaCBpcwotQEAgLTQyLDggKzQyLDggQEAgY2xhc3MgQlNjcmVlbjsKLSAg Ki8KLSBjbGFzcyBTY3JlZW5QbGFjZW1lbnQ6IHB1YmxpYyBQbGFjZW1lbnRTdHJhdGVneSB7Ci0g cHVibGljOgotLSAgICBlbnVtIFBsYWNlbWVudFBvbGljeSB7IAotLSAgICAgICAgUk9XU01BUlRQ TEFDRU1FTlQsIAotKyAgICBlbnVtIFBsYWNlbWVudFBvbGljeSB7Ci0rICAgICAgICBST1dTTUFS VFBMQUNFTUVOVCwKLSAgICAgICAgIENPTFNNQVJUUExBQ0VNRU5ULAotICAgICAgICAgQ09MTUlO T1ZFUkxBUFBMQUNFTUVOVCwKLSAgICAgICAgIFJPV01JTk9WRVJMQVBQTEFDRU1FTlQsCi1AQCAt NTIsMTEgKzUyLDExIEBAIHB1YmxpYzoKLSAgICAgICAgIEFVVE9UQUJQTEFDRU1FTlQKLSAgICAg fTsKLSAKLS0gICAgZW51bSBSb3dEaXJlY3Rpb24geyAKLSsgICAgZW51bSBSb3dEaXJlY3Rpb24g ewotICAgICAgICAgTEVGVFJJR0hULCAvLy88IGZyb20gbGVmdCB0byByaWdodAotICAgICAgICAg UklHSFRMRUZUICAvLy88IGZyb20gcmlnaHQgdG8gbGVmdAotICAgICB9OwotLSAgICBlbnVtIENv bHVtbkRpcmVjdGlvbiB7IAotKyAgICBlbnVtIENvbHVtbkRpcmVjdGlvbiB7Ci0gICAgICAgICBU T1BCT1RUT00sICAvLy88IGZyb20gdG9wIHRvIGJvdHRvbQotICAgICAgICAgQk9UVE9NVE9QICAg Ly8vPCBmcm9tIGJvdHRvbSB0byB0b3AKLSAgICAgfTsKLS0tIAotMi4zNy4xCi0KLQotRnJvbSA2 ZTA1ZjQ0Yzk0ZmE0YmZjMGU0NGU4ZjQyYTlkMjQ2NjVhOTU4NDBmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogemxpY2UgPHpsaWNlNTU1QGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjIg SnVsIDIwMjIgMjE6Mjc6MjUgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIG5ldyBmZWF0dXJl OiBDZW50ZXJQbGFjZW1lbnQuIFBsYWNlcyBuZXcgd2luZG93cyBpbgotIGNlbnRlciBvZiB0aGUg Y3VycmVudCB3b3Jrc3BhY2UKLQotLS0tCi0gZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0IHwgIDEg KwotIHNyYy9DZW50ZXJQbGFjZW1lbnQuY2MgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKLSBzcmMvQ2VudGVyUGxhY2VtZW50LmhoICAgfCAzNyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gc3JjL01ha2Vtb2R1bGUuYW0gICAgICAgIHwg IDIgKysKLSBzcmMvU2NyZWVuUGxhY2VtZW50LmNjICAgfCAgOCArKysrKysrKwotIHNyYy9TY3Jl ZW5QbGFjZW1lbnQuaGggICB8ICAxICsKLSA2IGZpbGVzIGNoYW5nZWQsIDkyIGluc2VydGlvbnMo KykKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL0NlbnRlclBsYWNlbWVudC5jYwotIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvQ2VudGVyUGxhY2VtZW50LmhoCi0KLWRpZmYgLS1naXQgYS9kb2MvYXNj aWlkb2MvZmx1eGJveC50eHQgYi9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQKLWluZGV4IDBlM2Yy N2I5Li40NmNhMjg2MSAxMDA2NDQKLS0tLSBhL2RvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dAotKysr IGIvZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0Ci1AQCAtMTE0MSw2ICsxMTQxLDcgQEAgQXZhaWxh YmxlIHN0cmF0ZWdpZXM6OzsKLSAtIFJvd1NtYXJ0UGxhY2VtZW50OiB0cmllcyB0byBwbGFjZSB3 aW5kb3dzIGluIHJvd3Mgd2l0aG91dCBvdmVybGFwcGluZwotIC0gQ29sU21hcnRQbGFjZW1lbnQ6 IHRyaWVzIHRvIHBsYWNlIHdpbmRvd3MgaW4gY29sdW1ucyB3aXRob3V0IG92ZXJsYXBwaW5nCi0g LSBDYXNjYWRlUGxhY2VtZW50OiBwbGFjZXMgd2luZG93cyBiZWxvdyB0aGUgdGl0bGViYXIgb2Yg dGhlIHByZXZpb3VzIG9uZQotKy0gQ2VudGVyUGxhY2VtZW50OiBwbGFjZXMgd2luZG93cyBpbiB0 aGUgY2VudGVyIG9mIHRoZSBjdXJyZW50IHdvcmtzcGFjZQotIC0gVW5kZXJNb3VzZVBsYWNlbWVu dDogcGxhY2VzIG5ldyB3aW5kb3dzIHVuZGVybmVhdGggdGhlIG1vdXNlCi0gLSBSb3dNaW5PdmVy bGFwUGxhY2VtZW50OiBwbGFjZSB3aW5kb3dzIGluIHJvd3Mgd2l0aCBtaW5pbWFsIG92ZXJsYXBw aW5nCi0gLSBDb2xNaW5PdmVybGFwUGxhY2VtZW50OiBwbGFjZSB3aW5kb3dzIGluIGNvbHVtbnMg d2l0aCBtaW5pbWFsIG92ZXJsYXBwaW5nCi1kaWZmIC0tZ2l0IGEvc3JjL0NlbnRlclBsYWNlbWVu dC5jYyBiL3NyYy9DZW50ZXJQbGFjZW1lbnQuY2MKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwMC4uZWZhZjc2YjkKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9DZW50ZXJQbGFj ZW1lbnQuY2MKLUBAIC0wLDAgKzEsNDMgQEAKLSsvLyBDZW50ZXJQbGFjZW1lbnQuY2MKLSsvLyBD b3B5cmlnaHQgKGMpIDIwMDYgRmx1eGJveCBUZWFtIChmbHV4Z2VuIGF0IGZsdXhib3ggZG90IG9y ZykKLSsvLwotKy8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0rLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSsvLyB0 byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uCi0rLy8gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0rLy8gYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0r Ly8gU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKLSsvLwotKy8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCi0rLy8gYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rLy8KLSsvLyBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwgRVhQUkVTUyBPUgotKy8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotKy8vIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAot Ky8vIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCi0rLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSsvLyBGUk9NLCBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVS Ci0rLy8gREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotKwotKyNpbmNsdWRlICJDZW50ZXJQbGFj ZW1lbnQuaGgiCi0rCi0rI2luY2x1ZGUgIkZiVGsvQXBwLmhoIgotKyNpbmNsdWRlICJTY3JlZW4u aGgiCi0rI2luY2x1ZGUgIldpbmRvdy5oaCIKLSsKLStib29sIENlbnRlclBsYWNlbWVudDo6cGxh Y2VXaW5kb3coY29uc3QgRmx1eGJveFdpbmRvdyAmd2luLCBpbnQgaGVhZCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAmcGxhY2VfeCwgaW50ICZwbGFjZV95KSB7 Ci0rCi0rICAgIGludCBjZW50X3ggPSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4UmlnaHQoaGVh ZCkgLSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4TGVmdChoZWFkKTsKLSsgICAgaW50IGNlbnRf eSA9IChzaWduZWQpIHdpbi5zY3JlZW4oKS5tYXhCb3R0b20oaGVhZCkgLSAoc2lnbmVkKSB3aW4u c2NyZWVuKCkubWF4VG9wKGhlYWQpOwotKwotKyAgICAvLyBib3JkZXIgb24gMSBzaWRlLCBkaXZp ZGluZyBpbiBoYWxmCi0rICAgIC8vIHdpdGggcm91bmRpbmcsIHRoaXMgd2lsbCBwcm9iYWJseSBm YXZvciB0b3AgbGVmdAotKyAgICBpbnQgd2luX2hhbGZfdyA9ICh3aW4ud2lkdGgoKSAvIDIpICsg d2luLmZiV2luZG93KCkuYm9yZGVyV2lkdGgoKSwKLSsgICAgICAgIHdpbl9oYWxmX2ggPSAod2lu LmhlaWdodCgpIC8gMikgKyB3aW4uZmJXaW5kb3coKS5ib3JkZXJXaWR0aCgpOwotKwotKyAgICBw bGFjZV94ID0gY2VudF94IC0gd2luX2hhbGZfdzsKLSsgICAgcGxhY2VfeSA9IGNlbnRfeSAtIHdp bl9oYWxmX2g7Ci0rCi0rICAgIHJldHVybiB0cnVlOwotK30KLWRpZmYgLS1naXQgYS9zcmMvQ2Vu dGVyUGxhY2VtZW50LmhoIGIvc3JjL0NlbnRlclBsYWNlbWVudC5oaAotbmV3IGZpbGUgbW9kZSAx MDA2NDQKLWluZGV4IDAwMDAwMDAwLi45ZjcwYTZjOAotLS0tIC9kZXYvbnVsbAotKysrIGIvc3Jj L0NlbnRlclBsYWNlbWVudC5oaAotQEAgLTAsMCArMSwzNyBAQAotKy8vIENlbnRlclBsYWNlbWVu dC5oaAotKy8vIENvcHlyaWdodCAoYykgMjAwNyBGbHV4Ym94IFRlYW0gKGZsdXhnZW4gYXQgZmx1 eGJveCBkb3Qgb3JnKQotKy8vCi0rLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSsvLyBjb3B5IG9mIHRoaXMg c29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2Fy ZSIpLAotKy8vIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSsvLyB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSsvLyBhbmQv b3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8g d2hvbSB0aGUKLSsvLyBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKy8vCi0rLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSsv LyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSsv LwotKy8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0rLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0rLy8gRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVW RU5UIFNIQUxMCi0rLy8gVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKLSsvLyBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwotKy8v IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IgT1RIRVIKLSsvLyBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0rCi0rI2lmbmRlZiBD RU5URVJQTEFDRU1FTlRfSEgKLSsjZGVmaW5lIENFTlRFUlBMQUNFTUVOVF9ISAotKwotKyNpbmNs dWRlICJTY3JlZW5QbGFjZW1lbnQuaGgiCi0rCi0rY2xhc3MgQ2VudGVyUGxhY2VtZW50OiBwdWJs aWMgUGxhY2VtZW50U3RyYXRlZ3kgewotK3B1YmxpYzoKLSsgICAgQ2VudGVyUGxhY2VtZW50KCkg eyB9OwotKwotKyAgICBib29sIHBsYWNlV2luZG93KGNvbnN0IEZsdXhib3hXaW5kb3cgJndpbiwg aW50IGhlYWQsCi0rICAgICAgICAgICAgICAgICAgICAgaW50ICZwbGFjZV94LCBpbnQgJnBsYWNl X3kpOwotKwotK3ByaXZhdGU6Ci0rfTsKLSsKLSsjZW5kaWYgLy8gQ0VOVEVSUExBQ0VNRU5UX0hI Ci1kaWZmIC0tZ2l0IGEvc3JjL01ha2Vtb2R1bGUuYW0gYi9zcmMvTWFrZW1vZHVsZS5hbQotaW5k ZXggNWJlNTY5MmMuLjUzZDM1ZThlIDEwMDY0NAotLS0tIGEvc3JjL01ha2Vtb2R1bGUuYW0KLSsr KyBiL3NyYy9NYWtlbW9kdWxlLmFtCi1AQCAtMTY1LDYgKzE2NSw4IEBAIGZsdXhib3hfU09VUkNF UyA9IFwKLSAJc3JjL0F0dGVudGlvbk5vdGljZUhhbmRsZXIuaGggXAotIAlzcmMvQ2FzY2FkZVBs YWNlbWVudC5jYyBcCi0gCXNyYy9DYXNjYWRlUGxhY2VtZW50LmhoIFwKLSsJc3JjL0NlbnRlclBs YWNlbWVudC5jYyBcCi0rCXNyYy9DZW50ZXJQbGFjZW1lbnQuaGggXAotIAlzcmMvQ2xpZW50TWVu dS5jYyBcCi0gCXNyYy9DbGllbnRNZW51LmhoIFwKLSAJc3JjL0NsaWVudFBhdHRlcm4uY2MgXAot ZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuY2MgYi9zcmMvU2NyZWVuUGxhY2VtZW50 LmNjCi1pbmRleCBjYTU4ZDgzZi4uY2U0N2E5MTAgMTAwNjQ0Ci0tLS0gYS9zcmMvU2NyZWVuUGxh Y2VtZW50LmNjCi0rKysgYi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCi1AQCAtMjQsNiArMjQsNyBA QAotICNpbmNsdWRlICJSb3dTbWFydFBsYWNlbWVudC5oaCIKLSAjaW5jbHVkZSAiTWluT3Zlcmxh cFBsYWNlbWVudC5oaCIKLSAjaW5jbHVkZSAiVW5kZXJNb3VzZVBsYWNlbWVudC5oaCIKLSsjaW5j bHVkZSAiQ2VudGVyUGxhY2VtZW50LmhoIgotICNpbmNsdWRlICJDb2xTbWFydFBsYWNlbWVudC5o aCIKLSAjaW5jbHVkZSAiQ2FzY2FkZVBsYWNlbWVudC5oaCIKLSAKLUBAIC04Miw2ICs4Myw5IEBA IGJvb2wgU2NyZWVuUGxhY2VtZW50OjpwbGFjZVdpbmRvdyhjb25zdCBGbHV4Ym94V2luZG93ICZ3 aW4sIGludCBoZWFkLAotICAgICAgICAgY2FzZSBVTkRFUk1PVVNFUExBQ0VNRU5UOgotICAgICAg ICAgICAgIG1fc3RyYXRlZ3kucmVzZXQobmV3IFVuZGVyTW91c2VQbGFjZW1lbnQoKSk7Ci0gICAg ICAgICAgICAgYnJlYWs7Ci0rICAgICAgICBjYXNlIENFTlRFUlBMQUNFTUVOVDoKLSsgICAgICAg ICAgICBtX3N0cmF0ZWd5LnJlc2V0KG5ldyBDZW50ZXJQbGFjZW1lbnQoKSk7Ci0rICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICBjYXNlIEFVVE9UQUJQTEFDRU1FTlQ6Ci0gICAgICAgICAgICAg bV9zdHJhdGVneS5yZXNldCgwKTsKLSAgICAgICAgICAgICBicmVhazsKLUBAIC0xOTcsNiArMjAx LDggQEAgc3RkOjpzdHJpbmcgRmJUazo6UmVzb3VyY2U8U2NyZWVuUGxhY2VtZW50OjpQbGFjZW1l bnRQb2xpY3k+OjpnZXRTdHJpbmcoKSBjb25zdAotICAgICAgICAgcmV0dXJuICJDb2xNaW5PdmVy bGFwUGxhY2VtZW50IjsKLSAgICAgY2FzZSBTY3JlZW5QbGFjZW1lbnQ6OlVOREVSTU9VU0VQTEFD RU1FTlQ6Ci0gICAgICAgICByZXR1cm4gIlVuZGVyTW91c2VQbGFjZW1lbnQiOwotKyAgICBjYXNl IFNjcmVlblBsYWNlbWVudDo6Q0VOVEVSUExBQ0VNRU5UOgotKyAgICAgICAgcmV0dXJuICJDZW50 ZXJQbGFjZW1lbnQiOwotICAgICBjYXNlIFNjcmVlblBsYWNlbWVudDo6Q0FTQ0FERVBMQUNFTUVO VDoKLSAgICAgICAgIHJldHVybiAiQ2FzY2FkZVBsYWNlbWVudCI7Ci0gICAgIGNhc2UgU2NyZWVu UGxhY2VtZW50OjpBVVRPVEFCUExBQ0VNRU5UOgotQEAgLTIxOCw2ICsyMjQsOCBAQCB2b2lkIEZi VGs6OlJlc291cmNlPFNjcmVlblBsYWNlbWVudDo6UGxhY2VtZW50UG9saWN5Pjo6c2V0RnJvbVN0 cmluZyhjb25zdCBjaGFyCi0gICAgICAgICAqKCp0aGlzKSA9IFNjcmVlblBsYWNlbWVudDo6Q09M TUlOT1ZFUkxBUFBMQUNFTUVOVDsKLSAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcCgiVW5kZXJNb3Vz ZVBsYWNlbWVudCIsIHN0cikgPT0gMCkKLSAgICAgICAgICooKnRoaXMpID0gU2NyZWVuUGxhY2Vt ZW50OjpVTkRFUk1PVVNFUExBQ0VNRU5UOwotKyAgICBlbHNlIGlmIChzdHJjYXNlY21wKCJDZW50 ZXJQbGFjZW1lbnQiLCBzdHIpID09IDApCi0rICAgICAgICAqKCp0aGlzKSA9IFNjcmVlblBsYWNl bWVudDo6Q0VOVEVSUExBQ0VNRU5UOwotICAgICBlbHNlIGlmIChzdHJjYXNlY21wKCJDYXNjYWRl UGxhY2VtZW50Iiwgc3RyKSA9PSAwKQotICAgICAgICAgKigqdGhpcykgPSBTY3JlZW5QbGFjZW1l bnQ6OkNBU0NBREVQTEFDRU1FTlQ7Ci0gICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAoIkF1dG90YWJQ bGFjZW1lbnQiLCBzdHIpID09IDApCi1kaWZmIC0tZ2l0IGEvc3JjL1NjcmVlblBsYWNlbWVudC5o aCBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKLWluZGV4IGYxMjM0OTgzLi5hNWM5Yjg4NSAxMDA2 NDQKLS0tLSBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKLSsrKyBiL3NyYy9TY3JlZW5QbGFjZW1l bnQuaGgKLUBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKLSAgICAgICAgIFJPV01JTk9WRVJMQVBQ TEFDRU1FTlQsCi0gICAgICAgICBDQVNDQURFUExBQ0VNRU5ULAotICAgICAgICAgVU5ERVJNT1VT RVBMQUNFTUVOVCwKLSsgICAgICAgIENFTlRFUlBMQUNFTUVOVCwKLSAgICAgICAgIEFVVE9UQUJQ TEFDRU1FTlQKLSAgICAgfTsKLSAKLS0tIAotMi4zNy4xCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9w YXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggNDk4YWI0NGEyM2M2Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvY29udGFpbmVyX2xvY2tzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzI1ICswLDAgQEAK LWRpZmYgLS1naXQgYS9zcmMvRmJXaW5GcmFtZS5jYyBiL3NyYy9GYldpbkZyYW1lLmNjCi1pbmRl eCAwMGJjMTE4Ny4uZjhhNGM0NzUgMTAwNjQ0Ci0tLS0gYS9zcmMvRmJXaW5GcmFtZS5jYwotKysr IGIvc3JjL0ZiV2luRnJhbWUuY2MKLUBAIC0xNDgsNiArMTQ4LDExIEBAIEZiV2luRnJhbWU6OkZi V2luRnJhbWUoQlNjcmVlbiAmc2NyZWVuLCB1bnNpZ25lZCBpbnQgY2xpZW50X2RlcHRoLAotICAg ICBtX2J1dHRvbl9zaXplKDEpLAotICAgICBtX3NoYXBlKG1fd2luZG93LCB0aGVtZS0+c2hhcGVQ bGFjZSgpKSB7Ci0gCi0rICAgIG1fbG9ja2VyX3RpbWVyLnNldFRpbWVvdXQodGltZXJWYWwoKSAp OyAvLyAxMG1pbGxpc2VjCi0rICAgIG1fbG9ja2VyX3RpbWVyLmZpcmVPbmNlKHRydWUpOwotKyAg ICBGYlRrOjpSZWZDb3VudDxGYlRrOjpDb21tYW5kPHZvaWQ+ID4gdXNpZyhuZXcgRmJUazo6U2lt cGxlQ29tbWFuZDxGYldpbkZyYW1lPigqdGhpcywgJkZiV2luRnJhbWU6OnVubG9ja1NpZykpOwot KyAgICBtX2xvY2tlcl90aW1lci5zZXRDb21tYW5kKHVzaWcpOwotKwotICAgICBpbml0KCk7Ci0g fQotIAotQEAgLTE1Niw2ICsxNjEsMjcgQEAgRmJXaW5GcmFtZTo6fkZiV2luRnJhbWUoKSB7Ci0g ICAgIHJlbW92ZUFsbEJ1dHRvbnMoKTsKLSB9Ci0gCi0rLy8gZm9yIGluY3JlbWVudGFsIGNoYW5n ZXMsIGJhY2sgb2ZmIGZvciBhIGJpdAotKy8vIHByZXZlbnRzIHNsb3dkb3duIGZyb20gc2F5LCBt YWtpbmcgMjAwIHdpbmRvd3MKLSt2b2lkIEZiV2luRnJhbWU6OnJlc2V0TG9jaygpIHsKLSsgICAg bV9sb2NrX2dmeCA9IHRydWU7Ci0rICAgIG1fbG9ja2VyX3RpbWVyLnN0YXJ0KCk7Ci0rfQotKwot K3ZvaWQgRmJXaW5GcmFtZTo6dW5sb2NrU2lnKCkgewotKyAgICBtX2xvY2tfZ2Z4ID0gZmFsc2U7 Ci0rICAgIC8vIHRoaXMgaXMgd2hhdCB3ZSB3YW50ZWQgdG8gZG8KLSsgICAgRmJUazo6Q29udGFp bmVyJiB0YWJzID0gdGFiY29udGFpbmVyKCk7Ci0rICAgIHRhYnMuc2V0VXBkYXRlTG9jayhtX2xv Y2tfZ2Z4KTsKLSsgICAgcmVuZGVyVGFiQ29udGFpbmVyKCk7Ci0rICAgIGFwcGx5VGFiQ29udGFp bmVyKCk7Ci0rCi0rICAgIHRhYnMuY2xlYXIoKTsKLSsgICAgdGFicy5yYWlzZSgpOwotKyAgICB0 YWJzLnNob3coKTsKLSt9Ci0rCi0rCi0gYm9vbCBGYldpbkZyYW1lOjpzZXRUYWJNb2RlKFRhYk1v ZGUgdGFibW9kZSkgewotICAgICBpZiAobV90YWJtb2RlID09IHRhYm1vZGUpCi0gICAgICAgICBy ZXR1cm4gZmFsc2U7Ci1AQCAtMTg3LDYgKzIxMyw3IEBAIGJvb2wgRmJXaW5GcmFtZTo6c2V0VGFi TW9kZShUYWJNb2RlIHRhYm1vZGUpIHsKLSAKLSAgICAgfSBlbHNlIHsKLSAgICAgICAgIHRhYnMu c2V0VXBkYXRlTG9jayh0cnVlKTsKLSsgICAgICAgIHJlc2V0TG9jaygpOwotIAotICAgICAgICAg dGFicy5zZXRBbGlnbm1lbnQoRmJUazo6Q29udGFpbmVyOjpSRUxBVElWRSk7Ci0gICAgICAgICB0 YWJzLnNldE9yaWVudGF0aW9uKEZiVGs6OlJPVDApOwotQEAgLTIwMCw5ICsyMjcsMTIgQEAgYm9v bCBGYldpbkZyYW1lOjpzZXRUYWJNb2RlKFRhYk1vZGUgdGFibW9kZSkgewotICAgICAgICAgfQot ICAgICAgICAgdGFicy5zZXRCb3JkZXJXaWR0aCgwKTsKLSAgICAgICAgIHRhYnMuc2V0TWF4VG90 YWxTaXplKDApOwotLSAgICAgICAgdGFicy5zZXRVcGRhdGVMb2NrKGZhbHNlKTsKLSsgICAgICAg IHRhYnMuc2V0VXBkYXRlTG9jayhtX2xvY2tfZ2Z4KTsKLSAgICAgICAgIHRhYnMuc2V0TWF4U2l6 ZVBlckNsaWVudCgwKTsKLSAKLSsgICAgICAgIGlmIChtX2xvY2tfZ2Z4KQotKyAgICAgICAgICAg IHJldHVybiBmYWxzZTsKLSsKLSAgICAgICAgIHJlbmRlclRhYkNvbnRhaW5lcigpOwotICAgICAg ICAgYXBwbHlUYWJDb250YWluZXIoKTsKLSAKLWRpZmYgLS1naXQgYS9zcmMvRmJXaW5GcmFtZS5o aCBiL3NyYy9GYldpbkZyYW1lLmhoCi1pbmRleCA2MTdiOWI5MS4uNzI1Yzg0YTAgMTAwNjQ0Ci0t LS0gYS9zcmMvRmJXaW5GcmFtZS5oaAotKysrIGIvc3JjL0ZiV2luRnJhbWUuaGgKLUBAIC0zMyw2 ICszMyw3IEBACi0gI2luY2x1ZGUgIkZiVGsvQ29udGFpbmVyLmhoIgotICNpbmNsdWRlICJGYlRr L1NoYXBlLmhoIgotICNpbmNsdWRlICJGYlRrL1NpZ25hbC5oaCIKLSsjaW5jbHVkZSAiRmJUay9U aW1lci5oaCIKLSAKLSAjaW5jbHVkZSA8dmVjdG9yPgotICNpbmNsdWRlIDxtZW1vcnk+Ci1AQCAt MTc2LDYgKzE3NywxMiBAQCBwdWJsaWM6Ci0gICAgIHZvaWQgc2V0U2hhcGluZ0NsaWVudChGYlRr OjpGYldpbmRvdyAqd2luLCBib29sIGFsd2F5c191cGRhdGUpOwotICAgICB2b2lkIHVwZGF0ZVNo YXBlKCkgeyBtX3NoYXBlLnVwZGF0ZSgpOyB9Ci0gCi0rICAgIHZvaWQgcmVzZXRMb2NrKCk7Ci0r ICAgIHZvaWQgdW5sb2NrU2lnKCk7Ci0rICAgIEZiVGs6OlRpbWVyIG1fbG9ja2VyX3RpbWVyOwot KyAgICBzdGF0aWMgdW5zaWduZWQgaW50IHRpbWVyVmFsKCkgeyByZXR1cm4gMTAgKiBGYlRrOjpG YlRpbWU6OklOX01JTExJU0VDT05EUzsgfQotKyAgICBib29sIG1fbG9ja19nZnggPSBmYWxzZTsK LSsKLSAgICAgLyoqCi0gICAgICAgIEBuYW1lIGFjY2Vzc29ycwotICAgICAqLwotZGlmZiAtLWdp dCBhL3NyYy9JY29uQnV0dG9uLmNjIGIvc3JjL0ljb25CdXR0b24uY2MKLWluZGV4IDEyOTBjMmFh Li4yZWE3YWY5ZSAxMDA2NDQKLS0tLSBhL3NyYy9JY29uQnV0dG9uLmNjCi0rKysgYi9zcmMvSWNv bkJ1dHRvbi5jYwotQEAgLTcxLDggKzcxLDggQEAgSWNvbkJ1dHRvbjo6SWNvbkJ1dHRvbihjb25z dCBGYlRrOjpGYldpbmRvdyAmcGFyZW50LAotIAotICAgICBGYlRrOjpFdmVudE1hbmFnZXI6Omlu c3RhbmNlKCktPmFkZCgqdGhpcywgbV9pY29uX3dpbmRvdyk7Ci0gCi0tICAgIHJlY29uZmlnVGhl bWUoKTsKLS0gICAgcmVmcmVzaEV2ZXJ5dGhpbmcoZmFsc2UpOwotKyAgICAvL3JlY29uZmlnVGhl bWUoKTsKLSsgICAgLy9yZWZyZXNoRXZlcnl0aGluZyhmYWxzZSk7Ci0gfQotIAotIEljb25CdXR0 b246On5JY29uQnV0dG9uKCkgewotQEAgLTE2MywxMiArMTYzLDEyIEBAIHZvaWQgSWNvbkJ1dHRv bjo6cmVjb25maWdUaGVtZSgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCgp LCBoZWlnaHQoKSwgbV90aGVtZS0+dGV4dHVyZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9yaWVudGF0aW9uKCkpKTsKLSAgICAgICAgIHNldEJhY2tncm91bmRQaXhtYXAobV9wbSk7 Ci0tICAgIH0gZWxzZXsKLSsgICAgfSBlbHNlIHsKLSAgICAgICAgIG1fcG0ucmVzZXQoMCk7Ci0g ICAgICAgICBzZXRCYWNrZ3JvdW5kQ29sb3IobV90aGVtZS0+dGV4dHVyZSgpLmNvbG9yKCkpOwot ICAgICB9Ci0gCi0tICAgIHVwZGF0ZUJhY2tncm91bmQoZmFsc2UpOwotKyAgICAvL3VwZGF0ZUJh Y2tncm91bmQoZmFsc2UpOwotIH0KLSAKLSB2b2lkIEljb25CdXR0b246OnJlY29uZmlnQW5kQ2xl YXIoKSB7Ci1AQCAtMTgxLDcgKzE4MSw4IEBAIHZvaWQgSWNvbkJ1dHRvbjo6cmVmcmVzaEV2ZXJ5 dGhpbmcoYm9vbCBzZXR1cCkgewotICAgICBEaXNwbGF5ICpkaXNwbGF5ID0gRmJUazo6QXBwOjpp bnN0YW5jZSgpLT5kaXNwbGF5KCk7Ci0gICAgIGludCBzY3JlZW4gPSBtX3dpbi5zY3JlZW4oKS5z Y3JlZW5OdW1iZXIoKTsKLSAKLS0gICAgaWYgKG1fdXNlX3BpeG1hcCAmJiBtX3dpbi5pY29uKCku cGl4bWFwKCkuZHJhd2FibGUoKSAhPSBOb25lKSB7Ci0rICAgIGlmIChtX3VzZV9waXhtYXAgJiYg bV93aW4uaWNvbigpLnBpeG1hcCgpLmRyYXdhYmxlKCkgIT0gTm9uZSAmJgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCgpID4gbV9pY29uX3dpbmRvdy53aWR0aCgp ICkgewotICAgICAgICAgLy8gc2V0dXAgaWNvbiB3aW5kb3cKLSAgICAgICAgIG1faWNvbl93aW5k b3cuc2hvdygpOwotICAgICAgICAgdW5zaWduZWQgaW50IHcgPSB3aWR0aCgpOwotQEAgLTI0Miw3 ICsyNDMsNiBAQCB2b2lkIEljb25CdXR0b246OnJlZnJlc2hFdmVyeXRoaW5nKGJvb2wgc2V0dXAp IHsKLSAgICAgICAgIG1faWNvbl93aW5kb3cuY2xlYXIoKTsKLSAgICAgfQotIAotLQotIH0KLSAK LSB2b2lkIEljb25CdXR0b246OmNsaWVudFRpdGxlQ2hhbmdlZCgpIHsKLUBAIC0yNTEsMjQgKzI1 MSwzMCBAQCB2b2lkIEljb25CdXR0b246OmNsaWVudFRpdGxlQ2hhbmdlZCgpIHsKLSAKLSAgICAg aWYgKG1faGFzX3Rvb2x0aXApCi0gICAgICAgICBzaG93VG9vbHRpcCgpOwotKwotIH0KLSAKLSB2 b2lkIEljb25CdXR0b246OnNldHVwV2luZG93KCkgewotICAgICBtX2ljb25fd2luZG93LmNsZWFy KCk7Ci0rICAgIC8vRmJUazo6RmJTdHJpbmcgdGl0bGUgPSAid3RmMiI7Ci0gICAgIEZiVGs6OkZi U3RyaW5nIHRpdGxlID0gbV93aW4udGl0bGUoKS5sb2dpY2FsKCk7Ci0tICAgIGlmIChtX3dpbi5m YndpbmRvdygpICYmIG1fd2luLmZid2luZG93KCktPmlzSWNvbmljKCkpCi0tICAgICAgICB0aXRs ZSA9IEljb25iYXJUb29sOjppY29uaWZpZWRQcmVmaXgoKSArIHRpdGxlICsgSWNvbmJhclRvb2w6 Omljb25pZmllZFN1ZmZpeCgpOwotKyAgICAvLyNpZiBVU0VfVE9PTEJBUgotKyAgICAvL2lmICht X3dpbi5mYndpbmRvdygpICYmIG1fd2luLmZid2luZG93KCktPmlzSWNvbmljKCkpCi0rICAgIC8v ICAgIHRpdGxlID0gSWNvbmJhclRvb2w6Omljb25pZmllZFByZWZpeCgpICsgdGl0bGUgKyBJY29u YmFyVG9vbDo6aWNvbmlmaWVkU3VmZml4KCk7Ci0rICAgIC8vI2VuZGlmCi0gICAgIHNldFRleHQo dGl0bGUpOwotICAgICBGYlRrOjpUZXh0QnV0dG9uOjpjbGVhcigpOwotIH0KLSAKLSB2b2lkIElj b25CdXR0b246OmRyYXdUZXh0KGludCB4LCBpbnQgeSwgRmJUazo6RmJEcmF3YWJsZSAqZHJhd2Fi bGUpIHsKLSAKLS0gICAgLy8gb2Zmc2V0IHRleHQKLS0gICAgaWYgKG1faWNvbl9waXhtYXAuZHJh d2FibGUoKSAhPSAwKQotLSAgICAgICAgRmJUazo6VGV4dEJ1dHRvbjo6ZHJhd1RleHQobV9pY29u X3dpbmRvdy54KCkgKyBtX2ljb25fd2luZG93LndpZHRoKCkgKyAxLCB5LCBkcmF3YWJsZSk7Ci0t ICAgIGVsc2UKLS0gICAgICAgIEZiVGs6OlRleHRCdXR0b246OmRyYXdUZXh0KDEsIHksIGRyYXdh YmxlKTsKLSsgICAgaWYgKHdpZHRoKCkgPiBtX2ljb25fd2luZG93LndpZHRoKCkgKSB7Ci0rICAg ICAgLy8gb2Zmc2V0IHRleHQKLSsgICAgICBpZiAobV9pY29uX3BpeG1hcC5kcmF3YWJsZSgpICE9 IDApCi0rICAgICAgICAgIEZiVGs6OlRleHRCdXR0b246OmRyYXdUZXh0KG1faWNvbl93aW5kb3cu eCgpICsgbV9pY29uX3dpbmRvdy53aWR0aCgpICsgMSwgeSwgZHJhd2FibGUpOwotKyAgICAgIGVs c2UKLSsgICAgICAgICAgRmJUazo6VGV4dEJ1dHRvbjo6ZHJhd1RleHQoMSwgeSwgZHJhd2FibGUp OwotKyAgICB9Ci0gfQotIAotIGJvb2wgSWNvbkJ1dHRvbjo6c2V0T3JpZW50YXRpb24oRmJUazo6 T3JpZW50YXRpb24gb3JpZW50KSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL0ljb25iYXJUb29sLmNjIGIv c3JjL0ljb25iYXJUb29sLmNjCi1pbmRleCAwMjdhYjFjNi4uZjY0YTRjZjYgMTAwNjQ0Ci0tLS0g YS9zcmMvSWNvbmJhclRvb2wuY2MKLSsrKyBiL3NyYy9JY29uYmFyVG9vbC5jYwotQEAgLTMwMCw2 ICszMDAsMTEgQEAgSWNvbmJhclRvb2w6Okljb25iYXJUb29sKGNvbnN0IEZiVGs6OkZiV2luZG93 ICZwYXJlbnQsIEljb25iYXJUaGVtZSAmdGhlbWUsCi0gICAgIEZiVGs6OlJlZkNvdW50PEZiVGs6 OkNvbW1hbmQ8dm9pZD4gPiBlcnMobmV3IEZiVGs6OlNpbXBsZUNvbW1hbmQ8SWNvbmJhclRvb2w+ KCp0aGlzLCAmSWNvbmJhclRvb2w6OmVtaXRSZXNpemVTaWcpKTsKLSAgICAgbV9yZXNpemVTaWdf dGltZXIuc2V0Q29tbWFuZChlcnMpOwotIAotKyAgICBtX2xvY2tlcl90aW1lci5zZXRUaW1lb3V0 KEljb25CdXR0b246OnVwZGF0ZUxhemluZXNzKCkgLyAxMCk7IC8vIDEwbWlsbGlzZWMKLSsgICAg bV9sb2NrZXJfdGltZXIuZmlyZU9uY2UodHJ1ZSk7Ci0rICAgIEZiVGs6OlJlZkNvdW50PEZiVGs6 OkNvbW1hbmQ8dm9pZD4gPiB1c2lnKG5ldyBGYlRrOjpTaW1wbGVDb21tYW5kPEljb25iYXJUb29s PigqdGhpcywgJkljb25iYXJUb29sOjp1bmxvY2tTaWcpKTsKLSsgICAgbV9sb2NrZXJfdGltZXIu c2V0Q29tbWFuZCh1c2lnKTsKLSsKLSAgICAgdGhlbWVSZWNvbmZpZ3VyZWQoKTsKLSB9Ci0gCi1A QCAtMzI1LDcgKzMzMCw3IEBAIHZvaWQgSWNvbmJhclRvb2w6OnVwZGF0ZU1heFNpemVzKHVuc2ln bmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCkgewotIAotIHZvaWQgSWNvbmJhclRv b2w6OnJlc2l6ZSh1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQpIHsKLSAg ICAgbV9pY29uX2NvbnRhaW5lci5yZXNpemUod2lkdGgsIGhlaWdodCk7Ci0tICAgIHVwZGF0ZU1h eFNpemVzKHdpZHRoLCBoZWlnaHQpOwotKyAgICAvL3VwZGF0ZU1heFNpemVzKHdpZHRoLCBoZWln aHQpOwotICAgICByZW5kZXJUaGVtZSgpOwotIH0KLSAKLUBAIC0zMzMsNyArMzM4LDcgQEAgdm9p ZCBJY29uYmFyVG9vbDo6bW92ZVJlc2l6ZShpbnQgeCwgaW50IHksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQpIHsK LSAKLSAgICAgbV9pY29uX2NvbnRhaW5lci5tb3ZlUmVzaXplKHgsIHksIHdpZHRoLCBoZWlnaHQp OwotLSAgICB1cGRhdGVNYXhTaXplcyh3aWR0aCwgaGVpZ2h0KTsKLSsgICAgLy91cGRhdGVNYXhT aXplcyh3aWR0aCwgaGVpZ2h0KTsKLSAgICAgcmVuZGVyVGhlbWUoKTsKLSB9Ci0gCi1AQCAtMzkz LDYgKzM5OCwyNSBAQCB2b2lkIEljb25iYXJUb29sOjpzZXRNb2RlKHN0cmluZyBtb2RlKSB7Ci0g ICAgIG1fbWVudS5yZWNvbmZpZ3VyZSgpOwotIH0KLSAKLSsvLyBmb3IgaW5jcmVtZW50YWwgY2hh bmdlcywgYmFjayBvZmYgZm9yIGEgYml0Ci0rLy8gcHJldmVudHMgc2xvd2Rvd24gZnJvbSBzYXks IG1ha2luZyAyMDAgd2luZG93cwotK3ZvaWQgSWNvbmJhclRvb2w6OnJlc2V0TG9jaygpIHsKLSsg ICAgbV9sb2NrX2dmeCA9IHRydWU7Ci0rICAgIG1fbG9ja2VyX3RpbWVyLnN0YXJ0KCk7Ci0rfQot KwotK3ZvaWQgSWNvbmJhclRvb2w6OnVubG9ja1NpZygpIHsKLSsgICAgbV9sb2NrX2dmeCA9IGZh bHNlOwotKyAgICAvL3Jlc2l6ZVNpZygpLmVtaXQoKTsKLSsgICAgLy8gdGhpcyBpcyB3aGF0IHdl IHdhbnRlZCB0byBkbwotKyAgICBtX2ljb25fY29udGFpbmVyLnNldFVwZGF0ZUxvY2soZmFsc2Up OwotKyAgICBtX2ljb25fY29udGFpbmVyLnVwZGF0ZSgpOwotKyAgICBtX2ljb25fY29udGFpbmVy LnNob3dTdWJ3aW5kb3dzKCk7Ci0rICAgIHJlbmRlclRoZW1lKCk7Ci0rICAgIHVwZGF0ZShBTElH TiwgTlVMTCk7Ci0rICAgIG1fcmVzaXplU2lnX3RpbWVyLnN0YXJ0KCk7Ci0rfQotKwotIHZvaWQg SWNvbmJhclRvb2w6OmVtaXRSZXNpemVTaWcoKSB7Ci0gICAgIHJlc2l6ZVNpZygpLmVtaXQoKTsK LSB9Ci1AQCAtNDQxLDkgKzQ2NSwxMSBAQCB2b2lkIEljb25iYXJUb29sOjp1cGRhdGUoVXBkYXRl UmVhc29uIHJlYXNvbiwgRm9jdXNhYmxlICp3aW4pIHsKLSAgICAgc3dpdGNoKHJlYXNvbikgewot ICAgICAgICAgY2FzZSBMSVNUX0FERDogY2FzZSBMSVNUX09SREVSOgotICAgICAgICAgICAgIGlu c2VydFdpbmRvdygqd2luKTsKLSsgICAgICAgICAgICByZXNldExvY2soKTsKLSAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgIGNhc2UgTElTVF9SRU1PVkU6Ci0gICAgICAgICAgICAgcmVtb3Zl V2luZG93KCp3aW4pOwotKyAgICAgICAgICAgIHJlc2V0TG9jaygpOwotICAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICAgY2FzZSBMSVNUX1JFU0VUOgotICAgICAgICAgICAgIHJlc2V0KCk7Ci1A QCAtNDU1LDYgKzQ4MSwxMCBAQCB2b2lkIEljb25iYXJUb29sOjp1cGRhdGUoVXBkYXRlUmVhc29u IHJlYXNvbiwgRm9jdXNhYmxlICp3aW4pIHsKLSAgICAgbV9yZXNpemVTaWdfdGltZXIuc3RhcnQo KTsKLSAKLSAgICAgdXBkYXRlTWF4U2l6ZXMod2lkdGgoKSwgaGVpZ2h0KCkpOwotKwotKyAgICBp ZiAobV9sb2NrX2dmeCkKLSsgICAgICAgIHJldHVybjsKLSsKLSAgICAgLy8gdW5sb2NrIGNvbnRh aW5lciBhbmQgdXBkYXRlIGdyYXBoaWNzCi0gICAgIG1faWNvbl9jb250YWluZXIuc2V0VXBkYXRl TG9jayhmYWxzZSk7Ci0gICAgIG1faWNvbl9jb250YWluZXIudXBkYXRlKCk7Ci1AQCAtNDk2LDEz ICs1MjYsMTMgQEAgdm9pZCBJY29uYmFyVG9vbDo6aW5zZXJ0V2luZG93KEZvY3VzYWJsZSAmd2lu LCBpbnQgcG9zKSB7Ci0gICAgICAgICBidXR0b24gPSBtYWtlQnV0dG9uKHdpbik7Ci0gICAgIGlm ICghYnV0dG9uKSByZXR1cm47Ci0gCi0tICAgIGlmIChwb3MgPT0gLTIpIHsKLS0gICAgICAgIHBv cyA9IDA7Ci0tICAgICAgICBsaXN0PEZvY3VzYWJsZSAqPjo6aXRlcmF0b3IgaXQgPSBtX3dpbmxp c3QtPmNsaWVudExpc3QoKS5iZWdpbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGl0X2VuZCA9IG1fd2lubGlzdC0+Y2xpZW50TGlzdCgpLmVuZCgpOwotLSAgICAgICAg Zm9yICg7IGl0ICE9IGl0X2VuZCAmJiAqaXQgIT0gJndpbjsgKytpdCkKLS0gICAgICAgICAgICBw b3MrKzsKLS0gICAgfQotKyAgICAvL2lmIChwb3MgPT0gLTIpIHsKLSsgICAgLy8gICAgcG9zID0g MDsKLSsgICAgLy8gICAgbGlzdDxGb2N1c2FibGUgKj46Oml0ZXJhdG9yIGl0ID0gbV93aW5saXN0 LT5jbGllbnRMaXN0KCkuYmVnaW4oKSwKLSsgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGl0X2VuZCA9IG1fd2lubGlzdC0+Y2xpZW50TGlzdCgpLmVuZCgpOwotKyAgICAvLyAg ICBmb3IgKDsgaXQgIT0gaXRfZW5kICYmICppdCAhPSAmd2luOyArK2l0KQotKyAgICAvLyAgICAg ICAgcG9zKys7Ci0rICAgIC8vfQotIAotICAgICBtX2ljb25fY29udGFpbmVyLmluc2VydEl0ZW0o YnV0dG9uLCBwb3MpOwotICAgICBtX3RyYWNrZXIuam9pbihidXR0b24tPnRpdGxlQ2hhbmdlZCgp LCBGYlRrOjpNZW1GdW4obV9yZXNpemVTaWdfdGltZXIsICZGYlRrOjpUaW1lcjo6c3RhcnQpKTsK LUBAIC01MTcsOSArNTQ3LDkgQEAgdm9pZCBJY29uYmFyVG9vbDo6dXBkYXRlU2l6aW5nKCkgewot ICAgICBtX2ljb25fY29udGFpbmVyLnNldEJvcmRlcldpZHRoKG1fdGhlbWUuYm9yZGVyKCkud2lk dGgoKSk7Ci0gICAgIG1faWNvbl9jb250YWluZXIuc2V0Qm9yZGVyQ29sb3IobV90aGVtZS5ib3Jk ZXIoKS5jb2xvcigpKTsKLSAKLS0gICAgRmJUazo6U1RMVXRpbDo6Zm9yQWxsKG1faWNvbnMsIAot LSAgICAgICAgICAgIEZiVGs6OkNvbXBvc2Uoc3RkOjptZW1fZnVuKCZJY29uQnV0dG9uOjpyZWNv bmZpZ1RoZW1lKSwgCi0tICAgICAgICAgICAgICAgIEZiVGs6OlNlbGVjdDJuZDxJY29uTWFwOjp2 YWx1ZV90eXBlPigpKSk7Ci0rICAgIC8vRmJUazo6U1RMVXRpbDo6Zm9yQWxsKG1faWNvbnMsIAot KyAgICAvLyAgICAgICAgRmJUazo6Q29tcG9zZShzdGQ6Om1lbV9mdW4oJkljb25CdXR0b246OnJl Y29uZmlnVGhlbWUpLCAKLSsgICAgLy8gICAgICAgICAgICBGYlRrOjpTZWxlY3QybmQ8SWNvbk1h cDo6dmFsdWVfdHlwZT4oKSkpOwotIAotIH0KLSAKLUBAIC01NjAsNyArNTkwLDcgQEAgdm9pZCBJ Y29uYmFyVG9vbDo6cmVuZGVyQnV0dG9uKEljb25CdXR0b24gJmJ1dHRvbiwgYm9vbCBjbGVhcikg ewotIAotICAgICBidXR0b24uc2V0UGl4bWFwKCptX3JjX3VzZV9waXhtYXApOwotICAgICBidXR0 b24uc2V0VGV4dFBhZGRpbmcoKm1fcmNfY2xpZW50X3BhZGRpbmcpOwotLSAgICBidXR0b24ucmVj b25maWdUaGVtZSgpOwotKyAgICAvL2J1dHRvbi5yZWNvbmZpZ1RoZW1lKCk7Ci0gICAgIGlmIChj bGVhcikKLSAgICAgICAgIGJ1dHRvbi5jbGVhcigpOyAvLyB0aGUgY2xlYXIgYWxzbyB1cGRhdGVz IHRyYW5zcGFyZW50Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9JY29uYmFyVG9vbC5oaCBiL3NyYy9J Y29uYmFyVG9vbC5oaAotaW5kZXggZGY2ZDlhNjUuLjFjMjEwMWFjIDEwMDY0NAotLS0tIGEvc3Jj L0ljb25iYXJUb29sLmhoCi0rKysgYi9zcmMvSWNvbmJhclRvb2wuaGgKLUBAIC0xMDYsNiArMTA2 LDkgQEAgcHJpdmF0ZToKLSAKLSAgICAgdm9pZCB0aGVtZVJlY29uZmlndXJlZCgpOwotIAotKyAg ICB2b2lkIHJlc2V0TG9jaygpOwotKyAgICB2b2lkIHVubG9ja1NpZygpOwotKyAgICBGYlRrOjpU aW1lciBtX2xvY2tlcl90aW1lcjsKLSAgICAgRmJUazo6VGltZXIgbV9yZXNpemVTaWdfdGltZXI7 Ci0gICAgIHZvaWQgZW1pdFJlc2l6ZVNpZygpOwotIAotQEAgLTEyOCw2ICsxMzEsNyBAQCBwcml2 YXRlOgotICAgICBGYk1lbnUgbV9tZW51OwotICAgICBpbnQgbV9hbHBoYTsKLSAgICAgc3RhdGlj IHN0ZDo6c3RyaW5nIHNfaWNvbmlmaWVkRGVjb3JhdGlvblsyXTsKLSsgICAgYm9vbCBtX2xvY2tf Z2Z4ID0gZmFsc2U7Ci0gfTsKLSAKLSAjZW5kaWYgLy8gSUNPTkJBUlRPT0xfSEgKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9yZWxhdGl2ZV9yZWxhdGl2ZS5w YXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9yZWxhdGl2ZV9yZWxhdGl2 ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMzZGRiNTE4MWI1Li4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29udGFpbmVyX3JlbGF0aXZl X3JlbGF0aXZlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotZGlmZiAtLWdp dCBhL3NyYy9GYlRrL0NvbnRhaW5lci5jYyBiL3NyYy9GYlRrL0NvbnRhaW5lci5jYwotaW5kZXgg Y2VhNzYxYjMuLjBlMDUwYTBiIDEwMDY0NAotLS0tIGEvc3JjL0ZiVGsvQ29udGFpbmVyLmNjCi0r KysgYi9zcmMvRmJUay9Db250YWluZXIuY2MKLUBAIC0zNjUsNiArMzY1LDkgQEAgdm9pZCBDb250 YWluZXI6OnJlcG9zaXRpb25JdGVtcygpIHsKLSAgICAgY29uc3QgSXRlbUxpc3Q6Oml0ZXJhdG9y IGl0X2VuZCA9IGVuZCgpOwotCi0gICAgIGludCByb3VuZGluZ19lcnJvciA9IDA7Ci0rICAgIGlm IChhbGlnbiA9PSBSRUxBVElWRSB8fCB0b3RhbF93aWR0aCA9PSBtX21heF90b3RhbF9zaXplKSB7 Ci0rICAgICAgICByb3VuZGluZ19lcnJvciA9IHRvdGFsX3dpZHRoIC0gKChtYXhfd2lkdGhfcGVy X2NsaWVudCArIGJvcmRlclcpKiBudW1faXRlbXMgLSBib3JkZXJXKTsKLSsgICAgfQotCi0gICAg IGludCBuZXh0X3ggPSAtYm9yZGVyVzsgLy8gemVybyBzbyB0aGUgYm9yZGVyIG9mIHRoZSBmaXJz dCBzaG93cwotICAgICBpbnQgZXh0cmEgPSAwOwotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhi b3gvcGF0Y2hlcy9mbHV4X2ltcHJvdmUucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9m bHV4X2ltcHJvdmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzYTFhZWJh NjIxYy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhfaW1w cm92ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwNSArMCwwIEBACi1kaWZmIC0tZ2l0IGEv c3JjL0V3bWguY2MgYi9zcmMvRXdtaC5jYwotaW5kZXggZTEyYTc5MjMuLmRiMWRkZDQ1IDEwMDY0 NAotLS0tIGEvc3JjL0V3bWguY2MKLSsrKyBiL3NyYy9Fd21oLmNjCi1AQCAtMTA5NiwxNSArMTA5 NiwxOSBAQCBib29sIEV3bWg6OmNoZWNrQ2xpZW50TWVzc2FnZShjb25zdCBYQ2xpZW50TWVzc2Fn ZUV2ZW50ICZjZSwKLSAgICAgICAgIC8vIGNlLmRhdGEubFswXSA9IHRoZSBhY3Rpb24gKHJlbW92 ZSwgYWRkIG9yIHRvZ2dsZSkKLSAgICAgICAgIC8vIGNlLmRhdGEubFsxXSA9IHRoZSBmaXJzdCBw cm9wZXJ0eSB0byBhbHRlcgotICAgICAgICAgLy8gY2UuZGF0YS5sWzJdID0gc2Vjb25kIHByb3Bl cnR5IHRvIGFsdGVyIChjYW4gYmUgemVybykKLS0gICAgICAgIGlmIChjZS5kYXRhLmxbMF0gPT0g U1RBVEVfUkVNT1ZFKSB7Ci0tICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0s IGZhbHNlLCAqd2luY2xpZW50KTsKLS0gICAgICAgICAgICBzZXRTdGF0ZSh3aW4sIGNlLmRhdGEu bFsyXSwgZmFsc2UsICp3aW5jbGllbnQpOwotLSAgICAgICAgfSBlbHNlIGlmIChjZS5kYXRhLmxb MF0gPT0gU1RBVEVfQUREKSB7Ci0tICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxb MV0sIHRydWUsICp3aW5jbGllbnQpOwotLSAgICAgICAgICAgIHNldFN0YXRlKHdpbiwgY2UuZGF0 YS5sWzJdLCB0cnVlLCAqd2luY2xpZW50KTsKLS0gICAgICAgIH0gZWxzZSBpZiAoY2UuZGF0YS5s WzBdID09IFNUQVRFX1RPR0dMRSkgewotLSAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2Uu ZGF0YS5sWzFdKTsKLS0gICAgICAgICAgICB0b2dnbGVTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSk7 Ci0rICAgICAgICBib29sIGFkZHJlbW92ZSA9IGZhbHNlOyAvLyBhZGQgdHJ1ZSwgcmVtb3ZlIGZh bHNlCi0rCi0rICAgICAgICBzd2l0Y2ggKGNlLmRhdGEubFswXSkgewotKyAgICAgICAgICBjYXNl IFNUQVRFX1RPR0dMRToKLSsgICAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0YS5s WzFdKTsKLSsgICAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0YS5sWzJdKTsKLSsg ICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICBjYXNlIFNUQVRFX0FERDoKLSsgICAgICAg ICAgICAgIGFkZHJlbW92ZSA9IHRydWU7Ci0rICAgICAgICAgIGNhc2UgU1RBVEVfUkVNT1ZFOgot KyAgICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0sIGFkZHJlbW92ZSwgKndp bmNsaWVudCk7Ci0rICAgICAgICAgICAgICBzZXRTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSwgYWRk cmVtb3ZlLCAqd2luY2xpZW50KTsKLSsgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQot ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIH0gZWxzZSBpZiAoY2UubWVzc2FnZV90eXBlID09 IG1fbmV0LT5udW1iZXJfb2ZfZGVza3RvcHMpIHsKLWRpZmYgLS1naXQgYS9zcmMvRmJNZW51UGFy c2VyLmNjIGIvc3JjL0ZiTWVudVBhcnNlci5jYwotaW5kZXggNzE2Y2VkMjkuLjVhNTZlNmY1IDEw MDY0NAotLS0tIGEvc3JjL0ZiTWVudVBhcnNlci5jYwotKysrIGIvc3JjL0ZiTWVudVBhcnNlci5j YwotQEAgLTMzLDkgKzMzLDkgQEAgYm9vbCBGYk1lbnVQYXJzZXI6Om9wZW4oY29uc3Qgc3RkOjpz dHJpbmcgJmZpbGVuYW1lKSB7Ci0gfQotIAotIEZiVGs6OlBhcnNlciAmRmJNZW51UGFyc2VyOjpv cGVyYXRvciA+PiAoRmJUazo6UGFyc2VyOjpJdGVtICZvdXQpIHsKLS0gICAgaWYgKGVvZigpKSB7 ICAgICAgICAKLSsgICAgaWYgKGVvZigpKSB7Ci0gICAgICAgICBvdXQgPSBGYlRrOjpQYXJzZXI6 OnNfZW1wdHlfaXRlbTsKLS0gICAgICAgIHJldHVybiAqdGhpczsgCi0rICAgICAgICByZXR1cm4g KnRoaXM7Ci0gICAgIH0KLSAKLSAgICAgaWYgKG1fY3Vycl9saW5lLmVtcHR5KCkpCi1AQCAtNjks MjAgKzY5LDI2IEBAIEZiVGs6OlBhcnNlciAmRmJNZW51UGFyc2VyOjpvcGVyYXRvciA+PiAoRmJU azo6UGFyc2VyOjpJdGVtICZvdXQpIHsKLSAgICAgICAgIHJldHVybiAoKnRoaXMpPj5vdXQ7Ci0g ICAgICAgICBicmVhazsKLSAgICAgfQotLSAgICAKLSsKLSAgICAgc3RkOjpzdHJpbmcga2V5Owot ICAgICBpbnQgZXJyID0gRmJUazo6U3RyaW5nVXRpbDo6Ci0gICAgICAgICBnZXRTdHJpbmdCZXR3 ZWVuKGtleSwgbV9jdXJyX2xpbmUuY19zdHIoKSArIG1fY3Vycl9wb3MsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIGZpcnN0LCBzZWNvbmQpOwotLSAgICBpZiAoZXJyIDw9IDApIHsgICAgICAg IAotLSAgICAgICAgaWYgKG1fY3Vycl90b2tlbiA9PSBUWVBFKQotKyAgICBpZiAoZXJyIDw9IDAp IHsKLSsgICAgICAgIHN3aXRjaCAobV9jdXJyX3Rva2VuKSB7Ci0rICAgICAgICAgIGNhc2UgVFlQ RToKLSAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBOQU1FOwotLSAgICAgICAgZWxzZSBpZiAo bV9jdXJyX3Rva2VuID09IE5BTUUpCi0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgIGNh c2UgTkFNRToKLSAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBBUkdVTUVOVDsKLS0gICAgICAg IGVsc2UgaWYgKG1fY3Vycl90b2tlbiA9PSBBUkdVTUVOVCkKLSsgICAgICAgICAgICBicmVhazsK LSsgICAgICAgICAgY2FzZSBBUkdVTUVOVDoKLSAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBJ Q09OOwotLSAgICAgICAgZWxzZSBpZiAobV9jdXJyX3Rva2VuID09IElDT04pCi0rICAgICAgICAg ICAgYnJlYWs7Ci0rICAgICAgICAgIGNhc2UgSUNPTjoKLSAgICAgICAgICAgICBtX2N1cnJfdG9r ZW4gPSBET05FOwotKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgfQotIAotICAgICAgICAg b3V0ID0gRmJUazo6UGFyc2VyOjpzX2VtcHR5X2l0ZW07Ci0gICAgICAgICByZXR1cm4gKnRoaXM7 Ci1kaWZmIC0tZ2l0IGEvc3JjL1JlbWVtYmVyLmNjIGIvc3JjL1JlbWVtYmVyLmNjCi1pbmRleCA0 OWU2MTA2Mi4uNGYwYmEzZGIgMTAwNjQ0Ci0tLS0gYS9zcmMvUmVtZW1iZXIuY2MKLSsrKyBiL3Ny Yy9SZW1lbWJlci5jYwotQEAgLTgwMiwzOSArODAyLDQxIEBAIHZvaWQgUmVtZW1iZXI6OnJlbG9h ZCgpIHsKLSAgICAgICAgICAgICBpbnQgcG9zID0gZ2V0U3RyaW5nQmV0d2VlbihrZXksIGxpbmUu Y19zdHIoKSwgJ1snLCAnXScpOwotICAgICAgICAgICAgIHN0cmluZyBsY19rZXkgPSB0b0xvd2Vy KGtleSk7Ci0gCi0tICAgICAgICAgICAgaWYgKHBvcyA+IDAgJiYgKGxjX2tleSA9PSAiYXBwIiB8 fCBsY19rZXkgPT0gInRyYW5zaWVudCIpKSB7Ci0tICAgICAgICAgICAgICAgIENsaWVudFBhdHRl cm4gKnBhdCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxpbmUuY19zdHIoKSArIHBvcyk7Ci0tICAgICAg ICAgICAgICAgIGlmICghaW5fZ3JvdXApIHsKLS0gICAgICAgICAgICAgICAgICAgIGlmICgoZXJy ID0gcGF0LT5lcnJvcigpKSA9PSAwKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB0 cmFuc2llbnQgPSAobGNfa2V5ID09ICJ0cmFuc2llbnQiKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBBcHBsaWNhdGlvbiAqYXBwID0gZmluZE1hdGNoaW5nUGF0dGVybnMocGF0LAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX3BhdHMsIHRyYW5z aWVudCwgZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHApIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXBwLT5yZXNldCgpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXVzZWRfYXBwcy5pbnNlcnQoYXBwKTsKLSsgICAgICAgICAgICBpZiAocG9z ID4gMCkgewotKyAgICAgICAgICAgICAgICBpZiAobGNfa2V5ID09ICJhcHAiIHx8IGxjX2tleSA9 PSAidHJhbnNpZW50IikgewotKyAgICAgICAgICAgICAgICAgICAgQ2xpZW50UGF0dGVybiAqcGF0 ID0gbmV3IENsaWVudFBhdHRlcm4obGluZS5jX3N0cigpICsgcG9zKTsKLSsgICAgICAgICAgICAg ICAgICAgIGlmICghaW5fZ3JvdXApIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGVy ciA9IHBhdC0+ZXJyb3IoKSkgPT0gMCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIHRyYW5zaWVudCA9IChsY19rZXkgPT0gInRyYW5zaWVudCIpOwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBcHBsaWNhdGlvbiAqYXBwID0gZmluZE1hdGNoaW5nUGF0dGVybnMocGF0 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9s ZF9wYXRzLCB0cmFuc2llbnQsIGZhbHNlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKGFwcCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLT5yZXNldCgp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV1c2VkX2FwcHMuaW5zZXJ0KGFw cCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhcHAgPSBuZXcgQXBwbGljYXRpb24odHJhbnNpZW50LCBmYWxz ZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbV9wYXRzLT5wdXNoX2JhY2sobWFrZV9wYWlyKHBhdCwgYXBwKSk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJvdyArPSBwYXJzZUFwcChhcHBzX2ZpbGUsICphcHAp OwotICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFwcCA9IG5ldyBBcHBsaWNhdGlvbih0cmFuc2llbnQsIGZhbHNlKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2Vycjw8IkVycm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0 IGxpbmUgIjw8cm93PDwiLCBjb2x1bW4gIjw8KGVycitwb3MpPDwiLiI8PGVuZGw7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXQ7IC8vIHNpbmNlIGl0IGRpZG4ndCB3b3Jr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IG1fcGF0cy0+cHVzaF9iYWNrKG1ha2VfcGFpcihwYXQsIGFwcCkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIHJvdyArPSBwYXJzZUFwcChhcHBzX2ZpbGUsICphcHApOwotICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjZXJyPDwiRXJyb3Ig cmVhZGluZyBhcHBzIGZpbGUgYXQgbGluZSAiPDxyb3c8PCIsIGNvbHVtbiAiPDwoZXJyK3Bvcyk8 PCIuIjw8ZW5kbDsKLS0gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGF0OyAvLyBzaW5j ZSBpdCBkaWRuJ3Qgd29yawotKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwZWRfcGF0cy5w dXNoX2JhY2socGF0KTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg fSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgIGdyb3VwZWRfcGF0cy5wdXNoX2JhY2socGF0 KTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0gZWxzZSBpZiAocG9zID4gMCAm JiBsY19rZXkgPT0gInN0YXJ0dXAiICYmIGZiLmlzU3RhcnR1cCgpKSB7Ci0tICAgICAgICAgICAg ICAgIGlmICghaGFuZGxlU3RhcnR1cEl0ZW0obGluZSwgcG9zKSkgewotLSAgICAgICAgICAgICAg ICAgICAgY2Vycjw8IkVycm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLiI8 PGVuZGw7Ci0rICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGNfa2V5ID09ICJzdGFydHVwIiAm JiBmYi5pc1N0YXJ0dXAoKSkgewotKyAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVTdGFy dHVwSXRlbShsaW5lLCBwb3MpKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgY2Vycjw8IkVy cm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLiI8PGVuZGw7Ci0rICAgICAg ICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBpdGVtIGV2 ZW4gaWYgaXQgd2FzIGJhZCAoYXJlbid0IHdlIG5pY2UpCi0rICAgICAgICAgICAgICAgICAgICBt X3N0YXJ0dXBzLnB1c2hfYmFjayhsaW5lLnN1YnN0cihwb3MpKTsKLSsgICAgICAgICAgICAgICAg fSBlbHNlIGlmIChsY19rZXkgPT0gImdyb3VwIikgewotKyAgICAgICAgICAgICAgICAgICAgaW5f Z3JvdXAgPSB0cnVlOwotKyAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUuZmluZCgnKCcpICE9 IHN0cmluZzo6bnBvcykKLSsgICAgICAgICAgICAgICAgICAgICAgICBwYXQgPSBuZXcgQ2xpZW50 UGF0dGVybihsaW5lLmNfc3RyKCkgKyBwb3MpOwotICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgIC8vIHNhdmUgdGhlIGl0ZW0gZXZlbiBpZiBpdCB3YXMgYmFkIChhcmVuJ3Qgd2Ug bmljZSkKLS0gICAgICAgICAgICAgICAgbV9zdGFydHVwcy5wdXNoX2JhY2sobGluZS5zdWJzdHIo cG9zKSk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmIChwb3MgPiAwICYmIGxjX2tleSA9PSAiZ3Jv dXAiKSB7Ci0tICAgICAgICAgICAgICAgIGluX2dyb3VwID0gdHJ1ZTsKLS0gICAgICAgICAgICAg ICAgaWYgKGxpbmUuZmluZCgnKCcpICE9IHN0cmluZzo6bnBvcykKLS0gICAgICAgICAgICAgICAg ICAgIHBhdCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxpbmUuY19zdHIoKSArIHBvcyk7Ci0gICAgICAg ICAgICAgfSBlbHNlIGlmIChpbl9ncm91cCkgewotICAgICAgICAgICAgICAgICAvLyBvdGhlcndp c2UgYXNzdW1lIHRoYXQgaXQgaXMgdGhlIHN0YXJ0IG9mIHRoZSBhdHRyaWJ1dGVzCi0gICAgICAg ICAgICAgICAgIEFwcGxpY2F0aW9uICphcHAgPSAwOwotZGlmZiAtLWdpdCBhL3NyYy9TeXN0ZW1U cmF5LmNjIGIvc3JjL1N5c3RlbVRyYXkuY2MKLWluZGV4IDhjNDI4NzdhLi4xZmMyYjBhOCAxMDA2 NDQKLS0tLSBhL3NyYy9TeXN0ZW1UcmF5LmNjCi0rKysgYi9zcmMvU3lzdGVtVHJheS5jYwotQEAg LTU1MCwxMCArNTUwLDEyIEBAIHZvaWQgU3lzdGVtVHJheTo6cmVhcnJhbmdlQ2xpZW50cygpIHsK LSAgICAgQ2xpZW50TGlzdDo6aXRlcmF0b3IgY2xpZW50X2l0ID0gbV9jbGllbnRzLmJlZ2luKCk7 Ci0gICAgIENsaWVudExpc3Q6Oml0ZXJhdG9yIGNsaWVudF9pdF9lbmQgPSBtX2NsaWVudHMuZW5k KCk7Ci0gICAgIGludCBuZXh0X3ggPSBidzsKLSsgICAgaW50IHgsIHk7Ci0gICAgIGZvciAoOyBj bGllbnRfaXQgIT0gY2xpZW50X2l0X2VuZDsgKytjbGllbnRfaXQpIHsKLSAgICAgICAgIGlmICgh KCpjbGllbnRfaXQpLT5pc1Zpc2libGUoKSkKLSAgICAgICAgICAgICBjb250aW51ZTsKLS0gICAg ICAgIGludCB4ID0gbmV4dF94LCB5ID0gYnc7Ci0rICAgICAgICB4ID0gbmV4dF94OwotKyAgICAg ICAgeSA9IGJ3OwotICAgICAgICAgbmV4dF94ICs9IGhfcm90MCtidzsKLSAgICAgICAgIHRyYW5z bGF0ZUNvb3JkcyhvcmllbnRhdGlvbigpLCB4LCB5LCB3X3JvdDAsIGhfcm90MCk7Ci0gICAgICAg ICB0cmFuc2xhdGVQb3NpdGlvbihvcmllbnRhdGlvbigpLCB4LCB5LCBoX3JvdDAsIGhfcm90MCwg MCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL1dpbmRvdy5jYyBiL3NyYy9XaW5kb3cuY2MKLWluZGV4IDM0 MmU0ODg1Li43MTNkMTUxMCAxMDA2NDQKLS0tLSBhL3NyYy9XaW5kb3cuY2MKLSsrKyBiL3NyYy9X aW5kb3cuY2MKLUBAIC0zMjY3LDE0ICszMjY3LDE4IEBAIHZvaWQgRmx1eGJveFdpbmRvdzo6ZG9T bmFwcGluZyhpbnQgJm9yaWdfbGVmdCwgaW50ICZvcmlnX3RvcCwgYm9vbCByZXNpemUpIHsKLSBG bHV4Ym94V2luZG93OjpSZWZlcmVuY2VDb3JuZXIgRmx1eGJveFdpbmRvdzo6Z2V0UmVzaXplRGly ZWN0aW9uKGludCB4LCBpbnQgeSwKLSAgICAgICAgIFJlc2l6ZU1vZGVsIG1vZGVsLCBpbnQgY29y bmVyX3NpemVfcHgsIGludCBjb3JuZXJfc2l6ZV9wYykgY29uc3QKLSB7Ci0tICAgIGlmIChtb2Rl bCA9PSBUT1BMRUZUUkVTSVpFKSAgICAgcmV0dXJuIExFRlRUT1A7Ci0tICAgIGlmIChtb2RlbCA9 PSBUT1BSRVNJWkUpICAgICAgICAgcmV0dXJuIFRPUDsKLS0gICAgaWYgKG1vZGVsID09IFRPUFJJ R0hUUkVTSVpFKSAgICByZXR1cm4gUklHSFRUT1A7Ci0tICAgIGlmIChtb2RlbCA9PSBMRUZUUkVT SVpFKSAgICAgICAgcmV0dXJuIExFRlQ7Ci0tICAgIGlmIChtb2RlbCA9PSBSSUdIVFJFU0laRSkg ICAgICAgcmV0dXJuIFJJR0hUOwotLSAgICBpZiAobW9kZWwgPT0gQk9UVE9NTEVGVFJFU0laRSkg IHJldHVybiBMRUZUQk9UVE9NOwotLSAgICBpZiAobW9kZWwgPT0gQk9UVE9NUkVTSVpFKSAgICAg IHJldHVybiBCT1RUT007Ci0tICAgIGlmIChtb2RlbCA9PSBDRU5URVJSRVNJWkUpICAgICAgcmV0 dXJuIENFTlRFUjsKLSsgICAgc3dpdGNoIChtb2RlbCkgewotKyAgICBjYXNlIFRPUExFRlRSRVNJ WkU6ICAgICByZXR1cm4gTEVGVFRPUDsKLSsgICAgY2FzZSBUT1BSRVNJWkU6ICAgICAgICAgcmV0 dXJuIFRPUDsKLSsgICAgY2FzZSBUT1BSSUdIVFJFU0laRTogICAgcmV0dXJuIFJJR0hUVE9QOwot KyAgICBjYXNlIExFRlRSRVNJWkU6ICAgICAgICByZXR1cm4gTEVGVDsKLSsgICAgY2FzZSBSSUdI VFJFU0laRTogICAgICAgcmV0dXJuIFJJR0hUOwotKyAgICBjYXNlIEJPVFRPTUxFRlRSRVNJWkU6 ICByZXR1cm4gTEVGVEJPVFRPTTsKLSsgICAgY2FzZSBCT1RUT01SRVNJWkU6ICAgICAgcmV0dXJu IEJPVFRPTTsKLSsgICAgY2FzZSBDRU5URVJSRVNJWkU6ICAgICAgcmV0dXJuIENFTlRFUjsKLSsg ICAgZGVmYXVsdDoKLSsgICAgYnJlYWs7Ci0rICAgIH0KLSAKLSAgICAgaWYgKG1vZGVsID09IEVE R0VPUkNPUk5FUlJFU0laRSkKLSAgICAgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3Bh dGNoZXMvZmx1eF9vdmVyc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhf b3ZlcnNpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4ZDcwZDNiMDM3 ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhfb3ZlcnNp emUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3Jj L1dpbmRvdy5jYyBiL3NyYy9XaW5kb3cuY2MKLWluZGV4IDM0MmU0ODg1Li4wMmQxMGU5MCAxMDA2 NDQKLS0tLSBhL3NyYy9XaW5kb3cuY2MKLSsrKyBiL3NyYy9XaW5kb3cuY2MKLUBAIC01MzIsMTkg KzUzMiwxNCBAQCB2b2lkIEZsdXhib3hXaW5kb3c6OmluaXQoKSB7Ci0gICAgIGlmICghbV9zdGF0 ZS5mdWxsc2NyZWVuKSB7Ci0gICAgICAgICB1bnNpZ25lZCBpbnQgbmV3X3dpZHRoID0gMCwgbmV3 X2hlaWdodCA9IDA7Ci0gICAgICAgICBpZiAobV9jbGllbnQtPndpZHRoKCkgPj0gc2NyZWVuKCku d2lkdGgoKSkgewotLSAgICAgICAgICAgIG1fc3RhdGUubWF4aW1pemVkIHw9IFdpbmRvd1N0YXRl OjpNQVhfSE9SWjsKLSAgICAgICAgICAgICBuZXdfd2lkdGggPSAyICogc2NyZWVuKCkud2lkdGgo KSAvIDM7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAobV9jbGllbnQtPmhlaWdodCgpID49IHNj cmVlbigpLmhlaWdodCgpKSB7Ci0tICAgICAgICAgICAgbV9zdGF0ZS5tYXhpbWl6ZWQgfD0gV2lu ZG93U3RhdGU6Ok1BWF9WRVJUOwotICAgICAgICAgICAgIG5ld19oZWlnaHQgPSAyICogc2NyZWVu KCkuaGVpZ2h0KCkgLyAzOwotICAgICAgICAgfQotICAgICAgICAgaWYgKG5ld193aWR0aCB8fCBu ZXdfaGVpZ2h0KSB7Ci0tICAgICAgICAgICAgY29uc3QgaW50IG1heGltaXplZCA9IG1fc3RhdGUu bWF4aW1pemVkOwotLSAgICAgICAgICAgIG1fc3RhdGUubWF4aW1pemVkID0gV2luZG93U3RhdGU6 Ok1BWF9OT05FOwotICAgICAgICAgICAgIHJlc2l6ZShuZXdfd2lkdGggPyBuZXdfd2lkdGggOiB3 aWR0aCgpLCBuZXdfaGVpZ2h0ID8gbmV3X2hlaWdodCA6IGhlaWdodCgpKTsKLSAgICAgICAgICAg ICBtX3BsYWNlZCA9IGZhbHNlOwotLSAgICAgICAgICAgIG1fc3RhdGUubWF4aW1pemVkID0gbWF4 aW1pemVkOwotICAgICAgICAgfQotICAgICB9Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhi b3gvcGF0Y2hlcy9mb2N1c19jbG9zZV9tZW51LnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvZm9jdXNfY2xvc2VfbWVudS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDE4MzBjZjUzNDYwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMv Zm9jdXNfY2xvc2VfbWVudS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLWRp ZmYgLS1naXQgYS9zcmMvRm9jdXNDb250cm9sLmNjIGIvc3JjL0ZvY3VzQ29udHJvbC5jYwotaW5k ZXggNTRjM2Q0NmMuLjdlNDlmZjUxIDEwMDY0NAotLS0tIGEvc3JjL0ZvY3VzQ29udHJvbC5jYwot KysrIGIvc3JjL0ZvY3VzQ29udHJvbC5jYwotQEAgLTI0NywxMSArMjQ3LDcgQEAgdm9pZCBGb2N1 c0NvbnRyb2w6OnN0b3BDeWNsaW5nRm9jdXMoKSB7Ci0gCi0gICAgIC8vIHB1dCBjdXJyZW50bHkg Zm9jdXNlZCB3aW5kb3cgdG8gdG9wCi0gICAgIGlmIChzX2ZvY3VzZWRfd2luZG93KSB7Ci0tICAg ICAgICAvLyByZS1mb2N1cyBsYXN0IHdpbmRvdyB0byBnaXZlIHRoZSBjbGllbnQgYSBjaGFuY2Ug dG8gcmVkaXN0cmlidXRlIHRoZQotLSAgICAgICAgLy8gZm9jdXMgaW50ZXJuYWxseSAoY2xpZW50 LXNpZGUgb25seSBtb2RhbGl0eSkKLS0gICAgICAgIHNfZm9jdXNlZF93aW5kb3ctPmZvY3VzKCk7 Ci0tICAgICAgICBpZiAoc19mb2N1c2VkX3dpbmRvdykKLS0gICAgICAgICAgICBzZXRTY3JlZW5G b2N1c2VkV2luZG93KCpzX2ZvY3VzZWRfd2luZG93KTsKLSsgICAgICAgIHNldFNjcmVlbkZvY3Vz ZWRXaW5kb3coKnNfZm9jdXNlZF93aW5kb3cpOwotICAgICAgICAgaWYgKHNfZm9jdXNlZF9mYndp bmRvdykKLSAgICAgICAgICAgICBzX2ZvY3VzZWRfZmJ3aW5kb3ctPnJhaXNlKCk7Ci0gICAgIH0g ZWxzZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvc2xpdF9yYWlzZS5wYXRj aCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2UucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGEzYmMwMWM3YWM4NS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvZmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2UucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx NiArMCwwIEBACi1kaWZmIC0tZ2l0IGEvc3JjL1NsaXQuY2MgYi9zcmMvU2xpdC5jYwotaW5kZXgg OWJhZWNmMjEuLjYzZWQ4MjY5IDEwMDY0NAotLS0tIGEvc3JjL1NsaXQuY2MKLSsrKyBiL3NyYy9T bGl0LmNjCi1AQCAtOTU4LDggKzk1OCw4IEBAIHZvaWQgU2xpdDo6YnV0dG9uUHJlc3NFdmVudChY QnV0dG9uRXZlbnQgJmJlKSB7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLQotLSAgICBpZiAo YmUuYnV0dG9uID09IDEpCi0tICAgICAgICBmcmFtZS53aW5kb3cucmFpc2UoKTsKLSsgICAgLy9p ZiAoYmUuYnV0dG9uID09IDEpCi0rICAgIC8vICAgIGZyYW1lLndpbmRvdy5yYWlzZSgpOwotCi0g ICAgIGlmIChiZS5idXR0b24gIT0gQnV0dG9uMykgewotICAgICAgICAgWEFsbG93RXZlbnRzKGRw eSwgUmVwbGF5UG9pbnRlciwgQ3VycmVudFRpbWUpOwotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy90b29sYmFyX3JlZG8ucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hl cy90b29sYmFyX3JlZG8ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhOTU0 ODY1ODNjZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3Rvb2xi YXJfcmVkby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIyOCArMCwwIEBACi1kaWZmIC0tZ2l0 IGEvc3JjL1Rvb2xiYXIuY2MgYi9zcmMvVG9vbGJhci5jYwotaW5kZXggYWE5YmMxMjEuLmVlOGI4 YmZjIDEwMDY0NAotLS0tIGEvc3JjL1Rvb2xiYXIuY2MKLSsrKyBiL3NyYy9Ub29sYmFyLmNjCi1A QCAtNzQsNyArNzQsNyBAQCB1c2luZyBGYlRrOjpTVExVdGlsOjpmb3JBbGw7Ci0gCi0gbmFtZXNw YWNlIHsKLSAKLS1jb25zdCBzdHJ1Y3QgeyAKLStjb25zdCBzdHJ1Y3QgewotICAgICBUb29sYmFy OjpQbGFjZW1lbnQgcGxhY2VtZW50OwotICAgICBjb25zdCBjaGFyKiBzdHI7Ci0gICAgIEZiVGs6 Ok9yaWVudGF0aW9uIG9yaWVudDsKLUBAIC0zNjIsMTMgKzM2MiwxNiBAQCB2b2lkIFRvb2xiYXI6 Omxvd2VyKCkgewotIH0KLSAKLSB2b2lkIFRvb2xiYXI6OnNjcmVlbkNoYW5nZWQoQlNjcmVlbiAm c2NyZWVuKSB7Ci0tICAgIHJlY29uZmlndXJlKCk7Ci0rICAgIC8vcmVjb25maWd1cmUoKTsKLSB9 Ci0gCi0gdm9pZCBUb29sYmFyOjpyZWxheW91dCgpIHsKLS0gICAgZm9yQWxsKG1faXRlbV9saXN0 LCBzdGQ6Om1lbV9mdW4oJlRvb2xiYXJJdGVtOjp1cGRhdGVTaXppbmcpKTsKLS0gICAgcmVhcnJh bmdlSXRlbXMoKTsKLS0gICAgZm9yQWxsKG1faXRlbV9saXN0LCBzdGQ6OmJpbmQybmQoc3RkOjpt ZW1fZnVuKCZUb29sYmFySXRlbTo6cmVuZGVyVGhlbWUpLCBhbHBoYSgpKSk7Ci0rICAgIC8vZm9y IChhdXRvIGl0IDogbV9pdGVtX2xpc3QpICAgICgqaXRlbV9pdCktPnVwZGF0ZVNpemluZygpOwot KyAgICAvL3JlYXJyYW5nZUl0ZW1zKCk7Ci0rICAgIC8vZm9yIChhdXRvIGl0IDogbV9pdGVtX2xp c3QpICAgICgqaXRlbV9pdCktPnJlbmRlclRoZW1lKGFscGhhKCkpOwotKyAgICAvL2ZvckFsbCht X2l0ZW1fbGlzdCwgc3RkOjptZW1fZnVuKCZUb29sYmFySXRlbTo6dXBkYXRlU2l6aW5nKSk7Ci0r ICAgIC8vcmVhcnJhbmdlSXRlbXMoKTsKLSsgICAgLy9mb3JBbGwobV9pdGVtX2xpc3QsIHN0ZDo6 YmluZDJuZChzdGQ6Om1lbV9mdW4oJlRvb2xiYXJJdGVtOjpyZW5kZXJUaGVtZSksIGFscGhhKCkp KTsKLSB9Ci0gCi0gdm9pZCBUb29sYmFyOjpyZWNvbmZpZ3VyZSgpIHsKLUBAIC01NTcsMTIgKzU2 MCwxNiBAQCB2b2lkIFRvb2xiYXI6OmJ1dHRvblByZXNzRXZlbnQoWEJ1dHRvbkV2ZW50ICZiZSkg ewotIH0KLSAKLSB2b2lkIFRvb2xiYXI6OnVwZGF0ZUNyb3NzaW5nU3RhdGUoKSB7Ci0tICAgIFdp bmRvdyB3ciwgd2M7Ci0tICAgIGludCByeCwgcnksIHgsIHk7Ci0rICAgIC8vV2luZG93IHdyLCB3 YzsKLSsgICAgLy9pbnQgcngsIHJ5LCB4LCB5OwotKyAgICAvL3Vuc2lnbmVkIGludCBtYXNrOwot KyAgICBXaW5kb3cgd3JjOwotKyAgICBpbnQgcnh5LCB4LCB5OwotICAgICB1bnNpZ25lZCBpbnQg bWFzazsKLSAgICAgY29uc3QgaW50IGJ3ID0gLXRoZW1lKCktPmJvcmRlcigpLndpZHRoKCk7Ci0g ICAgIGJvb2wgaG92ZXJlZCA9IGZhbHNlOwotLSAgICBpZiAoWFF1ZXJ5UG9pbnRlcihGbHV4Ym94 OjppbnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbmRvdygpLndpbmRvdygpLCAmd3IsICZ3YywgJnJ4 LCAmcnksICZ4LCAmeSwgJm1hc2spKQotKyAgICAvL2lmIChYUXVlcnlQb2ludGVyKEZsdXhib3g6 Omluc3RhbmNlKCktPmRpc3BsYXkoKSwgd2luZG93KCkud2luZG93KCksICZ3ciwgJndjLCAmcngs ICZyeSwgJngsICZ5LCAmbWFzaykpCi0rICAgIGlmIChYUXVlcnlQb2ludGVyKEZsdXhib3g6Omlu c3RhbmNlKCktPmRpc3BsYXkoKSwgd2luZG93KCkud2luZG93KCksICZ3cmMsICZ3cmMsICZyeHks ICZyeHksICZ4LCAmeSwgJm1hc2spKQotICAgICAgICAgaG92ZXJlZCA9IHggPj0gYncgJiYgeSA+ PSBidyAmJiB4IDwgaW50KHdpZHRoKCkpICYmIHkgPCBpbnQoaGVpZ2h0KCkpOwotICAgICBpZiAo aG92ZXJlZCkgewotICAgICAgICAgaWYgKG1fcmNfYXV0b19yYWlzZSkKLUBAIC05MTAsMjUgKzkx NywyNiBAQCB2b2lkIFRvb2xiYXI6OnJlYXJyYW5nZUl0ZW1zKCkgewotICAgICAvLyBsb2NrIHRo aXMKLSAgICAgbV9yZXNpemVfbG9jayA9IHRydWU7Ci0gICAgIC8vIGNhbGN1bGF0ZSBzaXplIGZv ciBmaXhlZCBpdGVtcwotLSAgICBJdGVtTGlzdDo6aXRlcmF0b3IgaXRlbV9pdCA9IG1faXRlbV9s aXN0LmJlZ2luKCk7Ci0tICAgIEl0ZW1MaXN0OjppdGVyYXRvciBpdGVtX2l0X2VuZCA9IG1faXRl bV9saXN0LmVuZCgpOwotKyAgICAvL0l0ZW1MaXN0OjppdGVyYXRvciBpdGVtX2l0ID0gbV9pdGVt X2xpc3QuYmVnaW4oKTsKLSsgICAgLy9JdGVtTGlzdDo6aXRlcmF0b3IgaXRlbV9pdF9lbmQgPSBt X2l0ZW1fbGlzdC5lbmQoKTsKLSAgICAgaW50IGJldmVsX3dpZHRoID0gdGhlbWUoKS0+YmV2ZWxX aWR0aCgpOwotICAgICBpbnQgZml4ZWRfd2lkdGggPSBiZXZlbF93aWR0aDsgLy8gY29tYmluZWQg c2l6ZSBvZiBhbGwgZml4ZWQgaXRlbXMKLSAgICAgaW50IHJlbGF0aXZlX3dpZHRoID0gMDsgLy8g Y29tYmluZWQgKmRlc2lyZWQqIHNpemUgb2YgYWxsIHJlbGF0aXZlIGl0ZW1zCi0tICAgIGludCBz dHJldGNoX2l0ZW1zID0gMDsKLSAgICAgaW50IHJlbGF0aXZlX2l0ZW1zID0gMDsKLSAgICAgaW50 IGxhc3RfYncgPSAwOyAvLyB3ZSBzaG93IHRoZSBsYXJnZXN0IGJvcmRlciBvZiBhZGpvaW5pbmcg aXRlbXMKLSAgICAgYm9vbCBmaXJzdCA9IHRydWU7Ci0rICAgIGludCBsZWZ0b3Zlcl93aWR0aCA9 IDA7Ci0gCi0gICAgIHVuc2lnbmVkIGludCB3aWR0aCA9IHRoaXMtPndpZHRoKCksIGhlaWdodCA9 IHRoaXMtPmhlaWdodCgpOwotICAgICB1bnNpZ25lZCBpbnQgdG1wdywgdG1waDsKLSAgICAgRmJU azo6dHJhbnNsYXRlU2l6ZShvcmllbnQsIHdpZHRoLCBoZWlnaHQpOwotIAotLSAgICBmb3IgKDsg aXRlbV9pdCAhPSBpdGVtX2l0X2VuZDsgKytpdGVtX2l0KSB7Ci0tICAgICAgICBpZiAoISgqaXRl bV9pdCktPmFjdGl2ZSgpKQotKyAgICAvL2ZvciAoOyBpdGVtX2l0ICE9IGl0ZW1faXRfZW5kOyAr K2l0ZW1faXQpIHsKLSsgICAgZm9yIChhdXRvIGl0ZW1faXQgOiBtX2l0ZW1fbGlzdCkgewotKyAg ICAgICAgaWYgKCEoKml0ZW1faXQpLmFjdGl2ZSgpKQotICAgICAgICAgICAgIGNvbnRpbnVlOwot IAotLSAgICAgICAgaW50IGJvcmRlclcgPSAoKml0ZW1faXQpLT5ib3JkZXJXaWR0aCgpOwotKyAg ICAgICAgaW50IGJvcmRlclcgPSAoKml0ZW1faXQpLmJvcmRlcldpZHRoKCk7Ci0gCi0gICAgICAg ICBpZiAoYmV2ZWxfd2lkdGggPiAwKSB7Ci0gICAgICAgICAgICAgLy8gdGhlIGJldmVsIGFuZCBi b3JkZXIgYXJlIGZpeGVkIHdoZXRoZXIgcmVsYXRpdmUgb3Igbm90Ci1AQCAtOTQzLDM1ICs5NTEs MzUgQEAgdm9pZCBUb29sYmFyOjpyZWFycmFuZ2VJdGVtcygpIHsKLSAKLSAgICAgICAgIGxhc3Rf YncgPSBib3JkZXJXOwotIAotLSAgICAgICAgdG1wdyA9ICgqaXRlbV9pdCktPnByZWZlcnJlZFdp ZHRoKCk7Ci0tICAgICAgICB0bXBoID0gKCppdGVtX2l0KS0+aGVpZ2h0KCk7Ci0rICAgICAgICB0 bXB3ID0gKCppdGVtX2l0KS5wcmVmZXJyZWRXaWR0aCgpOwotKyAgICAgICAgdG1waCA9ICgqaXRl bV9pdCkuaGVpZ2h0KCk7Ci0gICAgICAgICBGYlRrOjp0cmFuc2xhdGVTaXplKG9yaWVudCwgdG1w dywgdG1waCk7Ci0gCi0tICAgICAgICBpZiAoKCppdGVtX2l0KS0+dHlwZSgpID09IFRvb2xiYXJJ dGVtOjpGSVhFRCkgewotLSAgICAgICAgICAgIGZpeGVkX3dpZHRoICs9IHRtcHc7Ci0tICAgICAg ICB9IGVsc2UgaWYgKCgqaXRlbV9pdCktPnR5cGUoKSA9PSBUb29sYmFySXRlbTo6U1FVQVJFKSB7 Ci0tICAgICAgICAgICAgZml4ZWRfd2lkdGggKz0gaGVpZ2h0OwotLSAgICAgICAgICAgIGlmIChi ZXZlbF93aWR0aCkKLS0gICAgICAgICAgICAgICAgZml4ZWRfd2lkdGggLT0gMiooYm9yZGVyVyAr IGJldmVsX3dpZHRoKTsKLS0gICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgKytyZWxhdGl2 ZV9pdGVtczsKLS0gICAgICAgICAgICByZWxhdGl2ZV93aWR0aCArPSB0bXB3OwotLSAgICAgICAg ICAgIGlmICghdG1wdykKLS0gICAgICAgICAgICAgICAgKytzdHJldGNoX2l0ZW1zOwotKyAgICAg ICAgc3dpdGNoICggKCppdGVtX2l0KS50eXBlKCkgKSB7Ci0rICAgICAgICAgICAgY2FzZSBUb29s YmFySXRlbTo6RklYRUQ6Ci0rICAgICAgICAgICAgICAgIGZpeGVkX3dpZHRoICs9IHRtcHc7Ci0r ICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIGNhc2UgVG9vbGJhckl0ZW06OlNR VUFSRToKLSsgICAgICAgICAgICAgICAgZml4ZWRfd2lkdGggKz0gaGVpZ2h0OwotKyAgICAgICAg ICAgICAgICBpZiAoYmV2ZWxfd2lkdGgpCi0rICAgICAgICAgICAgICAgICAgICBmaXhlZF93aWR0 aCAtPSAyKihib3JkZXJXICsgYmV2ZWxfd2lkdGgpOwotKyAgICAgICAgICAgICAgICBicmVhazsK LSsgICAgICAgICAgICBjYXNlIFRvb2xiYXJJdGVtOjpSRUxBVElWRToKLSsgICAgICAgICAgICAg ICAgKytyZWxhdGl2ZV9pdGVtczsKLSsgICAgICAgICAgICAgICAgcmVsYXRpdmVfd2lkdGggKz0g dG1wdzsKLSsgICAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgZGVmYXVsdDoKLSsg ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLSAgICAgLy8gY2Fs Y3VsYXRlIHdoYXQncyBnb2luZyB0byBiZSBsZWZ0IG92ZXIgdG8gdGhlIHJlbGF0aXZlIHNpemVk IGl0ZW1zCi0tICAgIGZsb2F0IHN0cmV0Y2hfZmFjdG9yID0gMS4wZjsKLSAgICAgaWYgKHJlbGF0 aXZlX2l0ZW1zKSB7Ci0tICAgICAgICBpZiAocmVsYXRpdmVfd2lkdGggPD0gd2lkdGggLSBmaXhl ZF93aWR0aCAmJiBzdHJldGNoX2l0ZW1zKSB7Ci0tICAgICAgICAgICAgcmVsYXRpdmVfd2lkdGgg PSBpbnQod2lkdGggLSBmaXhlZF93aWR0aCAtIHJlbGF0aXZlX3dpZHRoKS9zdHJldGNoX2l0ZW1z OwotLSAgICAgICAgfSBlbHNlIGlmIChyZWxhdGl2ZV93aWR0aCkgewotLSAgICAgICAgICAgIHN0 cmV0Y2hfZmFjdG9yID0gZmxvYXQod2lkdGggLSBmaXhlZF93aWR0aCkvcmVsYXRpdmVfd2lkdGg7 Ci0tICAgICAgICAgICAgcmVsYXRpdmVfd2lkdGggPSAwOwotLSAgICAgICAgfQotKyAgICAgICAg cmVsYXRpdmVfd2lkdGggPSAod2lkdGggLSBmaXhlZF93aWR0aCkgLyByZWxhdGl2ZV9pdGVtczsK LSsgICAgICAgIGxlZnRvdmVyX3dpZHRoID0gd2lkdGggLSBmaXhlZF93aWR0aCAtIHJlbGF0aXZl X2l0ZW1zICogcmVsYXRpdmVfd2lkdGg7Ci0gICAgIH0KLSAKLSsKLSAgICAgLy8gbm93IG1vdmUg YW5kIHJlc2l6ZSB0aGUgaXRlbXMKLSAgICAgLy8gYm9yZGVyV2lkdGggYWRkZWQgYmFjayBvbiBz dHJhaWdodCBhd2F5Ci0gICAgIGludCBuZXh0X3ggPSAtbV9pdGVtX2xpc3QuZnJvbnQoKS0+Ym9y ZGVyV2lkdGgoKTsgLy8gbGlzdCBpc24ndCBlbXB0eQotQEAgLTk3OSwxOSArOTg3LDIyIEBAIHZv aWQgVG9vbGJhcjo6cmVhcnJhbmdlSXRlbXMoKSB7Ci0gICAgICAgICBuZXh0X3ggPSAwOwotIAot ICAgICBsYXN0X2J3ID0gMDsKLS0gICAgZm9yIChpdGVtX2l0ID0gbV9pdGVtX2xpc3QuYmVnaW4o KTsgaXRlbV9pdCAhPSBpdGVtX2l0X2VuZDsgKytpdGVtX2l0KSB7Ci0tICAgICAgICBpbnQgYm9y ZGVyVyA9ICgqaXRlbV9pdCktPmJvcmRlcldpZHRoKCk7Ci0tICAgICAgICBpZiAoISgqaXRlbV9p dCktPmFjdGl2ZSgpKSB7Ci0tICAgICAgICAgICAgKCppdGVtX2l0KS0+aGlkZSgpOwotKyAgICBp bnQgYm9yZGVyVywgb2Zmc2V0LCBzaXplX29mZnNldCwgdG1weCwgdG1weTsKLSsKLSsgICAgLy9m b3IgKGl0ZW1faXQgPSBtX2l0ZW1fbGlzdC5iZWdpbigpOyBpdGVtX2l0ICE9IGl0ZW1faXRfZW5k OyArK2l0ZW1faXQpIHsKLSsgICAgZm9yIChhdXRvIGl0ZW1faXQgOiBtX2l0ZW1fbGlzdCkgewot KyAgICAgICAgYm9yZGVyVyA9ICgqaXRlbV9pdCkuYm9yZGVyV2lkdGgoKTsKLSsgICAgICAgIGlm ICghKCppdGVtX2l0KS5hY3RpdmUoKSkgewotKyAgICAgICAgICAgICgqaXRlbV9pdCkuaGlkZSgp OwotICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBpdCBzdGlsbCBnZXRzIHRvbGQgdGhlIHRvb2xi YXIgaGVpZ2h0Ci0gICAgICAgICAgICAgdG1wdyA9IDE7IHRtcGggPSBoZWlnaHQgLSAyKihiZXZl bF93aWR0aCtib3JkZXJXKTsKLSAgICAgICAgICAgICBpZiAodG1waCA+PSAoMTw8MzApKSB0bXBo ID0gMTsKLSAgICAgICAgICAgICBGYlRrOjp0cmFuc2xhdGVTaXplKG9yaWVudCwgdG1wdywgdG1w aCk7Ci0tICAgICAgICAgICAgKCppdGVtX2l0KS0+cmVzaXplKHRtcHcsIHRtcGgpOyAgLy8gd2lk dGggb2YgMCBjaGFuZ2VzIHRvIDEgYW55d2F5Ci0rICAgICAgICAgICAgKCppdGVtX2l0KS5yZXNp emUodG1wdywgdG1waCk7ICAvLyB3aWR0aCBvZiAwIGNoYW5nZXMgdG8gMSBhbnl3YXkKLSAgICAg ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgIH0KLS0gICAgICAgIGludCBvZmZzZXQgPSBiZXZl bF93aWR0aDsKLS0gICAgICAgIGludCBzaXplX29mZnNldCA9IDIqKGJvcmRlclcgKyBiZXZlbF93 aWR0aCk7Ci0rICAgICAgICBvZmZzZXQgPSBiZXZlbF93aWR0aDsKLSsgICAgICAgIHNpemVfb2Zm c2V0ID0gMiooYm9yZGVyVyArIGJldmVsX3dpZHRoKTsKLSAKLSAgICAgICAgIGlmIChiZXZlbF93 aWR0aCA9PSAwKSB7Ci0gICAgICAgICAgICAgb2Zmc2V0ID0gLWJvcmRlclc7Ci1AQCAtMTAwMCwy MiArMTAxMSwyOCBAQCB2b2lkIFRvb2xiYXI6OnJlYXJyYW5nZUl0ZW1zKCkgewotICAgICAgICAg fQotICAgICAgICAgbGFzdF9idyA9IGJvcmRlclc7Ci0gCi0tICAgICAgICBpbnQgdG1weCA9IG5l eHRfeCArIG9mZnNldCwKLS0gICAgICAgICAgICB0bXB5ID0gb2Zmc2V0OwotLQotLSAgICAgICAg aWYgKCgqaXRlbV9pdCktPnR5cGUoKSA9PSBUb29sYmFySXRlbTo6UkVMQVRJVkUpIHsKLS0gICAg ICAgICAgICB1bnNpZ25lZCBpbnQgaXRlbXcgPSAoKml0ZW1faXQpLT5wcmVmZXJyZWRXaWR0aCgp LCBpdGVtaCA9ICgqaXRlbV9pdCktPmhlaWdodCgpOwotLSAgICAgICAgICAgIEZiVGs6OnRyYW5z bGF0ZVNpemUob3JpZW50LCBpdGVtdywgaXRlbWgpOwotLSAgICAgICAgICAgIHRtcHcgPSBpdGVt dyA/IHN0ZDo6Zmxvb3Ioc3RyZXRjaF9mYWN0b3IgKiBpdGVtdykgOiByZWxhdGl2ZV93aWR0aDsK LS0gICAgICAgICAgICB0bXBoID0gaGVpZ2h0IC0gc2l6ZV9vZmZzZXQ7Ci0tICAgICAgICB9IGVs c2UgaWYgKCgqaXRlbV9pdCktPnR5cGUoKSA9PSBUb29sYmFySXRlbTo6U1FVQVJFKSB7Ci0tICAg ICAgICAgICAgdG1wdyA9IHRtcGggPSBoZWlnaHQgLSBzaXplX29mZnNldDsKLS0gICAgICAgIH0g ZWxzZSB7IC8vIGZpeGVkIHNpemUKLS0gICAgICAgICAgICB1bnNpZ25lZCBpbnQgaXRlbXcgPSAo Kml0ZW1faXQpLT53aWR0aCgpLCBpdGVtaCA9ICgqaXRlbV9pdCktPmhlaWdodCgpOwotLSAgICAg ICAgICAgIEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCBpdGVtdywgaXRlbWgpOwotLSAgICAg ICAgICAgIHRtcHcgPSBpdGVtdzsKLS0gICAgICAgICAgICB0bXBoID0gaGVpZ2h0IC0gc2l6ZV9v ZmZzZXQ7Ci0rICAgICAgICB0bXB4ID0gbmV4dF94ICsgb2Zmc2V0LAotKyAgICAgICAgdG1weSA9 IG9mZnNldDsKLSsgICAgICAgIHRtcGggPSBoZWlnaHQgLSBzaXplX29mZnNldDsKLSsKLSsgICAg ICAgIHN3aXRjaCAoICgqaXRlbV9pdCkudHlwZSgpICkgewotKyAgICAgICAgICAgIGNhc2UgVG9v bGJhckl0ZW06OlNRVUFSRToKLSsgICAgICAgICAgICAgICAgdG1wdyA9IHRtcGg7Ci0rICAgICAg ICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIGNhc2UgVG9vbGJhckl0ZW06OlJFTEFUSVZF OgotKyAgICAgICAgICAgICAgICB0bXB3ID0gcmVsYXRpdmVfd2lkdGg7Ci0rICAgICAgICAgICAg ICAgIGlmIChsZWZ0b3Zlcl93aWR0aCkgewotKyAgICAgICAgICAgICAgICAgICAgLS1sZWZ0b3Zl cl93aWR0aDsKLSsgICAgICAgICAgICAgICAgICAgICsrdG1wdzsKLSsgICAgICAgICAgICAgICAg fQotKyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICBjYXNlIFRvb2xiYXJJdGVt OjpGSVhFRDoKLSsgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGl0ZW13ID0gKCppdGVtX2l0 KS53aWR0aCgpLCBpdGVtaCA9ICgqaXRlbV9pdCkuaGVpZ2h0KCk7Ci0rICAgICAgICAgICAgICAg IEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCBpdGVtdywgaXRlbWgpOwotKyAgICAgICAgICAg ICAgICB0bXB3ID0gaXRlbXc7Ci0rICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQot KwotICAgICAgICAgaWYgKHRtcHcgPj0gKDE8PDMwKSkgdG1wdyA9IDE7Ci0gICAgICAgICBpZiAo dG1waCA+PSAoMTw8MzApKSB0bXBoID0gMTsKLSAgICAgICAgIG5leHRfeCArPSB0bXB3ICsgYmV2 ZWxfd2lkdGg7Ci1AQCAtMTAyNSw4ICsxMDQyLDggQEAgdm9pZCBUb29sYmFyOjpyZWFycmFuZ2VJ dGVtcygpIHsKLSAgICAgICAgIEZiVGs6OnRyYW5zbGF0ZUNvb3JkcyhvcmllbnQsIHRtcHgsIHRt cHksIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgRmJUazo6dHJhbnNsYXRlUG9zaXRpb24ob3Jp ZW50LCB0bXB4LCB0bXB5LCB0bXB3LCB0bXBoLCBib3JkZXJXKTsKLSAgICAgICAgIEZiVGs6OnRy YW5zbGF0ZVNpemUob3JpZW50LCB0bXB3LCB0bXBoKTsKLS0gICAgICAgICgqaXRlbV9pdCktPm1v dmVSZXNpemUodG1weCwgdG1weSwgdG1wdywgdG1waCk7Ci0tICAgICAgICAoKml0ZW1faXQpLT5z aG93KCk7Ci0rICAgICAgICAoKml0ZW1faXQpLm1vdmVSZXNpemUodG1weCwgdG1weSwgdG1wdywg dG1waCk7Ci0rICAgICAgICAvLygqaXRlbV9pdCkuc2hvdygpOwotIAotICAgICB9Ci0gICAgIC8v IHVubG9jawpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvdHJlbW9yX2dyYWJv aWRfaGVsbC5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hl bGwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4OWEzMTQ2MDdiZC4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hl bGwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNTAgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3Ny Yy9GYlRrL0V2ZW50TWFuYWdlci5jYyBiL3NyYy9GYlRrL0V2ZW50TWFuYWdlci5jYwotaW5kZXgg M2RmNTZkZTUuLjUwMTc2NmNjIDEwMDY0NAotLS0tIGEvc3JjL0ZiVGsvRXZlbnRNYW5hZ2VyLmNj Ci0rKysgYi9zcmMvRmJUay9FdmVudE1hbmFnZXIuY2MKLUBAIC0xOTQsMjMgKzE5NCwyMiBAQCB2 b2lkIEV2ZW50TWFuYWdlcjo6ZGlzcGF0Y2goV2luZG93IHdpbiwgWEV2ZW50ICZldiwgYm9vbCBw YXJlbnQpIHsKLSAKLSAgICAgLy8gZmluZCBvdXQgd2hpY2ggd2luZG93IGlzIHRoZSBwYXJlbnQg YW5kCi0gICAgIC8vIGRpc3BhdGNoIGV2ZW50Ci0tICAgIFdpbmRvdyByb290LCBwYXJlbnRfd2lu LCAqY2hpbGRyZW4gPSAwOwotLSAgICB1bnNpZ25lZCBpbnQgbnVtX2NoaWxkcmVuOwotLSAgICBp ZiAoWFF1ZXJ5VHJlZShGYlRrOjpBcHA6Omluc3RhbmNlKCktPmRpc3BsYXkoKSwgd2luLAotLSAg ICAgICAgICAgICAgICAgICAmcm9vdCwgJnBhcmVudF93aW4sICZjaGlsZHJlbiwgJm51bV9jaGls ZHJlbikgIT0gMCkgewotLSAgICAgICAgaWYgKGNoaWxkcmVuICE9IDApCi0tICAgICAgICAgICAg WEZyZWUoY2hpbGRyZW4pOwotLQotLSAgICAgICAgaWYgKHBhcmVudF93aW4gIT0gMCAmJgotLSAg ICAgICAgICAgIHBhcmVudF93aW4gIT0gcm9vdCkgewotLSAgICAgICAgICAgIGlmIChtX3BhcmVu dFtwYXJlbnRfd2luXSA9PSAwKQotLSAgICAgICAgICAgICAgICByZXR1cm47Ci0tCi0tICAgICAg ICAgICAgLy8gZGlzcGF0Y2ggZXZlbnQgdG8gcGFyZW50Ci0tICAgICAgICAgICAgZGlzcGF0Y2go cGFyZW50X3dpbiwgZXYsIHRydWUpOwotLSAgICAgICAgfQotLSAgICB9Ci0tCi0rLy8gICAgV2lu ZG93IHJvb3QsIHBhcmVudF93aW4sICpjaGlsZHJlbiA9IDA7Ci0rLy8gICAgdW5zaWduZWQgaW50 IG51bV9jaGlsZHJlbjsKLSsvLyAgICBpZiAoWFF1ZXJ5VHJlZShGYlRrOjpBcHA6Omluc3RhbmNl KCktPmRpc3BsYXkoKSwgd2luLAotKy8vICAgICAgICAgICAgICAgICAgICZyb290LCAmcGFyZW50 X3dpbiwgJmNoaWxkcmVuLCAmbnVtX2NoaWxkcmVuKSAhPSAwKSB7Ci0rLy8gICAgICAgIGlmIChj aGlsZHJlbiAhPSAwKQotKy8vICAgICAgICAgICAgWEZyZWUoY2hpbGRyZW4pOwotKy8vCi0rLy8g ICAgICAgIGlmIChwYXJlbnRfd2luICE9IDAgJiYKLSsvLyAgICAgICAgICAgIHBhcmVudF93aW4g IT0gcm9vdCkgewotKy8vICAgICAgICAgICAgaWYgKG1fcGFyZW50W3BhcmVudF93aW5dID09IDAp Ci0rLy8gICAgICAgICAgICAgICAgcmV0dXJuOwotKy8vCi0rLy8gICAgICAgICAgICAvLyBkaXNw YXRjaCBldmVudCB0byBwYXJlbnQKLSsvLyAgICAgICAgICAgIGRpc3BhdGNoKHBhcmVudF93aW4s IGV2LCB0cnVlKTsKLSsvLyAgICAgICAgfQotKy8vICAgIH0KLSB9Ci0gCi0gfSAvLyBlbmQgbmFt ZXNwYWNlIEZiVGsKLWRpZmYgLS1naXQgYS9zcmMvRmJUay9LZXlVdGlsLmNjIGIvc3JjL0ZiVGsv S2V5VXRpbC5jYwotaW5kZXggNzNmMmVhMDYuLmNmODYzMDIxIDEwMDY0NAotLS0tIGEvc3JjL0Zi VGsvS2V5VXRpbC5jYwotKysrIGIvc3JjL0ZiVGsvS2V5VXRpbC5jYwotQEAgLTE0MSwxMyArMTQx LDE0IEBAIHZvaWQgS2V5VXRpbDo6Z3JhYkJ1dHRvbih1bnNpZ25lZCBpbnQgYnV0dG9uLCB1bnNp Z25lZCBpbnQgbW9kLCBXaW5kb3cgd2luLAotICAgICBjb25zdCB1bnNpZ25lZCBpbnQgc2Nyb2xs bW9kID0gaW5zdGFuY2UoKS5zY3JvbGxsb2NrKCk7Ci0gCi0gICAgIC8vIEdyYWIgd2l0aCBudW1s b2NrLCBjYXBzbG9jayBhbmQgc2NybG9jawotLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7IGkr KykgewotLSAgICAgICAgWEdyYWJCdXR0b24oZGlzcGxheSwgYnV0dG9uLCBtb2QgfCAoaSAmIDEg PyBMb2NrTWFzayA6IDApIHwKLS0gICAgICAgICAgICAgICAgICAgIChpICYgMiA/IG51bW1vZCA6 IDApIHwgKGkgJiA0ID8gc2Nyb2xsbW9kIDogMCksCi0tICAgICAgICAgICAgICAgICAgICB3aW4s IEZhbHNlLCBldmVudF9tYXNrLCBHcmFiTW9kZVN5bmMsIEdyYWJNb2RlQXN5bmMsCi0tICAgICAg ICAgICAgICAgICAgICBOb25lLCBjdXJzb3IpOwotLSAgICB9Ci0tCi0rICAgIC8vZm9yIChpbnQg aSA9IDA7IGkgPCA4OyBpKyspIHsKLSsgICAgLy8gICAgWEdyYWJCdXR0b24oZGlzcGxheSwgYnV0 dG9uLCBtb2QgfCAoaSAmIDEgPyBMb2NrTWFzayA6IDApIHwKLSsgICAgLy8gICAgICAgICAgICAg ICAgKGkgJiAyID8gbnVtbW9kIDogMCkgfCAoaSAmIDQgPyBzY3JvbGxtb2QgOiAwKSwKLSsgICAg Ly8gICAgICAgICAgICAgICAgd2luLCBUcnVlLCBldmVudF9tYXNrLCBHcmFiTW9kZVN5bmMsIEdy YWJNb2RlQXN5bmMsCi0rICAgIC8vICAgICAgICAgICAgICAgIE5vbmUsIGN1cnNvcik7Ci0rICAg IC8vfQotKyAgICBYR3JhYkJ1dHRvbihkaXNwbGF5LCBidXR0b24sIG1vZCwgd2luLCBUcnVlLCBl dmVudF9tYXNrLAotKyAgICAgICAgICAgICAgICBHcmFiTW9kZVN5bmMsIEdyYWJNb2RlQXN5bmMs IE5vbmUsIGN1cnNvcik7Ci0gfQotIAotIC8qKgotZGlmZiAtLWdpdCBhL3NyYy9LZXlzLmNjIGIv c3JjL0tleXMuY2MKLWluZGV4IDg2NTkxMzcxLi5jMjcwMzdlMiAxMDA2NDQKLS0tLSBhL3NyYy9L ZXlzLmNjCi0rKysgYi9zcmMvS2V5cy5jYwotQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIEtleXM6 OmdyYWJXaW5kb3coV2luZG93IHdpbikgewotICAgICBpZiAod2luX2l0ID09IG1fd2luZG93X21h cC5lbmQoKSkKLSAgICAgICAgIHJldHVybjsKLSAKLS0gICAgbV9oYW5kbGVyX21hcFt3aW5dLT5n cmFiQnV0dG9ucygpOwotKyAgICAvL21faGFuZGxlcl9tYXBbd2luXS0+Z3JhYkJ1dHRvbnMoKTsK LSAgICAgdF9rZXk6OmtleWxpc3RfdDo6aXRlcmF0b3IgaXQgPSBtX2tleWxpc3QtPmtleWxpc3Qu YmVnaW4oKTsKLSAgICAgdF9rZXk6OmtleWxpc3RfdDo6aXRlcmF0b3IgaXRfZW5kID0gbV9rZXls aXN0LT5rZXlsaXN0LmVuZCgpOwotICAgICBmb3IgKDsgaXQgIT0gaXRfZW5kOyArK2l0KSB7Ci1A QCAtNTg2LDE2ICs1ODYsMTYgQEAgYm9vbCBLZXlzOjpkb0FjdGlvbihpbnQgdHlwZSwgdW5zaWdu ZWQgaW50IG1vZHMsIHVuc2lnbmVkIGludCBrZXksCi0gICAgICAgICBpc2RvdWJsZSA9IGRvdWJs ZV9jbGljazsKLSAgICAgfQotIAotLSAgICBhdXRvIHJlc2V0S2V5Q2hhaW4gPSBbJl0oKSB7Ci0t ICAgICAgICBmaXJzdF9rZXlfdGltZSA9IDA7Ci0tICAgICAgICBuZXh0X2tleS5yZXNldCgpOwot LSAgICAgICAgaWYgKHNhdmVkX2tleW1vZGUpIHsKLS0gICAgICAgICAgICBzZXRLZXlNb2RlKHNh dmVkX2tleW1vZGUpOwotLSAgICAgICAgICAgIHNhdmVkX2tleW1vZGUucmVzZXQoKTsKLS0gICAg ICAgIH0KLS0gICAgfTsKLS0gICAgaWYgKHR5cGUgPT0gS2V5UHJlc3MgJiYgZmlyc3Rfa2V5X3Rp bWUgJiYgdGltZSAtIGZpcnN0X2tleV90aW1lID4gNTAwMCkKLS0gICAgICAgIHJlc2V0S2V5Q2hh aW4oKTsKLSsvLyAgICBhdXRvIHJlc2V0S2V5Q2hhaW4gPSBbJl0oKSB7Ci0rLy8gICAgICAgIGZp cnN0X2tleV90aW1lID0gMDsKLSsvLyAgICAgICAgbmV4dF9rZXkucmVzZXQoKTsKLSsvLyAgICAg ICAgaWYgKHNhdmVkX2tleW1vZGUpIHsKLSsvLyAgICAgICAgICAgIHNldEtleU1vZGUoc2F2ZWRf a2V5bW9kZSk7Ci0rLy8gICAgICAgICAgICBzYXZlZF9rZXltb2RlLnJlc2V0KCk7Ci0rLy8gICAg ICAgIH0KLSsvLyAgICB9OwotKy8vICAgIGlmICh0eXBlID09IEtleVByZXNzICYmIGZpcnN0X2tl eV90aW1lICYmIHRpbWUgLSBmaXJzdF9rZXlfdGltZSA+IDUwMDApCi0rLy8gICAgICAgIHJlc2V0 S2V5Q2hhaW4oKTsKLSAKLSAgICAgaWYgKCFuZXh0X2tleSkKLSAgICAgICAgIG5leHRfa2V5ID0g bV9rZXlsaXN0OwotQEAgLTYxMiwyOSArNjEyLDI5IEBAIGJvb2wgS2V5czo6ZG9BY3Rpb24oaW50 IHR5cGUsIHVuc2lnbmVkIGludCBtb2RzLCB1bnNpZ25lZCBpbnQga2V5LAotICAgICAgICAgbmV4 dF9rZXktPmZpbmQoTW90aW9uTm90aWZ5LCBtb2RzLCBrZXksIGNvbnRleHQsIGZhbHNlKSkKLSAg ICAgICAgIHJldHVybiB0cnVlOyAvLyBpZiB0aGVyZSdzIGEgbW90aW9uIGFjdGlvbiwgcHJldmVu dCByZXBsYXkgdG8gdGhlIGNsaWVudCAoYnV0IGRvIG5vdGhpbmcpCi0gCi0tICAgIGlmICh0ZW1w X2tleSAmJiAhdGVtcF9rZXktPmtleWxpc3QuZW1wdHkoKSkgeyAvLyBlbWFjcy1zdHlsZQotLSAg ICAgICAgaWYgKCFzYXZlZF9rZXltb2RlKSB7Ci0tICAgICAgICAgICAgZmlyc3Rfa2V5X3RpbWUg PSB0aW1lOwotLSAgICAgICAgICAgIHNhdmVkX2tleW1vZGUgPSBtX2tleWxpc3Q7Ci0tICAgICAg ICB9Ci0tICAgICAgICBuZXh0X2tleSA9IHRlbXBfa2V5OwotLSAgICAgICAgc2V0S2V5TW9kZShu ZXh0X2tleSk7Ci0tICAgICAgICByZXR1cm4gdHJ1ZTsKLS0gICAgfQotKy8vICAgIGlmICh0ZW1w X2tleSAmJiAhdGVtcF9rZXktPmtleWxpc3QuZW1wdHkoKSkgeyAvLyBlbWFjcy1zdHlsZQotKy8v ICAgICAgICBpZiAoIXNhdmVkX2tleW1vZGUpIHsKLSsvLyAgICAgICAgICAgIGZpcnN0X2tleV90 aW1lID0gdGltZTsKLSsvLyAgICAgICAgICAgIHNhdmVkX2tleW1vZGUgPSBtX2tleWxpc3Q7Ci0r Ly8gICAgICAgIH0KLSsvLyAgICAgICAgbmV4dF9rZXkgPSB0ZW1wX2tleTsKLSsvLyAgICAgICAg c2V0S2V5TW9kZShuZXh0X2tleSk7Ci0rLy8gICAgICAgIHJldHVybiB0cnVlOwotKy8vICAgIH0K LSsKLSAgICAgaWYgKCF0ZW1wX2tleSB8fCB0ZW1wX2tleS0+bV9jb21tYW5kID09IDApIHsKLS0g ICAgICAgIGlmICh0eXBlID09IEtleVByZXNzICYmCi0tICAgICAgICAgICAgIUZiVGs6OktleVV0 aWw6Omluc3RhbmNlKCkua2V5Y29kZVRvTW9kbWFzayhrZXkpKSB7Ci0tICAgICAgICAgICAgLy8g aWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBlbWFjcy1zdHlsZSBrZXljaGFpbiwgZXhpdCBp dAotLSAgICAgICAgICAgIHJlc2V0S2V5Q2hhaW4oKTsKLS0gICAgICAgIH0KLSsvLyAgICAgICAg aWYgKHR5cGUgPT0gS2V5UHJlc3MgJiYKLSsvLyAgICAgICAgICAgICFGYlRrOjpLZXlVdGlsOjpp bnN0YW5jZSgpLmtleWNvZGVUb01vZG1hc2soa2V5KSkgewotKy8vICAgICAgICAgICAgLy8gaWYg d2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBlbWFjcy1zdHlsZSBrZXljaGFpbiwgZXhpdCBpdAot Ky8vICAgICAgICAgICAgcmVzZXRLZXlDaGFpbigpOwotKy8vICAgICAgICB9Ci0gICAgICAgICBy ZXR1cm4gZmFsc2U7Ci0gICAgIH0KLSAKLSAgICAgLy8gaWYgZm9jdXMgY2hhbmdlcywgd2luZG93 cyB3aWxsIGdldCBOb3RpZnlXaGlsZUdyYWJiZWQsCi0gICAgIC8vIHdoaWNoIHRoZXkgdGVuZCB0 byBpZ25vcmUKLS0gICAgaWYgKHR5cGUgPT0gS2V5UHJlc3MpIHsKLSsgICAgaWYgKHR5cGUgPT0g S2V5UHJlc3MpCi0gICAgICAgICBYVW5ncmFiS2V5Ym9hcmQoRmx1eGJveDo6aW5zdGFuY2UoKS0+ ZGlzcGxheSgpLCBDdXJyZW50VGltZSk7Ci0tICAgIH0KLSAKLSAgICAgV2luQ2xpZW50ICpvbGQg PSBXaW5kb3dDbWQ8dm9pZD46OmNsaWVudCgpOwotICAgICBXaW5kb3dDbWQ8dm9pZD46OnNldENs aWVudChjdXJyZW50KTsKLUBAIC02NTAsMTIgKzY1MCwxMyBAQCBib29sIEtleXM6OmRvQWN0aW9u KGludCB0eXBlLCB1bnNpZ25lZCBpbnQgbW9kcywgdW5zaWduZWQgaW50IGtleSwKLSAgICAgdGVt cF9rZXktPm1fY29tbWFuZC0+ZXhlY3V0ZSgpOwotICAgICBXaW5kb3dDbWQ8dm9pZD46OnNldENs aWVudChvbGQpOwotIAotLSAgICBpZiAoc2F2ZWRfa2V5bW9kZSkgewotLSAgICAgICAgaWYgKG5l eHRfa2V5ID09IG1fa2V5bGlzdCkgLy8gZG9uJ3QgcmVzZXQga2V5bW9kZSBpZiBjb21tYW5kIGNo YW5nZWQgaXQKLS0gICAgICAgICAgICBzZXRLZXlNb2RlKHNhdmVkX2tleW1vZGUpOwotLSAgICAg ICAgc2F2ZWRfa2V5bW9kZS5yZXNldCgpOwotLSAgICB9Ci0tICAgIG5leHRfa2V5LnJlc2V0KCk7 Ci0rLy8gICAgaWYgKHNhdmVkX2tleW1vZGUpIHsKLSsvLyAgICAgICAgaWYgKG5leHRfa2V5ID09 IG1fa2V5bGlzdCkgLy8gZG9uJ3QgcmVzZXQga2V5bW9kZSBpZiBjb21tYW5kIGNoYW5nZWQgaXQK LSsvLyAgICAgICAgICAgIHNldEtleU1vZGUoc2F2ZWRfa2V5bW9kZSk7Ci0rLy8gICAgICAgIHNh dmVkX2tleW1vZGUucmVzZXQoKTsKLSsvLyAgICB9Ci0rLy8gICAgbmV4dF9rZXkucmVzZXQoKTsK LSsKLSAgICAgcmV0dXJuIHRydWU7Ci0gfQotIAotQEAgLTY4NSwxNSArNjg2LDE2IEBAIHZvaWQg S2V5czo6cmVjb25maWd1cmUoKSB7Ci0gfQotIAotIHZvaWQgS2V5czo6cmVncmFiKCkgewotLSAg ICBzZXRLZXlNb2RlKG1fa2V5bGlzdCk7Ci0rICAgIC8vc2V0S2V5TW9kZShtX2tleWxpc3QpOwot IH0KLSAKLSB2b2lkIEtleXM6OmtleU1vZGUoY29uc3Qgc3RyaW5nJiBrZXlNb2RlKSB7Ci0tICAg IGtleXNwYWNlX3Q6Oml0ZXJhdG9yIGl0ID0gbV9tYXAuZmluZChrZXlNb2RlICsgIjoiKTsKLS0g ICAgaWYgKGl0ID09IG1fbWFwLmVuZCgpKQotKyAgICAvL2tleXNwYWNlX3Q6Oml0ZXJhdG9yIGl0 ID0gbV9tYXAuZmluZChrZXlNb2RlICsgIjoiKTsKLSsgICAgLy9pZiAoaXQgPT0gbV9tYXAuZW5k KCkpCi0rICAgIC8vICAgIHNldEtleU1vZGUobV9tYXBbImRlZmF1bHQ6Il0pOwotKyAgICAvL2Vs c2UKLSsgICAgLy8gICAgc2V0S2V5TW9kZShpdC0+c2Vjb25kKTsKLSAgICAgICAgIHNldEtleU1v ZGUobV9tYXBbImRlZmF1bHQ6Il0pOwotLSAgICBlbHNlCi0tICAgICAgICBzZXRLZXlNb2RlKGl0 LT5zZWNvbmQpOwotIH0KLSAKLSB2b2lkIEtleXM6OnNldEtleU1vZGUoY29uc3QgRmJUazo6UmVm Q291bnQ8dF9rZXk+ICZrZXlNb2RlKSB7Ci1AQCAtNzAxLDEwICs3MDMsMTAgQEAgdm9pZCBLZXlz OjpzZXRLZXlNb2RlKGNvbnN0IEZiVGs6OlJlZkNvdW50PHRfa2V5PiAma2V5TW9kZSkgewotICAg ICB1bmdyYWJCdXR0b25zKCk7Ci0gCi0gICAgIC8vIG5vdGlmeSBoYW5kbGVycyB0aGF0IHRoZWly IGJ1dHRvbnMgaGF2ZSBiZWVuIHVuZ3JhYmJlZAotLSAgICBIYW5kbGVyTWFwOjppdGVyYXRvciBo X2l0ID0gbV9oYW5kbGVyX21hcC5iZWdpbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICBo X2l0X2VuZCAgPSBtX2hhbmRsZXJfbWFwLmVuZCgpOwotLSAgICBmb3IgKDsgaF9pdCAhPSBoX2l0 X2VuZDsgKytoX2l0KQotLSAgICAgICAgaF9pdC0+c2Vjb25kLT5ncmFiQnV0dG9ucygpOwotKyAg ICAvL0hhbmRsZXJNYXA6Oml0ZXJhdG9yIGhfaXQgPSBtX2hhbmRsZXJfbWFwLmJlZ2luKCksCi0r ICAgIC8vICAgICAgICAgICAgICAgICAgICAgaF9pdF9lbmQgID0gbV9oYW5kbGVyX21hcC5lbmQo KTsKLSsgICAgLy9mb3IgKDsgaF9pdCAhPSBoX2l0X2VuZDsgKytoX2l0KQotKyAgICAvLyAgICBo X2l0LT5zZWNvbmQtPmdyYWJCdXR0b25zKCk7Ci0gCi0gICAgIHRfa2V5OjprZXlsaXN0X3Q6Oml0 ZXJhdG9yIGl0ID0ga2V5TW9kZS0+a2V5bGlzdC5iZWdpbigpOwotICAgICB0X2tleTo6a2V5bGlz dF90OjppdGVyYXRvciBpdF9lbmQgPSBrZXlNb2RlLT5rZXlsaXN0LmVuZCgpOwotZGlmZiAtLWdp dCBhL3NyYy9XaW5kb3cuY2MgYi9zcmMvV2luZG93LmNjCi1pbmRleCAzNDJlNDg4NS4uNDU3YzMw YzYgMTAwNjQ0Ci0tLS0gYS9zcmMvV2luZG93LmNjCi0rKysgYi9zcmMvV2luZG93LmNjCi1AQCAt MTEzMywxMyArMTEzMywyNSBAQCB2b2lkIEZsdXhib3hXaW5kb3c6OnVwZGF0ZVNpemVIaW50cygp IHsKLSB9Ci0gCi0gdm9pZCBGbHV4Ym94V2luZG93OjpncmFiQnV0dG9ucygpIHsKLS0KLSsvL05P R1JBQgotKyAgICAvL2lmIChtX2NsaWVudC0+d2luZG93KCkgIT0gZnJhbWUoKS53aW5kb3coKS53 aW5kb3coKSApIHJldHVybjsKLSAgICAgLy8gbmVlZGVkIGZvciBjbGljayB0byBmb2N1cwotLSAg ICBYR3JhYkJ1dHRvbihkaXNwbGF5LCBCdXR0b24xLCBBbnlNb2RpZmllciwKLS0gICAgICAgICAg ICAgICAgZnJhbWUoKS53aW5kb3coKS53aW5kb3coKSwgVHJ1ZSwgQnV0dG9uUHJlc3NNYXNrLAot LSAgICAgICAgICAgICAgICBHcmFiTW9kZVN5bmMsIEdyYWJNb2RlU3luYywgTm9uZSwgTm9uZSk7 Ci0tICAgIFhVbmdyYWJCdXR0b24oZGlzcGxheSwgQnV0dG9uMSwgTW9kMU1hc2t8TW9kMk1hc2t8 TW9kM01hc2ssCi0tICAgICAgICAgICAgICAgICAgZnJhbWUoKS53aW5kb3coKS53aW5kb3coKSk7 Ci0rICAgIC8vIGdyYWJiaW5nIGFzeW5jIGhlcmUgYnJlYWtzIG1vdXNlMQotKyAgICAvL1hHcmFi QnV0dG9uKGRpc3BsYXksIEJ1dHRvbjEsIEFueU1vZGlmaWVyLAotKyAgICAvLyAgICAgICAgICAg IGZyYW1lKCkud2luZG93KCkud2luZG93KCksIFRydWUsIEJ1dHRvblByZXNzTWFzaywKLSsgICAg Ly8gICAgICAgICAgICBHcmFiTW9kZVN5bmMsIEdyYWJNb2RlU3luYywgTm9uZSwgTm9uZSk7Ci0r ICAgIC8vICAgICAgICAgICAgLy9HcmFiTW9kZUFzeW5jLCBHcmFiTW9kZUFzeW5jLCBOb25lLCBO b25lKTsKLSsgICAgLy9YVW5ncmFiQnV0dG9uKGRpc3BsYXksIEJ1dHRvbjEsIE1vZDFNYXNrfE1v ZDJNYXNrfE1vZDNNYXNrLAotKyAgICAvLyAgICAgICAgICAgICAgZnJhbWUoKS53aW5kb3coKS53 aW5kb3coKSk7Ci0rICAgIC8vWEdyYWJQb2ludGVyKGRpc3BsYXksCi0rICAgIC8vICAgICAgICAg ICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCksCi0rICAgIC8vICAgICAgICAgICAgIFRydWUs Ci0rICAgIC8vICAgICAgICAgICAgIEJ1dHRvblByZXNzTWFzaywKLSsgICAgLy8gICAgICAgICAg ICAgR3JhYk1vZGVBc3luYywgR3JhYk1vZGVBc3luYywKLSsgICAgLy8gICAgICAgICAgICAgTm9u ZSwKLSsgICAgLy8gICAgICAgICAgICAgTm9uZSwKLSsgICAgLy8gICAgICAgICAgICAgQ3VycmVu dFRpbWUpOwotKyAgICAvL1hVbmdyYWJQb2ludGVyKGRpc3BsYXksIEN1cnJlbnRUaW1lKTsKLSB9 Ci0gCi0gCi1AQCAtMjQyOSw2MyArMjQ0MSw0MSBAQCB2b2lkIEZsdXhib3hXaW5kb3c6OmJ1dHRv blByZXNzRXZlbnQoWEJ1dHRvbkV2ZW50ICZiZSkgewotICAgICBtX2xhc3RfcHJlc3NlZF9idXR0 b24gPSBiZS5idXR0b247Ci0gCi0gICAgIEZiVGs6Ok1lbnU6OmhpZGVTaG93bk1lbnUoKTsKLS0K LSsvL0ZJWCBBTExPVwotICAgICBLZXlzICprID0gRmx1eGJveDo6aW5zdGFuY2UoKS0+a2V5cygp OwotICAgICBpbnQgY29udGV4dCA9IDA7Ci0gICAgIGNvbnRleHQgPSBmcmFtZSgpLmdldENvbnRl eHQoYmUuc3Vid2luZG93ID8gYmUuc3Vid2luZG93IDogYmUud2luZG93LCBiZS54X3Jvb3QsIGJl Lnlfcm9vdCk7Ci0gICAgIGlmICghY29udGV4dCAmJiBiZS5zdWJ3aW5kb3cpCi0gICAgICAgICBj b250ZXh0ID0gZnJhbWUoKS5nZXRDb250ZXh0KGJlLndpbmRvdyk7Ci0gCi0tICAgIGlmIChrLT5k b0FjdGlvbihiZS50eXBlLCBiZS5zdGF0ZSwgYmUuYnV0dG9uLCBjb250ZXh0LCAmd2luQ2xpZW50 KCksIGJlLnRpbWUpKSB7Ci0tICAgICAgICBYQWxsb3dFdmVudHMoZGlzcGxheSwgU3luY1BvaW50 ZXIsIEN1cnJlbnRUaW1lKTsKLS0gICAgICAgIHJldHVybjsKLS0gICAgfQotLQotLSAgICBXaW5D bGllbnQgKmNsaWVudCA9IDA7Ci0tICAgIGlmICghc2NyZWVuKCkuZm9jdXNDb250cm9sKCkuaXNN b3VzZVRhYkZvY3VzKCkpIHsKLS0gICAgICAgIC8vIGRldGVybWluZSBpZiB3ZSdyZSBpbiBhIGxh YmVsIGJ1dHRvbiAodGFiKQotLSAgICAgICAgY2xpZW50ID0gd2luQ2xpZW50T2ZMYWJlbEJ1dHRv bldpbmRvdyhiZS53aW5kb3cpOwotLSAgICB9Ci0tCi0tCi0tICAgIC8vIC0gcmVmZWVkIHRoZSBl dmVudCBpbnRvIHRoZSBxdWV1ZSBzbyB0aGUgYXBwIG9yIHRpdGxlYmFyIHN1YndpbmRvdyBnZXRz IGl0Ci0tICAgIGlmIChiZS5zdWJ3aW5kb3cpCi0tICAgICAgICBYQWxsb3dFdmVudHMoZGlzcGxh eSwgUmVwbGF5UG9pbnRlciwgQ3VycmVudFRpbWUpOwotLSAgICBlbHNlCi0tICAgICAgICBYQWxs b3dFdmVudHMoZGlzcGxheSwgU3luY1BvaW50ZXIsIEN1cnJlbnRUaW1lKTsKLS0KLS0gICAgLy8g aWYgbm90aGluZyB3YXMgYm91bmQgdmlhIGtleXMtZmlsZSB0aGVuCi0tICAgIC8vIC0gcmFpc2Uo KSBpZiBjbGlja1JhaXNlIGlzIGVuYWJsZWQKLS0gICAgLy8gLSBoaWRlIG9wZW4gbWVudWVzCi0t ICAgIC8vIC0gZm9jdXMgb24gY2xpY2tGb2N1cwotLSAgICBpZiAoZnJhbWUoKS53aW5kb3coKS53 aW5kb3coKSA9PSBiZS53aW5kb3cpIHsKLS0gICAgICAgIGlmIChzY3JlZW4oKS5jbGlja1JhaXNl cygpKQotLSAgICAgICAgICAgIHJhaXNlKCk7Ci0tCi0tICAgICAgICBtX2J1dHRvbl9ncmFiX3gg PSBiZS54X3Jvb3QgLSBmcmFtZSgpLngoKSAtIGZyYW1lKCkud2luZG93KCkuYm9yZGVyV2lkdGgo KTsKLS0gICAgICAgIG1fYnV0dG9uX2dyYWJfeSA9IGJlLnlfcm9vdCAtIGZyYW1lKCkueSgpIC0g ZnJhbWUoKS53aW5kb3coKS5ib3JkZXJXaWR0aCgpOwotLSAgICB9Ci0tCi0tICAgIGlmICghbV9m b2N1c2VkICYmIGFjY2VwdHNGb2N1cygpICYmIG1fY2xpY2tfZm9jdXMpCi0tICAgICAgICBmb2N1 cygpOwotLQotLSAgICBpZiAoIXNjcmVlbigpLmZvY3VzQ29udHJvbCgpLmlzTW91c2VUYWJGb2N1 cygpICYmCi0tICAgICAgICBjbGllbnQgJiYgY2xpZW50ICE9IG1fY2xpZW50ICYmCi0tICAgICAg ICAhc2NyZWVuKCkuZm9jdXNDb250cm9sKCkuaXNJZ25vcmVkKGJlLnhfcm9vdCwgYmUueV9yb290 KSApIHsKLS0gICAgICAgIHNldEN1cnJlbnRDbGllbnQoKmNsaWVudCwgaXNGb2N1c2VkKCkpOwot LSAgICB9Ci0tCi0tCi0tCi0rc3RkOjpjb3V0IDw8ICJidXR0b24gd2luZG93OiAiIDw8IGJlLndp bmRvdyA8PCAiXG5idXR0b24gc3Vid2luZG93OiAiIDw8IGJlLnN1YndpbmRvdyA8PCAiXG4iOwot K2stPmRvQWN0aW9uKGJlLnR5cGUsIGJlLnN0YXRlLCBiZS5idXR0b24sIGNvbnRleHQsICZ3aW5D bGllbnQoKSwgQ3VycmVudFRpbWUpOyAvLyB3L28gdGhpcywgbm8gbW91c2UgY21kcwotK1hBbGxv d0V2ZW50cyhkaXNwbGF5LCBSZXBsYXlQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIHcvbyB0aGlz LCBubyBtb3VzZQotKy8vIHVsdGltYXRlbHkgbm9uZSBvZiB0aGUgYmVsb3cgbWF0dGVycwotKyAg ICAvLyBpbmZpbml0ZSBsb29wCi0rICAgIC8vaWYgKGJlLnN1YndpbmRvdykgewotKyAgICAvLyAg Ly9YRXZlbnQgb21mZyA9IChYRXZlbnQgKikmYmU7Ci0rICAgIC8vICAvL2JlLndpbmRvdyA9IGJl LnN1YndpbmRvdzsKLSsgICAgLy8gIC8vYmUuc3Vid2luZG93ID0gMDsKLSsgICAgLy8gIGludCBo dWggPSBYU2VuZEV2ZW50KGRpc3BsYXksIGJlLndpbmRvdywgRmFsc2UsIEJ1dHRvblByZXNzTWFz aywgKFhFdmVudCopJmJlKTsKLSsgICAgLy8gIHN0ZDo6Y291dCA8PCAieHNlbmRldmVudDogIiA8 PCBodWggPDwgIlxuIjsKLSsgICAgLy99Ci0rICAgIC8vWFN5bmMoZGlzcGxheSwgMCk7Ci0rICAg IC8vaW50IHd0ZiA9IFhBbGxvd0V2ZW50cyhkaXNwbGF5LCBSZXBsYXlQb2ludGVyLCBDdXJyZW50 VGltZSk7IC8vIHRpbWUgbWVhbnMgc3F1YXQgLSB3b3JrcyBidXQgbm90IGZvciBtZW51cwotKyAg ICAvL3N0ZDo6Y291dCA8PCAieGFsbG93ZXZlbnRzOiAiIDw8IHd0ZiA8PCAiXG4iOwotKyAgICAv L1hTeW5jKGRpc3BsYXksIDApOwotKyAgICAvL1hBbGxvd0V2ZW50cyhkaXNwbGF5LCBSZXBsYXlQ b2ludGVyLCBiZS50aW1lKTsgLy8gdGltZSBtZWFucyBzcXVhdCAtIHdvcmtzIGJ1dCBub3QgZm9y IG1lbnVzCi0rICAgIC8vWEFsbG93RXZlbnRzKGRpc3BsYXksIFN5bmNQb2ludGVyLCBDdXJyZW50 VGltZSk7IC8vIHN5bmMgd2lsbCBub3QgZG91YmxlY2xpY2sgb3IgYWN0IHByb3BlcgotKyAgICAv L1hBbGxvd0V2ZW50cyhkaXNwbGF5LCBBc3luY1BvaW50ZXIsIEN1cnJlbnRUaW1lKTsgLy8gXl4g c2FtZQotKyAgICAvL2lmIChiZS5zdWJ3aW5kb3cpCi0rICAgIC8vICBYRmx1c2goZGlzcGxheSk7 Ci0rICAgIC8vICAvL1hTeW5jKGRpc3BsYXksIFRydWUpOwotIH0KLSAKLSBjb25zdCB1bnNpZ25l ZCBpbnQgREVBRFpPTkUgPSA0OwotIAotIHZvaWQgRmx1eGJveFdpbmRvdzo6YnV0dG9uUmVsZWFz ZUV2ZW50KFhCdXR0b25FdmVudCAmcmUpIHsKLSAKLS0gICAgaWYgKG1fbGFzdF9wcmVzc2VkX2J1 dHRvbiA9PSBzdGF0aWNfY2FzdDxpbnQ+KHJlLmJ1dHRvbikpIHsKLS0gICAgICAgIG1fbGFzdF9w cmVzc2VkX2J1dHRvbiA9IDA7Ci0tICAgIH0KLSAKLSAgICAgaWYgKGlzTW92aW5nKCkpCi0gICAg ICAgICBzdG9wTW92aW5nKCk7Ci1AQCAtMjUwMiw2ICsyNDkyLDEzIEBAIHZvaWQgRmx1eGJveFdp bmRvdzo6YnV0dG9uUmVsZWFzZUV2ZW50KFhCdXR0b25FdmVudCAmcmUpIHsKLSAKLSAgICAgICAg IEZsdXhib3g6Omluc3RhbmNlKCktPmtleXMoKS0+ZG9BY3Rpb24ocmUudHlwZSwgcmUuc3RhdGUs IHJlLmJ1dHRvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGV4dCwgJndpbkNsaWVudCgpLCByZS50aW1lKTsKLSsgICAgICAvLyBzeW5jcyBkb250 IG1ha2UgYSBkaWZmZXJlbmNlPwotKyAgICAgIC8vWFN5bmMoZGlzcGxheSwgMCk7Ci0rICAgICAg WEFsbG93RXZlbnRzKGRpc3BsYXksIFJlcGxheVBvaW50ZXIsIEN1cnJlbnRUaW1lKTsgLy8gdGlt ZSBtZWFucyBzcXVhdCAtIHdvcmtzIGJ1dCBub3QgZm9yIG1lbnVzCi0rICAgICAgLy9YU3luYyhk aXNwbGF5LCAwKTsKLSsgICAgfQotKyAgICBpZiAobV9sYXN0X3ByZXNzZWRfYnV0dG9uID09IHN0 YXRpY19jYXN0PGludD4ocmUuYnV0dG9uKSkgewotKyAgICAgICAgbV9sYXN0X3ByZXNzZWRfYnV0 dG9uID0gMDsKLSAgICAgfQotIH0KLSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL3VuY2x1dHRlcl9maXhfd29ya3NwYWNlY21kLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3Bh dGNoZXMvdW5jbHV0dGVyX2ZpeF93b3Jrc3BhY2VjbWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDM2YzU3MmNlYTRmZi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1 eGJveC9wYXRjaGVzL3VuY2x1dHRlcl9maXhfd29ya3NwYWNlY21kLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNjUgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3NyYy9Xb3Jrc3BhY2VDbWQuY2MgYi9z cmMvV29ya3NwYWNlQ21kLmNjCi1pbmRleCBjMmU0OTQ4NS4uOWI0MDU4YzggMTAwNjQ0Ci0tLS0g YS9zcmMvV29ya3NwYWNlQ21kLmNjCi0rKysgYi9zcmMvV29ya3NwYWNlQ21kLmNjCi1AQCAtNTIx LDIyICs1MjEsMjQgQEAgdm9pZCBBcnJhbmdlV2luZG93c0NtZDo6ZXhlY3V0ZSgpIHsKLSAgICAg Y29uc3QgdW5zaWduZWQgaW50IGNhbF93aWR0aCA9IG1heF93aWR0aC9jb2xzOyAvLyB3aWR0aCBy YXRpbyAod2lkdGggb2YgZXZlcnkgd2luZG93KQotICAgICBjb25zdCB1bnNpZ25lZCBpbnQgY2Fs X2hlaWdodCA9IG1heF9oZWlnaHQvcm93czsgLy8gaGVpZ2h0IHJhdGlvIChoZWlnaHQgb2YgZXZl cnkgd2luZG93KQotCi0rICAgIGludCBjZWxsX2NlbnRlcl94ID0gMCwgY2VsbF9jZW50ZXJfeSA9 IDAsIHdpbl9jZW50ZXJfeCA9IDAsIHdpbl9jZW50ZXJfeSA9IDAsIHggPSAwLCB5ID0gMDsKLSsg ICAgdW5zaWduZWQgaW50IGNsb3Nlc3RfZGlzdCA9IH4wLCBkaXN0ID0gMCwgdyA9IDAsIGggPSAw OwotICAgICAvLyBSZXNpemVzIGFuZCBzZXRzIHdpbmRvd3MgcG9zaXRpb25zIGluIGNvbHVtbnMg YW5kIHJvd3MuCi0gICAgIGZvciAoaSA9IDA7IGkgPCByb3dzOyArK2kpIHsKLSAgICAgICAgIHhf b2ZmcyA9IG9yaWdfeF9vZmZzOwotICAgICAgICAgZm9yIChqID0gMDsgaiA8IGNvbHMgJiYgIW5v cm1hbF93aW5kb3dzLmVtcHR5KCk7ICsraikgewotCi0KLS0gICAgICAgICAgICBpbnQgY2VsbF9j ZW50ZXJfeCA9IHhfb2ZmcyArICh4X29mZnMgKyBjYWxfd2lkdGgpIC8gMjsKLS0gICAgICAgICAg ICBpbnQgY2VsbF9jZW50ZXJfeSA9IHlfb2ZmcyArICh5X29mZnMgKyBjYWxfaGVpZ2h0KSAvIDI7 Ci0tICAgICAgICAgICAgdW5zaWduZWQgaW50IGNsb3Nlc3RfZGlzdCA9IH4wOwotKyAgICAgICAg ICAgIGNlbGxfY2VudGVyX3ggPSB4X29mZnMgKyAoeF9vZmZzICsgY2FsX3dpZHRoKSAvIDI7Ci0r ICAgICAgICAgICAgY2VsbF9jZW50ZXJfeSA9IHlfb2ZmcyArICh5X29mZnMgKyBjYWxfaGVpZ2h0 KSAvIDI7Ci0rICAgICAgICAgICAgaW50IGNsb3Nlc3RfZGlzdCA9IH4wOwotCi0gICAgICAgICAg ICAgV29ya3NwYWNlOjpXaW5kb3dzOjppdGVyYXRvciBjbG9zZXN0ID0gbm9ybWFsX3dpbmRvd3Mu ZW5kKCk7Ci0gICAgICAgICAgICAgZm9yICh3aW4gPSBub3JtYWxfd2luZG93cy5iZWdpbigpOyB3 aW4gIT0gbm9ybWFsX3dpbmRvd3MuZW5kKCk7ICsrd2luKSB7Ci0KLS0gICAgICAgICAgICAgICAg aW50IHdpbl9jZW50ZXJfeCA9ICgqd2luKS0+ZnJhbWUoKS54KCkgKyAoKCp3aW4pLT5mcmFtZSgp LngoKSArICgqd2luKS0+ZnJhbWUoKS53aWR0aCgpIC8gMik7Ci0tICAgICAgICAgICAgICAgIGlu dCB3aW5fY2VudGVyX3kgPSAoKndpbiktPmZyYW1lKCkueSgpICsgKCgqd2luKS0+ZnJhbWUoKS55 KCkgKyAoKndpbiktPmZyYW1lKCkuaGVpZ2h0KCkgLyAyKTsKLS0gICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IGRpc3QgPSAod2luX2NlbnRlcl94IC0gY2VsbF9jZW50ZXJfeCkgKiAod2luX2Nl bnRlcl94IC0gY2VsbF9jZW50ZXJfeCkgKwotKyAgICAgICAgICAgICAgICB3aW5fY2VudGVyX3gg PSAoKndpbiktPmZyYW1lKCkueCgpICsgKCgqd2luKS0+ZnJhbWUoKS54KCkgKyAoKndpbiktPmZy YW1lKCkud2lkdGgoKSAvIDIpOwotKyAgICAgICAgICAgICAgICB3aW5fY2VudGVyX3kgPSAoKndp biktPmZyYW1lKCkueSgpICsgKCgqd2luKS0+ZnJhbWUoKS55KCkgKyAoKndpbiktPmZyYW1lKCku aGVpZ2h0KCkgLyAyKTsKLSsgICAgICAgICAgICAgICAgZGlzdCA9ICh3aW5fY2VudGVyX3ggLSBj ZWxsX2NlbnRlcl94KSAqICh3aW5fY2VudGVyX3ggLSBjZWxsX2NlbnRlcl94KSArCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbl9jZW50ZXJfeSAtIGNlbGxfY2VudGVy X3kpICogKHdpbl9jZW50ZXJfeSAtIGNlbGxfY2VudGVyX3kpOwotCi0gICAgICAgICAgICAgICAg IGlmIChkaXN0IDwgY2xvc2VzdF9kaXN0KSB7Ci1AQCAtNTQ1LDEwICs1NDcsMTAgQEAgdm9pZCBB cnJhbmdlV2luZG93c0NtZDo6ZXhlY3V0ZSgpIHsKLSAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgIH0KLQotLSAgICAgICAgICAgIGludCB4ID0geF9vZmZzICsgKCpjbG9zZXN0KS0+eE9m ZnNldCgpOwotLSAgICAgICAgICAgIGludCB5ID0geV9vZmZzICsgKCpjbG9zZXN0KS0+eU9mZnNl dCgpOwotLSAgICAgICAgICAgIHVuc2lnbmVkIGludCB3ID0gY2FsX3dpZHRoIC0gKCpjbG9zZXN0 KS0+d2lkdGhPZmZzZXQoKTsKLS0gICAgICAgICAgICB1bnNpZ25lZCBpbnQgaCA9IGNhbF9oZWln aHQgLSAoKmNsb3Nlc3QpLT5oZWlnaHRPZmZzZXQoKTsKLSsgICAgICAgICAgICB4ID0geF9vZmZz ICsgKCpjbG9zZXN0KS0+eE9mZnNldCgpOwotKyAgICAgICAgICAgIHkgPSB5X29mZnMgKyAoKmNs b3Nlc3QpLT55T2Zmc2V0KCk7Ci0rICAgICAgICAgICAgdyA9IGNhbF93aWR0aCAtICgqY2xvc2Vz dCktPndpZHRoT2Zmc2V0KCk7Ci0rICAgICAgICAgICAgaCA9IGNhbF9oZWlnaHQgLSAoKmNsb3Nl c3QpLT5oZWlnaHRPZmZzZXQoKTsKLQotICAgICAgICAgICAgIC8vIHRoZSBsYXN0IHdpbmRvdyBn ZXRzIGV2ZXJ5dGhpbmcgdGhhdCBpcyBsZWZ0LgotICAgICAgICAgICAgIGlmIChub3JtYWxfd2lu ZG93cy5zaXplKCkgPT0gMSkgewotQEAgLTYyMCwxMiArNjIyLDkgQEAgdm9pZCBVbmNsdXR0ZXJD bWQ6OmV4ZWN1dGUoKSB7Ci0gICAgICAgICByZXR1cm47Ci0KLSAgICAgLy8gcGxhY2UKLS0gICAg TWluT3ZlcmxhcFBsYWNlbWVudCBtb3BwOwotICAgICBpbnQgeCwgeTsKLS0gICAgZm9yICh3aW4g PSBwbGFjZWRfd2luZG93cy5iZWdpbigpOyB3aW4gIT0gcGxhY2VkX3dpbmRvd3MuZW5kKCk7ICsr d2luKSB7Ci0tICAgICAgICBtb3BwLnBsYWNlV2luZG93KCoqd2luLCBoZWFkLCB4LCB5KTsKLS0g ICAgICAgICgqd2luKS0+bW92ZSh4LCB5KTsKLS0gICAgfQotKyAgICBmb3IgKHdpbiA9IHBsYWNl ZF93aW5kb3dzLmJlZ2luKCk7IHdpbiAhPSBwbGFjZWRfd2luZG93cy5lbmQoKTsgKyt3aW4pCi0r ICAgICAgICAoKndpbiktPnBsYWNlV2luZG93KCgqd2luKS0+Z2V0T25IZWFkKCkpOwotIH0KLQot IFJFR0lTVEVSX0NPTU1BTkQoc2hvd2Rlc2t0b3AsIFNob3dEZXNrdG9wQ21kLCB2b2lkKTsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaCBiL3NyY3Br Z3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggOTVkOTkyZjkwNzFkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9mbHV4Ym94 L3BhdGNoZXMvem9yX2xvb3BzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAot ZGlmZiAtLWdpdCBhL3NyYy9GYlRrL1NUTFV0aWwuaGggYi9zcmMvRmJUay9TVExVdGlsLmhoCi1p bmRleCBhYmM1NDcyOS4uOWM5YzI3ZjkgMTAwNjQ0Ci0tLS0gYS9zcmMvRmJUay9TVExVdGlsLmho Ci0rKysgYi9zcmMvRmJUay9TVExVdGlsLmhoCi1AQCAtNDgsNDYgKzQ4LDYzIEBAIHN0cnVjdCBJ ZlRoZW5FbHNlPGZhbHNlLCBUYSwgVGI+IHsKLSAvLy8gY2FsbHMgZGVsZXRlIG9uIGVhY2ggaXRl bSBpbiB0aGUgY29udGFpbmVyIGFuZCB0aGVuIGNsZWFycyB0aGUgY29udGFpbmVyCi0gdGVtcGxh dGUgPHR5cGVuYW1lIEE+Ci0gdm9pZCBkZXN0cm95QW5kQ2xlYXIoQSAmYSkgewotLSAgICB0eXBl ZGVmIHR5cGVuYW1lIEE6Oml0ZXJhdG9yIGl0ZXJhdG9yOwotLSAgICBpdGVyYXRvciBpdCA9IGEu YmVnaW4oKTsKLS0gICAgaXRlcmF0b3IgaXRfZW5kID0gYS5lbmQoKTsKLS0gICAgZm9yICg7IGl0 ICE9IGl0X2VuZDsgKytpdCkKLS0gICAgICAgIGRlbGV0ZSAoKml0KTsKLSsgICAgLy90eXBlZGVm IHR5cGVuYW1lIEE6Oml0ZXJhdG9yIGl0ZXJhdG9yOwotKyAgICAvL2l0ZXJhdG9yIGl0ID0gYS5i ZWdpbigpOwotKyAgICAvL2l0ZXJhdG9yIGl0X2VuZCA9IGEuZW5kKCk7Ci0rICAgIC8vZm9yICg7 IGl0ICE9IGl0X2VuZDsgKytpdCkKLSsgICAgLy8gICAgZGVsZXRlICgqaXQpOwotIAotKyAgICAv L2EuY2xlYXIoKTsKLSsgICAgdHlwZWRlZiB0eXBlbmFtZSBBOjppdGVyYXRvciBpdGVyYXRvcjsK LSsgICAgZm9yIChhdXRvIGl0IDogYSkKLSsgICAgICAgIGRlbGV0ZSBpdDsKLSAgICAgYS5jbGVh cigpOwotIH0KLSAKLSAvLy8gY2FsbHMgZGVsZXRlIG9uIGVhY2ggaXRlbSB2YWx1ZSBpbiB0aGUg bWFwIGFuZCB0aGVuIGNsZWFycyB0aGUgbWFwCi0gdGVtcGxhdGUgPHR5cGVuYW1lIEE+Ci0gdm9p ZCBkZXN0cm95QW5kQ2xlYXJTZWNvbmQoQSAmYSkgewotKyAgICAvL3R5cGVkZWYgdHlwZW5hbWUg QTo6aXRlcmF0b3IgaXRlcmF0b3I7Ci0rICAgIC8vaXRlcmF0b3IgaXQgPSBhLmJlZ2luKCk7Ci0r ICAgIC8vaXRlcmF0b3IgaXRfZW5kID0gYS5lbmQoKTsKLSsgICAgLy9mb3IgKDsgaXQgIT0gaXRf ZW5kOyArK2l0KQotKyAgICAvLyAgICBkZWxldGUgaXQtPnNlY29uZDsKLSsgICAgLy9hLmNsZWFy KCk7Ci0gICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6aXRlcmF0b3IgaXRlcmF0b3I7Ci0tICAgIGl0 ZXJhdG9yIGl0ID0gYS5iZWdpbigpOwotLSAgICBpdGVyYXRvciBpdF9lbmQgPSBhLmVuZCgpOwot LSAgICBmb3IgKDsgaXQgIT0gaXRfZW5kOyArK2l0KQotLSAgICAgICAgZGVsZXRlIGl0LT5zZWNv bmQ7Ci0rICAgIGZvciAoYXV0byBpdCA6IGEpCi0rICAgICAgICBkZWxldGUgaXQuc2Vjb25kOwot ICAgICBhLmNsZWFyKCk7Ci0gfQotIAotIAotIHRlbXBsYXRlIDx0eXBlbmFtZSBDLCB0eXBlbmFt ZSBGPgotIEYgZm9yQWxsKEMmIGMsIEYgZikgewotKyAgICAvL3R5cGVkZWYgdHlwZW5hbWUgQzo6 aXRlcmF0b3IgaXRlcmF0b3I7Ci0rICAgIC8vaXRlcmF0b3IgaSA9IGMuYmVnaW4oKTsKLSsgICAg Ly9pdGVyYXRvciBlID0gYy5lbmQoKTsKLSsgICAgLy9mb3IgKDsgaSAhPSBlOyBpKyspIHsKLSsg ICAgLy8gICAgZigqaSk7Ci0rICAgIC8vfQotICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6Oml0ZXJh dG9yIGl0ZXJhdG9yOwotLSAgICBpdGVyYXRvciBpID0gYy5iZWdpbigpOwotLSAgICBpdGVyYXRv ciBlID0gYy5lbmQoKTsKLS0gICAgZm9yICg7IGkgIT0gZTsgaSsrKSB7Ci0tICAgICAgICBmKCpp KTsKLS0gICAgfQotKyAgICBmb3IgKGF1dG8gaSA6IGMpCi0rICAgICAgICBmKGkpOwotICAgICBy ZXR1cm4gZjsKLSB9Ci0gCi0gdGVtcGxhdGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIEksIHR5cGVu YW1lIEY+Ci0gRiBmb3JBbGxJZihDJiBjLCBJIGksIEYgZikgewotKyAgICAvL3R5cGVkZWYgdHlw ZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7Ci0rICAgIC8vaXRlcmF0b3IgaXQgPSBjLmJlZ2lu KCk7Ci0rICAgIC8vaXRlcmF0b3IgZW5kID0gYy5lbmQoKTsKLSsgICAgLy9mb3IgKDsgaXQgIT0g ZW5kOyArK2l0KSB7Ci0rICAgIC8vICAgIGlmIChpKCppdCkpCi0rICAgIC8vICAgICAgICBmKCpp dCk7Ci0rICAgIC8vfQotKyAgICAvL3JldHVybiBmOwotICAgICB0eXBlZGVmIHR5cGVuYW1lIEM6 Oml0ZXJhdG9yIGl0ZXJhdG9yOwotLSAgICBpdGVyYXRvciBpdCA9IGMuYmVnaW4oKTsKLS0gICAg aXRlcmF0b3IgZW5kID0gYy5lbmQoKTsKLS0gICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgewot LSAgICAgICAgaWYgKGkoKml0KSkKLS0gICAgICAgICAgICBmKCppdCk7Ci0rICAgIGZvciAoYXV0 byBpdCA6IGMpIHsKLSsgICAgICAgIGlmIChpKGl0KSkKLSsgICAgICAgICAgICBmKGl0KTsKLSAg ICAgfQotICAgICByZXR1cm4gZjsKLSB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvdGVt cGxhdGUgYi9zcmNwa2dzL2ZsdXhib3gvdGVtcGxhdGUKaW5kZXggNmIwZTRjZDI2MGNiLi5lMTBi NDI2YzQ5MjQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmx1eGJveC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2ZsdXhib3gvdGVtcGxhdGUKQEAgLTEsNTYgKzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2ZsdXhib3gnCiBwa2duYW1lPWZsdXhib3gKLXZlcnNpb249MS4zLjgKLSNub3N0cmlwPW5v c3RyaXAKLV9jb21taXQ9ZTJjYmQxNzllY2IyZWYyZDc2ZTBhZDFmZGU4NGI0NDMyNTMwNTc5OQot cmV2aXNpb249MAotd3Jrc3JjPWZsdXhib3gtJHtfY29tbWl0fQordmVyc2lvbj0xLjMuNworcmV2 aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0tZGlz YWJsZS1ubHMgLS1kaXNhYmxlLXhpbmVyYW1hIC0tZGlzYWJsZS1zaGFwZSAtLWRpc2FibGUteHJl bmRlcgotIC0tZGlzYWJsZS1mcmliaWRpIC0tZGlzYWJsZS1zbGl0Citjb25maWd1cmVfYXJncz0i LS1lbmFibGUtbmxzCiAgYWNfY3ZfbGliX1gxMV9YT3BlbkRpc3BsYXk9eWVzIGFjX2N2X2xpYl9Y ZnRfWGZ0Rm9udE9wZW49eWVzCiAgYWNfY3ZfbGliX1hyZW5kZXJfWFJlbmRlckNyZWF0ZVBpY3R1 cmU9eWVzIGFjX2N2X2xpYl9YcG1fWHBtUmVhZEZpbGVUb1BpeG1hcD15ZXMKLSBhY19jdl9saWJf WGV4dF9YU2hhcGVDb21iaW5lU2hhcGU9bm8KKyBhY19jdl9saWJfWGluZXJhbWFfWGluZXJhbWFR dWVyeVNjcmVlbnM9eWVzIGFjX2N2X2xpYl9YZXh0X1hTaGFwZUNvbWJpbmVTaGFwZT15ZXMKICBh Y19jdl9saWJfWHJhbmRyX1hSUlF1ZXJ5RXh0ZW5zaW9uPXllcyBhY19jdl9saWJfZnJpYmlkaV9m cmliaWRpX3ZlcnNpb25faW5mbz15ZXMiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0 b21ha2UgbGlidG9vbCBnZXR0ZXh0IGdldHRleHQtZGV2ZWwgY2xhbmcgbGx2bSIKK2hvc3RtYWtl ZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBsaWJ0b29sIGdldHRleHQgZ2V0dGV4dC1kZXZl bCIKIG1ha2VkZXBlbmRzPSJsaWJTTS1kZXZlbCBsaWJYcmVuZGVyLWRldmVsIGxpYlhmdC1kZXZl bCBsaWJYcG0tZGV2ZWwgaW1saWIyLWRldmVsCi0gbGliWGV4dC1kZXZlbCBsaWJYcmFuZHItZGV2 ZWwgZnJpYmlkaS1kZXZlbCIKKyBsaWJYZXh0LWRldmVsIGxpYlhpbmVyYW1hLWRldmVsIGxpYlhy YW5kci1kZXZlbCBmcmliaWRpLWRldmVsIgogc2hvcnRfZGVzYz0iSGlnaGx5IGNvbmZpZ3VyYWJs ZSBhbmQgbG93IHJlc291cmNlIFgxMSBXaW5kb3cgbWFuYWdlciIKIG1haW50YWluZXI9Ik9ycGhh bmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJNSVQiCiBob21lcGFnZT0iaHR0 cDovL3d3dy5mbHV4Ym94Lm9yZyIKLWRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2ZsdXhi b3gvZmx1eGJveC9hcmNoaXZlLyR7X2NvbW1pdH0udGFyLmd6IgotY2hlY2tzdW09Njc0MGQ5Y2Q0 YTNlNjMxZTAxMzBjYmNiYzkxY2NhYzZhZjYzMzVkYzEyMGY5YWRjNWViYmM4ZGM5ZDMyNTlhMAot Ci1ub3BpZT15ZXMKLVgxMV9GTEFHUz0iLU9zIC1waXBlIgotI0ZSSUJJRElfQ0ZMQUdTPSItT3Mg LXBpcGUiCi1YUkFORFJfQ0ZMQUdTPSItT3MgLXBpcGUiCi1BTV9DUFBGTEFHUz0iLU9zIC1waXBl IgotQ0ZMQUdTPSItT3MgLXBpcGUiCi1DWFhGTEFHUz0iLU9zIC1waXBlIC1zdGQ9YysrMTEiCi1D Qz0iY2xhbmciCi1DWFg9ImNsYW5nKysiCi1IT1NUX0NDPWNsYW5nCi1IT1NUX0NYWD1jbGFuZysr CitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9mbHV4Ym94L2ZsdXhib3gvYXJjaGl2ZS9y ZWZzL3RhZ3MvUmVsZWFzZS0ke3ZlcnNpb24vLy4vX30udGFyLmd6IgorY2hlY2tzdW09OTkwNDE0 YWUzNDJhMzVjNTcwM2U1MDI1YThiZjAxOWIwYjRkYWRhNTVkNTcwNzFjNTFkM2Q0OThhYmI1Y2Qz NgogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkqLW11c2wpIGNvbmZpZ3VyZV9h cmdzPSIke2NvbmZpZ3VyZV9hcmdzL2VuYWJsZS1ubHMvZGlzYWJsZS1ubHN9IiA7OwogZXNhYwog CiBwcmVfY29uZmlndXJlKCkgewotICBleHBvcnQgWDExX0ZMQUdTPSItT3MgLXBpcGUiCi0gICMg ZXhwb3J0IEZSSUJJRElfQ0ZMQUdTPSItT3MgLXBpcGUiCi0gIGV4cG9ydCBYUkFORFJfQ0ZMQUdT PSItT3MgLXBpcGUiCi0gIGV4cG9ydCBBTV9DUFBGTEFHUz0iLU9zIC1waXBlIgotICBleHBvcnQg Q0ZMQUdTPSItT3MgLXBpcGUiCi0gIGV4cG9ydCBDWFhGTEFHUz0iLU9zIC1waXBlIC1zdGQ9Yysr MTEiCi0gIGV4cG9ydCBDQz0iY2xhbmciCi0gIGV4cG9ydCBDWFg9ImNsYW5nKysiCi0gIGV4cG9y dCBIT1NUX0NDPWNsYW5nCi0gIGV4cG9ydCBIT1NUX0NYWD1jbGFuZysrCi0gIGV4cG9ydCBQUkVG SVg9L3VzcgotICAuL2F1dG9nZW4uc2gKKwkuL2F1dG9nZW4uc2gKIH0KIAogcG9zdF9pbnN0YWxs KCkgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlcmRwL3RlbXBsYXRlIGIvc3JjcGtncy9mcmVl cmRwL3RlbXBsYXRlCmluZGV4IDUzZTY3NjkwZjg2My4uMWI1MGU5YTg2YmIyIDEwMDY0NAotLS0g YS9zcmNwa2dzL2ZyZWVyZHAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9mcmVlcmRwL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZnJlZXJkcCcKIHBrZ25hbWU9 ZnJlZXJkcAogdmVyc2lvbj0yLjkuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhfQUxTQT1PTiAtRFdJVEhfQ1VQUz1PRkYg LURXSVRIX0ZGTVBFRz1PTgogIC1EV0lUSF9HU1RSRUFNRVJfMF8xMD1PRkYgLURXSVRIX0dTVFJF QU1FUl8xXzA9T0ZGIC1EV0lUSF9KUEVHPU9OCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dlcmJlcmEv dGVtcGxhdGUgYi9zcmNwa2dzL2dlcmJlcmEvdGVtcGxhdGUKaW5kZXggYWUxNGYzNWM3NjdjLi4y ZGMwYWMwY2UwM2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2VyYmVyYS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dlcmJlcmEvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnZXJiZXJhJwogcGtnbmFtZT1nZXJiZXJhCiB2ZXJzaW9uPTEuMTIuMQotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhf U1lTVEVNRD0wIC1EV0lUSF9BVkNPREVDPTEiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWci CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTEucGF0Y2gg Yi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTEucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43Y2ZjOThhZGEzNjgKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTEucGF0Y2gKQEAgLTAsMCAr MSwyMzIgQEAKK0Zyb20gMDNiYmUwMWI3OWExZjA3YTY3ODBjYjYwZjIzYTA4NzEwNGM1ZDc3YiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFiczYyIDxvdHRvbWFubkB5YW5kZXgucnU+ CitEYXRlOiBGcmksIDMwIE1hciAyMDE4IDIyOjUzOjI0ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hd IEZpeCB3YXJuaW5ncyB3aGlsZSBjb21waWxlIHdpdGggRkZNcGVnIDMuNC4yIChpc3N1ZSAjOTc4 KQorCistLS0KKyBmZm1wZWdhdWRpby5jYyB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYyIGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9mZm1wZWdhdWRpby5jYyBiL2ZmbXBl Z2F1ZGlvLmNjCitpbmRleCBlZDExNzJiZGQuLjU2ZThmNzg4ZSAxMDA2NDQKKy0tLSBhL2ZmbXBl Z2F1ZGlvLmNjCisrKysgYi9mZm1wZWdhdWRpby5jYworQEAgLTkxLDYgKzkxLDcgQEAgc3RydWN0 IERlY29kZXJDb250ZXh0CisgICBRQnl0ZUFycmF5IGF1ZGlvRGF0YV87CisgICBRRGF0YVN0cmVh bSBhdWRpb0RhdGFTdHJlYW1fOworICAgQVZGb3JtYXRDb250ZXh0ICogZm9ybWF0Q29udGV4dF87 CisrICBBVkNvZGVjICogY29kZWNfOworICAgQVZDb2RlY0NvbnRleHQgKiBjb2RlY0NvbnRleHRf OworICAgQVZJT0NvbnRleHQgKiBhdmlvQ29udGV4dF87CisgICBBVlN0cmVhbSAqIGF1ZGlvU3Ry ZWFtXzsKK0BAIC0xMTQsNiArMTE1LDcgQEAgRGVjb2RlckNvbnRleHQ6OkRlY29kZXJDb250ZXh0 KCBRQnl0ZUFycmF5IGNvbnN0ICYgYXVkaW9EYXRhLCBRQXRvbWljSW50ICYgaXNDYW4KKyAgIGF1 ZGlvRGF0YV8oIGF1ZGlvRGF0YSApLAorICAgYXVkaW9EYXRhU3RyZWFtXyggYXVkaW9EYXRhXyAp LAorICAgZm9ybWF0Q29udGV4dF8oIE5VTEwgKSwKKysgIGNvZGVjXyggTlVMTCApLAorICAgY29k ZWNDb250ZXh0XyggTlVMTCApLAorICAgYXZpb0NvbnRleHRfKCBOVUxMICksCisgICBhdWRpb1N0 cmVhbV8oIE5VTEwgKSwKK0BAIC0xNDMsNyArMTQ1LDExIEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6 Om9wZW5Db2RlYyggUVN0cmluZyAmIGVycm9yU3RyaW5nICkKKyAgICAgcmV0dXJuIGZhbHNlOwor ICAgfQorCisrI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA8IDU2IHx8ICggTElCQVZDT0RF Q19WRVJTSU9OX01BSk9SID09IDU2ICYmIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5PUiA8IDU2ICkK KyAgIHVuc2lnbmVkIGNoYXIgKiBhdmlvQnVmZmVyID0gKCB1bnNpZ25lZCBjaGFyICogKWF2X21h bGxvYygga0J1ZmZlclNpemUgKyBGRl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFICk7CisrI2Vs c2UKKysgIHVuc2lnbmVkIGNoYXIgKiBhdmlvQnVmZmVyID0gKCB1bnNpZ25lZCBjaGFyICogKWF2 X21hbGxvYygga0J1ZmZlclNpemUgKyBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFICk7Cisr I2VuZGlmCisgICBpZiAoICFhdmlvQnVmZmVyICkKKyAgIHsKKyAgICAgZXJyb3JTdHJpbmcgPSBR T2JqZWN0Ojp0ciggImF2X21hbGxvYygpIGZhaWxlZC4iICk7CitAQCAtMTg2LDcgKzE5MiwxMSBA QCBib29sIERlY29kZXJDb250ZXh0OjpvcGVuQ29kZWMoIFFTdHJpbmcgJiBlcnJvclN0cmluZyAp CisgICAvLyBGaW5kIGF1ZGlvIHN0cmVhbSwgdXNlIHRoZSBmaXJzdCBhdWRpbyBzdHJlYW0gaWYg YXZhaWxhYmxlCisgICBmb3IgKCB1bnNpZ25lZCBpID0gMDsgaSA8IGZvcm1hdENvbnRleHRfLT5u Yl9zdHJlYW1zOyBpKysgKQorICAgeworKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1 NyB8fCAoIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA9PSA1NyAmJiBMSUJBVkNPREVDX1ZFUlNJ T05fTUlOT1IgPCAzMyApCisgICAgIGlmICggZm9ybWF0Q29udGV4dF8tPnN0cmVhbXNbaV0tPmNv ZGVjLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9BVURJTyApCisrI2Vsc2UKKysgICAgICBp ZiAoIGZvcm1hdENvbnRleHRfLT5zdHJlYW1zW2ldLT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9PSBB Vk1FRElBX1RZUEVfQVVESU8gKQorKyNlbmRpZgorICAgICB7CisgICAgICAgYXVkaW9TdHJlYW1f ID0gZm9ybWF0Q29udGV4dF8tPnN0cmVhbXNbaV07CisgICAgICAgYnJlYWs7CitAQCAtMTk4LDIy ICsyMDgsMzggQEAgYm9vbCBEZWNvZGVyQ29udGV4dDo6b3BlbkNvZGVjKCBRU3RyaW5nICYgZXJy b3JTdHJpbmcgKQorICAgICByZXR1cm4gZmFsc2U7CisgICB9CisKKysjaWYgTElCQVZDT0RFQ19W RVJTSU9OX01BSk9SIDwgNTcgfHwgKCBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPT0gNTcgJiYg TElCQVZDT0RFQ19WRVJTSU9OX01JTk9SIDwgMzMgKQorICAgY29kZWNDb250ZXh0XyA9IGF1ZGlv U3RyZWFtXy0+Y29kZWM7CistICBBVkNvZGVjICogY29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVjb2Rl ciggY29kZWNDb250ZXh0Xy0+Y29kZWNfaWQgKTsKKy0gIGlmICggIWNvZGVjICkKKysgIGNvZGVj XyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKCBjb2RlY0NvbnRleHRfLT5jb2RlY19pZCApOworKyAg aWYgKCAhY29kZWNfICkKKyAgIHsKKyAgICAgZXJyb3JTdHJpbmcgPSBRT2JqZWN0Ojp0ciggIkNv ZGVjIFtpZDogJTFdIG5vdCBmb3VuZC4iICkuYXJnKCBjb2RlY0NvbnRleHRfLT5jb2RlY19pZCAp OworICAgICByZXR1cm4gZmFsc2U7CisgICB9CisrI2Vsc2UKKysgIGNvZGVjXyA9IGF2Y29kZWNf ZmluZF9kZWNvZGVyKCBhdWRpb1N0cmVhbV8tPmNvZGVjcGFyLT5jb2RlY19pZCApOworKyAgaWYg KCAhY29kZWNfICkKKysgIHsKKysgICAgZXJyb3JTdHJpbmcgPSBRT2JqZWN0Ojp0ciggIkNvZGVj IFtpZDogJTFdIG5vdCBmb3VuZC4iICkuYXJnKCBhdWRpb1N0cmVhbV8tPmNvZGVjcGFyLT5jb2Rl Y19pZCApOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrICBjb2RlY0NvbnRleHRfID0gYXZj b2RlY19hbGxvY19jb250ZXh0MyggY29kZWNfICk7CisrICBpZiAoICFjb2RlY0NvbnRleHRfICkK KysgIHsKKysgICAgZXJyb3JTdHJpbmcgPSBRT2JqZWN0Ojp0ciggImF2Y29kZWNfYWxsb2NfY29u dGV4dDMoKSBmYWlsZWQuIiApOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrICBhdmNvZGVj X3BhcmFtZXRlcnNfdG9fY29udGV4dCggY29kZWNDb250ZXh0XywgYXVkaW9TdHJlYW1fLT5jb2Rl Y3BhciApOworKyNlbmRpZgorCistICByZXQgPSBhdmNvZGVjX29wZW4yKCBjb2RlY0NvbnRleHRf LCBjb2RlYywgTlVMTCApOworKyAgcmV0ID0gYXZjb2RlY19vcGVuMiggY29kZWNDb250ZXh0Xywg Y29kZWNfLCBOVUxMICk7CisgICBpZiAoIHJldCA8IDAgKQorICAgeworICAgICBlcnJvclN0cmlu ZyA9IFFPYmplY3Q6OnRyKCAiYXZjb2RlY19vcGVuMigpIGZhaWxlZDogJTEuIiApLmFyZyggYXZF cnJvclN0cmluZyggcmV0ICkgKTsKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorCistICBhdl9s b2coIE5VTEwsIEFWX0xPR19JTkZPLCAiQ29kZWMgb3BlbjogJXM6IGNoYW5uZWxzOiAlZCwgcmF0 ZTogJWQsIGZvcm1hdDogJXNcbiIsIGNvZGVjLT5sb25nX25hbWUsCisrICBhdl9sb2coIE5VTEws IEFWX0xPR19JTkZPLCAiQ29kZWMgb3BlbjogJXM6IGNoYW5uZWxzOiAlZCwgcmF0ZTogJWQsIGZv cm1hdDogJXNcbiIsIGNvZGVjXy0+bG9uZ19uYW1lLAorICAgICAgICAgICBjb2RlY0NvbnRleHRf LT5jaGFubmVscywgY29kZWNDb250ZXh0Xy0+c2FtcGxlX3JhdGUsIGF2X2dldF9zYW1wbGVfZm10 X25hbWUoIGNvZGVjQ29udGV4dF8tPnNhbXBsZV9mbXQgKSApOworICAgcmV0dXJuIHRydWU7Cisg fQorQEAgLTI1MiwxMCArMjc4LDEzIEBAIHZvaWQgRGVjb2RlckNvbnRleHQ6OmNsb3NlQ29kZWMo KQorCisgICAvLyBDbG9zaW5nIGEgY29kZWMgY29udGV4dCB3aXRob3V0IHByaW9yIGF2Y29kZWNf b3BlbjIoKSB3aWxsIHJlc3VsdCBpbgorICAgLy8gYSBjcmFzaCBpbiBmZm1wZWcKKy0gIGlmICgg YXVkaW9TdHJlYW1fICYmIGF1ZGlvU3RyZWFtXy0+Y29kZWMgJiYgYXVkaW9TdHJlYW1fLT5jb2Rl Yy0+Y29kZWMgKQorKyAgaWYgKCBhdWRpb1N0cmVhbV8gJiYgY29kZWNDb250ZXh0XyAmJiBjb2Rl Y18gKQorICAgeworICAgICBhdWRpb1N0cmVhbV8tPmRpc2NhcmQgPSBBVkRJU0NBUkRfQUxMOwor LSAgICBhdmNvZGVjX2Nsb3NlKCBhdWRpb1N0cmVhbV8tPmNvZGVjICk7CisrICAgIGF2Y29kZWNf Y2xvc2UoIGNvZGVjQ29udGV4dF8gKTsKKysjaWYgTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID4g NTcgfHwgKCBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPT0gNTcgJiYgTElCQVZDT0RFQ19WRVJT SU9OX01JTk9SID49IDMzICkKKysgICAgYXZjb2RlY19mcmVlX2NvbnRleHQoICZjb2RlY0NvbnRl eHRfICk7CisrI2VuZGlmCisgICB9CisKKyAgIGF2Zm9ybWF0X2Nsb3NlX2lucHV0KCAmZm9ybWF0 Q29udGV4dF8gKTsKK0BAIC0zNTYsNiArMzg1LDcgQEAgYm9vbCBEZWNvZGVyQ29udGV4dDo6cGxh eSggUVN0cmluZyAmIGVycm9yU3RyaW5nICkKKyAgICAgaWYgKCBwYWNrZXQuc3RyZWFtX2luZGV4 ID09IGF1ZGlvU3RyZWFtXy0+aW5kZXggKQorICAgICB7CisgICAgICAgQVZQYWNrZXQgcGFjayA9 IHBhY2tldDsKKysjaWYgTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SIDwgNTcgfHwgKCBMSUJBVkNP REVDX1ZFUlNJT05fTUFKT1IgPT0gNTcgJiYgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SIDwgMzcg KQorICAgICAgIGludCBnb3RGcmFtZSA9IDA7CisgICAgICAgZG8KKyAgICAgICB7CitAQCAtMzcw LDYgKzQwMCwxOSBAQCBib29sIERlY29kZXJDb250ZXh0OjpwbGF5KCBRU3RyaW5nICYgZXJyb3JT dHJpbmcgKQorICAgICAgICAgcGFjay5kYXRhICs9IGxlbjsKKyAgICAgICB9CisgICAgICAgd2hp bGUoIHBhY2suc2l6ZSA+IDAgKTsKKysjZWxzZQorKyAgICAgIGludCByZXQgPSBhdmNvZGVjX3Nl bmRfcGFja2V0KCBjb2RlY0NvbnRleHRfLCAmcGFjayApOworKyAgICAgIC8qIHJlYWQgYWxsIHRo ZSBvdXRwdXQgZnJhbWVzIChpbiBnZW5lcmFsIHRoZXJlIG1heSBiZSBhbnkgbnVtYmVyIG9mIHRo ZW0pICovCisrICAgICAgd2hpbGUoIHJldCA+PSAwICkKKysgICAgICB7CisrICAgICAgICByZXQg PSBhdmNvZGVjX3JlY2VpdmVfZnJhbWUoIGNvZGVjQ29udGV4dF8sIGZyYW1lKTsKKysKKysgICAg ICAgIGlmICggUXQ0eDU6OkF0b21pY0ludDo6bG9hZEFjcXVpcmUoIGlzQ2FuY2VsbGVkXyApIHx8 IHJldCA8IDAgKQorKyAgICAgICAgICBicmVhazsKKysKKysgICAgICAgIHBsYXlGcmFtZSggZnJh bWUgKTsKKysgICAgICB9CisrI2VuZGlmCisgICAgIH0KKyAgICAgLy8gYXZfZnJlZV9wYWNrZXQo KSBtdXN0IGJlIGNhbGxlZCBhZnRlciBlYWNoIGNhbGwgdG8gYXZfcmVhZF9mcmFtZSgpCisgI2lm IExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA8IDU3IHx8ICggTElCQVZDT0RFQ19WRVJTSU9OX01B Sk9SID09IDU3ICYmIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5PUiA8IDcgKQorQEAgLTM3OSw2ICs0 MjIsNyBAQCBib29sIERlY29kZXJDb250ZXh0OjpwbGF5KCBRU3RyaW5nICYgZXJyb3JTdHJpbmcg KQorICNlbmRpZgorICAgfQorCisrI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA8IDU3IHx8 ICggTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID09IDU3ICYmIExJQkFWQ09ERUNfVkVSU0lPTl9N SU5PUiA8IDM3ICkKKyAgIGlmICggIVF0NHg1OjpBdG9taWNJbnQ6OmxvYWRBY3F1aXJlKCBpc0Nh bmNlbGxlZF8gKSAmJgorICAgICAgICBjb2RlY0NvbnRleHRfLT5jb2RlYy0+Y2FwYWJpbGl0aWVz ICYgQ09ERUNfQ0FQX0RFTEFZICkKKyAgIHsKK0BAIC0zOTEsNiArNDM1LDE4IEBAIGJvb2wgRGVj b2RlckNvbnRleHQ6OnBsYXkoIFFTdHJpbmcgJiBlcnJvclN0cmluZyApCisgICAgICAgcGxheUZy YW1lKCBmcmFtZSApOworICAgICB9CisgICB9CisrI2Vsc2UKKysgIC8qIGZsdXNoIHRoZSBkZWNv ZGVyICovCisrICBhdl9pbml0X3BhY2tldCggJnBhY2tldCApOworKyAgaW50IHJldCA9IGF2Y29k ZWNfc2VuZF9wYWNrZXQoY29kZWNDb250ZXh0XywgJnBhY2tldCApOworKyAgd2hpbGUoIHJldCA+ PSAwICkKKysgIHsKKysgICAgcmV0ID0gYXZjb2RlY19yZWNlaXZlX2ZyYW1lKGNvZGVjQ29udGV4 dF8sIGZyYW1lKTsKKysgICAgaWYgKCBRdDR4NTo6QXRvbWljSW50Ojpsb2FkQWNxdWlyZSggaXND YW5jZWxsZWRfICkgfHwgcmV0IDwgMCApCisrICAgICAgYnJlYWs7CisrICAgIHBsYXlGcmFtZSgg ZnJhbWUgKTsKKysgIH0KKysjZW5kaWYKKworICNpZiBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1Ig PCA1NAorICAgYXZfZnJlZSggZnJhbWUgKTsKKzMyCitzcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hl cy9mZm1wZWc1LTIucGF0Y2gKK0NvbW1lbnQgb24gdGhpcyBmaWxlCitAQCAtMCwwICsxLDMyIEBA CitGcm9tIDk2NmY0YThiNzhlNjMyNGI5MzBlNWE1MGYyYmI5MzBiZDg3ZTU2NWUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBBYnM2MiA8b3R0b21hbm5AeWFuZGV4LnJ1PgorRGF0ZTog RnJpLCAyNyBTZXAgMjAxOSAxNzowMDo1MiArMDMwMAorU3ViamVjdDogW1BBVENIXSBGRm1wZWcg cGxheWVyOiBGaXggc29tZSBjcmFzaGVzIG9uIGJyb2tlbiBmaWxlcworCistLS0KKyBmZm1wZWdh dWRpby5jYyB8IDQgKysrKworIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKKworZGlm ZiAtLWdpdCBhL2ZmbXBlZ2F1ZGlvLmNjIGIvZmZtcGVnYXVkaW8uY2MKK2luZGV4IDU2ZThmNzg4 ZS4uNDE1ZmM3OWNiIDEwMDY0NAorLS0tIGEvZmZtcGVnYXVkaW8uY2MKKysrKyBiL2ZmbXBlZ2F1 ZGlvLmNjCitAQCAtNTEsNyArNTEsOSBAQCBBdWRpb1NlcnZpY2UgJiBBdWRpb1NlcnZpY2U6Omlu c3RhbmNlKCkKKworIEF1ZGlvU2VydmljZTo6QXVkaW9TZXJ2aWNlKCkKKyB7CisrI2lmIExJQkFW Rk9STUFUX1ZFUlNJT05fTUFKT1IgPCA1OCB8fCAoIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1Ig PT0gNTggJiYgTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiA8IDkgKQorICAgYXZfcmVnaXN0ZXJf YWxsKCk7CisrI2VuZGlmCisgICBhb19pbml0aWFsaXplKCk7CisgfQorCitAQCAtNDM4LDYgKzQ0 MCw4IEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6OnBsYXkoIFFTdHJpbmcgJiBlcnJvclN0cmluZyAp CisgI2Vsc2UKKyAgIC8qIGZsdXNoIHRoZSBkZWNvZGVyICovCisgICBhdl9pbml0X3BhY2tldCgg JnBhY2tldCApOworKyAgcGFja2V0LmRhdGEgPSBOVUxMOworKyAgcGFja2V0LnNpemUgPSAwOwor ICAgaW50IHJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQoY29kZWNDb250ZXh0XywgJnBhY2tldCAp OworICAgd2hpbGUoIHJldCA+PSAwICkKKyAgIHsKKzI1CitzcmNwa2dzL2dvbGRlbmRpY3QvcGF0 Y2hlcy9mZm1wZWc1LTMucGF0Y2gKK0NvbW1lbnQgb24gdGhpcyBmaWxlCitAQCAtMCwwICsxLDI1 IEBACitGcm9tIDhhY2IyODhjOWU5YmRiM2M2YmYyZTgwMzk1NGRkM2I2YWMyNzNjMDUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMaWFvIEp1bnh1YW4gPG1pa2VsanhAMTI2LmNvbT4K K0RhdGU6IFN1biwgMjAgRmViIDIwMjIgMTI6Mjg6MDUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0g YWRkIHN1cHBvcnQgZm9yIGZmbXBlZyA1LjAKKworLS0tCisgZmZtcGVnYXVkaW8uY2MgfCA0ICsr KysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9mZm1w ZWdhdWRpby5jYyBiL2ZmbXBlZ2F1ZGlvLmNjCitpbmRleCBkNTUwZjRhNzcuLjc5NDhkMjE4NyAx MDA2NDQKKy0tLSBhL2ZmbXBlZ2F1ZGlvLmNjCisrKysgYi9mZm1wZWdhdWRpby5jYworQEAgLTk0 LDcgKzk0LDExIEBAIHN0cnVjdCBEZWNvZGVyQ29udGV4dAorICAgUUJ5dGVBcnJheSBhdWRpb0Rh dGFfOworICAgUURhdGFTdHJlYW0gYXVkaW9EYXRhU3RyZWFtXzsKKyAgIEFWRm9ybWF0Q29udGV4 dCAqIGZvcm1hdENvbnRleHRfOworKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1OQor ICAgQVZDb2RlYyAqIGNvZGVjXzsKKysjZWxzZQorKyAgY29uc3QgQVZDb2RlYyAqIGNvZGVjXzsK KysjZW5kaWYKKyAgIEFWQ29kZWNDb250ZXh0ICogY29kZWNDb250ZXh0XzsKKyAgIEFWSU9Db250 ZXh0ICogYXZpb0NvbnRleHRfOworICAgQVZTdHJlYW0gKiBhdWRpb1N0cmVhbV87CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0Y2ggYi9zcmNwa2dz L2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi45YzQ3N2IwYzEzNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAor CitGcm9tIDk2NmY0YThiNzhlNjMyNGI5MzBlNWE1MGYyYmI5MzBiZDg3ZTU2NWUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBBYnM2MiA8b3R0b21hbm5AeWFuZGV4LnJ1PgorRGF0ZTog RnJpLCAyNyBTZXAgMjAxOSAxNzowMDo1MiArMDMwMAorU3ViamVjdDogW1BBVENIXSBGRm1wZWcg cGxheWVyOiBGaXggc29tZSBjcmFzaGVzIG9uIGJyb2tlbiBmaWxlcworCistLS0KKyBmZm1wZWdh dWRpby5jYyB8IDQgKysrKworIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKKworZGlm ZiAtLWdpdCBhL2ZmbXBlZ2F1ZGlvLmNjIGIvZmZtcGVnYXVkaW8uY2MKK2luZGV4IDU2ZThmNzg4 ZS4uNDE1ZmM3OWNiIDEwMDY0NAorLS0tIGEvZmZtcGVnYXVkaW8uY2MKKysrKyBiL2ZmbXBlZ2F1 ZGlvLmNjCitAQCAtNTEsNyArNTEsOSBAQCBBdWRpb1NlcnZpY2UgJiBBdWRpb1NlcnZpY2U6Omlu c3RhbmNlKCkKKworIEF1ZGlvU2VydmljZTo6QXVkaW9TZXJ2aWNlKCkKKyB7CisrI2lmIExJQkFW Rk9STUFUX1ZFUlNJT05fTUFKT1IgPCA1OCB8fCAoIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1Ig PT0gNTggJiYgTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiA8IDkgKQorICAgYXZfcmVnaXN0ZXJf YWxsKCk7CisrI2VuZGlmCisgICBhb19pbml0aWFsaXplKCk7CisgfQorCitAQCAtNDM4LDYgKzQ0 MCw4IEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6OnBsYXkoIFFTdHJpbmcgJiBlcnJvclN0cmluZyAp CisgI2Vsc2UKKyAgIC8qIGZsdXNoIHRoZSBkZWNvZGVyICovCisgICBhdl9pbml0X3BhY2tldCgg JnBhY2tldCApOworKyAgcGFja2V0LmRhdGEgPSBOVUxMOworKyAgcGFja2V0LnNpemUgPSAwOwor ICAgaW50IHJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQoY29kZWNDb250ZXh0XywgJnBhY2tldCAp OworICAgd2hpbGUoIHJldCA+PSAwICkKKyAgIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ29sZGVu ZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaCBiL3NyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVz L2ZmbXBlZzUtMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjcyMTAxOTAzZDFkMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ29sZGVuZGljdC9wYXRj aGVzL2ZmbXBlZzUtMy5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIDhhY2IyODhjOWU5YmRi M2M2YmYyZTgwMzk1NGRkM2I2YWMyNzNjMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBMaWFvIEp1bnh1YW4gPG1pa2VsanhAMTI2LmNvbT4KK0RhdGU6IFN1biwgMjAgRmViIDIwMjIg MTI6Mjg6MDUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gYWRkIHN1cHBvcnQgZm9yIGZmbXBlZyA1 LjAKKworLS0tCisgZmZtcGVnYXVkaW8uY2MgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBp bnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9mZm1wZWdhdWRpby5jYyBiL2ZmbXBlZ2F1ZGlv LmNjCitpbmRleCBkNTUwZjRhNzcuLjc5NDhkMjE4NyAxMDA2NDQKKy0tLSBhL2ZmbXBlZ2F1ZGlv LmNjCisrKysgYi9mZm1wZWdhdWRpby5jYworQEAgLTk0LDcgKzk0LDExIEBAIHN0cnVjdCBEZWNv ZGVyQ29udGV4dAorICAgUUJ5dGVBcnJheSBhdWRpb0RhdGFfOworICAgUURhdGFTdHJlYW0gYXVk aW9EYXRhU3RyZWFtXzsKKyAgIEFWRm9ybWF0Q29udGV4dCAqIGZvcm1hdENvbnRleHRfOworKyNp ZiBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1OQorICAgQVZDb2RlYyAqIGNvZGVjXzsKKysj ZWxzZQorKyAgY29uc3QgQVZDb2RlYyAqIGNvZGVjXzsKKysjZW5kaWYKKyAgIEFWQ29kZWNDb250 ZXh0ICogY29kZWNDb250ZXh0XzsKKyAgIEFWSU9Db250ZXh0ICogYXZpb0NvbnRleHRfOworICAg QVZTdHJlYW0gKiBhdWRpb1N0cmVhbV87CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbGRlbmRpY3Qv dGVtcGxhdGUgYi9zcmNwa2dzL2dvbGRlbmRpY3QvdGVtcGxhdGUKaW5kZXggZjQxYjViMmM2ODk5 Li40NTQ0YWU3MTBlZTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ29sZGVuZGljdC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dvbGRlbmRpY3QvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnb2xkZW5kaWN0JwogcGtnbmFtZT1nb2xkZW5kaWN0CiB2ZXJzaW9uPTEu NS4wUkMyCi1yZXZpc2lvbj01CityZXZpc2lvbj02CiBidWlsZF9zdHlsZT1xbWFrZQogY29uZmln dXJlX2FyZ3M9IkNPTkZJRys9emltX3N1cHBvcnQiCiBob3N0bWFrZWRlcGVuZHM9InF0NS1xbWFr ZSBwa2ctY29uZmlnIHF0NS1ob3N0LXRvb2xzIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc3QtbGli YXYvdGVtcGxhdGUgYi9zcmNwa2dzL2dzdC1saWJhdi90ZW1wbGF0ZQppbmRleCBlOWE3OWRjNjUw YTUuLmYwODJiZDIxMWM2NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc3QtbGliYXYvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nc3QtbGliYXYvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnc3QtbGliYXYnCiBwa2duYW1lPWdzdC1saWJhdgogdmVyc2lvbj0xLjIw LjMKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRl cGVuZHM9InBrZy1jb25maWcgeWFzbSIKIG1ha2VkZXBlbmRzPSJvcmMtZGV2ZWwgZ3N0LXBsdWdp bnMtYmFzZTEtZGV2ZWwgZmZtcGVnLWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc3QtcGx1 Z2lucy1iYWQxL3RlbXBsYXRlIGIvc3JjcGtncy9nc3QtcGx1Z2lucy1iYWQxL3RlbXBsYXRlCmlu ZGV4IGJiOWM0ZDg3ZjRjNi4uZjU1ZjgyZmQ0Yzc3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dzdC1w bHVnaW5zLWJhZDEvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nc3QtcGx1Z2lucy1iYWQxL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3N0LXBsdWdpbnMtYmFk MScKIHBrZ25hbWU9Z3N0LXBsdWdpbnMtYmFkMQogdmVyc2lvbj0xLjIwLjMKLXJldmlzaW9uPTIK K3JldmlzaW9uPTMKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZp Z3VyZV9hcmdzPSItRHBhY2thZ2Utb3JpZ2luPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZyAtRGRvYz1k aXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc3QtcnRzcC1zZXJ2ZXIvdGVtcGxhdGUgYi9z cmNwa2dzL2dzdC1ydHNwLXNlcnZlci90ZW1wbGF0ZQppbmRleCAzM2NkNjRjZWI5NWUuLjhjZWVh OGQzNGI0YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc3QtcnRzcC1zZXJ2ZXIvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9nc3QtcnRzcC1zZXJ2ZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnc3QtcnRzcC1zZXJ2ZXInCiBwa2duYW1lPWdzdC1ydHNwLXNlcnZl cgogdmVyc2lvbj0xLjIwLjMKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPW1l c29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcHl0aG9uMyIKIG1ha2VkZXBlbmRzPSJn bGliLWRldmVsIGdzdC1wbHVnaW5zLWJhZDEtZGV2ZWwgZ29iamVjdC1pbnRyb3NwZWN0aW9uCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2d0azQvdGVtcGxhdGUgYi9zcmNwa2dzL2d0azQvdGVtcGxhdGUK aW5kZXggNmE1MDU2N2Y1M2E5Li42OTc2YWVlODQ4MTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Rr NC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2d0azQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdndGs0JwogcGtnbmFtZT1ndGs0CiB2ZXJzaW9uPTQuMTAuMQot cmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0i Z2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EbWFuLXBhZ2VzPXRydWUgLURndGtfZG9jPXRydWUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ3V2Y3ZpZXcvdGVtcGxhdGUgYi9zcmNwa2dzL2d1dmN2aWV3L3Rl bXBsYXRlCmluZGV4IDM0NWNmNjAwNmYyNC4uZDQyZmQzOGZhNGFkIDEwMDY0NAotLS0gYS9zcmNw a2dzL2d1dmN2aWV3L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3V2Y3ZpZXcvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdndXZjdmlldycKIHBrZ25hbWU9Z3V2 Y3ZpZXcKIHZlcnNpb249Mi4wLjcKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGNyZWF0ZV93cmtz cmM9eWVzCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNh YmxlLXN0YXRpYyAtLWRpc2FibGUtZGViaWFuLW1lbnUiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2hh bmRicmFrZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaGFuZGJyYWtlL3RlbXBsYXRlCmluZGV4IGNhNWU0 NTcxZTQ5Yy4uMTg4YTc5ZjJiZjVjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2hhbmRicmFrZS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2hhbmRicmFrZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2hhbmRicmFrZScKIHBrZ25hbWU9aGFuZGJyYWtlCiB2ZXJzaW9u PTEuNS4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJl CiBjb25maWd1cmVfYXJncz0iLS1mb3JjZSAtLWRpc2FibGUtZ3RrLXVwZGF0ZS1jaGVja3MgLS1k aXNhYmxlLWRmLWZldGNoIC0taGFyZGVuCiAgJCh2b3B0X2VuYWJsZSBmZGtfYWFjIGZkay1hYWMp ICQodm9wdF9lbmFibGUgbnZlbmMpIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9oZWRnZXdhcnMvdGVt cGxhdGUgYi9zcmNwa2dzL2hlZGdld2Fycy90ZW1wbGF0ZQppbmRleCA0MTlmMjliOThiNDQuLmEz NDNiMzE3MmE3MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9oZWRnZXdhcnMvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9oZWRnZXdhcnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdoZWRnZXdhcnMnCiBwa2duYW1lPWhlZGdld2FycwogdmVyc2lvbj0xLjAuMgotcmV2 aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIt RE5PU0VSVkVSPTEgLUREQVRBX0lOU1RBTExfRElSPS91c3Ivc2hhcmUvJHtwa2duYW1lfQogIC1E UEhZU0ZTX1NZU1RFTT0xIC1ETUlOSU1BTF9GTEFHUz0xIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9p ZGpjL3RlbXBsYXRlIGIvc3JjcGtncy9pZGpjL3RlbXBsYXRlCmluZGV4IGRmNjAzMThiM2RiOS4u YjIwNWU3NDc0NWZlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2lkamMvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9pZGpjL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn aWRqYycKIHBrZ25hbWU9aWRqYwogdmVyc2lvbj0wLjkuMQotcmV2aXNpb249MworcmV2aXNpb249 NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IGdpdCBweXRob24zIGF1dG9tYWtlIGdldHRleHQtZGV2ZWwgbGlidG9vbCIKIG1ha2VkZXBlbmRz PSJsaWJ2b3JiaXMtZGV2ZWwgbGlib2dnLWRldmVsIGphY2stZGV2ZWwgbGlic2FtcGxlcmF0ZS1k ZXZlbApkaWZmIC0tZ2l0IGEvc3JjcGtncy9rZmlsZW1ldGFkYXRhNS90ZW1wbGF0ZSBiL3NyY3Br Z3Mva2ZpbGVtZXRhZGF0YTUvdGVtcGxhdGUKaW5kZXggODNmNGQ1ODNiY2I3Li5iOTBlZjA1NmEx OTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2ZpbGVtZXRhZGF0YTUvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9rZmlsZW1ldGFkYXRhNS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2tmaWxlbWV0YWRhdGE1JwogcGtnbmFtZT1rZmlsZW1ldGFkYXRhNQogdmVyc2lv bj01LjEwMy4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9z dG1ha2VkZXBlbmRzPSJrY29yZWFkZG9ucyBleHRyYS1jbWFrZS1tb2R1bGVzIHBrZy1jb25maWcg cXQ1LWhvc3QtdG9vbHMgcXQ1LXFtYWtlCiAgZ2V0dGV4dCBrY29yZWFkZG9ucyBweXRob24zIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9raWQzL3RlbXBsYXRlIGIvc3JjcGtncy9raWQzL3RlbXBsYXRl CmluZGV4IDQ1NjIwNmQ5MGUxNi4uZjMyZjlkZWNiMGU3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2tp ZDMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9raWQzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAna2lkMycKIHBrZ25hbWU9a2lkMwogdmVyc2lvbj0zLjkuMQot cmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdz PSItRFdJVEhfQVBQUz0nQ0xJOyQodm9wdF9pZiBLREUgS0RFIFF0KScKICAtRFdJVEhfRE9DQk9P S0RJUj0vdXNyL3NoYXJlL3hzbC9kb2Nib29rIC1EV0lUSF9GTEFDPSQodm9wdF9pZiBmbGFjIE9O IE9GRikKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva29kaS90ZW1wbGF0ZSBiL3NyY3BrZ3Mva29kaS90 ZW1wbGF0ZQppbmRleCA4MDU3OTY0ZDc4YTMuLjk5MTMyNWY2YzQ3NyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9rb2RpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva29kaS90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tvZGknCiBwa2duYW1lPWtvZGkKIHZlcnNpb249 MTkuNAotcmV2aXNpb249NgorcmV2aXNpb249NwogX2NvZGVuYW1lPSJNYXRyaXgiCiBidWlsZF9z dHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EV0lUSF9GRk1QRUc9L3VzciAtREVOQUJMRV9M REdPTEQ9T0ZGCmRpZmYgLS1naXQgYS9zcmNwa2dzL2twaXBld2lyZS90ZW1wbGF0ZSBiL3NyY3Br Z3Mva3BpcGV3aXJlL3RlbXBsYXRlCmluZGV4IDFkMWU5NjNmMjk2ZC4uMDdjZGMwYzczODRhIDEw MDY0NAotLS0gYS9zcmNwa2dzL2twaXBld2lyZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2twaXBl d2lyZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2twaXBl d2lyZScKIHBrZ25hbWU9a3BpcGV3aXJlCiB2ZXJzaW9uPTUuMjcuMgotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iZXh0cmEtY21ha2Ut bW9kdWxlcyBwbGFzbWEtd2F5bGFuZC1wcm90b2NvbHMgZ2V0dGV4dAogIHF0NS1xbWFrZSBxdDUt aG9zdC10b29scyBwa2ctY29uZmlnIHdheWxhbmQtZGV2ZWwga2NvcmVhZGRvbnMKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbGliYXZyZXNhbXBsZSBiL3NyY3BrZ3MvbGliYXZyZXNhbXBsZQppbmRleCA4 ODdmMzU0ZTdjNmIuLmE5ZjFlZWEwOTJkNSAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJhdnJlc2Ft cGxlCisrKyBiL3NyY3BrZ3MvbGliYXZyZXNhbXBsZQpAQCAtMSArMSBAQAotZmZtcGVnNApcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2ZmbXBlZwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZXh0cmFjdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9s aWJleHRyYWN0b3IvdGVtcGxhdGUKaW5kZXggMjlkNWI4ZGYwMWY4Li5kZGQ0NzkwZjkzZTggMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZXh0cmFjdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGli ZXh0cmFjdG9yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn bGliZXh0cmFjdG9yJwogcGtnbmFtZT1saWJleHRyYWN0b3IKIHZlcnNpb249MS4xMQotcmV2aXNp b249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2Fy Z3M9Ii0tZGlzYWJsZS1zdGF0aWMiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpYm9wZW5hbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlib3BlbmFsL3Rl bXBsYXRlCmluZGV4IDc3MjE4ZjllNTM5ZC4uM2Y0OWVkNzVhMWZkIDEwMDY0NAotLS0gYS9zcmNw a2dzL2xpYm9wZW5hbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYm9wZW5hbC90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYm9wZW5hbCcKIHBrZ25hbWU9 bGlib3BlbmFsCiB2ZXJzaW9uPTEuMjIuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf c3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREFMU09GVF9FWEFNUExFUz1PRkYiCiBob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWciCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90 L3RlbXBsYXRlIGIvc3JjcGtncy9saWJvcGVuc2hvdC90ZW1wbGF0ZQppbmRleCBkYjgzMWY2OWI0 NzQuLjgxYWEwZDcxMzZkOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJvcGVuc2hvdC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnbGlib3BlbnNob3QnCiBwa2duYW1lPWxpYm9wZW5zaG90CiB2ZXJz aW9uPTAuMy4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogIyBC dWlsZHMgZmFpbCB3aXRoIFJ1YnktMi40LjEKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9SVUJZ PU9GRiAtRFVTRV9TWVNURU1fSlNPTkNQUD1PTiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbG91ZGdh aW4vdGVtcGxhdGUgYi9zcmNwa2dzL2xvdWRnYWluL3RlbXBsYXRlCmluZGV4IGRhNGYyZDU2ZTk0 Yy4uNGQ2YmYyOWVmYjRmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xvdWRnYWluL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvbG91ZGdhaW4vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdsb3VkZ2FpbicKIHBrZ25hbWU9bG91ZGdhaW4KIHZlcnNpb249MC42LjgKLXJl dmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0ibGliZWJ1cjEyOC1kZXZlbCB0YWdsaWItZGV2ZWwg ZmZtcGVnLWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tZWRpYXN0cmVhbWVyL3RlbXBsYXRl IGIvc3JjcGtncy9tZWRpYXN0cmVhbWVyL3RlbXBsYXRlCmluZGV4IGQwZTk3ZTg1OGUyOS4uZDI5 MjEwYzFiZjljIDEwMDY0NAotLS0gYS9zcmNwa2dzL21lZGlhc3RyZWFtZXIvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9tZWRpYXN0cmVhbWVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnbWVkaWFzdHJlYW1lcicKIHBrZ25hbWU9bWVkaWFzdHJlYW1lcgogdmVy c2lvbj01LjIuNgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNv bmZpZ3VyZV9hcmdzPSItREVOQUJMRV9TVFJJQ1Q9MCAtREVOQUJMRV9VTklUX1RFU1RTPTAiCiBo b3N0bWFrZWRlcGVuZHM9InB5dGhvbjMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL21nYmEvcGF0Y2hl cy9mZm1wZWc1LnBhdGNoIGIvc3JjcGtncy9tZ2JhL3BhdGNoZXMvZmZtcGVnNS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFkNzA0OWVmY2FjMwotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbWdiYS9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKQEAgLTAsMCAr MSwxMTcgQEAKK0Zyb20gY2RjNzUzNTE2Nzk4ODgyYTgwNWRiMWQyMDQyZGJjZTgzMTMzODJiZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJ5YW4gVGFuZHkgPHJ5YW5AbmFyZGlzLmNh PgorRGF0ZTogVGh1LCAzIEZlYiAyMDIyIDE5OjAyOjUyIC0wODAwCitTdWJqZWN0OiBbUEFUQ0hd IEZGbXBlZzogU3VwcG9ydCBGRm1wZWcgNS4wCisKKy0tLQorIHNyYy9mZWF0dXJlL2ZmbXBlZy9m Zm1wZWctZGVjb2Rlci5jIHwgIDMgKystCisgc3JjL2ZlYXR1cmUvZmZtcGVnL2ZmbXBlZy1lbmNv ZGVyLmMgfCAyNSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAx NiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9mZWF0 dXJlL2ZmbXBlZy9mZm1wZWctZGVjb2Rlci5jIGIvc3JjL2ZlYXR1cmUvZmZtcGVnL2ZmbXBlZy1k ZWNvZGVyLmMKK2luZGV4IGMzYmI2ZDFjNWMuLmRhYTQ3ZmJmMmMgMTAwNjQ0CistLS0gYS9zcmMv ZmVhdHVyZS9mZm1wZWcvZmZtcGVnLWRlY29kZXIuYworKysrIGIvc3JjL2ZlYXR1cmUvZmZtcGVn L2ZmbXBlZy1kZWNvZGVyLmMKK0BAIC01LDYgKzUsNyBAQAorICAqIGZpbGUsIFlvdSBjYW4gb2J0 YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uICovCisgI2luY2x1ZGUgImZm bXBlZy1kZWNvZGVyLmgiCisKKysjaW5jbHVkZSA8bGliYXZjb2RlYy9hdmNvZGVjLmg+CisgI2lu Y2x1ZGUgPGxpYnN3c2NhbGUvc3dzY2FsZS5oPgorCisgdm9pZCBGRm1wZWdEZWNvZGVySW5pdChz dHJ1Y3QgRkZtcGVnRGVjb2RlciogZGVjb2RlcikgeworQEAgLTM4LDcgKzM5LDcgQEAgYm9vbCBG Rm1wZWdEZWNvZGVyT3BlbihzdHJ1Y3QgRkZtcGVnRGVjb2RlciogZGVjb2RlciwgY29uc3QgY2hh ciogaW5maWxlKSB7CisgI2Vsc2UKKyAJCWVudW0gQVZNZWRpYVR5cGUgdHlwZSA9IGRlY29kZXIt PmNvbnRleHQtPnN0cmVhbXNbaV0tPmNvZGVjLT5jb2RlY190eXBlOworICNlbmRpZgorLQkJc3Ry dWN0IEFWQ29kZWMqIGNvZGVjOworKwkJY29uc3Qgc3RydWN0IEFWQ29kZWMqIGNvZGVjOworIAkJ c3RydWN0IEFWQ29kZWNDb250ZXh0KiBjb250ZXh0ID0gTlVMTDsKKyAJCWlmICh0eXBlID09IEFW TUVESUFfVFlQRV9WSURFTyAmJiBkZWNvZGVyLT52aWRlb1N0cmVhbSA8IDApIHsKKyAJCQlkZWNv ZGVyLT52aWRlbyA9IGF2Y29kZWNfYWxsb2NfY29udGV4dDMoTlVMTCk7CitkaWZmIC0tZ2l0IGEv c3JjL2ZlYXR1cmUvZmZtcGVnL2ZmbXBlZy1lbmNvZGVyLmMgYi9zcmMvZmVhdHVyZS9mZm1wZWcv ZmZtcGVnLWVuY29kZXIuYworaW5kZXggYWQ3NmNhNTdiMi4uYmU2YmQzYWY1ZSAxMDA2NDQKKy0t LSBhL3NyYy9mZWF0dXJlL2ZmbXBlZy9mZm1wZWctZW5jb2Rlci5jCisrKysgYi9zcmMvZmVhdHVy ZS9mZm1wZWcvZmZtcGVnLWVuY29kZXIuYworQEAgLTEyLDYgKzEyLDkgQEAKKworICNpbmNsdWRl IDxsaWJhdmNvZGVjL3ZlcnNpb24uaD4KKyAjaW5jbHVkZSA8bGliYXZjb2RlYy9hdmNvZGVjLmg+ CisrI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA+PSA1OAorKyNpbmNsdWRlIDxsaWJhdmNv ZGVjL2JzZi5oPgorKyNlbmRpZgorCisgI2luY2x1ZGUgPGxpYmF2ZmlsdGVyL2J1ZmZlcnNpbmsu aD4KKyAjaW5jbHVkZSA8bGliYXZmaWx0ZXIvYnVmZmVyc3JjLmg+CitAQCAtMTIxLDcgKzEyNCw3 IEBAIGJvb2wgRkZtcGVnRW5jb2RlclNldEF1ZGlvKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNv ZGVyLCBjb25zdCBjaGFyKiBhY29kZWMsIHVuCisgCQlyZXR1cm4gdHJ1ZTsKKyAJfQorCistCUFW Q29kZWMqIGNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZShhY29kZWMpOworKwlj b25zdCBBVkNvZGVjKiBjb2RlYyA9IGF2Y29kZWNfZmluZF9lbmNvZGVyX2J5X25hbWUoYWNvZGVj KTsKKyAJaWYgKCFjb2RlYykgeworIAkJcmV0dXJuIGZhbHNlOworIAl9CitAQCAtMTkzLDcgKzE5 Niw3IEBAIGJvb2wgRkZtcGVnRW5jb2RlclNldFZpZGVvKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBl bmNvZGVyLCBjb25zdCBjaGFyKiB2Y29kZWMsIGluCisgCQlyZXR1cm4gdHJ1ZTsKKyAJfQorCist CUFWQ29kZWMqIGNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZSh2Y29kZWMpOwor Kwljb25zdCBBVkNvZGVjKiBjb2RlYyA9IGF2Y29kZWNfZmluZF9lbmNvZGVyX2J5X25hbWUodmNv ZGVjKTsKKyAJaWYgKCFjb2RlYykgeworIAkJcmV0dXJuIGZhbHNlOworIAl9CitAQCAtMjEzLDcg KzIxNiw3IEBAIGJvb2wgRkZtcGVnRW5jb2RlclNldFZpZGVvKHN0cnVjdCBGRm1wZWdFbmNvZGVy KiBlbmNvZGVyLCBjb25zdCBjaGFyKiB2Y29kZWMsIGluCisgCWlmIChlbmNvZGVyLT5waXhGb3Jt YXQgPT0gQVZfUElYX0ZNVF9OT05FKSB7CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KKy0JaWYgKHZi ciA8IDAgJiYgIWF2X29wdF9maW5kKCZjb2RlYy0+cHJpdl9jbGFzcywgImNyZiIsIE5VTEwsIDAs IDApKSB7CisrCWlmICh2YnIgPCAwICYmICFhdl9vcHRfZmluZCgodm9pZCopICZjb2RlYy0+cHJp dl9jbGFzcywgImNyZiIsIE5VTEwsIDAsIDApKSB7CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KKyAJ ZW5jb2Rlci0+dmlkZW9Db2RlYyA9IHZjb2RlYzsKK0BAIC0yMjMsNyArMjI2LDcgQEAgYm9vbCBG Rm1wZWdFbmNvZGVyU2V0VmlkZW8oc3RydWN0IEZGbXBlZ0VuY29kZXIqIGVuY29kZXIsIGNvbnN0 IGNoYXIqIHZjb2RlYywgaW4KKyB9CisKKyBib29sIEZGbXBlZ0VuY29kZXJTZXRDb250YWluZXIo c3RydWN0IEZGbXBlZ0VuY29kZXIqIGVuY29kZXIsIGNvbnN0IGNoYXIqIGNvbnRhaW5lcikgewor LQlBVk91dHB1dEZvcm1hdCogb2Zvcm1hdCA9IGF2X2d1ZXNzX2Zvcm1hdChjb250YWluZXIsIDAs IDApOworKwljb25zdCBBVk91dHB1dEZvcm1hdCogb2Zvcm1hdCA9IGF2X2d1ZXNzX2Zvcm1hdChj b250YWluZXIsIDAsIDApOworIAlpZiAoIW9mb3JtYXQpIHsKKyAJCXJldHVybiBmYWxzZTsKKyAJ fQorQEAgLTI0MSw5ICsyNDQsOSBAQCB2b2lkIEZGbXBlZ0VuY29kZXJTZXRMb29waW5nKHN0cnVj dCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBib29sIGxvb3ApIHsKKyB9CisKKyBib29sIEZGbXBl Z0VuY29kZXJWZXJpZnlDb250YWluZXIoc3RydWN0IEZGbXBlZ0VuY29kZXIqIGVuY29kZXIpIHsK Ky0JQVZPdXRwdXRGb3JtYXQqIG9mb3JtYXQgPSBhdl9ndWVzc19mb3JtYXQoZW5jb2Rlci0+Y29u dGFpbmVyRm9ybWF0LCAwLCAwKTsKKy0JQVZDb2RlYyogYWNvZGVjID0gYXZjb2RlY19maW5kX2Vu Y29kZXJfYnlfbmFtZShlbmNvZGVyLT5hdWRpb0NvZGVjKTsKKy0JQVZDb2RlYyogdmNvZGVjID0g YXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZShlbmNvZGVyLT52aWRlb0NvZGVjKTsKKysJY29u c3QgQVZPdXRwdXRGb3JtYXQqIG9mb3JtYXQgPSBhdl9ndWVzc19mb3JtYXQoZW5jb2Rlci0+Y29u dGFpbmVyRm9ybWF0LCAwLCAwKTsKKysJY29uc3QgQVZDb2RlYyogYWNvZGVjID0gYXZjb2RlY19m aW5kX2VuY29kZXJfYnlfbmFtZShlbmNvZGVyLT5hdWRpb0NvZGVjKTsKKysJY29uc3QgQVZDb2Rl YyogdmNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZShlbmNvZGVyLT52aWRlb0Nv ZGVjKTsKKyAJaWYgKChlbmNvZGVyLT5hdWRpb0NvZGVjICYmICFhY29kZWMpIHx8IChlbmNvZGVy LT52aWRlb0NvZGVjICYmICF2Y29kZWMpIHx8ICFvZm9ybWF0IHx8ICghYWNvZGVjICYmICF2Y29k ZWMpKSB7CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KK0BAIC0yNTcsOCArMjYwLDggQEAgYm9vbCBG Rm1wZWdFbmNvZGVyVmVyaWZ5Q29udGFpbmVyKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVy KSB7CisgfQorCisgYm9vbCBGRm1wZWdFbmNvZGVyT3BlbihzdHJ1Y3QgRkZtcGVnRW5jb2Rlciog ZW5jb2RlciwgY29uc3QgY2hhciogb3V0ZmlsZSkgeworLQlBVkNvZGVjKiBhY29kZWMgPSBhdmNv ZGVjX2ZpbmRfZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPmF1ZGlvQ29kZWMpOworLQlBVkNvZGVj KiB2Y29kZWMgPSBhdmNvZGVjX2ZpbmRfZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPnZpZGVvQ29k ZWMpOworKwljb25zdCBBVkNvZGVjKiBhY29kZWMgPSBhdmNvZGVjX2ZpbmRfZW5jb2Rlcl9ieV9u YW1lKGVuY29kZXItPmF1ZGlvQ29kZWMpOworKwljb25zdCBBVkNvZGVjKiB2Y29kZWMgPSBhdmNv ZGVjX2ZpbmRfZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPnZpZGVvQ29kZWMpOworIAlpZiAoKGVu Y29kZXItPmF1ZGlvQ29kZWMgJiYgIWFjb2RlYykgfHwgKGVuY29kZXItPnZpZGVvQ29kZWMgJiYg IXZjb2RlYykgfHwgIUZGbXBlZ0VuY29kZXJWZXJpZnlDb250YWluZXIoZW5jb2RlcikpIHsKKyAJ CXJldHVybiBmYWxzZTsKKyAJfQorQEAgLTI3Miw5ICsyNzUsOSBAQCBib29sIEZGbXBlZ0VuY29k ZXJPcGVuKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBjaGFyKiBvdXRmaWxl KSB7CisgCWVuY29kZXItPmN1cnJlbnRWaWRlb0ZyYW1lID0gMDsKKyAJZW5jb2Rlci0+c2tpcFJl c2lkdWUgPSAwOworCistCUFWT3V0cHV0Rm9ybWF0KiBvZm9ybWF0ID0gYXZfZ3Vlc3NfZm9ybWF0 KGVuY29kZXItPmNvbnRhaW5lckZvcm1hdCwgMCwgMCk7CisrCWNvbnN0IEFWT3V0cHV0Rm9ybWF0 KiBvZm9ybWF0ID0gYXZfZ3Vlc3NfZm9ybWF0KGVuY29kZXItPmNvbnRhaW5lckZvcm1hdCwgMCwg MCk7CisgI2lmbmRlZiBVU0VfTElCQVYKKy0JYXZmb3JtYXRfYWxsb2Nfb3V0cHV0X2NvbnRleHQy KCZlbmNvZGVyLT5jb250ZXh0LCBvZm9ybWF0LCAwLCBvdXRmaWxlKTsKKysJYXZmb3JtYXRfYWxs b2Nfb3V0cHV0X2NvbnRleHQyKCZlbmNvZGVyLT5jb250ZXh0LCAoQVZPdXRwdXRGb3JtYXQqKSBv Zm9ybWF0LCAwLCBvdXRmaWxlKTsKKyAjZWxzZQorIAllbmNvZGVyLT5jb250ZXh0ID0gYXZmb3Jt YXRfYWxsb2NfY29udGV4dCgpOworIAlzdHJuY3B5KGVuY29kZXItPmNvbnRleHQtPmZpbGVuYW1l LCBvdXRmaWxlLCBzaXplb2YoZW5jb2Rlci0+Y29udGV4dC0+ZmlsZW5hbWUpIC0gMSk7CmRpZmYg LS1naXQgYS9zcmNwa2dzL21nYmEvdGVtcGxhdGUgYi9zcmNwa2dzL21nYmEvdGVtcGxhdGUKaW5k ZXggMDViY2ExNWMxNzUwLi5mNWI2Yjg0NjQ0MjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWdiYS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21nYmEvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdtZ2JhJwogcGtnbmFtZT1tZ2JhCiB2ZXJzaW9uPTAuMTAuMQotcmV2 aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBxdDUtcW1ha2UgZGVza3RvcC1maWxlLXV0aWxzIgog bWFrZWRlcGVuZHM9IlNETDItZGV2ZWwgZmZtcGVnLWRldmVsIGxpYmVkaXQtZGV2ZWwgbGliZXBv eHktZGV2ZWwgbGlibWFnaWNrLWRldmVsCmRpZmYgLS1naXQgYS9zcmNwa2dzL21pbmlkbG5hL3Rl bXBsYXRlIGIvc3JjcGtncy9taW5pZGxuYS90ZW1wbGF0ZQppbmRleCBlODA4MWIxY2JjNjcuLjll ZTk3MTQ4NjFmZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9taW5pZGxuYS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL21pbmlkbG5hL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnbWluaWRsbmEnCiBwa2duYW1lPW1pbmlkbG5hCiB2ZXJzaW9uPTEuMy4yCi1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJn cz0iCiAgLS1zYmluZGlyPS91c3IvYmluCmRpZmYgLS1naXQgYS9zcmNwa2dzL21peHh4L3RlbXBs YXRlIGIvc3JjcGtncy9taXh4eC90ZW1wbGF0ZQppbmRleCA2MTlkZGNhMGQzMzIuLjRiOWVhMDBk M2ZiMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9taXh4eC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21p eHh4L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWl4eHgn CiBwa2duYW1lPW1peHh4CiB2ZXJzaW9uPTIuMy4zCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfQlVJTERfVFlQRT1SZWxl YXNlIgogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIHBrZy1jb25maWcgcHJv dG9idWYgcXQ1LWhvc3QtdG9vbHMgcXQ1LWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tbHQv dGVtcGxhdGUgYi9zcmNwa2dzL21sdC90ZW1wbGF0ZQppbmRleCA4OTMzZWI0ZTdiYjkuLmVkNmIy NzUwM2Y5YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tbHQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9t bHQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtbHQnCiBw a2duYW1lPW1sdAogdmVyc2lvbj02LjI2LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxk X3N0eWxlPWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tcHJlZml4PS91c3IgLS1saWJkaXI9 L3Vzci9saWIkWEJQU19UQVJHRVRfV09SRFNJWkUKICAtLWVuYWJsZS1ncGwgLS1lbmFibGUtZ3Bs MyAtLWRpc2FibGUtc3dmZGVjIC0td2l0aG91dC1rZGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWx0 Ny90ZW1wbGF0ZSBiL3NyY3BrZ3MvbWx0Ny90ZW1wbGF0ZQppbmRleCBlNTk3MmNjMDQxMWIuLmQw ZTllYzAyZTU4YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tbHQ3L3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvbWx0Ny90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ21s dDcnCiBwa2duYW1lPW1sdDcKIHZlcnNpb249Ny4xMi4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EU1dJR19QWVRIT049T04iCiBo b3N0bWFrZWRlcGVuZHM9ImRveHlnZW4gcGtnLWNvbmZpZyBsYWRzcGEtc2RrIHN3aWcgcHl0aG9u MyB3aGljaApkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb2MvdGVtcGxhdGUgYi9zcmNwa2dzL21vYy90 ZW1wbGF0ZQppbmRleCBjNDJiZTY1MGExZDIuLjRiOTU0MjY1OTliZiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9tb2MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tb2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtb2MnCiBwa2duYW1lPW1vYwogdmVyc2lvbj0yLjUu MgotcmV2aXNpb249NgorcmV2aXNpb249NwogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9z dG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImRiLWRldmVsIG5jdXJzZXMt ZGV2ZWwgbGliY3VybC1kZXZlbCBwb3B0LWRldmVsIGZmbXBlZy1kZXZlbApkaWZmIC0tZ2l0IGEv c3JjcGtncy9tb3Rpb24vdGVtcGxhdGUgYi9zcmNwa2dzL21vdGlvbi90ZW1wbGF0ZQppbmRleCAz Y2YzYzMwMzVjNWIuLjdkY2ExMmQ4NTFlMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9tb3Rpb24vdGVt cGxhdGUKKysrIGIvc3JjcGtncy9tb3Rpb24vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdtb3Rpb24nCiBwa2duYW1lPW1vdGlvbgogdmVyc2lvbj00LjUuMQot cmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1h a2VkZXBlbmRzPSJhdXRvbWFrZSBwa2ctY29uZmlnIGdldHRleHQtZGV2ZWwgdGFyIgogbWFrZWRl cGVuZHM9ImZmbXBlZy1kZXZlbCBsaWJtaWNyb2h0dHBkLWRldmVsIHY0bC11dGlscy1kZXZlbCBn ZXR0ZXh0LWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tcGQvdGVtcGxhdGUgYi9zcmNwa2dz L21wZC90ZW1wbGF0ZQppbmRleCA2MzcwMWI3ZDU2YjEuLmRmMzVlNzUxZWE2MCAxMDA2NDQKLS0t IGEvc3JjcGtncy9tcGQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tcGQvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtcGQnCiBwa2duYW1lPW1wZAogdmVyc2lv bj0wLjIzLjEyCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1Eb3B1cz1lbmFibGVkIC1EbWlrbW9kPWVuYWJsZWQgLURuZWlnaGJvcj10 cnVlCiAgLURzb3VuZGNsb3VkPWVuYWJsZWQgLURwaXBlPXRydWUgLUR0d29sYW1lPWVuYWJsZWQg LURiemlwMj1lbmFibGVkCmRpZmYgLS1naXQgYS9zcmNwa2dzL21wdi90ZW1wbGF0ZSBiL3NyY3Br Z3MvbXB2L3RlbXBsYXRlCmluZGV4IGUxNjNjNDk2YzZlYi4uZDRmZWZiZjVlM2M3IDEwMDY0NAot LS0gYS9zcmNwa2dzL21wdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21wdi90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ21wdicKIHBrZ25hbWU9bXB2CiB2ZXJz aW9uPTAuMzUuMQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9bWVzb24KIGNv bmZpZ3VyZV9hcmdzPSItRGNkZGE9ZW5hYmxlZCAtRGR2YmluPWVuYWJsZWQgLURkdmRuYXY9ZW5h YmxlZAogIC1EbGlibXB2PXRydWUgLURjcGx1Z2lucz1lbmFibGVkCmRpZmYgLS1naXQgYS9zcmNw a2dzL211c2lrY3ViZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXVzaWtjdWJlL3RlbXBsYXRlCmluZGV4 IDRiNzkzMDA0MTEyNi4uN2NkNjVjZjc2Yjc3IDEwMDY0NAotLS0gYS9zcmNwa2dzL211c2lrY3Vi ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL211c2lrY3ViZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ211c2lrY3ViZScKIHBrZ25hbWU9bXVzaWtjdWJlCiB2 ZXJzaW9uPTAuOTkuNAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UK IG1ha2VfY21kPW1ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRE5PX05DVVJTRVNXPTEiCmRpZmYgLS1n aXQgYS9zcmNwa2dzL25vdGN1cnNlcy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvbm90Y3Vyc2VzL3RlbXBs YXRlCmluZGV4IDZkZDhhMDkxMzE5Zi4uMzExMGMzMGM5YWZmIDEwMDY0NAotLS0gYS9zcmNwa2dz L25vdGN1cnNlcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL25vdGN1cnNlcy90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ25vdGN1cnNlcycKIHBrZ25hbWU9bm90 Y3Vyc2VzCiB2ZXJzaW9uPTMuMC45Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHls ZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EVVNFX1NUQVRJQz1PTiAkKHZvcHRfYm9vbCBtYW4g VVNFX1BBTkRPQykiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgJCh2b3B0X2lmIG1hbiBw YW5kb2MpIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vYnMvdGVtcGxhdGUgYi9zcmNwa2dzL29icy90 ZW1wbGF0ZQppbmRleCAxYTcxMzJhZTgzMmYuLjA3OGZlYmE2MmJiYiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9vYnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vYnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvYnMnCiBwa2duYW1lPW9icwogdmVyc2lvbj0yOS4w LjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGFyY2hzPSJpNjg2KiB4ODZfNjQqIHBwYzY0bGUq IGFhcmNoNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRE9CU19WRVJT SU9OX09WRVJSSURFPSR7dmVyc2lvbn0gLURFTkFCTEVfSkFDSz1PTgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vbGl2ZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb2xpdmUvdGVtcGxhdGUKaW5kZXggMTJhNDY5 MzZjOTkwLi41MjkwZDhlNWFhY2QgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb2xpdmUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9vbGl2ZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ29saXZlJwogcGtnbmFtZT1vbGl2ZQogdmVyc2lvbj0wLjEuMgotcmV2aXNpb249 MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9cW1ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFt YWtlIHF0NS1ob3N0LXRvb2xzIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0icXQ1LWRldmVsIHF0 NS1tdWx0aW1lZGlhLWRldmVsIHF0NS1zdmctZGV2ZWwgZmZtcGVnLWRldmVsIGZyZWkwci1wbHVn aW5zIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL29t eHBsYXllci90ZW1wbGF0ZQppbmRleCBlNzBiZjc4NzNkNGQuLjgwYWJkZWZlNzdiNCAxMDA2NDQK LS0tIGEvc3JjcGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vbXhwbGF5ZXIv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvbXhwbGF5ZXIn CiBwa2duYW1lPW9teHBsYXllcgogdmVyc2lvbj0yMDE5MDEwMgotcmV2aXNpb249MQorcmV2aXNp b249Mgogc2hvcnRfZGVzYz0iQ29tbWFuZGxpbmUgT01YIHBsYXllciBmb3IgdGhlIFJhc3BiZXJy eSBQaSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUgYi9z cmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlCmluZGV4IGNjOWQ3YTMzOTg0ZS4uZWU5ODhhZTJj ZTA3IDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdvcGVuaW1hZ2VpbycKIHBrZ25hbWU9b3BlbmltYWdlaW8KIHZlcnNpb249Mi4zLjE4LjAK LXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9 cWVtdQogY29uZmlndXJlX2FyZ3M9Ii1EVVNFX09QRU5HTD0wIC1EVVNFX1FUPTAgLURVU0VfUFlU SE9OPTAgLURPSUlPX0JVSUxEX1RFU1RTPTEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbm13L3Rl bXBsYXRlIGIvc3JjcGtncy9vcGVubXcvdGVtcGxhdGUKaW5kZXggNTI1MWEwMjgzZGMxLi5lMzc3 MWM3YWFmMWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3Blbm13L3RlbXBsYXRlCisrKyBiL3NyY3Br Z3Mvb3Blbm13L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn b3Blbm13JwogcGtnbmFtZT1vcGVubXcKIHZlcnNpb249MC40Ny4wCi1yZXZpc2lvbj00CityZXZp c2lvbj01CiBidWlsZF9zdHlsZT1jbWFrZQogX3JlY2FzdF9jb21taXQ9ZTc1YWRmODZmOTFlYjMw ODIyMjAwODVlNDJkZGE2MjY3OWY5YTNlYQogX2J1bGxldF90YWc9My4xNwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbnNob3QvdGVtcGxhdGUKaW5k ZXggMzIyNzE3ZDQwYWJjLi5jMDc0ZTAzMzg3NzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbnNo b3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5zaG90JwogcGtnbmFtZT1vcGVuc2hvdAogdmVy c2lvbj0zLjAuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9cHl0aG9uMy1t b2R1bGUKIGhvc3RtYWtlZGVwZW5kcz0icHl0aG9uMyBweXRob24zLXNldHVwdG9vbHMiCiBtYWtl ZGVwZW5kcz0iZmZtcGVnLWRldmVsIHB5dGhvbjMtUHlRdDUiCmRpZmYgLS1naXQgYS9zcmNwa2dz L29wZW50b29uei90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbnRvb256L3RlbXBsYXRlCmluZGV4IGVl OWY3NjAzZjU1Zi4uM2U4MTgzNGNhMGVkIDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW50b29uei90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW50b29uei90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW50b29ueicKIHBrZ25hbWU9b3BlbnRvb256CiB2ZXJz aW9uPTEuNi4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF93cmtzcmM9InRvb256L3Nv dXJjZXMiCiBidWlsZF9zdHlsZT1jbWFrZQogbWFrZV9jbWQ9bWFrZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9waWFub2Jhci90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGlhbm9iYXIvdGVtcGxhdGUKaW5kZXgg YTliMjllOTE5OTNmLi44MWVmY2QxMjJjNGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcGlhbm9iYXIv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9waWFub2Jhci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BpYW5vYmFyJwogcGtnbmFtZT1waWFub2JhcgogdmVyc2lv bj0yMDIyLjA0LjAxCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtbWFr ZWZpbGUKIG1ha2VfYnVpbGRfYXJncz0iVj0xIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wcHNzcHAvdGVtcGxhdGUgYi9zcmNwa2dzL3Bwc3NwcC90 ZW1wbGF0ZQppbmRleCA3OTg0YTczM2Q0YmUuLmRiOWM5NWQwNzg0YyAxMDA2NDQKLS0tIGEvc3Jj cGtncy9wcHNzcHAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wcHNzcHAvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwcHNzcHAnCiBwa2duYW1lPXBwc3NwcAog dmVyc2lvbj0xLjE0LjQKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIF9nbHNsYW5nX2NvbW1pdD1k YzExYWRkZTIzYzQ1NWEyNGUxM2RkNTRkZTliNGVkZThiZGQ3ZGI4CiBfU1BJUlZfQ3Jvc3NfY29t bWl0PTlhY2I5ZWMzMWY1YThlZjgwZWE2Yjk5NGJiNzdiZTc4N2IwOGQzZDEKIF9hcm1pcHNfY29t bWl0PTY3MTllZGViYWFlMDMzMzBlZTU0NDFkOWIyODI4MDY3MmVkZjAwZDUKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcHFpdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHFpdi90ZW1wbGF0ZQppbmRleCA1NDJm YzI3YTJkMzIuLjkzMDhkOTQ5YjZhMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9wcWl2L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcHFpdi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3BxaXYnCiBwa2duYW1lPXBxaXYKIHZlcnNpb249Mi4xMgotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxlCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWciCiBtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBndGsrMy1kZXZlbCAkKHZvcHRfaWYg ZmZtcGVnIGZmbXBlZy1kZXZlbCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcW1tcC90ZW1wbGF0ZSBi L3NyY3BrZ3MvcW1tcC90ZW1wbGF0ZQppbmRleCAyNmM2NjFlZDE2YmUuLmExNTBkNzQ0MWM3YSAx MDA2NDQKLS0tIGEvc3JjcGtncy9xbW1wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcW1tcC90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3FtbXAnCiBwa2duYW1l PXFtbXAKIHZlcnNpb249MS42LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxl PWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURVU0VfSEFMOkJPT0w9RkFMU0UgLURRTU1QX0RFRkFV TFRfVUk6U1RSSU5HPXNpbXBsZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBxdDUtaG9z dC10b29scyBxdDUtcW1ha2UiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVt cGxhdGUgYi9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxhdGUKaW5kZXggZjlkNzhlY2VkOTI5 Li4wYTcxNDg0MjA4YmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1LXdlYmVuZ2luZS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdxdDUtd2ViZW5naW5lJwogcGtnbmFtZT1xdDUtd2ViZW5naW5l CiB2ZXJzaW9uPTUuMTUuMTEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIF92ZXJzaW9uPSIke3Zl cnNpb259LWx0cyIKIF9jaHJvbWl1bV9jb21taXQ9YmUzNDllYWY2MmU3Nzk1NTc5MWQ3YmYyOWY4 OTNmMWU4YTM3ZGFmNAogYXJjaHM9Ing4Nl82NCogaTY4NiogYXJtdls2N10qIHBwYzY0KiBhYXJj aDY0KiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlIGIvc3JjcGtncy9xdDUvdGVt cGxhdGUKaW5kZXggZjRmOWY1YjUzNDRhLi5iNTE3YjQ5ZWFkMmQgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvcXQ1L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCkBAIC01LDcgKzUsNyBA QCBwa2duYW1lPXF0NQogdmVyc2lvbj01LjE1LjcrMjAyMjExMTkKICMgY29tbWl0IGY4YzlmYjMw NGJjM2U1M2IzYWEwN2Y5NjJjZDc0ZTkxNjBkZWNjY2MKICMgYmFzZSByZXBvOiBodHRwczovL2lu dmVudC5rZGUub3JnL3F0L3F0L3F0NQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9bWV0YQogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjbGFuZyBmbGV4IHBlcmwgZ2xpYi1kZXZl bCBwa2ctY29uZmlnCiAgcHl0aG9uIHJlMmMgcnVieSB3aGljaCIKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBs YXRlCmluZGV4IGQ4OWU3ZDU0ZWI1YS4uYWFlMTVlNTdjYTdiIDEwMDY0NAotLS0gYS9zcmNwa2dz L3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtbXVsdGltZWRp YScKIHBrZ25hbWU9cXQ2LW11bHRpbWVkaWEKIHZlcnNpb249Ni40LjIKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURRVF9GRUFUVVJF X2dzdHJlYW1lcj1PTiIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtaG9z dC10b29scyBwa2ctY29uZmlnIHF0Ni1zaGFkZXJ0b29scyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQpp bmRleCA5OTAxMjczMmI1M2EuLjk2ODQ2ZmVhZWU4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13ZWJlbmdpbmUnCiBwa2du YW1lPXF0Ni13ZWJlbmdpbmUKIHZlcnNpb249Ni40LjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iCiAgLURRVF9GRUFUVVJFX3dlYmVu Z2luZV9zeXN0ZW1fZmZtcGVnPU9OCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0YXYvdGVtcGxhdGUg Yi9zcmNwa2dzL3F0YXYvdGVtcGxhdGUKaW5kZXggMzRjMzBiMmMwYzc4Li43NzVkNWExMzlhOWUg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXRhdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0YXYvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdGF2JwogcGtnbmFt ZT1xdGF2CiB2ZXJzaW9uPTEuMTMuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9cW1ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIgogbWFr ZWRlcGVuZHM9ImZmbXBlZy1kZXZlbCBsaWJhc3MtZGV2ZWwgbGlib3BlbmFsLWRldmVsCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0b3gvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoIGIvc3JjcGtncy9xdG94 L3BhdGNoZXMvZmZtcGVnNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjNiYWJlMWM5ODQ0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXRveC9wYXRj aGVzL2ZmbXBlZzUucGF0Y2gKQEAgLTAsMCArMSw3OSBAQAorRnJvbSAxNTY3M2E1MmI2YjQ4MDVk NDgyYjY5MjgxZTIxOTQ3ZmI3MDk2ZTA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog QW50aG9ueSBCaWxpbnNraSA8bWVAYWJpbGluc2tpLmNvbT4KK0RhdGU6IFRodSwgMTAgRmViIDIw MjIgMTc6MjQ6MzggLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4KG1hY09TKTogVXBkYXRlIHZp ZGVvIEFQSSB1c2FnZSBmb3IgbmV3ZXIgbGliYXZjb2RlYworCitOZXdlciB2ZXJzaW9uIG9mIGF2 Zm9ybWF0X29wZW5faW5wdXQsIGF2X2ZpbmRfaW5wdXRfZm9ybWF0LAorYXZjb2RlY19maW5kX2Rl Y29kZXIgcHJldmlvdXNseSB1c2VkIG5vbi1jb25zdCBwb2ludGVycyB0aGF0IGFyZSBub3cKK2Nv bnN0LiBTdXBwb3J0IGJvdGggdmVyc2lvbiBmb3IgY29tcGF0aWJpbHRpeSB3aXRoIG90aGVyIHBs YXRmb3Jtcy4KKy0tLQorIHNyYy92aWRlby9jYW1lcmFkZXZpY2UuY3BwIHwgOSArKysrKystLS0K KyBzcmMvdmlkZW8vY2FtZXJhZGV2aWNlLmggICB8IDEgLQorIHNyYy92aWRlby9jYW1lcmFzb3Vy Y2UuY3BwIHwgMyArLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy92aWRlby9jYW1lcmFkZXZpY2UuY3BwIGIvc3Jj L3ZpZGVvL2NhbWVyYWRldmljZS5jcHAKK2luZGV4IDNiMDc5NjhiMzIuLmEwMTJhMGY3OGQgMTAw NjQ0CistLS0gYS9zcmMvdmlkZW8vY2FtZXJhZGV2aWNlLmNwcAorKysrIGIvc3JjL3ZpZGVvL2Nh bWVyYWRldmljZS5jcHAKK0BAIC0zMSw2ICszMSw5IEBAIGV4dGVybiAiQyIgeworICNpbmNsdWRl ICJjYW1lcmFkZXZpY2UuaCIKKyAjaW5jbHVkZSAic3JjL3BlcnNpc3RlbmNlL3NldHRpbmdzLmgi CisKKysvLyBubyBsb25nZXIgbmVlZGVkIHdoZW4gYXZmb3JtYXQgdmVyc2lvbiA8IDU5IGlzIG5v IGxvbmdlciBzdXBwb3J0ZWQKKyt1c2luZyBBdkZpbmRJbnB1dEZvcm1hdFJldCA9IGRlY2x0eXBl KGF2X2ZpbmRfaW5wdXRfZm9ybWF0KCIiKSk7CisrCisgI2lmIGRlZmluZWQoUV9PU19MSU5VWCkg fHwgZGVmaW5lZChRX09TX0ZSRUVCU0QpCisgI2RlZmluZSBVU0lOR19WNEwgMQorICNlbHNlCitA QCAtNzEsOCArNzQsOCBAQCBleHRlcm4gIkMiIHsKKworIFFIYXNoPFFTdHJpbmcsIENhbWVyYURl dmljZSo+IENhbWVyYURldmljZTo6b3BlbkRldmljZXM7CisgUU11dGV4IENhbWVyYURldmljZTo6 b3BlbkRldmljZUxvY2ssIENhbWVyYURldmljZTo6aWZvcm1hdExvY2s7CistQVZJbnB1dEZvcm1h dCogQ2FtZXJhRGV2aWNlOjppZm9ybWF0e251bGxwdHJ9OworLUFWSW5wdXRGb3JtYXQqIENhbWVy YURldmljZTo6aWRlc2t0b3BGb3JtYXR7bnVsbHB0cn07Cisrc3RhdGljIEF2RmluZElucHV0Rm9y bWF0UmV0IGlkZXNrdG9wRm9ybWF0e251bGxwdHJ9OworK3N0YXRpYyBBdkZpbmRJbnB1dEZvcm1h dFJldCBpZm9ybWF0e251bGxwdHJ9OworCisgQ2FtZXJhRGV2aWNlOjpDYW1lcmFEZXZpY2UoY29u c3QgUVN0cmluZyYgZGV2TmFtZSwgQVZGb3JtYXRDb250ZXh0KiBjb250ZXh0KQorICAgICA6IGRl dk5hbWV7ZGV2TmFtZX0KK0BAIC05Miw3ICs5NSw3IEBAIENhbWVyYURldmljZSogQ2FtZXJhRGV2 aWNlOjpvcGVuKFFTdHJpbmcgZGV2TmFtZSwgQVZEaWN0aW9uYXJ5Kiogb3B0aW9ucykKKyAgICAg ICAgIGdvdG8gb3V0OworICAgICB9CisKKy0gICAgQVZJbnB1dEZvcm1hdCogZm9ybWF0OworKyAg ICBBdkZpbmRJbnB1dEZvcm1hdFJldCBmb3JtYXQ7CisgICAgIGlmIChkZXZOYW1lLnN0YXJ0c1dp dGgoIngxMWdyYWIjIikpIHsKKyAgICAgICAgIGRldk5hbWUgPSBkZXZOYW1lLm1pZCg4KTsKKyAg ICAgICAgIGZvcm1hdCA9IGlkZXNrdG9wRm9ybWF0OworZGlmZiAtLWdpdCBhL3NyYy92aWRlby9j YW1lcmFkZXZpY2UuaCBiL3NyYy92aWRlby9jYW1lcmFkZXZpY2UuaAoraW5kZXggOTEwODczMzI1 Yi4uYzA1ZjFkYmVkNCAxMDA2NDQKKy0tLSBhL3NyYy92aWRlby9jYW1lcmFkZXZpY2UuaAorKysr IGIvc3JjL3ZpZGVvL2NhbWVyYWRldmljZS5oCitAQCAtNjQsNSArNjQsNCBAQCBjbGFzcyBDYW1l cmFEZXZpY2UKKyAgICAgc3RkOjphdG9taWNfaW50IHJlZmNvdW50OworICAgICBzdGF0aWMgUUhh c2g8UVN0cmluZywgQ2FtZXJhRGV2aWNlKj4gb3BlbkRldmljZXM7CisgICAgIHN0YXRpYyBRTXV0 ZXggb3BlbkRldmljZUxvY2ssIGlmb3JtYXRMb2NrOworLSAgICBzdGF0aWMgQVZJbnB1dEZvcm1h dCAqaWZvcm1hdCwgKmlkZXNrdG9wRm9ybWF0OworIH07CitkaWZmIC0tZ2l0IGEvc3JjL3ZpZGVv L2NhbWVyYXNvdXJjZS5jcHAgYi9zcmMvdmlkZW8vY2FtZXJhc291cmNlLmNwcAoraW5kZXggMTM0 YmM0OWFmYy4uM2E4OTlmMTFkMCAxMDA2NDQKKy0tLSBhL3NyYy92aWRlby9jYW1lcmFzb3VyY2Uu Y3BwCisrKysgYi9zcmMvdmlkZW8vY2FtZXJhc291cmNlLmNwcAorQEAgLTI3OCw3ICsyNzgsNiBA QCB2b2lkIENhbWVyYVNvdXJjZTo6b3BlbkRldmljZSgpCisgICAgIH0KKworICAgICAvLyBXZSBu ZWVkIHRvIGNyZWF0ZSBhIG5ldyBDYW1lcmFEZXZpY2UKKy0gICAgQVZDb2RlYyogY29kZWM7Cisg ICAgIGRldmljZSA9IENhbWVyYURldmljZTo6b3BlbihkZXZpY2VOYW1lLCBtb2RlKTsKKworICAg ICBpZiAoIWRldmljZSkgeworQEAgLTMyMiw3ICszMjEsNyBAQCB2b2lkIENhbWVyYVNvdXJjZTo6 b3BlbkRldmljZSgpCisgICAgIEFWQ29kZWNQYXJhbWV0ZXJzKiBjcGFyYW1zID0gZGV2aWNlLT5j b250ZXh0LT5zdHJlYW1zW3ZpZGVvU3RyZWFtSW5kZXhdLT5jb2RlY3BhcjsKKyAgICAgY29kZWNJ ZCA9IGNwYXJhbXMtPmNvZGVjX2lkOworICNlbmRpZgorLSAgICBjb2RlYyA9IGF2Y29kZWNfZmlu ZF9kZWNvZGVyKGNvZGVjSWQpOworKyAgICBjb25zdCBBVkNvZGVjKiBjb2RlYyA9IGF2Y29kZWNf ZmluZF9kZWNvZGVyKGNvZGVjSWQpOworICAgICBpZiAoIWNvZGVjKSB7CisgICAgICAgICBxV2Fy bmluZygpIDw8ICJDb2RlYyBub3QgZm91bmQiOworICAgICAgICAgZW1pdCBvcGVuRmFpbGVkKCk7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0b3gvdGVtcGxhdGUgYi9zcmNwa2dzL3F0b3gvdGVtcGxh dGUKaW5kZXggMTYwMTlkN2VhZWM5Li41Y2VhMGIxMWI2OTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cXRveC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0b3gvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdG94JwogcGtnbmFtZT1xdG94CiB2ZXJzaW9uPTEuMTcu NgotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9h cmdzPSItRFVQREFURV9DSEVDSz1PRkYKICAtREdJVF9ERVNDUklCRT0ke3ZlcnNpb259CmRpZmYg LS1naXQgYS9zcmNwa2dzL3JldHJvYXJjaC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmV0cm9hcmNoL3Rl bXBsYXRlCmluZGV4IDI0MGQzZGY5ZGIwMC4uNmQwYjE2YWUyNTk4IDEwMDY0NAotLS0gYS9zcmNw a2dzL3JldHJvYXJjaC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3JldHJvYXJjaC90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3JldHJvYXJjaCcKIHBrZ25hbWU9 cmV0cm9hcmNoCiB2ZXJzaW9uPTEuMTQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf c3R5bGU9Y29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1wcmVmaXg9L3VzciAtLXN5c2NvbmZk aXI9L2V0YyAtLWVuYWJsZS1uZXR3b3JraW5nCiAgLS1lbmFibGUtdWRldiAtLWRpc2FibGUtYnVp bHRpbmZsYWMgLS1kaXNhYmxlLWJ1aWx0aW5nbHNsYW5nCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Nj cmNweS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2NyY3B5L3RlbXBsYXRlCmluZGV4IGVlNmU2OThlMzg3 Zi4uOGFkYTVjYTQzMjNmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3NjcmNweS90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3NjcmNweS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3NjcmNweScKIHBrZ25hbWU9c2NyY3B5CiB2ZXJzaW9uPTIuMAotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGNvbXBpbGVf c2VydmVyPWZhbHNlCiAgLURwcmVidWlsdF9zZXJ2ZXI9L3Vzci9zaGFyZS9zY3JjcHkvc2NyY3B5 LXNlcnZlci12JHt2ZXJzaW9ufSIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2 ZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2ZS90ZW1wbGF0ZQppbmRleCBkNjUw ODZiOGYwMDguLjcyNzQ3Y2JiMGEwMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9zcGVrLWFsdGVybmF0 aXZlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2ZS90ZW1wbGF0ZQpAQCAt MSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NwZWstYWx0ZXJuYXRpdmUnCiBwa2du YW1lPXNwZWstYWx0ZXJuYXRpdmUKIHZlcnNpb249MC44LjIuMwotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJhdXRvbWFr ZSBnZXR0ZXh0LWRldmVsIGludGx0b29sIGxpYnRvb2wgcGtnLWNvbmZpZyB3eFdpZGdldHMtY29t bW9uIgogbWFrZWRlcGVuZHM9ImZmbXBlZy1kZXZlbCB3eFdpZGdldHMtZ3RrMy1kZXZlbCIKZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvc3NyL3RlbXBsYXRlIGIvc3JjcGtncy9zc3IvdGVtcGxhdGUKaW5k ZXggYjA1NWI5ZWMwNzc0Li44NDJiMjQyM2FhZDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3NyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3NyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnc3NyJwogcGtnbmFtZT1zc3IKIHZlcnNpb249MC40LjQKLXJldmlzaW9u PTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURXSVRI X1FUNT1PTiIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvc3Vtby90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQppbmRleCAwZjliOWVjODE1 ZjUuLmEzZmUxMzRhYTVhYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9zdW1vL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3N1bW8nCiBwa2duYW1lPXN1bW8KIHZlcnNpb249MS4xMi4wCi1yZXZpc2lvbj01CityZXZp c2lvbj02CiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJsaWJnZGFsLXRvb2xz IHBrZy1jb25maWcgc3dpZyBweXRob24zLXNldHVwdG9vbHMiCiBtYWtlZGVwZW5kcz0icHl0aG9u My1kZXZlbCBmZm1wZWctZGV2ZWwgZm94LWRldmVsIGdsMnBzLWRldmVsIGxpYmdkYWwtZGV2ZWwK ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3luZmlnL3RlbXBsYXRlIGIvc3JjcGtncy9zeW5maWcvdGVt cGxhdGUKaW5kZXggMTgyZGMzY2QyODBmLi4yOWFmYjM1NzJlNDcgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3Mvc3luZmlnL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3luZmlnL3RlbXBsYXRlCkBAIC0yLDcg KzIsNyBAQAogIyBTaG91bGQgYmUga2VwdCBpbiBzeW5jIHdpdGggJ3N5bmZpZ3N0dWRpbycgYW5k ICdFVEwnCiBwa2duYW1lPXN5bmZpZwogdmVyc2lvbj0xLjQuNAotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1i b29zdC1saWJkaXI9JHtYQlBTX0NST1NTX0JBU0V9L3Vzci9saWIiCiBob3N0bWFrZWRlcGVuZHM9 ImJvb3N0LWJ1aWxkIEltYWdlTWFnaWNrIHBrZy1jb25maWcgaW50bHRvb2wiCmRpZmYgLS1naXQg YS9zcmNwa2dzL3RlbGVncmFtLWRlc2t0b3AvdGVtcGxhdGUgYi9zcmNwa2dzL3RlbGVncmFtLWRl c2t0b3AvdGVtcGxhdGUKaW5kZXggYWFlOWYzMTM1MTAwLi43OTQzYjM2ZjBiOGEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvdGVsZWdyYW0tZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RlbGVn cmFtLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICd0ZWxlZ3JhbS1kZXNrdG9wJwogcGtnbmFtZT10ZWxlZ3JhbS1kZXNrdG9wCiB2ZXJzaW9uPTQu Ni41Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogYnVpbGRfaGVs cGVyPSJxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1EVERFU0tUT1BfQVBJX0lEPTIwOTIzNQpkaWZm IC0tZ2l0IGEvc3JjcGtncy90Z19vd3QvdGVtcGxhdGUgYi9zcmNwa2dzL3RnX293dC90ZW1wbGF0 ZQppbmRleCA5N2QxOTVkZGIzNGEuLjU1MTYxNGIyNDk1NiAxMDA2NDQKLS0tIGEvc3JjcGtncy90 Z19vd3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90Z19vd3QvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0Z19vd3QnCiBwa2duYW1lPXRnX293dAogdmVyc2lv bj0wLjAuMC4yMDIzMDEwNwotcmV2aXNpb249MQorcmV2aXNpb249MgogX2NvbW1pdD01MDk4NzMw YjllYjYxNzNmMGI1MjA2OGZlMjU1NWI3YzEwMTUxMjNhCiBfbGlieXV2X2NvbW1pdD0wMDk1MDg0 MGQxYzliY2JiM2ViNmViYzVhYWM1NzkzZTcxMTY2YzhiCiBfYWJzZWlsX2NvbW1pdD04YzBiOTRl NzkzYTY2NDk1ZTBiMWYzNGE1ZWIyNmJkN2RjNjcyZGIwCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Rp bWcvdGVtcGxhdGUgYi9zcmNwa2dzL3RpbWcvdGVtcGxhdGUKaW5kZXggOTFmMTUxNmIyNTk3Li4z MzQ0NDNkM2Y5YmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdGltZy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3RpbWcvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0 aW1nJwogcGtnbmFtZT10aW1nCiB2ZXJzaW9uPTEuNC40Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EV0lUSF9PUEVOU0xJREVfU1VQ UE9SVD1vZmYgLVduby1kZXYiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2l0IgpkaWZm IC0tZ2l0IGEvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJhY2tl ci1taW5lcnMvdGVtcGxhdGUKaW5kZXggM2U3OTY2YzJiNGE5Li4yODU0MjViYTE4NTEgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90cmFj a2VyLW1pbmVycy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3RyYWNrZXItbWluZXJzJwogcGtnbmFtZT10cmFja2VyLW1pbmVycwogdmVyc2lvbj0zLjQuMwot cmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1x ZW11CiAjIG1pc3NpbmcgbGliZ3JzcyBmb3IgbWluZXJfcnNzCmRpZmYgLS1naXQgYS9zcmNwa2dz L3R2aGVhZGVuZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHZoZWFkZW5kL3RlbXBsYXRlCmluZGV4IGU2 YjE2ZDdjY2YzYi4uYTIwMDQ0ODAzMzJiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3R2aGVhZGVuZC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3R2aGVhZGVuZC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3R2aGVhZGVuZCcKIHBrZ25hbWU9dHZoZWFkZW5kCiB2ZXJz aW9uPTQuMi44Ci1yZXZpc2lvbj02CityZXZpc2lvbj03CiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUtZHZic2NhbiAtLWRpc2FibGUtZmZtcGVnX3N0 YXRpYwogLS1kaXNhYmxlLWhkaG9tZXJ1bl9zdGF0aWMgLS1kaXNhYmxlLWJpbnRyYXlfY2FjaGUg LS1kaXNhYmxlLWxpYngyNjRfc3RhdGljCmRpZmYgLS1naXQgYS9zcmNwa2dzL3VucGFwZXIvdGVt cGxhdGUgYi9zcmNwa2dzL3VucGFwZXIvdGVtcGxhdGUKaW5kZXggMzhlZDQ3YTU4NDAxLi5iMDU5 MjBkMTMxMDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdW5wYXBlci90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3VucGFwZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICd1bnBhcGVyJwogcGtnbmFtZT11bnBhcGVyCiB2ZXJzaW9uPTYuMQotcmV2aXNpb249MworcmV2 aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogbWFpbnRhaW5lcj0iT3JwaGFuZWQg PG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBsaWJ4 c2x0IgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YmEtbS90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmJhLW0v dGVtcGxhdGUKaW5kZXggYmExNTNlMGI1OGNhLi5hYTYwOTM2NDVlOTcgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvdmJhLW0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy92YmEtbS90ZW1wbGF0ZQpAQCAtMiw3 ICsyLDcgQEAKIHBrZ25hbWU9dmJhLW0KIHJldmVydHM9MTI5Ml8yCiB2ZXJzaW9uPTIuMS41Ci1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9 Ii1ERU5BQkxFX0dUSz1UUlVFIC1ERU5BQkxFX0ZGTVBFRz1UUlVFIC1ERU5BQkxFX0xJTks9VFJV RSAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBw a2ctY29uZmlnIHVuemlwIHppcCB5YXNtIHd4V2lkZ2V0cy1ndGszLWRldmVsIgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy92aWNlL3RlbXBsYXRlIGIvc3JjcGtncy92aWNlL3RlbXBsYXRlCmluZGV4IDA5 MjQ3NjdjZmNmYi4uZmZhOTUzODRmNjRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZpY2UvdGVtcGxh dGUKKysrIGIvc3JjcGtncy92aWNlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAndmljZScKIHBrZ25hbWU9dmljZQogdmVyc2lvbj0zLjUKLXJldmlzaW9uPTEK K3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSIK IAkkKHZvcHRfZW5hYmxlIHNkbDIgc2RsdWkyKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy93YXlwaXBl L3RlbXBsYXRlIGIvc3JjcGtncy93YXlwaXBlL3RlbXBsYXRlCmluZGV4IDVjNDE2MTkwMDA2MC4u MWE0NmZlMjdmN2Q4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3dheXBpcGUvdGVtcGxhdGUKKysrIGIv c3JjcGtncy93YXlwaXBlL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnd2F5cGlwZScKIHBrZ25hbWU9d2F5cGlwZQogdmVyc2lvbj0wLjguNAotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KICMgbHRvIGlzIG9mZiBiZWNhdXNlIGl0 IGNhdXNlcyBsaW5raW5nIGVycm9ycyBpbiBhcm12NmwgYW5kIGFybXY3bCAoZHVlIHRvIE5FT04p CiBjb25maWd1cmVfYXJncz0iLUR3ZXJyb3I9ZmFsc2UgLUR3aXRoX2RtYWJ1Zj1lbmFibGVkIC1E d2l0aF9sejQ9ZW5hYmxlZApkaWZmIC0tZ2l0IGEvc3JjcGtncy93Zi1yZWNvcmRlci90ZW1wbGF0 ZSBiL3NyY3BrZ3Mvd2YtcmVjb3JkZXIvdGVtcGxhdGUKaW5kZXggZTI3OGViMDAxNjAwLi41ZDAx NGE1ZjI4YWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvd2YtcmVjb3JkZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy93Zi1yZWNvcmRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3dmLXJlY29yZGVyJwogcGtnbmFtZT13Zi1yZWNvcmRlcgogdmVyc2lvbj0wLjMu MAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBzY2RvYyB3YXlsYW5kLWRldmVsIgogbWFrZWRlcGVuZHM9IndheWxh bmQtcHJvdG9jb2xzIHdheWxhbmQtZGV2ZWwgZmZtcGVnLWRldmVsIHgyNjQtZGV2ZWwKZGlmZiAt LWdpdCBhL3NyY3BrZ3MveHByYS90ZW1wbGF0ZSBiL3NyY3BrZ3MveHByYS90ZW1wbGF0ZQppbmRl eCAzOGY4MzI4M2IxZTUuLmI2ZTAxZmYwYTgxMyAxMDA2NDQKLS0tIGEvc3JjcGtncy94cHJhL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MveHByYS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3hwcmEnCiBwa2duYW1lPXhwcmEKIHZlcnNpb249NC40LjQKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBtYWtlX2J1aWxk X2FyZ3M9Ii0td2l0aG91dC1jdWRhX2tlcm5lbHMgLS13aXRob3V0LWN1ZGFfcmVidWlsZCIKIG1h a2VfaW5zdGFsbF9hcmdzPSIkKHZvcHRfd2l0aCBkb2NzKSAke21ha2VfYnVpbGRfYXJnc30iCg== --===============2515605002502958228==--