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, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24928 invoked from network); 1 Jul 2022 17:51:14 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 1 Jul 2022 17:51:14 -0000 Content-Type: multipart/mixed; boundary="===============6035160080327959494==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_electron10=3A_remove_package=2C_wire-desktop=3A_update_to_3=2E27=2E2944?= To: ml@inbox.vuxu.org From: paper42 Reply-to: ml@inbox.vuxu.org Message-ID: Date: Fri, 01 Jul 2022 19:51:14 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============6035160080327959494== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHBhcGVyNDIgYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyNDIv dm9pZC1wYWNrYWdlcyB3aXJlLWRlc2t0b3AtZWxlY3Ryb24xMwpodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzc3OTEKCmVsZWN0cm9uMTA6IHJlbW92ZSBw YWNrYWdlLCB3aXJlLWRlc2t0b3A6IHVwZGF0ZSB0byAzLjI3LjI5NDQKPCEtLSBVbmNvbW1lbnQg cmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBub3QgYXBwbGlj YWJsZSAtLT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFu Z2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UNCi0g VGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXSho dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01h bnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0KPCEt LSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91cnMs IHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNj b250aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxk IGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhp cyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+DQo8IS0tDQojIyMj IExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5h dGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5 IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMp Og0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1tdXNsDQotLT4NCgoK QSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzM3NzkxLnBhdGNoIGlzIGF0dGFjaGVk --===============6035160080327959494== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-wire-desktop-electron13-37791.patch" RnJvbSAyYzM3ZTU4ZTMzNDI3MWZhMWQ2YTllMzcxODM5MDdjOTE0NTY0OTYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWwgVmFzaWxlayA8bWljaGFsQHZhc2lsZWsuY3o+CkRh dGU6IFdlZCwgMjkgSnVuIDIwMjIgMTE6MTE6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0g d2lyZS1kZXNrdG9wOiB1cGRhdGUgdG8gMy4yNy4yOTQ0LgoKLS0tCiBzcmNwa2dzL3dpcmUtZGVz a3RvcC90ZW1wbGF0ZSB8IDEwICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy93aXJlLWRlc2t0b3Av dGVtcGxhdGUgYi9zcmNwa2dzL3dpcmUtZGVza3RvcC90ZW1wbGF0ZQppbmRleCBlNGJhMTAwODhi YzguLmUyNDAyNzk1ZjA3MCAxMDA2NDQKLS0tIGEvc3JjcGtncy93aXJlLWRlc2t0b3AvdGVtcGxh dGUKKysrIGIvc3JjcGtncy93aXJlLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3dpcmUtZGVza3RvcCcKIHBrZ25hbWU9d2lyZS1kZXNrdG9w Ci12ZXJzaW9uPTMuMjUuMjk0MAordmVyc2lvbj0zLjI3LjI5NDQKIHJldmlzaW9uPTEKIHdya3Ny Yz0iJHtwa2duYW1lfS1saW51eC0ke3ZlcnNpb259IgotaG9zdG1ha2VkZXBlbmRzPSJub2RlanMg eWFybiBnaXQiCi1kZXBlbmRzPSJlbGVjdHJvbjEwIgoraG9zdG1ha2VkZXBlbmRzPSJub2RlanMt bHRzIHlhcm4gZ2l0IgorZGVwZW5kcz0iZWxlY3Ryb24xMyIKIHNob3J0X2Rlc2M9IldpcmUgZm9y IGRlc2t0b3AiCiBtYWludGFpbmVyPSJZb3VuZyBKaW4gUGFyayA8eW91bmdqaW5wYXJrMjBAZ21h aWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aXJlLmNvbSIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL3dpcmVhcHAvd2lyZS1kZXNr dG9wL2FyY2hpdmUvbGludXgvJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT1kMTcwMmJiNjQ2 OTJiMzk3MGMyYjQ5YmU0NjIxMDY5ZTdlYTQwYjM2N2JlMDkxNzYzMmNlYzUwZTEyM2U1NzBjCitj aGVja3N1bT0zNzhjOTQ1ZTY5MzM4NTU0MDdhYTAzZmU0OWE5MzQ0MDk2NzViZGZjMzcwMzk4Yzhm MjFkYTFmZDEzODMyYWY5CiAKIGNhc2UgIiRYQlBTX01BQ0hJTkUiIGluCiAJeDg2XzY0KnxpNjg2 KikgOzsKQEAgLTMyLDcgKzMyLDcgQEAgZG9faW5zdGFsbCgpIHsKIAl2bWtkaXIgdXNyL2Jpbgog CWNhdCA8PCBFT0YgPiAid2lyZS1kZXNrdG9wLnNoIgogIyEvYmluL3NoCi1leGVjIGVsZWN0cm9u MTAgIi91c3IvbGliL3dpcmUtZGVza3RvcC9hcHAuYXNhciIgIlwkQCIKK2V4ZWMgZWxlY3Ryb24x MyAiL3Vzci9saWIvd2lyZS1kZXNrdG9wL2FwcC5hc2FyIiAiXCRAIgogRU9GCiAJdmJpbiB3aXJl LWRlc2t0b3Auc2ggd2lyZS1kZXNrdG9wCiAJdm1rZGlyIHVzci9zaGFyZS9pY29ucy9oaWNvbG9y LzI1NngyNTYvYXBwcwoKRnJvbSBkMTc3OWVlMjdhMDRjZDQ3MmI1NjIwNmY4OTU4N2I0NDMyZWI4 OTc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWwgVmFzaWxlayA8bWljaGFs QHZhc2lsZWsuY3o+CkRhdGU6IFdlZCwgMjkgSnVuIDIwMjIgMTE6MTE6MTcgKzAyMDAKU3ViamVj dDogW1BBVENIIDIvMl0gZWxlY3Ryb24xMDogcmVtb3ZlIHBhY2thZ2UKCi0tLQogLi4uL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoIHwgICAyMyAtCiAuLi5vbWl1bS1t dXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2ggfCAgIDMxIC0KIC4uLi9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoICB8ICAxNzYgLQogLi4uL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsLXN0cmluZ19oLnBhdGNoIHwgICAxMCAtCiAuLi5jaHJvbWl1bS1t dXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0Y2ggfCAgIDEzIC0KIC4uLi9tdXNsLXBhdGNo ZXMvY2hyb21pdW0tbXVzbF9jZGVmcy5wYXRjaCAgICB8ICAgNDUgLQogLi4ub21pdW0tbXVzbF9k ZWZpbmVfdGVtcF9mYWlsdXJlX3JldHJ5LnBhdGNoIHwgICAxOCAtCiAuLi4vbXVzbC1wYXRjaGVz L2Nocm9taXVtLW11c2xfZG5zLnBhdGNoICAgICAgfCAgIDYxIC0KIC4uLi9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbXVzbF9leGVpbmZvLnBhdGNoICB8ICAgOTYgLQogLi4uL2Nocm9taXVtLW11c2xf Z2V0Y29udGV4dC5wYXRjaCAgICAgICAgICAgIHwgICAyNSAtCiAuLi4vbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2ggfCAgIDU0IC0KIC4uLi9jaHJvbWl1bS1tdXNsX3By ZWFkX3B3cml0ZTY0LnBhdGNoICAgICAgICB8ICAgMTggLQogLi4uL2Nocm9taXVtLW11c2xfcHVz aF9iYWNrLnBhdGNoICAgICAgICAgICAgIHwgICAxMyAtCiAuLi4vY2hyb21pdW0tbXVzbF9zdGFj a19zaXplLnBhdGNoICAgICAgICAgICAgfCAgIDQxIC0KIC4uLi9jaHJvbWl1bS1tdXNsX3N0YWNr X3RyYWNlLnBhdGNoICAgICAgICAgICB8ICAgNDQgLQogLi4uL2Nocm9taXVtLW11c2xfdGNwX2xp c3Rlbi5wYXRjaCAgICAgICAgICAgIHwgICAxNCAtCiAuLi4vY2hyb21pdW0tbXVzbF94eHgtcHBj NjRsZS1zdXBwb3J0LnBhdGNoICAgfCAgMTc5IC0KIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVt LTgzLWdjYy0xMC5wYXRjaCAgICB8ICAgNjQgLQogLi4uY2hyb21pdW0tY2hyb21pdW1fYXRrX29w dGlvbmFsLnBhdGNoLnBhdGNoIHwgICAxNSAtCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1j bGFuZy0xMi5wYXRjaCAgICAgfCAgIDE2IC0KIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZm bXBlZy00LjMucGF0Y2ggICB8ICAgMjEgLQogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ2Nj LXNoYXJlZC5wYXRjaCAgIHwgICAyMCAtCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1oYXJmYnV6ei0z LjAuMC5wYXRjaCAgICAgfCAgIDIwIC0KIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNf bWFsbG9jLnBhdGNoICB8ICAgMjQgLQogLi4uL2Nocm9taXVtLXNraWEtaGFyZmJ1enotMy4wLjAu cGF0Y2ggICAgICAgIHwgIDEwMCAtCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1za2lhLWhh cm1vbnkucGF0Y2ggfCAgIDE0IC0KIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXRpbWU2NC5w YXRjaCAgICAgICB8ICAgNTEgLQogLi4uL3BhdGNoZXMvY2hyb21pdW0tdG9vbGNoYWluLWhvc3Qu cGF0Y2ggICAgIHwgICAxMSAtCiAuLi4vY2hyb21pdW0teHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRj aCAgICAgICAgfCAzNjg2IC0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vY2hyb21pdW0teHh4LXBwYzY0 bGUtc3dpZnRzaGFkZXIucGF0Y2ggICAgfCAgIDE4IC0KIC4uLmEtc2NyaXB0LXRvLWxpc3QtcGF0 Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaCB8ICAgNDIgLQogLi4uL3BhdGNoZXMvZWxlY3Ryb24tQnVp bGQtZml4ZXMucGF0Y2gucGF0Y2ggIHwgICA0NyAtCiAuLi5lY3Ryb24tZG9udC1hc3N1bWUtcHl0 aG9uLWlzLXB5dGhvbjIucGF0Y2ggfCAgIDE3IC0KIC4uLmxlY3Ryb24tZXhjbHVkZS1jb250ZW50 LXRlc3QtcGF0Y2hlcy5wYXRjaCB8ICAgMTAgLQogLi4uL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFn ZXJfb3BlbmJzZC5jYyAgICAgIHwgIDE0OCAtCiAuLi4vZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9f bWFuYWdlcl9vcGVuYnNkLmggfCAgIDY1IC0KIC4uLi9maWxlcy9zbmRpby1maWxlcy9zbmRpb19p bnB1dC5jYyAgICAgICAgICB8ICAyMDAgLQogLi4uL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lu cHV0LmggICAgICAgICAgIHwgICA5MSAtCiAuLi4vZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0 cHV0LmNjICAgICAgICAgfCAgMTgzIC0KIC4uLi9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRw dXQuaCAgICAgICAgICB8ICAgODYgLQogLi4uYV9hdWRpb19saW51eF9hdWRpb19tYW5hZ2VyX2xp bnV4LmNjLnBhdGNoIHwgICA0MyAtCiAuLi5zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfQlVJ TEQuZ24ucGF0Y2ggfCAgIDEyIC0KIC4uLmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9hdWRpb19CVUlM RC5nbi5wYXRjaCB8ICAgMjMgLQogLi4udHlfY2hyb21pdW1fbWVkaWFfbWVkaWFfX29wdGlvbnMu Z25pLnBhdGNoIHwgICAxMiAtCiBzcmNwa2dzL2VsZWN0cm9uMTAvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgfCAgMzYxIC0tCiBzcmNwa2dzL2VsZWN0cm9uMTAvdXBkYXRlICAgICAgICAgICAg ICAgICAgICAgfCAgICAyIC0KIHNyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSAgICAg ICAgICAgICB8ICAgIDEgKwogNDcgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDYyNjMg ZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLWNyYXNocGFkLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs LWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc2FuZGJveC5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbC1zdHJpbmdfaC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jYW5vbmlj YWxpemVfZmlsZV9uYW1lLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1 bS1tdXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZG5z LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wt cGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2V4ZWluZm8ucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZ2V0Y29u dGV4dC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9tYWxsaW5mby5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9w cmVhZF9wd3JpdGU2NC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wdXNoX2JhY2sucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfc3RhY2tfc2l6ZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja190cmFjZS5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNo ZXMvY2hyb21pdW0tbXVzbF90Y3BfbGlzdGVuLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3h4eC1wcGM2 NGxlLXN1cHBvcnQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS04My1nY2MtMTAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bV9hdGtf b3B0aW9uYWwucGF0Y2gucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9u MTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jbGFuZy0xMi5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZmbXBlZy00LjMu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1nY2Mtc2hhcmVkLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0taGFyZmJ1enotMy4wLjAucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS1saWJjX21hbGxvYy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNraWEtaGFyZmJ1enotMy4wLjAucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1z a2lhLWhhcm1vbnkucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS10aW1lNjQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS10b29sY2hhaW4taG9zdC5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVz L2Nocm9taXVtLXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS14eHgtcHBjNjRsZS1zd2lm dHNoYWRlci5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxl cy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1hLXNjcmlwdC10by1saXN0LXBhdGNoLXRhcmdldHMucGF0 Y2gucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0 Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWRvbnQtYXNzdW1lLXB5 dGhvbi1pcy1weXRob24yLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjEwL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1m aWxlcy9hdWRpb19tYW5hZ2VyX29wZW5ic2QuY2MKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLmgKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvc25k aW9faW5wdXQuY2MKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMv c25kaW8tZmlsZXMvc25kaW9faW5wdXQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuY2MKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvc25kaW9fb3V0cHV0LmgK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tcGF0Y2hl cy9tZWRpYV9hdWRpb19saW51eF9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNy ZHBhcnR5X2Nocm9taXVtX21lZGlhX0JVSUxELmduLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9t aXVtX21lZGlhX2F1ZGlvX0JVSUxELmduLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21l ZGlhX21lZGlhX19vcHRpb25zLmduaS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZWxlY3Ryb24xMC90ZW1wbGF0ZQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24x MC91cGRhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtY3Jhc2hwYWQucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDcwY2ZmYTMwMDJiYi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLS0tLSBhL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotKysrIGIvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi1AQCAtMjYsNiArMjYsNyBA QAotIAotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpCi0gI2luY2x1ZGUgPGFzbS9s ZHQuaD4KLSsjaW5jbHVkZSA8YXNtL3B0cmFjZS1hYmkuaD4KLSAjZW5kaWYKLSAKLSBuYW1lc3Bh Y2UgY3Jhc2hwYWQgewotCi0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9jb21w YXQvbGludXgvc3lzL3B0cmFjZS5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9jb21wYXQvbGludXgvc3lzL3B0cmFjZS5oCi1AQCAtMTcsNyArMTcsOSBAQAotIAotICNpbmNs dWRlX25leHQgPHN5cy9wdHJhY2UuaD4KLSAKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pCi0gI2lu Y2x1ZGUgPHN5cy9jZGVmcy5oPgotKyNlbmRpZgotIAotIC8vIGh0dHBzOi8vc291cmNld2FyZS5v cmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIyNDMzCi0gI2lmICFkZWZpbmVkKFBUUkFDRV9H RVRfVEhSRUFEX0FSRUEpICYmICFkZWZpbmVkKFBUX0dFVF9USFJFQURfQVJFQSkgJiYgXApkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtZGVmYXVsdC1wdGhyZWFkLXN0YWNrc2l6 ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDBjMTM2MWI4ZWQxLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsLWRlZmF1bHQtcHRocmVhZC1zdGFja3NpemUucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwzMSArMCwwIEBACi1kaWZmIC0tZ2l0IGEvYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhy ZWFkX2xpbnV4LmNjIGIvYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCi1p bmRleCAwOTVjNDliLi41MDQ0YmI4IDEwMDY0NAotLS0tIGEvYmFzZS90aHJlYWRpbmcvcGxhdGZv cm1fdGhyZWFkX2xpbnV4LmNjCi0rKysgYi9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRf bGludXguY2MKLUBAIC0xODYsNyArMTg2LDcgQEAgdm9pZCBUZXJtaW5hdGVPblRocmVhZCgpIHt9 Ci0gCi0gc2l6ZV90IEdldERlZmF1bHRUaHJlYWRTdGFja1NpemUoY29uc3QgcHRocmVhZF9hdHRy X3QmIGF0dHJpYnV0ZXMpIHsKLSAjaWYgIWRlZmluZWQoVEhSRUFEX1NBTklUSVpFUikKLS0gIHJl dHVybiAwOwotKyAgcmV0dXJuICgxIDw8IDIzKTsKLSAjZWxzZQotICAgLy8gVGhyZWFkU2FuaXRp emVyIGJsb2F0cyB0aGUgc3RhY2sgaGVhdmlseS4gRXZpZGVuY2UgaGFzIGJlZW4gdGhhdCB0aGUK LSAgIC8vIGRlZmF1bHQgc3RhY2sgc2l6ZSBpc24ndCBlbm91Z2ggZm9yIHNvbWUgYnJvd3NlciB0 ZXN0cy4KLWRpZmYgLS1naXQgYS9jaHJvbWUvYXBwL3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19w b3NpeC5jYyBiL2Nocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4LmNjCi1p bmRleCA2MjFkNDQxLi5iZTIxMTA2IDEwMDY0NAotLS0tIGEvY2hyb21lL2FwcC9zaHV0ZG93bl9z aWduYWxfaGFuZGxlcnNfcG9zaXguY2MKLSsrKyBiL2Nocm9tZS9hcHAvc2h1dGRvd25fc2lnbmFs X2hhbmRsZXJzX3Bvc2l4LmNjCi1AQCAtMTg3LDExICsxODcsMTEgQEAgdm9pZCBJbnN0YWxsU2h1 dGRvd25TaWduYWxIYW5kbGVycygKLSAgIGdfc2h1dGRvd25fcGlwZV9yZWFkX2ZkID0gcGlwZWZk WzBdOwotICAgZ19zaHV0ZG93bl9waXBlX3dyaXRlX2ZkID0gcGlwZWZkWzFdOwotICNpZiAhZGVm aW5lZChBRERSRVNTX1NBTklUSVpFUikKLS0gIGNvbnN0IHNpemVfdCBrU2h1dGRvd25EZXRlY3Rv clRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICogMjsKLSsgIGNvbnN0IHNpemVf dCBrU2h1dGRvd25EZXRlY3RvclRocmVhZFN0YWNrU2l6ZSA9IFBUSFJFQURfU1RBQ0tfTUlOICog MiAqODsKLSAjZWxzZQotICAgLy8gQVNhbiBpbnN0cnVtZW50YXRpb24gYmxvYXRzIHRoZSBzdGFj ayBmcmFtZXMsIHNvIHdlIG5lZWQgdG8gaW5jcmVhc2UgdGhlCi0gICAvLyBzdGFjayBzaXplIHRv IGF2b2lkIGhpdHRpbmcgdGhlIGd1YXJkIHBhZ2UuCi0tICBjb25zdCBzaXplX3Qga1NodXRkb3du RGV0ZWN0b3JUaHJlYWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01JTiAqIDQ7Ci0rICBjb25z dCBzaXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJlYWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNL X01JTiAqIDQgKjg7Ci0gI2VuZGlmCi0gICBTaHV0ZG93bkRldGVjdG9yKiBkZXRlY3RvciA9IG5l dyBTaHV0ZG93bkRldGVjdG9yKAotICAgICAgIGdfc2h1dGRvd25fcGlwZV9yZWFkX2ZkLCBzdGQ6 Om1vdmUoc2h1dGRvd25fY2FsbGJhY2spLCB0YXNrX3J1bm5lcik7CmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc2FuZGJveC5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVz bC1zYW5kYm94LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDg1ZjZjYzc1 YWYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3NiAr MCwwIEBACi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5 c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwotaW5kZXggMzQ4 YWI2ZS4uNDU1MGY5ZSAxMDA2NDQKLS0tLSAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCi0rKysgLi9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5j YwotQEAgLTEzOSwyMSArMTM5LDExIEBAIG5hbWVzcGFjZSBzYW5kYm94IHsKLSAvLyBwcmVzZW50 IChhcyBpbiBuZXdlciB2ZXJzaW9ucyBvZiBwb3NpeF9zcGF3bikuCi0gUmVzdWx0RXhwciBSZXN0 cmljdENsb25lVG9UaHJlYWRzQW5kRVBFUk1Gb3JrKCkgewotICAgY29uc3QgQXJnPHVuc2lnbmVk IGxvbmc+IGZsYWdzKDApOwotLQotLSAgLy8gVE9ETyhtZGVtcHNreSk6IEV4dGVuZCBEU0wgdG8g c3VwcG9ydCAoZmxhZ3MgJiB+bWFzazEpID09IG1hc2syLgotLSAgY29uc3QgdWludDY0X3Qga0Fu ZHJvaWRDbG9uZU1hc2sgPSBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xPTkVfRklMRVMgfAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9TSUdIQU5EIHwgQ0xPTkVf VEhSRUFEIHwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfU1lT VlNFTTsKLS0gIGNvbnN0IHVpbnQ2NF90IGtPYnNvbGV0ZUFuZHJvaWRDbG9uZU1hc2sgPSBrQW5k cm9pZENsb25lTWFzayB8IENMT05FX0RFVEFDSEVEOwotLQotLSAgY29uc3QgdWludDY0X3Qga0ds aWJjUHRocmVhZEZsYWdzID0KLS0gICAgICBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xPTkVfRklM RVMgfCBDTE9ORV9TSUdIQU5EIHwgQ0xPTkVfVEhSRUFEIHwKLS0gICAgICBDTE9ORV9TWVNWU0VN IHwgQ0xPTkVfU0VUVExTIHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFS VElEOwotLSAgY29uc3QgQm9vbEV4cHIgZ2xpYmNfdGVzdCA9IGZsYWdzID09IGtHbGliY1B0aHJl YWRGbGFnczsKLS0KLS0gIGNvbnN0IEJvb2xFeHByIGFuZHJvaWRfdGVzdCA9Ci0tICAgICAgQW55 T2YoZmxhZ3MgPT0ga0FuZHJvaWRDbG9uZU1hc2ssIGZsYWdzID09IGtPYnNvbGV0ZUFuZHJvaWRD bG9uZU1hc2ssCi0tICAgICAgICAgICAgZmxhZ3MgPT0ga0dsaWJjUHRocmVhZEZsYWdzKTsKLSsg IGNvbnN0IGludCByZXF1aXJlZCA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9ORV9GSUxFUyB8 IENMT05FX1NJR0hBTkQgfAotKyAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfVEhSRUFEIHwg Q0xPTkVfU1lTVlNFTTsKLSsgIGNvbnN0IGludCBzYWZlID0gQ0xPTkVfU0VUVExTIHwgQ0xPTkVf UEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFSVElEIHwKLSsgICAgICAgICAgICAgICAg ICAgQ0xPTkVfREVUQUNIRUQ7Ci0rICBjb25zdCBCb29sRXhwciB0aHJlYWRfY2xvbmVfb2sgPSAo ZmxhZ3MmfnNhZmUpPT1yZXF1aXJlZDsKLSAKLSAgIC8vIFRoZSBmb2xsb3dpbmcgdHdvIGZsYWdz IGFyZSB0aGUgdHdvIGltcG9ydGFudCBmbGFncyBpbiBhbnkgdmZvcmstZW11bGF0aW5nCi0gICAv LyBjbG9uZSBjYWxsLiBFUEVSTSBhbnkgY2xvbmUgY2FsbCB0aGF0IGNvbnRhaW5zIGJvdGggb2Yg dGhlbS4KLUBAIC0xNjMsNyArMTUzLDcgQEAgUmVzdWx0RXhwciBSZXN0cmljdENsb25lVG9UaHJl YWRzQW5kRVBFUk1Gb3JrKCkgewotICAgICAgIEFueU9mKChmbGFncyAmIChDTE9ORV9WTSB8IENM T05FX1RIUkVBRCkpID09IDAsCi0gICAgICAgICAgICAgKGZsYWdzICYga0ltcG9ydGFudENsb25l VmZvcmtGbGFncykgPT0ga0ltcG9ydGFudENsb25lVmZvcmtGbGFncyk7Ci0gCi0tICByZXR1cm4g SWYoSXNBbmRyb2lkKCkgPyBhbmRyb2lkX3Rlc3QgOiBnbGliY190ZXN0LCBBbGxvdygpKQotKyAg cmV0dXJuIElmKHRocmVhZF9jbG9uZV9vaywgQWxsb3coKSkKLSAgICAgICAuRWxzZUlmKGlzX2Zv cmtfb3JfY2xvbmVfdmZvcmssIEVycm9yKEVQRVJNKSkKLSAgICAgICAuRWxzZShDcmFzaFNJR1NZ U0Nsb25lKCkpOwotIH0KLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9zZXRzLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfc2V0cy5jYwotaW5kZXggN2RiY2M4Ny4uNTg5MjYyZiAxMDA2NDQKLS0tLSAuL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLSsrKyAuL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLUBAIC0zOTEs NiArMzkxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0T3JEZWF0 aChpbnQgc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX2kzODZfXykKLSAgICAgY2FzZSBfX05SX3dh aXRwaWQ6Ci0gI2VuZGlmCi0rICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Ci0gICAgICAg cmV0dXJuIHRydWU7Ci0gICAgIGNhc2UgX19OUl9jbG9uZTogIC8vIFNob3VsZCBiZSBwYXJhbWV0 ZXItcmVzdHJpY3RlZC4KLSAgICAgY2FzZSBfX05SX3NldG5zOiAgLy8gUHJpdmlsZWdlZC4KLUBA IC00MDMsNyArNDA0LDYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0 T3JEZWF0aChpbnQgc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotICAgICBjYXNlIF9fTlJfc2V0X3RocmVh ZF9hcmVhOgotICNlbmRpZgotLSAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgotICAgICBj YXNlIF9fTlJfdW5zaGFyZToKLSAjaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9f YWFyY2g2NF9fKQotICAgICBjYXNlIF9fTlJfdmZvcms6Ci1AQCAtNTEzLDYgKzUxMyw4IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUFjY2VzcyhpbnQgc3lzbm8pIHsK LSAgICAgY2FzZSBfX05SX21sb2NrOgotICAgICBjYXNlIF9fTlJfbXVubG9jazoKLSAgICAgY2Fz ZSBfX05SX211bm1hcDoKLSsgICAgY2FzZSBfX05SX21yZW1hcDoKLSsgICAgY2FzZSBfX05SX21l bWJhcnJpZXI6Ci0gICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIGNhc2UgX19OUl9tYWR2aXNlOgot ICAgICBjYXNlIF9fTlJfbWluY29yZToKLUBAIC01MzAsNyArNTMyLDYgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNubykgewotICAgICBjYXNl IF9fTlJfbW9kaWZ5X2xkdDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX21wcm90ZWN0OgotLSAg ICBjYXNlIF9fTlJfbXJlbWFwOgotICAgICBjYXNlIF9fTlJfbXN5bmM6Ci0gICAgIGNhc2UgX19O Ul9tdW5sb2NrYWxsOgotICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgotZGlmZiAtLWdpdCBhL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaAotaW5kZXggNTlk MGVhYi4uN2FlNzAwMiAxMDA2NDQKLS0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv YXJtNjRfbGludXhfc3lzY2FsbHMuaAotKysrIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9hcm02NF9saW51eF9zeXNjYWxscy5oCi1AQCAtMTA2Myw0ICsxMDYzLDggQEAKLSAjZGVmaW5l IF9fTlJfbWVtZmRfY3JlYXRlIDI3OQotICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21l bWJhcnJpZXIpCi0rI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMjgzCi0rI2VuZGlmCi0rCi0gI2Vu ZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX0FSTTY0X0xJTlVYX1NZU0NBTExT X0hfCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhf c3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2Nh bGxzLmgKLWluZGV4IDFhZGRkNTMuLjc4NDNiNWUgMTAwNjQ0Ci0tLS0gLi9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oCi0rKysgLi9zYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oCi1AQCAtMTM4NSw2ICsxMzg1LDEw IEBACi0gI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAoX19OUl9TWVNDQUxMX0JBU0UrMzg1KQot ICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCi0rI2RlZmluZSBfX05S X21lbWJhcnJpZXIgKF9fTlJfU1lTQ0FMTF9CQVNFKzM4OSkKLSsjZW5kaWYKLSsKLSAvLyBBUk0g cHJpdmF0ZSBzeXNjYWxscy4KLSAjaWYgIWRlZmluZWQoX19BUk1fTlJfQkFTRSkKLSAjZGVmaW5l IF9fQVJNX05SX0JBU0UgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMHhGMDAwMCkKLWRpZmYgLS1naXQg YS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHM2NF9saW51eF9zeXNjYWxscy5oIGIv c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzNjRfbGludXhfc3lzY2FsbHMuaAotaW5k ZXggZWM3NTgxNS4uNjEyZmNmYSAxMDA2NDQKLS0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvbWlwczY0X2xpbnV4X3N5c2NhbGxzLmgKLSsrKyAuL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbWlwczY0X2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0xMjcxLDQgKzEyNzEsOCBAQAot ICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgKF9fTlJfTGludXggKyAzMTQpCi0gI2VuZGlmCi0g Ci0rI2lmICFkZWZpbmVkKF9fTlJfbWVtYmFycmllcikKLSsjZGVmaW5lIF9fTlJfbWVtYmFycmll ciAoX19OUl9MaW51eCArIDMxOCkKLSsjZW5kaWYKLSsKLSAjZW5kaWYgIC8vIFNBTkRCT1hfTElO VVhfU1lTVEVNX0hFQURFUlNfTUlQUzY0X0xJTlVYX1NZU0NBTExTX0hfCi1kaWZmIC0tZ2l0IGEv c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9taXBzX2xpbnV4X3N5c2NhbGxzLmggYi9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL21pcHNfbGludXhfc3lzY2FsbHMuaAotaW5kZXggZGRi Zjk3Zi4uMTc0MmFjZCAxMDA2NDQKLS0tLSAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv bWlwc19saW51eF9zeXNjYWxscy5oCi0rKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L21pcHNfbGludXhfc3lzY2FsbHMuaAotQEAgLTE0MzMsNCArMTQzMyw4IEBACi0gI2RlZmluZSBf X05SX21lbWZkX2NyZWF0ZSAoX19OUl9MaW51eCArIDM1NCkKLSAjZW5kaWYKLSAKLSsjaWYgIWRl ZmluZWQoX19OUl9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChfX05SX0xp bnV4ICsgMzU4KQotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1f SEVBREVSU19NSVBTX0xJTlVYX1NZU0NBTExTX0hfCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2NhbGxzLmgKLWluZGV4IGE2YWZjNjIuLjdl ZDBhM2IgMTAwNjQ0Ci0tLS0gLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9s aW51eF9zeXNjYWxscy5oCi0rKysgLi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8z Ml9saW51eF9zeXNjYWxscy5oCi1AQCAtMTQyMiw1ICsxNDIyLDkgQEAKLSAjZGVmaW5lIF9fTlJf bWVtZmRfY3JlYXRlIDM1NgotICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJp ZXIpCi0rI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMzc1Ci0rI2VuZGlmCi0rCi0gI2VuZGlmICAv LyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1g4Nl8zMl9MSU5VWF9TWVNDQUxMU19IXwot IAotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4 X3N5c2NhbGxzLmggYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9z eXNjYWxscy5oCi1pbmRleCAzNDk1MDRhLi5lYTNjN2M5IDEwMDY0NAotLS0tIC4vc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAotKysrIC4vc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy94ODZfNjRfbGludXhfc3lzY2FsbHMuaAotQEAgLTEyOTAs NSArMTI5MCw5IEBACi0gI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAzMTkKLSAjZW5kaWYKLSAK LSsjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQotKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVy IDMyNAotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVS U19YODZfNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSAKLWRpZmYgLS1naXQgYS9zZXJ2aWNlcy9zZXJ2 aWNlX21hbmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjIGIv c2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRlcmVyX3BvbGlj eV9saW51eC5jYwotaW5kZXggMDE3ZjEzYy4uNTBhZWVjMyAxMDA2NDQKLS0tLSAuL3NlcnZpY2Vz L3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXgu Y2MKLSsrKyAuL3NlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9yZW5k ZXJlcl9wb2xpY3lfbGludXguY2MKLUBAIC04OCwxMCArODgsMTAgQEAgUmVzdWx0RXhwciBSZW5k ZXJlclByb2Nlc3NQb2xpY3k6OkV2YWx1YXRlU3lzY2FsbChpbnQgc3lzbm8pIGNvbnN0IHsKLSAg ICAgY2FzZSBfX05SX3N5c2luZm86Ci0gICAgIGNhc2UgX19OUl90aW1lczoKLSAgICAgY2FzZSBf X05SX3VuYW1lOgotLSAgICAgIHJldHVybiBBbGxvdygpOwotLSAgICBjYXNlIF9fTlJfc2NoZWRf Z2V0YWZmaW5pdHk6Ci0gICAgIGNhc2UgX19OUl9zY2hlZF9nZXRwYXJhbToKLSAgICAgY2FzZSBf X05SX3NjaGVkX2dldHNjaGVkdWxlcjoKLSsgICAgICByZXR1cm4gQWxsb3coKTsKLSsgICAgY2Fz ZSBfX05SX3NjaGVkX2dldGFmZmluaXR5OgotICAgICBjYXNlIF9fTlJfc2NoZWRfc2V0c2NoZWR1 bGVyOgotICAgICAgIHJldHVybiBzYW5kYm94OjpSZXN0cmljdFNjaGVkVGFyZ2V0KEdldFBvbGlj eVBpZCgpLCBzeXNubyk7Ci0gICAgIGNhc2UgX19OUl9wcmxpbWl0NjQ6CmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc3RyaW5n X2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2wtc3RyaW5nX2gucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzYzhh ODM0ZGQwNy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbC1zdHJpbmdfaC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDEwICswLDAgQEAKLS0tLSBhL21vam8vcHVibGljL2NwcC9wbGF0Zm9ybS9uYW1lZF9wbGF0Zm9y bV9jaGFubmVsX3Bvc2l4LmNjLm9yaWcgICAgICAgMjAyMC0wNy0xOSAxMzoyNjoxMC42OTYxNzEw NjMgLTA0MDAKLSsrKyBiL21vam8vcHVibGljL2NwcC9wbGF0Zm9ybS9uYW1lZF9wbGF0Zm9ybV9j aGFubmVsX3Bvc2l4LmNjICAgIDIwMjAtMDctMTkgMTM6MjY6NDMuNjgwMTUxNzE0IC0wNDAwCi1A QCAtNSw2ICs1LDcgQEAKLSAjaW5jbHVkZSAibW9qby9wdWJsaWMvY3BwL3BsYXRmb3JtL25hbWVk X3BsYXRmb3JtX2NoYW5uZWwuaCIKLSAKLSAjaW5jbHVkZSA8ZXJybm8uaD4KLSsjaW5jbHVkZSA8 c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSAjaW5jbHVkZSA8c3lzL3VuLmg+ Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2Zp bGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xf Y2Fub25pY2FsaXplX2ZpbGVfbmFtZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDU2MTRkYWE3NTc2Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2Zp bGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2Nhbm9uaWNhbGl6ZV9maWxlX25hbWUucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmggYi90aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9j b25maWctbGludXguaAotaW5kZXggN2ViN2MyMC4uODgyYjczNiAxMDA2NDQKLS0tLSBhL3RoaXJk X3BhcnR5L25hc20vY29uZmlnL2NvbmZpZy1saW51eC5oCi0rKysgYi90aGlyZF9wYXJ0eS9uYXNt L2NvbmZpZy9jb25maWctbGludXguaAotQEAgLTExNyw3ICsxMTcsNyBAQAotICNkZWZpbmUgSEFW RV9BQ0NFU1MgMQotIAotIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2Fub25pY2Fs aXplX2ZpbGVfbmFtZScgZnVuY3Rpb24uICovCi0tI2RlZmluZSBIQVZFX0NBTk9OSUNBTElaRV9G SUxFX05BTUUgMQotKy8qICN1bmRlZiBIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUUgKi8KLSAK LSAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNwdV90b19sZTE2JyBpbnRyaW5zaWMg ZnVuY3Rpb24uICovCi0gLyogI3VuZGVmIEhBVkVfQ1BVX1RPX0xFMTYgKi8KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9jZGVm cy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bXVzbF9jZGVmcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmM3ZGMwNmZm MjFiLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX2NkZWZzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAs MCBAQAotZGlmZiAtLWdpdCBhL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9zaGltX2ludGVybmFs cy5oIGIvYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1faW50ZXJuYWwKLXMuaAotaW5kZXgg MDE5NmY4OS4uYmI0MmI1ZCAxMDA2NDQKLS0tLSBhL2Jhc2UvYWxsb2NhdG9yL2FsbG9jYXRvcl9z aGltX2ludGVybmFscy5oCi0rKysgYi9iYXNlL2FsbG9jYXRvci9hbGxvY2F0b3Jfc2hpbV9pbnRl cm5hbHMuaAotQEAgLTcsNyArNyw5IEBACi0KLSAjaWYgZGVmaW5lZChfX0dOVUNfXykKLQotKyNp ZiBkZWZpbmVkKF9fR0xJQkNfXykKLSAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+ICAvLyBmb3IgX19U SFJPVwotKyNlbmRpZgotCi0gI2lmbmRlZiBfX1RIUk9XICAvLyBOb3QgYSBnbGliYyBzeXN0ZW0K LSAjaWZkZWYgX05PRVhDRVBUICAvLyBMTFZNIGxpYmMrKyB1c2VzIG5vZXhjZXB0IGluc3RlYWQK LWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5o IGIvdGhpcmRfcGFydHkvbGlic3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaAotaW5kZXggNTBl ZDBhYy4uNzU1MmE0OSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1 ZGUvc3luYy9zeW5jLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3lu Yy9zeW5jLmgKLUBAIC0xOSwxMiArMTksMTMgQEAKLSAjaWZuZGVmIF9fU1lTX0NPUkVfU1lOQ19I Ci0gI2RlZmluZSBfX1NZU19DT1JFX1NZTkNfSAotIAotLSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4K LSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0gI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0gCi0t X19CRUdJTl9ERUNMUwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIgewotKyNlbmRp ZiAvKiBfX2NwbHVzcGx1cyAqLwotIAotIHN0cnVjdCBzeW5jX2xlZ2FjeV9tZXJnZV9kYXRhIHsK LSAgaW50MzJfdCBmZDI7Ci1AQCAtMTU4LDYgKzE1OSw4IEBAIHN0cnVjdCBzeW5jX3B0X2luZm8g KnN5bmNfcHRfaW5mbyhzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEgKmluZm8sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzeW5jX3B0X2luZm8gKml0cik7Ci0g dm9pZCBzeW5jX2ZlbmNlX2luZm9fZnJlZShzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEgKmlu Zm8pOwotIAotLV9fRU5EX0RFQ0xTCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZiAv KiBfX2NwbHVzcGx1cyAqLwotIAotICNlbmRpZiAvKiBfX1NZU19DT1JFX1NZTkNfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZGVmaW5lX3RlbXBfZmFpbHVyZV9yZXRy eS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjFkYjY1OGY4NDllLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJv bWl1bS1tdXNsX2RlZmluZV90ZW1wX2ZhaWx1cmVfcmV0cnkucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxOCArMCwwIEBACi0tLS0gYS9zYW5kYm94L2xpbnV4L3N1aWQvc2FuZGJveC5jCTIwMTkt MTEtMTkgMDk6Mjg6MDUuMDAwMDAwMDAwICswODAwCi0rKysgYi9zYW5kYm94L2xpbnV4L3N1aWQv c2FuZGJveC5jCTIwMjAtMDQtMjQgMTE6NTA6MTIuNzE5ODgwNzI4ICswODAwCi1AQCAtNDIsNiAr NDIsMTUgQEAKLSAjZGVmaW5lIENMT05FX05FV05FVCAweDQwMDAwMDAwCi0gI2VuZGlmCi0gCi0r I2lmbmRlZiBURU1QX0ZBSUxVUkVfUkVUUlkKLSsjZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShl eHByZXNzaW9uKSBcCi0rICAoX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICh7IGxvbmcgaW50IF9f cmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCi0rICAgICAgIGRvIF9fcmVzdWx0ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICAgIHdoaWxlIChfX3Jlc3VsdCA9PSAt MUwgJiYgZXJybm8gPT0gRUlOVFIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAg ICAgIF9fcmVzdWx0OyB9KSkKLSsjZW5kaWYKLSsKLSBzdGF0aWMgYm9vbCBEcm9wUm9vdCgpOwot IAotICNkZWZpbmUgSEFORExFX0VJTlRSKHgpIFRFTVBfRkFJTFVSRV9SRVRSWSh4KQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs X2Rucy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21p dW0tbXVzbF9kbnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0OWQ4YmQw YWZhZi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9kbnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCww IEBACi1kaWZmIC0tZ2l0IGEvbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXguY2MgYi9u ZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYwotaW5kZXggMmY5NDgzMi4uMmRkMWE5 OCAxMDA2NDQKLS0tLSBhL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjCi0rKysg Yi9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYwotQEAgLTE1MCw3ICsxNTAsNyBA QCBDb25maWdQYXJzZVBvc2l4UmVzdWx0IFJlYWREbnNDb25maWcoRG5zQ29uZmlnKiBkbnNfY29u ZmlnKSB7Ci0gI2lmICFkZWZpbmVkKE9TX0FORFJPSUQpCi0gICBDb25maWdQYXJzZVBvc2l4UmVz dWx0IHJlc3VsdDsKLSAvLyBUT0RPKGZ1Y2hzaWEpOiBVc2UgcmVzX25pbml0KCkgd2hlbiBpdCdz IGltcGxlbWVudGVkIG9uIEZ1Y2hzaWEuCi0tI2lmIGRlZmluZWQoT1NfT1BFTkJTRCkgfHwgZGVm aW5lZChPU19GVUNIU0lBKQotKyNpZiBkZWZpbmVkKE9TX09QRU5CU0QpIHx8IGRlZmluZWQoT1Nf RlVDSFNJQSkgfHwgKGRlZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpCi0g ICAvLyBOb3RlOiByZXNfbmluaXQgaW4gZ2xpYmMgYWx3YXlzIHJldHVybnMgMCBhbmQgc2V0cyBS RVNfSU5JVC4KLSAgIC8vIHJlc19pbml0IGJlaGF2ZXMgdGhlIHNhbWUgd2F5LgotICAgbWVtc2V0 KCZfcmVzLCAwLCBzaXplb2YoX3JlcykpOwotQEAgLTE3Myw3ICsxNzMsNyBAQCBDb25maWdQYXJz ZVBvc2l4UmVzdWx0IFJlYWREbnNDb25maWcoRG5zQ29uZmlnKiBkbnNfY29uZmlnKSB7Ci0gI2Vs c2UKLSAgIHJlc19uY2xvc2UoJnJlcyk7Ci0gI2VuZGlmICAvLyBkZWZpbmVkKE9TX01BQ09TWCkg fHwgZGVmaW5lZChPU19GUkVFQlNEKQotLSNlbmRpZiAgLy8gZGVmaW5lZChPU19PUEVOQlNEKQot KyNlbmRpZiAgLy8gZGVmaW5lZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8 IChkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQotIAotICNpZiBkZWZp bmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfSU9TKQotICAgQ29uZmlnUGFyc2VQb3NpeFJl c3VsdCBlcnJvciA9IERuc0NvbmZpZ1dhdGNoZXI6OkNoZWNrRG5zQ29uZmlnKCk7Ci1kaWZmIC0t Z2l0IGEvbmV0L2Rucy9kbnNfcmVsb2FkZXIuY2MgYi9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYwot aW5kZXggOTUyY2ZmNC4uNGIzNjZmNCAxMDA2NDQKLS0tLSBhL25ldC9kbnMvZG5zX3JlbG9hZGVy LmNjCi0rKysgYi9uZXQvZG5zL2Ruc19yZWxvYWRlci5jYwotQEAgLTQsNyArNCw3IEBACi0gCi0g I2luY2x1ZGUgIm5ldC9kbnMvZG5zX3JlbG9hZGVyLmgiCi0gCi0tI2lmIGRlZmluZWQoT1NfUE9T SVgpICYmICFkZWZpbmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAot KyNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQo T1NfTUFDT1NYKSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCi0gICAgICFkZWZpbmVkKE9T X0FORFJPSUQpICYmICFkZWZpbmVkKE9TX0ZVQ0hTSUEpCi0gCi0gI2luY2x1ZGUgPHJlc29sdi5o PgotZGlmZiAtLWdpdCBhL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjIGIvbmV0L2Ru cy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2MKLWluZGV4IGU4ZGVhNDYuLmM4NmE4MzAgMTAwNjQ0 Ci0tLS0gYS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYwotKysrIGIvbmV0L2Rucy9o b3N0X3Jlc29sdmVyX21hbmFnZXIuY2MKLUBAIC0yMzg2LDcgKzIzODYsNyBAQCBIb3N0UmVzb2x2 ZXJNYW5hZ2VyOjpIb3N0UmVzb2x2ZXJNYW5hZ2VyKAotICAgTmV0d29ya0NoYW5nZU5vdGlmaWVy OjpBZGRDb25uZWN0aW9uVHlwZU9ic2VydmVyKHRoaXMpOwotICAgaWYgKHN5c3RlbV9kbnNfY29u ZmlnX25vdGlmaWVyXykKLSAgICAgc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfLT5BZGRPYnNl cnZlcih0aGlzKTsKLS0jaWYgZGVmaW5lZChPU19QT1NJWCkgJiYgIWRlZmluZWQoT1NfTUFDT1NY KSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCi0rI2lmIGRlZmluZWQoT1NfUE9TSVgpICYm IGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChPU19NQUNPU1gpICYmICFkZWZpbmVkKE9T X09QRU5CU0QpICYmIFwKLSAgICAgIWRlZmluZWQoT1NfQU5EUk9JRCkKLSAgIEVuc3VyZURuc1Jl bG9hZGVySW5pdCgpOwotICNlbmRpZgotZGlmZiAtLWdpdCBhL25ldC9kbnMvaG9zdF9yZXNvbHZl cl9wcm9jLmNjIGIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MKLWluZGV4IDA4MjQ1NDAu LjMzODQ5NzggMTAwNjQ0Ci0tLS0gYS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYwotKysr IGIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MKLUBAIC0xOTcsNyArMTk3LDcgQEAgaW50 IFN5c3RlbUhvc3RSZXNvbHZlckNhbGwoY29uc3Qgc3RkOjpzdHJpbmcmIGhvc3QsCi0gICBiYXNl OjpTY29wZWRCbG9ja2luZ0NhbGwgc2NvcGVkX2Jsb2NraW5nX2NhbGwoRlJPTV9IRVJFLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U6OkJsb2Nr aW5nVHlwZTo6V0lMTF9CTE9DSyk7Ci0gCi0tI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmICFkZWZp bmVkKE9TX01BQ09TWCkgJiYgIWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAotKyNpZiBkZWZpbmVk KE9TX1BPU0lYKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoT1NfTUFDT1NYKSAm JiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCi0gICAgICFkZWZpbmVkKE9TX0FORFJPSUQpICYm ICFkZWZpbmVkKE9TX0ZVQ0hTSUEpCi0gICBEbnNSZWxvYWRlck1heWJlUmVsb2FkKCk7Ci0gI2Vu ZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfZXhlaW5mby5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNs LXBhdGNoZXMvY2hyb21pdW0tbXVzbF9leGVpbmZvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBmMWFmYzdjMWIxNzYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2VsZWN0 cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfZXhlaW5mby5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLWRpZmYgLS1naXQgYS9iYXNlL2RlYnVnL3N0YWNr X3RyYWNlX3Bvc2l4LmNjIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9wb3NpeC5jYwotaW5kZXgg ZGUyZjM1Ni4uZjY5N2M2NiAxMDA2NDQKLS0tLSBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9z aXguY2MKLSsrKyBiL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKLUBAIC0yNyw3ICsy Nyw3IEBACi0gI2lmICFkZWZpbmVkKFVTRV9TWU1CT0xJWkUpCi0gI2luY2x1ZGUgPGN4eGFiaS5o PgotICNlbmRpZgotLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQot KyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmlu ZWQoX0FJWCkKLSAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KLSAjZW5kaWYKLSAKLUBAIC04Niw3ICs4 Niw3IEBAIHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3RyaW5nKiB0ZXh0KSB7Ci0gICAvLyBO b3RlOiBjb2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGFzeW5jLXNpZ25hbCBzYWZlIChzdGQ6 OnN0cmluZyB1c2VzCi0gICAvLyBtYWxsb2MgaW50ZXJuYWxseSkuCi0gCi0tI2lmICFkZWZpbmVk KF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKSAm JiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotICAgc3RkOjpzdHJpbmc6 OnNpemVfdHlwZSBzZWFyY2hfZnJvbSA9IDA7Ci0gICB3aGlsZSAoc2VhcmNoX2Zyb20gPCB0ZXh0 LT5zaXplKCkpIHsKLSAgICAgLy8gTG9vayBmb3IgdGhlIHN0YXJ0IG9mIGEgbWFuZ2xlZCBzeW1i b2wsIGZyb20gc2VhcmNoX2Zyb20uCi1AQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgRGVtYW5nbGVT eW1ib2xzKHN0ZDo6c3RyaW5nKiB0ZXh0KSB7Ci0gICAgICAgc2VhcmNoX2Zyb20gPSBtYW5nbGVk X3N0YXJ0ICsgMjsKLSAgICAgfQotICAgfQotLSNlbmRpZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNf XykgJiYgIWRlZmluZWQoX0FJWCkKLSsjZW5kaWYgIC8vIGRlZmluZWQoX19HTElCQ19fKSAmJiAh ZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotIH0KLSAjZW5kaWYgIC8vICFk ZWZpbmVkKFVTRV9TWU1CT0xJWkUpCi0gCi1AQCAtMTMzLDcgKzEzMyw3IEBAIGNsYXNzIEJhY2t0 cmFjZU91dHB1dEhhbmRsZXIgewotICAgdmlydHVhbCB+QmFja3RyYWNlT3V0cHV0SGFuZGxlcigp ID0gZGVmYXVsdDsKLSB9OwotIAotLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5l ZChfQUlYKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykg JiYgIWRlZmluZWQoX0FJWCkKLSB2b2lkIE91dHB1dFBvaW50ZXIodm9pZCogcG9pbnRlciwgQmFj a3RyYWNlT3V0cHV0SGFuZGxlciogaGFuZGxlcikgewotICAgLy8gVGhpcyBzaG91bGQgYmUgbW9y ZSB0aGFuIGVub3VnaCB0byBzdG9yZSBhIDY0LWJpdCBudW1iZXIgaW4gaGV4OgotICAgLy8gMTYg aGV4IGRpZ2l0cyArIDEgZm9yIG51bGwtdGVybWluYXRvci4KLUBAIC0yMTYsNyArMjE2LDcgQEAg dm9pZCBQcm9jZXNzQmFja3RyYWNlKHZvaWQqIGNvbnN0KiB0cmFjZSwKLSAgIH0KLSAjZW5kaWYg IC8vIGRlZmluZWQoVVNFX1NZTUJPTElaRSkKLSB9Ci0tI2VuZGlmICAvLyAhZGVmaW5lZChfX1VD TElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQotKyNlbmRpZiAgLy8gZGVmaW5lZChfX0dMSUJDX18p ICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0gCi0gdm9pZCBQcmlu dFRvU3RkZXJyKGNvbnN0IGNoYXIqIG91dHB1dCkgewotICAgLy8gTk9URTogVGhpcyBjb2RlIE1V U1QgYmUgYXN5bmMtc2lnbmFsIHNhZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCi1AQCAtODI4 LDcgKzgyOCw3IEBAIHNpemVfdCBDb2xsZWN0U3RhY2tUcmFjZSh2b2lkKiogdHJhY2UsIHNpemVf dCBjb3VudCkgewotICAgLy8gTk9URTogVGhpcyBjb2RlIE1VU1QgYmUgYXN5bmMtc2lnbmFsIHNh ZmUgKGl0J3MgdXNlZCBieSBpbi1wcm9jZXNzCi0gICAvLyBzdGFjayBkdW1waW5nIHNpZ25hbCBo YW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KLSAKLS0jaWYgIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSsjaWYgZGVmaW5lZChfX0dMSUJD X18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0gICAvLyBUaG91 Z2ggdGhlIGJhY2t0cmFjZSBBUEkgbWFuIHBhZ2UgZG9lcyBub3QgbGlzdCBhbnkgcG9zc2libGUg bmVnYXRpdmUKLSAgIC8vIHJldHVybiB2YWx1ZXMsIHdlIHRha2Ugbm8gY2hhbmNlLgotICAgcmV0 dXJuIGJhc2U6OnNhdHVyYXRlZF9jYXN0PHNpemVfdD4oYmFja3RyYWNlKHRyYWNlLCBjb3VudCkp OwotQEAgLTg0MSwxMyArODQxLDEzIEBAIHZvaWQgU3RhY2tUcmFjZTo6UHJpbnRXaXRoUHJlZml4 KGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKLSAvLyBOT1RFOiBUaGlzIGNvZGUg TVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKLSAvLyBz dGFjayBkdW1waW5nIHNpZ25hbCBoYW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93 ZWQgaGVyZS4KLSAKLS0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK LSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCi0gICBQcmludEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxlcjsKLSAgIFBy b2Nlc3NCYWNrdHJhY2UodHJhY2VfLCBjb3VudF8sIHByZWZpeF9zdHJpbmcsICZoYW5kbGVyKTsK LSAjZW5kaWYKLSB9Ci0gCi0tI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAh ZGVmaW5lZChfQUlYKQotIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4 KHN0ZDo6b3N0cmVhbSogb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3QgewotICAgU3RyZWFtQmFja3Ry YWNlT3V0cHV0SGFuZGxlciBoYW5kbGVyKG9zKTsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9z d2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLXN1Ynplcm8vYnVpbGQvTGludXgvaW5jbHVkZS9s bHZtL0NvbmZpZy9jb25maWcuaCBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5 L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCi1p bmRleCA3OThmMTUwLi45N2FjYzdjIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFk ZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25m aWcvY29uZmlnLmgKLSsrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xs dm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCi1AQCAt MTQsNyArMTQsNyBAQAotICNkZWZpbmUgRU5BQkxFX0NSQVNIX09WRVJSSURFUyAxCi0gCi0gLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBiYWNrdHJhY2UnIGZ1bmN0aW9uLiAqLwotLSNk ZWZpbmUgSEFWRV9CQUNLVFJBQ0UgMQotKy8qICN1bmRlZiBIQVZFX0JBQ0tUUkFDRSAqLwotIAot IC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Q3Jhc2hSZXBvcnRlckNsaWVudC5oPiBo ZWFkZXIgZmlsZS4gKi8KLSAvKiAjdW5kZWYgSEFWRV9DUkFTSFJFUE9SVEVSQ0xJRU5UX0ggKi8K LUBAIC01NSw3ICs1NSw3IEBACi0gI2RlZmluZSBIQVZFX0VSUk5PX0ggMQotIAotIC8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZXhlY2luZm8uaD4gaGVhZGVyIGZpbGUuICovCi0tI2Rl ZmluZSBIQVZFX0VYRUNJTkZPX0ggMQotKy8qICN1bmRlZiBIQVZFX0VYRUNJTkZPX0ggKi8KLSAK LSAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+IGhlYWRlciBmaWxlLiAq LwotICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9nZXRjb250ZXh0LnBhdGNoIGIvc3Jj cGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX2dldGNvbnRl eHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2OTcyNDNhOTEwNC4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbF9nZXRjb250ZXh0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBA QAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwot aW5kZXggYjg5NWY2ZC4uNGYxMzM1MiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwot KysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5k bGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1AQCAtNDkwLDcgKzQ5MCw5IEBAIGJvb2wgRXhjZXB0 aW9uSGFuZGxlcjo6U2ltdWxhdGVTaWduYWxEZWxpdmVyeShpbnQgc2lnKSB7Ci0gICBzaWdpbmZv LnNpX2NvZGUgPSBTSV9VU0VSOwotICAgc2lnaW5mby5zaV9waWQgPSBnZXRwaWQoKTsKLSAgIHVj b250ZXh0X3QgY29udGV4dDsKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pCi0gICBnZXRjb250ZXh0 KCZjb250ZXh0KTsKLSsjZW5kaWYKLSAgIHJldHVybiBIYW5kbGVTaWduYWwoc2lnLCAmc2lnaW5m bywgJmNvbnRleHQpOwotIH0KLSAKLUBAIC02NzUsOCArNjc3LDEwIEBAIGJvb2wgRXhjZXB0aW9u SGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAgIHN5c19wcmN0bChQUl9TRVRfRFVNUEFCTEUs IDEsIDAsIDAsIDApOwotIAotICAgQ3Jhc2hDb250ZXh0IGNvbnRleHQ7Ci0rI2lmIGRlZmluZWQo X19HTElCQ19fKQotICAgaW50IGdldGNvbnRleHRfcmVzdWx0ID0gZ2V0Y29udGV4dCgmY29udGV4 dC5jb250ZXh0KTsKLSAgIGlmIChnZXRjb250ZXh0X3Jlc3VsdCkKLSsjZW5kaWYKLSAgICAgcmV0 dXJuIGZhbHNlOwotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX21hbGxpbmZvLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs X21hbGxpbmZvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmU3YzY1OTVl ZGMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRj aGVzL2Nocm9taXVtLW11c2xfbWFsbGluZm8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NCAr MCwwIEBACi0tLS0gYS9iYXNlL3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjLm9y aWcKLSsrKyBiL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MKLUBAIC0y NDMsNyArMjQzLDcgQEAKLSAgIGFsbG9jYXRlZF9vYmplY3RzX2NvdW50ID0gbWFpbl9oZWFwX2lu Zm8uYmxvY2tfY291bnQ7Ci0gI2VsaWYgZGVmaW5lZChPU19GVUNIU0lBKQotIC8vIFRPRE8oZnVj aHNpYSk6IFBvcnQsIHNlZSBodHRwczovL2NyYnVnLmNvbS83MDY1OTIuCi0tI2Vsc2UKLSsjZWxp ZiBkZWZpbmVkKF9fR0xJQkNfXykKLSAgIHN0cnVjdCBtYWxsaW5mbyBpbmZvID0gbWFsbGluZm8o KTsKLSAgIERDSEVDS19HRShpbmZvLmFyZW5hICsgaW5mby5oYmxraGQsIGluZm8udW9yZGJsa3Mp OwotIAotLS0tIGEvYmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYy5vcmlnCTIw MTktMTAtMjQgMTE6MTA6NDguNTUzMTU5MjQ1IC0wNDAwCi0rKysgYi9iYXNlL3Byb2Nlc3MvcHJv Y2Vzc19tZXRyaWNzX3Bvc2l4LmNjCTIwMTktMTAtMjQgMTE6MTQ6MjkuMDI1MDI1ODU0IC0wNDAw Ci1AQCAtMTEwLDE0ICsxMTAsMTQgQEAKLSAgIG1hbGxvY19zdGF0aXN0aWNzX3Qgc3RhdHMgPSB7 MH07Ci0gICBtYWxsb2Nfem9uZV9zdGF0aXN0aWNzKG51bGxwdHIsICZzdGF0cyk7Ci0gICByZXR1 cm4gc3RhdHMuc2l6ZV9pbl91c2U7Ci0tI2VsaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5l ZChPU19BTkRST0lEKQotKyNlbGlmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVkKE9TX0FO RFJPSUQpCi0gICBzdHJ1Y3QgbWFsbGluZm8gbWluZm8gPSBtYWxsaW5mbygpOwotICNpZiBCVUlM REZMQUcoVVNFX1RDTUFMTE9DKQotICAgcmV0dXJuIG1pbmZvLnVvcmRibGtzOwotICNlbHNlCi0g ICByZXR1cm4gbWluZm8uaGJsa2hkICsgbWluZm8uYXJlbmE7Ci0gI2VuZGlmCi0tI2VsaWYgZGVm aW5lZChPU19GVUNIU0lBKQotKyNlbHNlCi0gICAvLyBUT0RPKGZ1Y2hzaWEpOiBOb3QgY3VycmVu dGx5IGV4cG9zZWQuIGh0dHBzOi8vY3JidWcuY29tLzczNTA4Ny4KLSAgIHJldHVybiAwOwotICNl bmRpZgotLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6 ZXJvL2xpYi9TdXBwb3J0L1VuaXgvUHJvY2Vzcy5pbmMKLSsrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0 c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9saWIvU3VwcG9ydC9Vbml4L1Byb2Nlc3Mu aW5jLm9yaWcKLUBAIC04NCw3ICs4NCw3IEBACi0gfQotIAotIHNpemVfdCBQcm9jZXNzOjpHZXRN YWxsb2NVc2FnZSgpIHsKLS0jaWYgZGVmaW5lZChIQVZFX01BTExJTkZPKQotKyNpZiBkZWZpbmVk KEhBVkVfTUFMTElORk8pICYmIGRlZmluZWQoX19HTElCQ19fKQotICAgc3RydWN0IG1hbGxpbmZv IG1pOwotICAgbWkgPSA6Om1hbGxpbmZvKCk7Ci0gICByZXR1cm4gbWkudW9yZGJsa3M7Ci0KLS0t LSBhL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9jb25maWdz L2xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgub3JpZwkyMDE5LTA5LTMwIDEzOjAz OjQyLjU1Njg4MDUzNyAtMDQwMAotKysrIGIvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRf cGFydHkvbGx2bS0xMC4wL2NvbmZpZ3MvbGludXgvaW5jbHVkZS9sbHZtL0NvbmZpZy9jb25maWcu aAkyMDE5LTA5LTMwIDEzOjA3OjI3Ljk4OTgyMTIyNyAtMDQwMAotQEAgLTEyMiw3ICsxMjIsOSBA QAotIC8qICN1bmRlZiBIQVZFX01BTExDVEwgKi8KLSAKLSAvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgYG1hbGxpbmZvJyBmdW5jdGlvbi4gKi8KLSsjaWYgZGVmaW5lZChfX0dMSUJDX18p Ci0gI2RlZmluZSBIQVZFX01BTExJTkZPIDEKLSsjZW5kaWYKLSAKLSAvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KLSAjZGVmaW5lIEhBVkVf TUFMTE9DX0ggMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0ZTY0LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJv bjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3ByZWFkX3B3cml0ZTY0LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWVhYWViNzU5M2YuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11 c2xfcHJlYWRfcHdyaXRlNjQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1k aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIGIvdGhp cmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1pbmRleCA1ZDljMmU4Li4yNjgy MzQ5IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5o Ci0rKysgYi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLUBAIC0xNjYs NiArMTY2LDEzIEBAIGV4dGVybiAiQyIgewotICMgdW5kZWYgX19OUl93YWl0cGlkCi0gI2VuZGlm Ci0gCi0rI2lmZGVmIHByZWFkNjQKLSsjdW5kZWYgcHJlYWQ2NAotKyNlbmRpZgotKyNpZmRlZiBw d3JpdGU2NAotKyN1bmRlZiBwd3JpdGU2NAotKyNlbmRpZgotKwotIC8qIEFzIGdsaWJjIG9mdGVu IHByb3ZpZGVzIHN1YnRseSBpbmNvbXBhdGlibGUgZGF0YSBzdHJ1Y3R1cmVzIChhbmQgaW1wbGlj aXQKLSAgKiB3cmFwcGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZlcnQgdGhlbSksIHdlIHByb3ZpZGUg b3VyIG93biBrZXJuZWwgZGF0YQotICAqIHN0cnVjdHVyZXMgZm9yIHVzZSBieSB0aGUgc3lzdGVt IGNhbGxzLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hl cy9jaHJvbWl1bS1tdXNsX3B1c2hfYmFjay5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxl cy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wdXNoX2JhY2sucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGNmZjM0MDI4N2RhNS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9wdXNoX2JhY2su cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvbmV0L3Nv Y2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjIGIvbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNj Ci1pbmRleCAwOGJmNzljLi4zZWU1MzUzIDEwMDY0NAotLS0tIGEvbmV0L3NvY2tldC91ZHBfc29j a2V0X3Bvc2l4LmNjCi0rKysgYi9uZXQvc29ja2V0L3VkcF9zb2NrZXRfcG9zaXguY2MKLUBAIC0x MTk0LDcgKzExOTQsNyBAQCBTZW5kUmVzdWx0IFVEUFNvY2tldFBvc2l4U2VuZGVyOjpJbnRlcm5h bFNlbmRtbXNnQnVmZmVycygKLSAgICAgbXNnX2lvdi0+cHVzaF9iYWNrKHtjb25zdF9jYXN0PGNo YXIqPihidWZmZXItPmRhdGEoKSksIGJ1ZmZlci0+bGVuZ3RoKCl9KTsKLSAgIG1zZ3ZlYy0+cmVz ZXJ2ZShidWZmZXJzLnNpemUoKSk7Ci0gICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGJ1ZmZlcnMu c2l6ZSgpOyBqKyspCi0tICAgIG1zZ3ZlYy0+cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19p b3Zbal0sIDEsIG51bGxwdHIsIDAsIDB9LCAwfSk7Ci0rICAgIG1zZ3ZlYy0+cHVzaF9iYWNrKHt7 bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEsIDAsIG51bGxwdHIsIDAsIDAsIDB9LCAwfSk7Ci0g ICBpbnQgcmVzdWx0ID0gSEFORExFX0VJTlRSKFNlbmRtbXNnKGZkLCAmbXNndmVjWzBdLCBidWZm ZXJzLnNpemUoKSwgMCkpOwotICAgU2VuZFJlc3VsdCBzZW5kX3Jlc3VsdCgwLCAwLCBzdGQ6Om1v dmUoYnVmZmVycykpOwotICAgaWYgKHJlc3VsdCA8IDApIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNs X3N0YWNrX3NpemUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmNDFkMjdh ZGU2ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9tdXNsLXBh dGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja19zaXplLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs NDEgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRm b3JtL3d0Zi9zdGFja191dGlsLmNjIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vd3RmL3N0YWNrX3V0aWwuY2MKLWluZGV4IGIyNDIxNjQuLjFhMGI1MTkgMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYwot KysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwu Y2MKLUBAIC0yOCw3ICsyOCw3IEBACi0gLy8gRklYTUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0 aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3RhY2sgc2l6ZQotIC8vIGNvcnJlY3RseSBmb3Ig dGhlIG1haW4gdGhyZWFkLgotIAotLSNlbGlmIGRlZmluZWQoX19HTElCQ19fKSB8fCBkZWZpbmVk KE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJTRCkgfHwgXAotKyNlbGlmIGRlZmluZWQo T1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8 fCBcCi0gICAgIGRlZmluZWQoT1NfRlVDSFNJQSkKLSAgIC8vIHB0aHJlYWRfZ2V0YXR0cl9ucCgp IGNhbiBmYWlsIGlmIHRoZSB0aHJlYWQgaXMgbm90IGludm9rZWQgYnkKLSAgIC8vIHB0aHJlYWRf Y3JlYXRlKCkgKGUuZy4sIHRoZSBtYWluIHRocmVhZCBvZiBibGlua191bml0dGVzdHMpLgotQEAg LTU1LDYgKzU1LDkgQEAgc2l6ZV90IEdldFVuZGVyZXN0aW1hdGVkU3RhY2tTaXplKCkgewotICAg cHRocmVhZF9hdHRyX2Rlc3Ryb3koJmF0dHIpOwotICNlbmRpZgotIAotKyNpZiBkZWZpbmVkKE9T X0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pCi0rICByZXR1cm4gMDsKLSsjZWxzZQotICAg Ly8gUmV0dXJuIGEgNTEyayBzdGFjayBzaXplLCAoY29uc2VydmF0aXZlbHkpIGFzc3VtaW5nIHRo ZSBmb2xsb3dpbmc6Ci0gICAvLyAgLSB0aGF0IHNpemUgaXMgbXVjaCBsb3dlciB0aGFuIHRoZSBw dGhyZWFkcyBkZWZhdWx0ICh4ODYgcHRocmVhZHMgaGFzIGEgMk0KLSAgIC8vICAgIGRlZmF1bHQu KQotQEAgLTYyLDYgKzY1LDggQEAgc2l6ZV90IEdldFVuZGVyZXN0aW1hdGVkU3RhY2tTaXplKCkg ewotICAgLy8gICAgbG93IGFzIDUxMmsuCi0gICAvLwotICAgcmV0dXJuIDUxMiAqIDEwMjQ7Ci0r I2VuZGlmCi0rCi0gI2VsaWYgZGVmaW5lZChPU19NQUNPU1gpCi0gICAvLyBwdGhyZWFkX2dldF9z dGFja3NpemVfbnAoKSByZXR1cm5zIHRvbyBsb3cgYSB2YWx1ZSBmb3IgdGhlIG1haW4gdGhyZWFk IG9uCi0gICAvLyBPU1ggMTAuOSwKLUBAIC05Nyw3ICsxMDIsNyBAQCByZXR1cm4gVGhyZWFkaW5n OjpUaHJlYWRTdGFja1NpemUoKTsKLSB9Ci0gCi0gdm9pZCogR2V0U3RhY2tTdGFydCgpIHsKLS0j aWYgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChP U19GUkVFQlNEKSB8fCBcCi0rI2lmIGRlZmluZWQoT1NfTElOVVgpIHx8IGRlZmluZWQoT1NfQU5E Uk9JRCkgfHwgZGVmaW5lZChPU19GUkVFQlNEKSB8fCBcCi0gICAgIGRlZmluZWQoT1NfRlVDSFNJ QSkKLSAgIHB0aHJlYWRfYXR0cl90IGF0dHI7Ci0gICBpbnQgZXJyb3I7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2xfc3RhY2tf dHJhY2UucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2xfc3RhY2tfdHJhY2UucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDlhMWYyYjA0NDU4My4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxl cy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF9zdGFja190cmFjZS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDQ0ICswLDAgQEAKLWRpZmYgLS1naXQgYS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNl LmNjIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYwotaW5kZXggZDhjYTgyMi4uZmZlMWYwOCAx MDA2NDQKLS0tLSBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2MKLSsrKyBiL2Jhc2UvZGVidWcv c3RhY2tfdHJhY2UuY2MKLUBAIC0yMjUsNyArMjI1LDkgQEAgdm9pZCBTdGFja1RyYWNlOjpQcmlu dCgpIGNvbnN0IHsKLSB9Ci0KLSB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtKHN0ZDo6 b3N0cmVhbSogb3MpIGNvbnN0IHsKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVk KF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCi0gICBPdXRwdXRUb1N0cmVhbVdpdGhQcmVm aXgob3MsIG51bGxwdHIpOwotKyNlbmRpZgotIH0KLQotIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6 OlRvU3RyaW5nKCkgY29uc3QgewotQEAgLTIzMywxNCArMjMzLDE0IEBAIHN0ZDo6c3RyaW5nIFN0 YWNrVHJhY2U6OlRvU3RyaW5nKCkgY29uc3QgewotIH0KLSBzdGQ6OnN0cmluZyBTdGFja1RyYWNl OjpUb1N0cmluZ1dpdGhQcmVmaXgoY29uc3QgY2hhciogcHJlZml4X3N0cmluZykgY29uc3Qgewot ICAgc3RkOjpzdHJpbmdzdHJlYW0gc3RyZWFtOwotLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAm JiAhZGVmaW5lZChfQUlYKQotKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19V Q0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKLSAgIE91dHB1dFRvU3RyZWFtV2l0aFByZWZpeCgm c3RyZWFtLCBwcmVmaXhfc3RyaW5nKTsKLSAjZW5kaWYKLSAgIHJldHVybiBzdHJlYW0uc3RyKCk7 Ci0gfQotIAotIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25z dCBTdGFja1RyYWNlJiBzKSB7Ci0tI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYgIWRlZmluZWQo X0FJWCkKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYg IWRlZmluZWQoX0FJWCkKLSAgIHMuT3V0cHV0VG9TdHJlYW0oJm9zKTsKLSAjZWxzZQotICAgb3Mg PDwgIlN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtIG5vdCBpbXBsZW1lbnRlZC4iOwotZGlmZiAt LWdpdCBhL2Jhc2UvbG9nZ2luZy5jYyBiL2Jhc2UvbG9nZ2luZy5jYwotaW5kZXggMzZiOGJmYy4u ZGQ4MzBmZSAxMDA2NDQKLS0tLSBhL2Jhc2UvbG9nZ2luZy5jYwotKysrIGIvYmFzZS9sb2dnaW5n LmNjCi1AQCAtNjA3LDcgKzYwNyw3IEBAIExvZ01lc3NhZ2U6OkxvZ01lc3NhZ2UoY29uc3QgY2hh ciogZmlsZSwgaW50IGxpbmUsIExvZ1NldmVyaXR5IHNldmVyaXR5LAotIExvZ01lc3NhZ2U6On5M b2dNZXNzYWdlKCkgewotICAgc2l6ZV90IHN0YWNrX3N0YXJ0ID0gc3RyZWFtXy50ZWxscCgpOwot ICNpZiAhZGVmaW5lZChPRkZJQ0lBTF9CVUlMRCkgJiYgIWRlZmluZWQoT1NfTkFDTCkgJiYgIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgXAotLSAgICAhZGVmaW5lZChPU19BSVgpCi0rICAgICFkZWZp bmVkKE9TX0FJWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pCi0gICBpZiAoc2V2ZXJpdHlfID09IExP R19GQVRBTCAmJiAhYmFzZTo6ZGVidWc6OkJlaW5nRGVidWdnZWQoKSkgewotICAgICAvLyBJbmNs dWRlIGEgc3RhY2sgdHJhY2Ugb24gYSBmYXRhbCwgdW5sZXNzIGEgZGVidWdnZXIgaXMgYXR0YWNo ZWQuCi0gICAgIGJhc2U6OmRlYnVnOjpTdGFja1RyYWNlIHN0YWNrX3RyYWNlOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3Rj cF9saXN0ZW4ucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfdGNwX2xpc3Rlbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZmE2MjMxN2IxMWFjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2Zp bGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsX3RjcF9saXN0ZW4ucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxNCArMCwwIEBACi1kaWZmIC0tZ2l0IGEvY29udGVudC9wdWJsaWMvY29tbW9u L3NvY2tldF9wZXJtaXNzaW9uX3JlcXVlc3QuaCBiL2NvbnRlbnQvcHVibGljL2NvbW1vbi9zb2Nr ZXRfcGVybWlzc2lvbl9yZXF1ZXN0LmgKLWluZGV4IDczMTY2MjEuLjYxNzEyMTkgMTAwNjQ0Ci0t LS0gYS9jb250ZW50L3B1YmxpYy9jb21tb24vc29ja2V0X3Blcm1pc3Npb25fcmVxdWVzdC5oCi0r KysgYi9jb250ZW50L3B1YmxpYy9jb21tb24vc29ja2V0X3Blcm1pc3Npb25fcmVxdWVzdC5oCi1A QCAtOSw2ICs5LDkgQEAKLSAKLSAjaW5jbHVkZSA8c3RyaW5nPgotIAotKyNpZmRlZiBUQ1BfTElT VEVOCi0rI3VuZGVmIFRDUF9MSVNURU4KLSsjZW5kaWYKLSAKLSBuYW1lc3BhY2UgY29udGVudCB7 Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2No cm9taXVtLW11c2xfeHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbF94eHgtcHBjNjRsZS1zdXBwb3J0LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2Q2NjBmZWIwMjMuLjAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW11c2xfeHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3OSAr MCwwIEBACi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5o IHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1pbmRleCBhNmFlYzU0NGUu LjJhNGE3ZjFiYyAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21h Y3Jvcy5oCi0rKysgYi9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAotQEAg LTE2LDcgKzE2LDcgQEAKLSAjaWYgZGVmaW5lZChfX21pcHNfXykKLSAvLyBzeXMvdXNlci5oIGlu IGVnbGliYyBtaXNzZXMgc2l6ZV90IGRlZmluaXRpb24KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0t I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykgJiYgZGVmaW5lZChfX0dMSUJDX18pCi0gLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBw cGM2NAotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsKLSAjZW5kaWYKLUBAIC0z NjEsMTEgKzM2MSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3RydWN0OwotICNk ZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjQKLSAjZW5kaWYKLSAKLS0jZGVmaW5l IFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPmdwcltf cmVnXSkKLSsjZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoKHN0cnVjdCBwdF9yZWdz ICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+Z3ByW19yZWddKQotIAotICNkZWZpbmUgU0VD Q09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSAjZGVmaW5lIFNFQ0NPTVBf U1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQotLSNkZWZpbmUgU0VDQ09NUF9JUChf Y3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VDQ09NUF9JUChf Y3R4KSAoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+bmlwCi0g I2RlZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0gI2RlZmlu ZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQpCi0gI2RlZmluZSBTRUND T01QX1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCi1kaWZmIC0tZ2l0IHNhbmRib3gv bGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5 c2NhbGwuY2MKLWluZGV4IGQ1M2E3ZmY1Ni4uYzI5MGYwZTkyIDEwMDY0NAotLS0tIGEvc2FuZGJv eC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi0rKysgYi9zYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmL3N5c2NhbGwuY2MKLUBAIC00OTksOSArNDk5LDkgQEAgdm9pZCBTeXNjYWxsOjpQdXRW YWx1ZUluVWNvbnRleHQoaW50cHRyX3QgcmV0X3ZhbCwgdWNvbnRleHRfdCogY3R4KSB7Ci0gICAv LyBTYW1lIGFzIE1JUFMsIG5lZWQgdG8gaW52ZXJ0IHJldCBhbmQgc2V0IGVycm9yIHJlZ2lzdGVy IChjcjAuU08pCi0gICBpZiAocmV0X3ZhbCA8PSAtMSAmJiByZXRfdmFsID49IC00MDk1KSB7Ci0g ICAgIHJldF92YWwgPSAtcmV0X3ZhbDsKLS0gICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3Ig fD0gKDEgPDwgMjgpOwotKyAgICAoKHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19tY29udGV4dC5y ZWdzKS0+Y2NyIHw9ICgxIDw8IDI4KTsKLSAgIH0gZWxzZSB7Ci0tICAgIGN0eC0+dWNfbWNvbnRl eHQucmVncy0+Y2NyICY9IH4oMSA8PCAyOCk7Ci0rICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgt PnVjX21jb250ZXh0LnJlZ3MpLT5jY3IgJj0gfigxIDw8IDI4KTsKLSAgIH0KLSAjZW5kaWYKLSAg IFNFQ0NPTVBfUkVTVUxUKGN0eCkgPSBzdGF0aWNfY2FzdDxncmVnX3Q+KHJldF92YWwpOwotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxl ZGN5Y2xlY2xvY2suaCB0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91 bnNjYWxlZGN5Y2xlY2xvY2suaAotaW5kZXggY2RjZTliZjguLjczZDc3ZGRhIDEwMDY0NAotLS0t IGEvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNs ZWNsb2NrLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFs L3Vuc2NhbGVkY3ljbGVjbG9jay5oCi1AQCAtNDYsNyArNDYsNyBAQAotIAotIC8vIFRoZSBmb2xs b3dpbmcgcGxhdGZvcm1zIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBoYXJkd2FyZSBjb3Vu dGVyLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IFwKLS0gIGRlZmluZWQoX19wb3dlcnBjX18pIHx8IGRlZmlu ZWQoX19wcGNfXykgfHwgXAotKyAgKChkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9f cHBjX18pKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IFwKLSAgIGRlZmluZWQoX01fSVg4Nikg fHwgZGVmaW5lZChfTV9YNjQpCi0gI2RlZmluZSBBQlNMX0hBVkVfVU5TQ0FMRURfQ1lDTEVDTE9D S19JTVBMRU1FTlRBVElPTiAxCi0gI2Vsc2UKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvQlVJTEQuZ24gdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLWluZGV4IGY5YTYwZTM3 Li4yNWYzYTBiNyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi0r KysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotQEAgLTYzNyw2ICs2MzcsNyBAQCBp ZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotIAotICAgICBpZiAoY3VycmVudF9jcHUgPT0g InBwYzY0IikgewotICAgICAgICAgZGVmaW5lcyA9IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQotKyAg ICAgICAgbGlicyArPSBbICJ1Y29udGV4dCIgXQotICAgICB9IGVsc2UgewotICAgICAgICAgc291 cmNlcyArPSBbCi0gICAgICAgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtw YWRfZ2V0Y29udGV4dC5TIgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi90aHJlYWRfaW5mby5jYwotaW5kZXggMDNhZmVjN2EuLjAyNjRlY2YxIDEwMDY0NAotLS0t IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNj Ci1AQCAtMjczLDYgKzI3Myw5IEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3 Q29udGV4dENQVSogb3V0KSBjb25zdCB7Ci0gCi0gI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotIAotKyNpbmNsdWRlIDxhc20vZWxmLmg+Ci0rI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSsK LSB1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3Qgewot ICAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotIH0KLUBAIC0yOTAsOSArMjkz LDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQp IGNvbnN0IHsKLSAgICAgb3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0gICAg IAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9D T1VOVDsgaSsrKQotLSAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IG1jb250ZXh0 LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gKCh1aW50 NjRfdCAqKSZtY29udGV4dC5mcF9yZWdzKVtpXTsKLSAKLS0gICAgb3V0LT5mbG9hdF9zYXZlLmZw c2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rICAgIG91dC0+ZmxvYXRfc2F2ZS5m cHNjciA9ICgodWludDY0X3QgKikmbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsKLSAK LSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7 IGkrKykKLSAgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5j YwotaW5kZXggMTA5MDQ3MGYuLmU1ODAyMzNkIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRl eHRfcmVhZGVyLmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKLUBAIC0yNTcs NiArMjU3LDkgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4 dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YykgewotIAotICNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAKLSsjaW5jbHVkZSA8YXNtL2VsZi5oPgotKyNpbmNsdWRlIDxhc20vcHRy YWNlLmg+Ci0rCi0gdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIoY29u c3QgdWNvbnRleHRfdCogdWMpIHsKLSAgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdz W01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXTsKLSB9Ci1AQCAtMjgwLDkgKzI4Myw5IEBAIHZvaWQg VUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29uc3Qg dWNvbnRleHRfdCogdWMsCi0gICAgIG91dC0+Y3RyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfQ1RSXTsKLSAgICAgCi0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZF QVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0tICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdz W2ldID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0X3Nh dmUuZnByZWdzW2ldID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbaV07 Ci0gCi0tICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29udGV4dC5mcF9yZWdz W05GUFJFRy0xXTsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZ1 Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsKLSAKLSAgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSAgICAgICAg IG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxl ci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRs ZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKLWluZGV4IDVhN2FiNTBjLi5lZThiODU4YyAxMDA2NDQK LS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFu ZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1AQCAt MTA1LDYgKzEwNSwxMSBAQAotICNkZWZpbmUgUFJfU0VUX1BUUkFDRVIgMHg1OTYxNmQ2MQotICNl bmRpZgotIAotKy8qIG11c2wgaGFjaywgY2FuJ3QgaW5jbHVkZSBhc20vcHRyYWNlLmggYXMgdGhh dCBjYXVzZXMgY29uZmxpY3RzICovCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgIWRl ZmluZWQoUFRfTklQKQotKyNkZWZpbmUgUFRfTklQIDMyCi0rI2VuZGlmCi0rCi0gbmFtZXNwYWNl IGdvb2dsZV9icmVha3BhZCB7Ci0gCi0gbmFtZXNwYWNlIHsKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5o Ci1pbmRleCA4ZTMzNWEwOS4uYjJhMGYxNTUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi0rKysgYi90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5o Ci1AQCAtNDY5LDcgKzQ2OSw3IEBAIHN0cnVjdCBNQ29udGV4dDY0IHsKLSAgIFNpZ25hbFRocmVh ZENvbnRleHQ2NCBncF9yZWdzOwotICAgU2lnbmFsRmxvYXRDb250ZXh0NjQgIGZwX3JlZ3M7Ci0g ICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKLS0gIGludDY0X3Qgdm14X3Jlc2VydmVb NjldOwotKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVsxMDFdOwotIH07Ci0gCi0gc3RydWN0IENvbnRl eHRUcmFpdHM2NCA6IHB1YmxpYyBUcmFpdHM2NCB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLWluZGV4IGRlYTBkMWYzLi5i MjAzZTViMiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bGludXgvdGhyZWFkX2luZm8uaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1AQCAtMzAsNiArMzAsNyBAQAotIAotICNpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAjaW5jbHVkZSA8c3lzL3Vjb250ZXh0Lmg+Ci0r I2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KLSAjZW5kaWYKLSAKLSBuYW1lc3BhY2UgY3Jhc2hwYWQg ewotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmggdGhp cmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1pbmRleCA5OTU1Y2U0NC4uNGMx Y2M0ODggMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0 LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTQy MTYsOSArNDIxNiwxMyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Ci0gICAgIH0KLSAgICNlbmRp ZgotICAgI2lmIGRlZmluZWQoX19OUl9mc3RhdGF0NjQpCi0rICAgIC8vIG11c2wgZG9lcyAjZGVm aW5lIGZzdGF0YXQ2NCBmc3RhdGF0Ci0rICAgICN1bmRlZiBmc3RhdGF0NjQKLSAgICAgTFNTX0lO TElORSBfc3lzY2FsbDQoaW50LCAgIGZzdGF0YXQ2NCwgICAgICAgIGludCwgICBkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosICAgICAgcCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGtlcm5lbF9zdGF0NjQgKiwgICBiLCAgICBpbnQsICAgZikKLSsg ICAgLy8gc2V0IGl0IGJhY2sgbGlrZSBpdCB3YXMKLSsgICAgI2RlZmluZSBmc3RhdGF0NjQgZnN0 YXRhdAotICAgI2VuZGlmCi0gICAjaWYgZGVmaW5lZChfX05SX3dhaXRwaWQpCi0gICAgIC8vIHdh aXRwaWQgaXMgcG9seWZpbGxlZCBiZWxvdyB3aGVuIG5vdCBhdmFpbGFibGUuCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS04My1nY2MtMTAucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS04My1nY2MtMTAu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NGI0OWNkZTcwMy4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTgz LWdjYy0xMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLUZyb20gZTQ3M2Y0 MTI4NGNjYzhmYTRiYzQ2MjJkMDg3MTk0YjE4YTFlYzIzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KLURhdGU6 IFR1ZSwgNyBBcHIgMjAyMCAxNjozNzoxMCArMDAwMAotU3ViamVjdDogW1BBVENIXSBHQ0M6IGZp eCBpbmNsdWRlcyBmb3IgZ2NjLTEwCi0KLS0tLQotIGNocm9tZS9icm93c2VyL3NlYXJjaC9iYWNr Z3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oICAgICAgICAgICAgICB8IDEgKwotIHRoaXJkX3BhcnR5 L3dlYnJ0Yy9jYWxsL3J0eF9yZWNlaXZlX3N0cmVhbS5oICAgICAgICAgICAgICAgICAgICB8IDEg KwotIC4uLi93ZWJydGMvbW9kdWxlcy9hdWRpb19wcm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9k ZXRlY3Rvci5oICB8IDEgKwotIHVpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5oICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKysKLSA1IGZpbGVzIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91 bmQvbnRwX2JhY2tncm91bmRzLmggYi9jaHJvbWUvYnJvd3Nlci9zZWFyY2gvYmFja2dyb3VuZC9u dHBfYmFja2dyb3VuZHMuaAotaW5kZXggN2FmYzBhMi4uZWE1ODE4ZSAxMDA2NDQKLS0tLSBhL2No cm9tZS9icm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oCi0rKysgYi9j aHJvbWUvYnJvd3Nlci9zZWFyY2gvYmFja2dyb3VuZC9udHBfYmFja2dyb3VuZHMuaAotQEAgLTYs NiArNiw3IEBACi0gI2RlZmluZSBDSFJPTUVfQlJPV1NFUl9TRUFSQ0hfQkFDS0dST1VORF9OVFBf QkFDS0dST1VORFNfSF8KLSAKLSAjaW5jbHVkZSA8YXJyYXk+Ci0rI2luY2x1ZGUgPGNzdGRkZWY+ Ci0gCi0gY2xhc3MgR1VSTDsKLSAKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS93ZWJydGMvY2Fs bC9ydHhfcmVjZWl2ZV9zdHJlYW0uaCBiL3RoaXJkX3BhcnR5L3dlYnJ0Yy9jYWxsL3J0eF9yZWNl aXZlX3N0cmVhbS5oCi1pbmRleCA4ZmZhNDQwLi4xMTNhODE2IDEwMDY0NAotLS0tIGEvdGhpcmRf cGFydHkvd2VicnRjL2NhbGwvcnR4X3JlY2VpdmVfc3RyZWFtLmgKLSsrKyBiL3RoaXJkX3BhcnR5 L3dlYnJ0Yy9jYWxsL3J0eF9yZWNlaXZlX3N0cmVhbS5oCi1AQCAtMTIsNiArMTIsNyBAQAotICNk ZWZpbmUgQ0FMTF9SVFhfUkVDRUlWRV9TVFJFQU1fSF8KLSAKLSAjaW5jbHVkZSA8bWFwPgotKyNp bmNsdWRlIDxjc3RkaW50PgotIAotICNpbmNsdWRlICJjYWxsL3J0cF9wYWNrZXRfc2lua19pbnRl cmZhY2UuaCIKLSAKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9hdWRp b19wcm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9kZXRlY3Rvci5oIGIvdGhpcmRfcGFydHkvd2Vi cnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vzc2luZy9hZWMzL2Nsb2NrZHJpZnRfZGV0ZWN0b3IuaAot aW5kZXggMjI1MjhjOS4uNjllNjI0ZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9t b2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjMy9jbG9ja2RyaWZ0X2RldGVjdG9yLmgKLSsrKyBi L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX3Byb2Nlc3NpbmcvYWVjMy9jbG9ja2Ry aWZ0X2RldGVjdG9yLmgKLUBAIC0xMiw2ICsxMiw3IEBACi0gI2RlZmluZSBNT0RVTEVTX0FVRElP X1BST0NFU1NJTkdfQUVDM19DTE9DS0RSSUZUX0RFVEVDVE9SX0hfCi0gCi0gI2luY2x1ZGUgPGFy cmF5PgotKyNpbmNsdWRlIDxjc3RkZGVmPgotIAotIG5hbWVzcGFjZSB3ZWJydGMgewotIAotZGlm ZiAtLWdpdCBhL3VpL2dmeC9saW51eC9kcm1fdXRpbF9saW51eC5oIGIvdWkvZ2Z4L2xpbnV4L2Ry bV91dGlsX2xpbnV4LmgKLWluZGV4IDg2ZmYyZWIuLjk5MGYxMmMgMTAwNjQ0Ci0tLS0gYS91aS9n ZngvbGludXgvZHJtX3V0aWxfbGludXguaAotKysrIGIvdWkvZ2Z4L2xpbnV4L2RybV91dGlsX2xp bnV4LmgKLUBAIC03LDYgKzcsOCBAQAotIAotICNpbmNsdWRlICJ1aS9nZngvYnVmZmVyX3R5cGVz LmgiCi0gCi0rI2luY2x1ZGUgPGNzdGRpbnQ+Ci0rCi0gbmFtZXNwYWNlIHVpIHsKLSAKLSBpbnQg R2V0Rm91ckNDRm9ybWF0RnJvbUJ1ZmZlckZvcm1hdChnZng6OkJ1ZmZlckZvcm1hdCBmb3JtYXQp OwotLS0gCi0yLjI0LjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFsLnBhdGNoLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW1fYXRrX29wdGlvbmFs LnBhdGNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdiNGE3YTAwYzUu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS1jaHJvbWl1bV9hdGtfb3B0aW9uYWwucGF0Y2gucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwxNSArMCwwIEBACi0tLS0gYS9idWlsZC9jb25maWcvdWkuZ25pCTIwMjAtMDYtMjUgMDA6Mzk6 MjguMDAwMDAwMDAwICswMjAwCi0rKysgLQkyMDIwLTA4LTIyIDE4OjAxOjAxLjE4Mjc0OTcyNiAr MDIwMAotQEAgLTQ3LDggKzQ3LDEwIEBACi0gIyBNYWtlIHN1cmUgZ2xpYiBpcyBub3QgdXNlZCBp ZiBidWlsZGluZyBmb3IgQ2hyb21lT1MvQ2hyb21lY2FzdAotIGFzc2VydCghdXNlX2dsaWIgfHwg KGlzX2xpbnV4ICYmICFpc19jaHJvbWVvcyAmJiAhaXNfY2hyb21lY2FzdCkpCi0gCi0tIyBXaGV0 aGVyIHRvIHVzZSBhdGssIHRoZSBBY2Nlc3NpYmlsaXR5IFRvb2xLaXQgbGlicmFyeQotLXVzZV9h dGsgPSBpc19kZXNrdG9wX2xpbnV4ICYmICFpc19jaHJvbWVjYXN0ICYmIHVzZV9nbGliCi0rZGVj bGFyZV9hcmdzKCkgewotKyAgIyBXaGV0aGVyIHRvIHVzZSBhdGssIHRoZSBBY2Nlc3NpYmlsaXR5 IFRvb2xLaXQgbGlicmFyeQotKyAgdXNlX2F0ayA9IGlzX2Rlc2t0b3BfbGludXggJiYgIWlzX2No cm9tZWNhc3QgJiYgdXNlX2dsaWIKLSt9Ci0gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLSAjICAgUExFQVNFIERPIE5PVCBBREQgTU9SRSBGTEFHUyBUTyBU SElTIEZJTEUKLSAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t Y2xhbmctMTIucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS1jbGFuZy0xMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTRiMTA3NTFj NDMwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tY2xhbmctMTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0t LS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9kaXNrX2RhdGFfYWxsb2Nh dG9yLmgJMjAyMC0wOS0yMSAyMDozOToyNS4wMDAwMDAwMDAgKzAyMDAKLSsrKyAtCTIwMjEtMDUt MjQgMjI6MDM6NDcuMjM4MzkzODE2ICswMjAwCi1AQCAtMzYsMTIgKzM2LDEyIEBACi0gICAgcHVi bGljOgotICAgICBpbnQ2NF90IHN0YXJ0X29mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHN0YXJ0X29m ZnNldF87IH0KLSAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBzaXplXzsgfQotLSAg ICBNZXRhZGF0YShNZXRhZGF0YSYmIG90aGVyKSA9IGRlbGV0ZTsKLSAKLSAgICBwcml2YXRlOgot ICAgICBNZXRhZGF0YShpbnQ2NF90IHN0YXJ0X29mZnNldCwgc2l6ZV90IHNpemUpCi0gICAgICAg ICA6IHN0YXJ0X29mZnNldF8oc3RhcnRfb2Zmc2V0KSwgc2l6ZV8oc2l6ZSkge30KLSAgICAgTWV0 YWRhdGEoY29uc3QgTWV0YWRhdGEmIG90aGVyKSA9IGRlZmF1bHQ7Ci0rICAgIE1ldGFkYXRhKE1l dGFkYXRhJiYgb3RoZXIpID0gZGVmYXVsdDsKLSAgICAgTWV0YWRhdGEmIG9wZXJhdG9yPShjb25z dCBNZXRhZGF0YSYgb3RoZXIpID0gZGVmYXVsdDsKLSAKLSAgICAgaW50NjRfdCBzdGFydF9vZmZz ZXRfOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tZmZtcGVnLTQuMy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2No cm9taXVtLWZmbXBlZy00LjMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZh YmI4ODZhYjk5MC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9w YXRjaGVzL2Nocm9taXVtLWZmbXBlZy00LjMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMSAr MCwwIEBACi1kaWZmIC0tZ2l0IGEvbWVkaWEvYmFzZS9tZWRpYS5jYyBiL21lZGlhL2Jhc2UvbWVk aWEuY2MKLWluZGV4IGMyODJlZTQ5YTAzLi5hMjk4YjQwYzc5YiAxMDA2NDQKLS0tLSBhL21lZGlh L2Jhc2UvbWVkaWEuY2MKLSsrKyBiL21lZGlhL2Jhc2UvbWVkaWEuY2MKLUBAIC0xNCw2ICsxNCw3 IEBACi0gI2luY2x1ZGUgInRoaXJkX3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1di5oIgotIAot ICNpZiBCVUlMREZMQUcoRU5BQkxFX0ZGTVBFRykKLSsjaW5jbHVkZSA8bGltaXRzPgotICNpbmNs dWRlICJ0aGlyZF9wYXJ0eS9mZm1wZWcvZmZtcGVnX2ZlYXR1cmVzLmgiICAvLyBub2duY2hlY2sK LSBleHRlcm4gIkMiIHsKLSAjaW5jbHVkZSA8bGliYXZ1dGlsL2NwdS5oPgotQEAgLTQxLDcgKzQy LDcgQEAgY2xhc3MgTWVkaWFJbml0aWFsaXplciB7Ci0gCi0gI2lmIEJVSUxERkxBRyhVU0VfQUxM T0NBVE9SX1NISU0pCi0gICAgIC8vIFJlbW92ZSBhbGxvY2F0aW9uIGxpbWl0IGZyb20gZmZtcGVn LCBzbyBjYWxscyBnbyBkb3duIHRvIHNoaW0gbGF5ZXIuCi0tICAgIGF2X21heF9hbGxvYygwKTsK LSsgICAgYXZfbWF4X2FsbG9jKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwot ICNlbmRpZiAgLy8gQlVJTERGTEFHKFVTRV9BTExPQ0FUT1JfU0hJTSkKLSAKLSAjZW5kaWYgIC8v IEJVSUxERkxBRyhFTkFCTEVfRkZNUEVHKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEw L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZ2NjLXNoYXJlZC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1zaGFyZWQucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDA5OGI2ODMyMjQyMi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWdjYy1zaGFyZWQucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0gYS9idWlsZC90b29sY2hhaW4vZ2NjX3Rv b2xjaGFpbi5nbmkJMjAxOS0xMS0xOSAwMjoyNzo0My4wMDAwMDAwMDAgKzAxMDAKLSsrKyAtCTIw MjAtMDctMjEgMDA6NTk6MDkuMjAxNDIxNDY5ICswMjAwCi1AQCAtMzcxLDcgKzM3MSw3IEBACi0g ICAgICAgIyAuVE9DIGZpbGUsIG92ZXJ3cml0ZSBpdCwgb3RoZXJ3aXNlLCBkb24ndCBjaGFuZ2Ug aXQuCi0gICAgICAgdG9jZmlsZSA9IHNvZmlsZSArICIuVE9DIgotIAotLSAgICAgIGxpbmtfY29t bWFuZCA9ICIkbGQgLXNoYXJlZCAtV2wsLXNvbmFtZT1cIiRzb25hbWVcIiB7e2xkZmxhZ3N9fSR7 ZXh0cmFfbGRmbGFnc30gLW8gXCIkdW5zdHJpcHBlZF9zb2ZpbGVcIiBAXCIkcnNwZmlsZVwiIgot KyAgICAgIGxpbmtfY29tbWFuZCA9ICIkbGQgLXNoYXJlZCAtV2wsLXNvbmFtZT1cIiRzb25hbWVc IiB7e2xkZmxhZ3N9fSR7ZXh0cmFfbGRmbGFnc30gLW8gXCIkdW5zdHJpcHBlZF9zb2ZpbGVcIiAt c2hhcmVkIEBcIiRyc3BmaWxlXCIiCi0gCi0gICAgICAgIyBHZW5lcmF0ZSBhIG1hcCBmaWxlIHRv IGJlIHVzZWQgZm9yIGJpbmFyeSBzaXplIGFuYWx5c2lzLgotICAgICAgICMgTWFwIGZpbGUgYWRk cyB+MTAlIHRvIHRoZSBsaW5rIHRpbWUgb24gYSB6NjIwLgotQEAgLTQ1MCw3ICs0NTAsNyBAQAot ICAgICAgICAgdW5zdHJpcHBlZF9zb2ZpbGUgPSBzb2ZpbGUKLSAgICAgICB9Ci0gCi0tICAgICAg Y29tbWFuZCA9ICIkbGQgLXNoYXJlZCB7e2xkZmxhZ3N9fSR7ZXh0cmFfbGRmbGFnc30gLW8gXCIk dW5zdHJpcHBlZF9zb2ZpbGVcIiAtV2wsLXNvbmFtZT1cIiRzb25hbWVcIiBAXCIkcnNwZmlsZVwi IgotKyAgICAgIGNvbW1hbmQgPSAiJGxkIC1zaGFyZWQge3tsZGZsYWdzfX0ke2V4dHJhX2xkZmxh Z3N9IC1vIFwiJHVuc3RyaXBwZWRfc29maWxlXCIgLVdsLC1zb25hbWU9XCIkc29uYW1lXCIgLXNo YXJlZCBAXCIkcnNwZmlsZVwiIgotIAotICAgICAgIGlmIChkZWZpbmVkKGludm9rZXIuc3RyaXAp KSB7Ci0gICAgICAgICBzdHJpcF9jb21tYW5kID0gIiR7aW52b2tlci5zdHJpcH0gLW8gXCIkc29m aWxlXCIgXCIkdW5zdHJpcHBlZF9zb2ZpbGVcIiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWhhcmZidXp6LTMuMC4wLnBhdGNoIGIvc3JjcGtn cy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0taGFyZmJ1enotMy4wLjAucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NzI0MzM2YmZiYS4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWhhcmZidXp6 LTMuMC4wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotIyBodHRwczovL2dp dGh1Yi5jb20vY2hyb21pdW0vY2hyb21pdW0vY29tbWl0L2IyODlmNmYzZmNiYwotCi1kaWZmIC0t Z2l0IGEvY29tcG9uZW50cy9wYWludF9wcmV2aWV3L2NvbW1vbi9zdWJzZXRfZm9udC5jYyBiL2Nv bXBvbmVudHMvcGFpbnRfcHJldmlldy9jb21tb24vc3Vic2V0X2ZvbnQuY2MKLWluZGV4IDhmZjA1 NDBkOWEuLjIwYTdkMzc0NzQgMTAwNjQ0Ci0tLS0gYS9jb21wb25lbnRzL3BhaW50X3ByZXZpZXcv Y29tbW9uL3N1YnNldF9mb250LmNjCi0rKysgYi9jb21wb25lbnRzL3BhaW50X3ByZXZpZXcvY29t bW9uL3N1YnNldF9mb250LmNjCi1AQCAtNzIsOSArNzIsMTEgQEAgc2tfc3A8U2tEYXRhPiBTdWJz ZXRGb250KFNrVHlwZWZhY2UqIHR5cGVmYWNlLCBjb25zdCBHbHlwaFVzYWdlJiB1c2FnZSkgewot ICAgaGJfc2V0X3QqIGdseXBocyA9Ci0gICAgICAgaGJfc3Vic2V0X2lucHV0X2dseXBoX3NldChp bnB1dC5nZXQoKSk7ICAvLyBPd25lZCBieSB8aW5wdXR8LgotICAgdXNhZ2UuRm9yRWFjaChiYXNl OjpCaW5kUmVwZWF0aW5nKCZBZGRHbHlwaHMsIGJhc2U6OlVucmV0YWluZWQoZ2x5cGhzKSkpOwot LSAgaGJfc3Vic2V0X2lucHV0X3NldF9yZXRhaW5fZ2lkcyhpbnB1dC5nZXQoKSwgdHJ1ZSk7Ci0r ICBoYl9zdWJzZXRfaW5wdXRfc2V0X2ZsYWdzKGlucHV0LmdldCgpLCBIQl9TVUJTRVRfRkxBR1Nf UkVUQUlOX0dJRFMpOwotIAotLSAgSGJTY29wZWQ8aGJfZmFjZV90PiBzdWJzZXRfZmFjZShoYl9z dWJzZXQoZmFjZS5nZXQoKSwgaW5wdXQuZ2V0KCkpKTsKLSsgIEhiU2NvcGVkPGhiX2ZhY2VfdD4g c3Vic2V0X2ZhY2UoaGJfc3Vic2V0X29yX2ZhaWwoZmFjZS5nZXQoKSwgaW5wdXQuZ2V0KCkpKTsK LSsgIGlmICghc3Vic2V0X2ZhY2UpCi0rICAgIHJldHVybiBudWxscHRyOwotICAgSGJTY29wZWQ8 aGJfYmxvYl90PiBzdWJzZXRfYmxvYihoYl9mYWNlX3JlZmVyZW5jZV9ibG9iKHN1YnNldF9mYWNl LmdldCgpKSk7Ci0gICBpZiAoIXN1YnNldF9ibG9iKQotICAgICByZXR1cm4gbnVsbHB0cjsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNf bWFsbG9jLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t bGliY19tYWxsb2MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1NzIwYjkz Y2U3Yy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVz L2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBA QAotLS0tIGEvYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYwkyMDIwLTA5LTIxIDIwOjM5OjAx LjAwMDAwMDAwMCArMDIwMAotKysrIC0JMjAyMC0xMC0wMiAyMDoyMzoxNy45NzIxMDg4MTUgKzAy MDAKLUBAIC0yMyw2ICsyMywxMiBAQAotICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS90Y21hbGxvYy9j aHJvbWl1bS9zcmMvZ3BlcmZ0b29scy90Y21hbGxvYy5oIgotICNlbmRpZgotIAotKyNpZiBkZWZp bmVkKExJQkNfR0xJQkMpCi0rZXh0ZXJuICJDIiB7Ci0rZXh0ZXJuIHZvaWQgKl9fbGliY19tYWxs b2Moc2l6ZV90IHNpemUpOwotK30KLSsjZW5kaWYKLSsKLSBuYW1lc3BhY2UgYmFzZSB7Ci0gCi0g c2l6ZV90IGdfb29tX3NpemUgPSAwVTsKLUBAIC0xMzUsNyArMTQxLDcgQEAKLSAgICAgKCFkZWZp bmVkKExJQkNfR0xJQkMpICYmICFCVUlMREZMQUcoVVNFX1RDTUFMTE9DKSkKLSAgICpyZXN1bHQg PSBtYWxsb2Moc2l6ZSk7Ci0gI2VsaWYgZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhQlVJTERGTEFH KFVTRV9UQ01BTExPQykKLS0gICpyZXN1bHQgPSBfX2xpYmNfbWFsbG9jKHNpemUpOwotKyAgKnJl c3VsdCA9IDo6X19saWJjX21hbGxvYyhzaXplKTsKLSAjZWxpZiBCVUlMREZMQUcoVVNFX1RDTUFM TE9DKQotICAgKnJlc3VsdCA9IHRjX21hbGxvY19za2lwX25ld19oYW5kbGVyKHNpemUpOwotICNl bmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tc2tpYS1oYXJmYnV6ei0zLjAuMC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9w YXRjaGVzL2Nocm9taXVtLXNraWEtaGFyZmJ1enotMy4wLjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGY0N2FmMjAxYjZlNC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv ZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNraWEtaGFyZmJ1enotMy4wLjAucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotIyBNaW5pbWFsIGRpZmYgZm9yIGhh cmZidXp6IDMuMC4wIHN1cHBvcnQ7IGJhc2VkIG9uOgotIyBodHRwczovL2dpdGh1Yi5jb20vZ29v Z2xlL3NraWEvY29tbWl0LzY2Njg0YjE3YjM4MgotIyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xl L3NraWEvY29tbWl0LzUxZDgzYWJjZDI0YQotCi1kaWZmIC0tZ2l0IGEvZ24vc2tpYS5nbmkgYi9n bi9za2lhLmduaQotaW5kZXggZDk4ZmRjMTllZS4uMTk5MzM1ZDVjNCAxMDA2NDQKLS0tLSBhL3Ro aXJkX3BhcnR5L3NraWEvZ24vc2tpYS5nbmkKLSsrKyBiL3RoaXJkX3BhcnR5L3NraWEvZ24vc2tp YS5nbmkKLUBAIC0zNCw4ICszNCw2IEBAIGRlY2xhcmVfYXJncygpIHsKLSAgIHNraWFfaW5jbHVk ZV9tdWx0aWZyYW1lX3Byb2NzID0gZmFsc2UKLSAgIHNraWFfbGV4ID0gZmFsc2UKLSAgIHNraWFf bGliZ2lmY29kZWNfcGF0aCA9ICJ0aGlyZF9wYXJ0eS9leHRlcm5hbHMvbGliZ2lmY29kZWMiCi0t ICBza2lhX3BkZl9zdWJzZXRfaGFyZmJ1enogPQotLSAgICAgIGZhbHNlICAjIFRPRE86IHNldCBz a2lhX3BkZl9zdWJzZXRfaGFyZmJ1enogdG8gc2tpYV91c2VfaGFyZmJ1enouCi0gICBza2lhX3F0 X3BhdGggPSBnZXRlbnYoIlFUX1BBVEgiKQotICAgc2tpYV9za3FwX2dsb2JhbF9lcnJvcl90b2xl cmFuY2UgPSAwCi0gICBza2lhX3Rvb2xzX3JlcXVpcmVfcmVzb3VyY2VzID0gZmFsc2UKLUBAIC05 OSw2ICs5NywxMCBAQCBkZWNsYXJlX2FyZ3MoKSB7Ci0gICBza2lhX3VzZV9saWJmdXp6ZXJfZGVm YXVsdHMgPSB0cnVlCi0gfQotIAotK2RlY2xhcmVfYXJncygpIHsKLSsgIHNraWFfcGRmX3N1YnNl dF9oYXJmYnV6eiA9IHNraWFfdXNlX2hhcmZidXp6Ci0rfQotKwotIGRlY2xhcmVfYXJncygpIHsK LSAgIHNraWFfY29tcGlsZV9za3NsX3Rlc3RzID0gc2tpYV9jb21waWxlX3Byb2Nlc3NvcnMKLSAg IHNraWFfZW5hYmxlX2ZvbnRtZ3JfYW5kcm9pZCA9IHNraWFfdXNlX2V4cGF0ICYmIHNraWFfdXNl X2ZyZWV0eXBlCi1kaWZmIC0tZ2l0IGEvc3JjL3BkZi9Ta1BERlN1YnNldEZvbnQuY3BwIGIvc3Jj L3BkZi9Ta1BERlN1YnNldEZvbnQuY3BwCi1pbmRleCA4MWMzN2VlZjNhLi4yMzQwYTc5MzdiIDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvc2tpYS9zcmMvcGRmL1NrUERGU3Vic2V0Rm9udC5jcHAK LSsrKyBiL3RoaXJkX3BhcnR5L3NraWEvc3JjL3BkZi9Ta1BERlN1YnNldEZvbnQuY3BwCi1AQCAt NDksNiArNDksMzcgQEAgc3RhdGljIHNrX3NwPFNrRGF0YT4gdG9fZGF0YShIQkJsb2IgYmxvYikg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvYi5yZWxlYXNlKCkpOwotIH0K LSAKLSt0ZW1wbGF0ZTx0eXBlbmFtZS4uLj4gdXNpbmcgdm9pZF90ID0gdm9pZDsKLSt0ZW1wbGF0 ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSA9IHZvaWQ+Ci0rc3RydWN0IFNrUERGSGFyZkJ1enpTdWJz ZXQgewotKyAgICAvLyBUaGlzIGlzIHRoZSBIYXJmQnV6eiAzLjAgaW50ZXJmYWNlLgotKyAgICAv LyBoYl9zdWJzZXRfZmxhZ3NfdCBkb2VzIG5vdCBleGlzdCBpbiAyLjAuIEl0IGlzbid0IGRlcGVu ZGVudCBvbiBULCBzbyBpbmxpbmUgdGhlIHZhbHVlIG9mCi0rICAgIC8vIEhCX1NVQlNFVF9GTEFH U19SRVRBSU5fR0lEUyB1bnRpbCAyLjAgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KLSsgICAgc3Rh dGljIEhCRmFjZSBNYWtlKFQgaW5wdXQsIGhiX2ZhY2VfdCogZmFjZSkgewotKyAgICAgICAgLy8g VE9ETzogV2hlbiBwb3NzaWJsZSwgY2hlY2sgaWYgYSBmb250IGlzICd0cmlja3knIHdpdGggRlRf SVNfVFJJQ0tZLgotKyAgICAgICAgLy8gSWYgaXQgaXNuJ3Qga25vd24gaWYgYSBmb250IGlzICd0 cmlja3knLCByZXRhaW4gdGhlIGhpbnRzLgotKyAgICAgICAgaGJfc3Vic2V0X2lucHV0X3NldF9m bGFncyhpbnB1dCwgMi8qSEJfU1VCU0VUX0ZMQUdTX1JFVEFJTl9HSURTKi8pOwotKyAgICAgICAg cmV0dXJuIEhCRmFjZShoYl9zdWJzZXRfb3JfZmFpbChmYWNlLCBpbnB1dCkpOwotKyAgICB9Ci0r fTsKLSt0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotK3N0cnVjdCBTa1BERkhhcmZCdXp6U3Vic2V0PFQs IHZvaWRfdDwKLSsgICAgZGVjbHR5cGUoaGJfc3Vic2V0X2lucHV0X3NldF9yZXRhaW5fZ2lkcyhz dGQ6OmRlY2x2YWw8VD4oKSwgc3RkOjpkZWNsdmFsPGJvb2w+KCkpKSwKLSsgICAgZGVjbHR5cGUo aGJfc3Vic2V0X2lucHV0X3NldF9kcm9wX2hpbnRzKHN0ZDo6ZGVjbHZhbDxUPigpLCBzdGQ6OmRl Y2x2YWw8Ym9vbD4oKSkpLAotKyAgICBkZWNsdHlwZShoYl9zdWJzZXQoc3RkOjpkZWNsdmFsPGhi X2ZhY2VfdCo+KCksIHN0ZDo6ZGVjbHZhbDxUPigpKSkKLSsgICAgPj4KLSt7Ci0rICAgIC8vIFRo aXMgaXMgdGhlIEhhcmZCdXp6IDIuMCAobm9uLXB1YmxpYykgaW50ZXJmYWNlLCB1c2VkIGlmIGl0 IGV4aXN0cy4KLSsgICAgLy8gVGhpcyBjb2RlIHNob3VsZCBiZSByZW1vdmVkIGFzIHNvb24gYXMg YWxsIHVzZXJzIGFyZSBtaWdyYXRlZCB0byB0aGUgbmV3ZXIgQVBJLgotKyAgICBzdGF0aWMgSEJG YWNlIE1ha2UoVCBpbnB1dCwgaGJfZmFjZV90KiBmYWNlKSB7Ci0rICAgICAgICBoYl9zdWJzZXRf aW5wdXRfc2V0X3JldGFpbl9naWRzKGlucHV0LCB0cnVlKTsKLSsgICAgICAgIC8vIFRPRE86IFdo ZW4gcG9zc2libGUsIGNoZWNrIGlmIGEgZm9udCBpcyAndHJpY2t5JyB3aXRoIEZUX0lTX1RSSUNL WS4KLSsgICAgICAgIC8vIElmIGl0IGlzbid0IGtub3duIGlmIGEgZm9udCBpcyAndHJpY2t5Jywg cmV0YWluIHRoZSBoaW50cy4KLSsgICAgICAgIGhiX3N1YnNldF9pbnB1dF9zZXRfZHJvcF9oaW50 cyhpbnB1dCwgZmFsc2UpOwotKyAgICAgICAgcmV0dXJuIEhCRmFjZShoYl9zdWJzZXQoZmFjZSwg aW5wdXQpKTsKLSsgICAgfQotK307Ci0rCi0gc3RhdGljIHNrX3NwPFNrRGF0YT4gc3Vic2V0X2hh cmZidXp6KHNrX3NwPFNrRGF0YT4gZm9udERhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IFNrUERGR2x5cGhVc2UmIGdseXBoVXNhZ2UsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0dGNJbmRleCkgewotQEAgLTcxLDExICsx MDIsMTAgQEAgc3RhdGljIHNrX3NwPFNrRGF0YT4gc3Vic2V0X2hhcmZidXp6KHNrX3NwPFNrRGF0 YT4gZm9udERhdGEsCi0gICAgIGhiX3NldF90KiBnbHlwaHMgPSBoYl9zdWJzZXRfaW5wdXRfZ2x5 cGhfc2V0KGlucHV0LmdldCgpKTsKLSAgICAgZ2x5cGhVc2FnZS5nZXRTZXRWYWx1ZXMoWyZnbHlw aHNdKHVuc2lnbmVkIGdpZCkgeyBoYl9zZXRfYWRkKGdseXBocywgZ2lkKTt9KTsKLSAKLS0gICAg aGJfc3Vic2V0X2lucHV0X3NldF9yZXRhaW5fZ2lkcyhpbnB1dC5nZXQoKSwgdHJ1ZSk7Ci0tICAg IC8vIFRPRE86IFdoZW4gcG9zc2libGUsIGNoZWNrIGlmIGEgZm9udCBpcyAndHJpY2t5JyB3aXRo IEZUX0lTX1RSSUNLWS4KLS0gICAgLy8gSWYgaXQgaXNuJ3Qga25vd24gaWYgYSBmb250IGlzICd0 cmlja3knLCByZXRhaW4gdGhlIGhpbnRzLgotLSAgICBoYl9zdWJzZXRfaW5wdXRfc2V0X2Ryb3Bf aGludHMoaW5wdXQuZ2V0KCksIGZhbHNlKTsKLS0gICAgSEJGYWNlIHN1YnNldChoYl9zdWJzZXQo ZmFjZS5nZXQoKSwgaW5wdXQuZ2V0KCkpKTsKLSsgICAgSEJGYWNlIHN1YnNldCA9IFNrUERGSGFy ZkJ1enpTdWJzZXQ8aGJfc3Vic2V0X2lucHV0X3QqPjo6TWFrZShpbnB1dC5nZXQoKSwgZmFjZS5n ZXQoKSk7Ci0rICAgIGlmICghc3Vic2V0KSB7Ci0rICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSsg ICAgfQotICAgICBIQkJsb2IgcmVzdWx0KGhiX2ZhY2VfcmVmZXJlbmNlX2Jsb2Ioc3Vic2V0Lmdl dCgpKSk7Ci0gICAgIHJldHVybiB0b19kYXRhKHN0ZDo6bW92ZShyZXN1bHQpKTsKLSB9Ci1kaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvaGFyZmJ1enovQlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9oYXJm YnV6ei9CVUlMRC5nbgotaW5kZXggMTczODMwZGU2Mi4uNDE1NjYwN2VmOSAxMDA2NDQKLS0tLSBh L3RoaXJkX3BhcnR5L3NraWEvdGhpcmRfcGFydHkvaGFyZmJ1enovQlVJTEQuZ24KLSsrKyBiL3Ro aXJkX3BhcnR5L3NraWEvdGhpcmRfcGFydHkvaGFyZmJ1enovQlVJTEQuZ24KLUBAIC0xNCw2ICsx NCw5IEBAIGlmIChza2lhX3VzZV9zeXN0ZW1faGFyZmJ1enopIHsKLSAgICAgICAiaGFyZmJ1enoi LAotICAgICAgICJoYXJmYnV6ei1pY3UiLAotICAgICBdCi0rICAgIGlmIChza2lhX3BkZl9zdWJz ZXRfaGFyZmJ1enopIHsKLSsgICAgICBsaWJzICs9IFsgImhhcmZidXp6LXN1YnNldCIgXQotKyAg ICB9Ci0gICB9Ci0gfSBlbHNlIHsKLSAgIHRoaXJkX3BhcnR5KCJoYXJmYnV6eiIpIHsKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNraWEtaGFy bW9ueS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNr aWEtaGFybW9ueS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWNiOGFlYmYy NDBkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tc2tpYS1oYXJtb255LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBA QAotLS0tIGEvdGhpcmRfcGFydHkvc2tpYS9zcmMvcG9ydHMvU2tGb250SG9zdF9GcmVlVHlwZS5j cHAub3JpZwkyMDE5LTA3LTE5IDExOjA4OjM0Ljc3MDk3MjY2NSArMDAwMAotKysrIGIvdGhpcmRf cGFydHkvc2tpYS9zcmMvcG9ydHMvU2tGb250SG9zdF9GcmVlVHlwZS5jcHAJMjAxOS0wNy0xOSAx MTowODo0NC4yNzQ0NDIwNjUgKzAwMDAKLUBAIC0xMjgsOSArMTI4LDkgQEAgcHVibGljOgotICAg ICAgICAgOiBmR2V0VmFyRGVzaWduQ29vcmRpbmF0ZXMobnVsbHB0cikKLSAgICAgICAgICwgZkdl dFZhckF4aXNGbGFncyhudWxscHRyKQotICAgICAgICAgLCBmTGlicmFyeShudWxscHRyKQotLSAg ICAgICAgLCBmSXNMQ0RTdXBwb3J0ZWQoZmFsc2UpCi0rICAgICAgICAsIGZJc0xDRFN1cHBvcnRl ZCh0cnVlKQotICAgICAgICAgLCBmTGlnaHRIaW50aW5nSXNZT25seShmYWxzZSkKLS0gICAgICAg ICwgZkxDREV4dHJhKDApCi0rICAgICAgICAsIGZMQ0RFeHRyYSgyKQotICAgICB7Ci0gICAgICAg ICBpZiAoRlRfTmV3X0xpYnJhcnkoJmdGVE1lbW9yeSwgJmZMaWJyYXJ5KSkgewotICAgICAgICAg ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVz L2Nocm9taXVtLXRpbWU2NC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVz L2Nocm9taXVtLXRpbWU2NC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDMz MGNlMDU3ZjQxLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tdGltZTY0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBA QAotRGVzY3JpcHRpb246IGFsbG93IHNhbmRib3hlZCBjb2RlIHRvIGNhbGwgZ2V0dGltZTY0Ci0g QWRkIF9fTlJfY2xvY2tfZ2V0dGltZTY0IGFuZCBfX05SX2Nsb2NrX25hbm9zbGVlcF90aW1lNjQg dG8gc3lzY2FsbCB3aGl0ZWxpc3QKLSBhbmQgY2xvY2sgc2VsZWN0aW9uIHBhcmFtZXRlciBmaWx0 ZXJpbmcgY29kZS4KLQotIEFkZCBfX05SX3V0aW1lbnNhdF90aW1lNjQgdG8gc3lzY2FsbCB3aGl0 ZWxpc3QKLQotIENvbmRpdGlvbmFsaXNlIGFkZGl0aW9ucyBvbiB0aGUgbmV3IGNhbGxzIGV4aXN0 aW5nLCBiZWNhdXNlIHRoZXkgZG8gbm90IGV4aXN0Ci0gb24gNjQtYml0IGFyY2hpdGVjdHVyZXMu Ci1BdXRob3I6IFBldGVyIE1pY2hhZWwgR3JlZW4gPHBsdWd3YXNoQHJhc3BiaWFuLm9yZz4KLQot SW5kZXg6IGNocm9taXVtLTgzLjAuNDEwMy4xMTYvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwotKysrIGIvc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYwotQEAgLTE0OCw3ICsx NDgsMTEgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZQotICAgICBy ZXR1cm4gQWxsb3coKTsKLSAjZW5kaWYKLSAKLSsjaWZkZWYgX19OUl9jbG9ja19nZXR0aW1lNjQK LSsgIGlmIChzeXNubyA9PSBfX05SX2Nsb2NrX2dldHRpbWUgfHwgc3lzbm8gPT0gX19OUl9jbG9j a19nZXR0aW1lNjQgfHwgc3lzbm8gPT0gX19OUl9jbG9ja19uYW5vc2xlZXAgfHwgc3lzbm8gPT0g X19OUl9jbG9ja19uYW5vc2xlZXBfdGltZTY0KSB7Ci0rI2Vsc2UKLSAgIGlmIChzeXNubyA9PSBf X05SX2Nsb2NrX2dldHRpbWUgfHwgc3lzbm8gPT0gX19OUl9jbG9ja19uYW5vc2xlZXApIHsKLSsj ZW5kaWYKLSAgICAgcmV0dXJuIFJlc3RyaWN0Q2xvY2tJRCgpOwotICAgfQotIAotSW5kZXg6IGNo cm9taXVtLTgzLjAuNDEwMy4xMTYvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5 c2NhbGxfc2V0cy5jYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwotQEAgLTM4LDYgKzM4LDEwIEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHMKLSAgICAgY2FzZSBfX05SX2Nsb2NrX2dldHJl czogICAgIC8vIEFsbG93ZWQgb25seSBvbiBBbmRyb2lkIHdpdGggcGFyYW1ldGVycwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9rSUQo KS4KLSAgICAgY2FzZSBfX05SX2Nsb2NrX2dldHRpbWU6ICAgIC8vIFBhcmFtZXRlcnMgZmlsdGVy ZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCkuCi0rI2lmZGVmIF9fTlJfY2xvY2tfZ2V0dGltZTY0Ci0r ICAgIGNhc2UgX19OUl9jbG9ja19nZXR0aW1lNjQ6ICAgIC8vIFBhcmFtZXRlcnMgZmlsdGVyZWQg YnkgUmVzdHJpY3RDbG9ja0lEKCkuCi0rICAgIGNhc2UgX19OUl9jbG9ja19uYW5vc2xlZXBfdGlt ZTY0OiAgLy8gUGFyYW1ldGVycyBmaWx0ZXJlZCBieSBSZXN0cmljdENsb2NrSUQoKS4KLSsjZW5k aWYKLSAgICAgY2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcDogIC8vIFBhcmFtZXRlcnMgZmlsdGVy ZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCkuCi0gICAgIGNhc2UgX19OUl9jbG9ja19zZXR0aW1lOiAg ICAvLyBQcml2aWxlZ2VkLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi1AQCAtMTU5LDYg KzE2Myw5IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8KLSAgICAg Y2FzZSBfX05SX3V0aW1lOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfdXRpbWVuc2F0OiAgLy8g TmV3LgotKyNpZmRlZiBfX05SX3V0aW1lbnNhdF90aW1lNjQKLSsgICAgY2FzZSBfX05SX3V0aW1l bnNhdF90aW1lNjQ6Ci0rI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci0gICAgIGRlZmF1bHQ6 Ci0gICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tdG9vbGNoYWluLWhvc3QucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uMTAvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS10b29sY2hhaW4taG9zdC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGRhY2UyNjFhMDhjLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdG9vbGNoYWluLWhvc3Qu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gc3JjL2J1aWxkL3Rvb2xj aGFpbi9saW51eC91bmJ1bmRsZS9CVUlMRC5nbgkyMDIwLTA3LTIxIDE3OjM2OjM0LjA2NDc0ODI2 MSArMDIwMAotKysrIC0JMjAyMC0wNy0yMSAxNzozOTowMy4xMTU3NDA1MjIgKzAyMDAKLUBAIC0z NSw3ICszNSw3IEBACi0gICBleHRyYV9sZGZsYWdzID0gZ2V0ZW52KCJCVUlMRF9MREZMQUdTIikK LSAKLSAgIHRvb2xjaGFpbl9hcmdzID0gewotLSAgICBjdXJyZW50X2NwdSA9IGN1cnJlbnRfY3B1 Ci0rICAgIGN1cnJlbnRfY3B1ID0gaG9zdF9jcHUKLSAgICAgY3VycmVudF9vcyA9IGN1cnJlbnRf b3MKLSAgIH0KLSB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS14eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEw L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE2NGU2ZTVhMDFhLi4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtc3Vw cG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ODYgKzAsMCBAQAotY29tbWl0IGU3OTQ0 YzE2MmNhMTNiMmMzMGIxODBjMDZmOTE3ZjQ1NjQzYjhjY2EKLUF1dGhvcjogcTY2IDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KLURhdGU6ICAgVHVlIEF1ZyA0IDE5OjU3OjQ4IDIwMjAgKzAyMDAKLQot ICAgIHBwYzY0bGUgc3VwcG9ydAotCi1kaWZmIC0tZ2l0IGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9v bGNoYWlucy5weSBidWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLWluZGV4IDI4NmE5 MmEyNy4uZWMzNmE4NWQzIDEwMDc1NQotLS0tIGEvYnVpbGQvZG93bmxvYWRfbmFjbF90b29sY2hh aW5zLnB5Ci0rKysgYi9idWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLUBAIC0xMyw2 ICsxMywxMCBAQCBpbXBvcnQgc3lzCi0gCi0gCi0gZGVmIE1haW4oYXJncyk6Ci0rICAjIElmIGBk aXNhYmxlX25hY2w9MWAgaXMgaW4gR1lQX0RFRklORVMsIGV4aXQKLSsgIGlmICdkaXNhYmxlX25h Y2w9MScgaW4gb3MuZW52aXJvbi5nZXQoJ0dZUF9ERUZJTkVTJywgJycpOgotKyAgICByZXR1cm4g MAotKwotICAgc2NyaXB0X2RpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19m aWxlX18pKQotICAgc3JjX2RpciA9IG9zLnBhdGguZGlybmFtZShzY3JpcHRfZGlyKQotICAgbmFj bF9kaXIgPSBvcy5wYXRoLmpvaW4oc3JjX2RpciwgJ25hdGl2ZV9jbGllbnQnKQotZGlmZiAtLWdp dCBjaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduIGNocm9tZS9pbnN0YWxsZXIvbGludXgv QlVJTEQuZ24KLWluZGV4IGIxMDFiMGNiMi4uOWZkNWE3NjE3IDEwMDY0NAotLS0tIGEvY2hyb21l L2luc3RhbGxlci9saW51eC9CVUlMRC5nbgotKysrIGIvY2hyb21lL2luc3RhbGxlci9saW51eC9C VUlMRC5nbgotQEAgLTkyLDggKzkyLDYgQEAgcGFja2FnaW5nX2ZpbGVzID0gcGFja2FnaW5nX2Zp bGVzX2JpbmFyaWVzICsgWwotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRn LW1pbWUiLAotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLXNldHRpbmdz IiwKLSAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMvZW4tVVMucGFr IiwKLS0gICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvbWFuaWZl c3QuanNvbiIsCi0tICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2Fk L3ByZWxvYWRlZF9kYXRhLnBiIiwKLSAgICAgICAgICAgICAgICAgICBdCi0gCi0gYWN0aW9uX2Zv cmVhY2goImNhbGN1bGF0ZV9kZWJfZGVwZW5kZW5jaWVzIikgewotQEAgLTMyOSw3ICszMjcsNiBA QCBncm91cCgiaW5zdGFsbGVyX2RlcHMiKSB7Ci0gICAgICI6dGhlbWVfZmlsZXMiLAotICAgICAi Ly9jaHJvbWUiLAotICAgICAiLy9jaHJvbWU6cGFja2VkX3Jlc291cmNlcyIsCi0tICAgICIvL2No cm9tZS9icm93c2VyL3Jlc291cmNlcy9tZWRpYS9tZWlfcHJlbG9hZDpjb21wb25lbnQiLAotICAg ICAiLy9zYW5kYm94L2xpbnV4OmNocm9tZV9zYW5kYm94IiwKLSAgICAgIi8vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvaGFuZGxlcjpjcmFzaHBhZF9oYW5kbGVyIiwKLSAgIF0KLWRpZmYg LS1naXQgc2FuZGJveC9mZWF0dXJlcy5nbmkgc2FuZGJveC9mZWF0dXJlcy5nbmkKLWluZGV4IDA5 MjgwZDM1Zi4uNDI1MTQxNTdmIDEwMDY0NAotLS0tIGEvc2FuZGJveC9mZWF0dXJlcy5nbmkKLSsr KyBiL3NhbmRib3gvZmVhdHVyZXMuZ25pCi1AQCAtMTEsNiArMTEsNyBAQCBpbXBvcnQoIi8vYnVp bGQvY29uZmlnL25hY2wvY29uZmlnLmduaSIpCi0gdXNlX3NlY2NvbXBfYnBmID0gKGlzX2xpbnV4 IHx8IGlzX2FuZHJvaWQpICYmCi0gICAgICAgICAgICAgICAgICAgKGN1cnJlbnRfY3B1ID09ICJ4 ODYiIHx8IGN1cnJlbnRfY3B1ID09ICJ4NjQiIHx8Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJl bnRfY3B1ID09ICJhcm0iIHx8IGN1cnJlbnRfY3B1ID09ICJhcm02NCIgfHwKLS0gICAgICAgICAg ICAgICAgICAgY3VycmVudF9jcHUgPT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2 NGVsIikKLSsgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gIm1pcHNlbCIgfHwgY3Vy cmVudF9jcHUgPT0gIm1pcHM2NGVsIiB8fAotKyAgICAgICAgICAgICAgICAgICBjdXJyZW50X2Nw dSA9PSAicHBjNjQiKQotIAotIHVzZV9zZWNjb21wX2JwZiA9IHVzZV9zZWNjb21wX2JwZiB8fCBp c19uYWNsX25vbnNmaQotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L0JVSUxELmduIHNhbmRib3gv bGludXgvQlVJTEQuZ24KLWluZGV4IGMyNzM1MWY5YS4uOTE0MWUxMjM5IDEwMDY0NAotLS0tIGEv c2FuZGJveC9saW51eC9CVUlMRC5nbgotKysrIGIvc2FuZGJveC9saW51eC9CVUlMRC5nbgotQEAg LTQwNyw2ICs0MDcsOCBAQCBjb21wb25lbnQoInNhbmRib3hfc2VydmljZXMiKSB7Ci0gCi0gc291 cmNlX3NldCgic2FuZGJveF9zZXJ2aWNlc19oZWFkZXJzIikgewotICAgc291cmNlcyA9IFsKLSsg ICAgInN5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgiLAotKyAgICAic3lzdGVt X2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCIsCi0gICAgICJzeXN0ZW1faGVhZGVycy9h cm02NF9saW51eF9zeXNjYWxscy5oIiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF9z eXNjYWxscy5oIiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybV9saW51eF91Y29udGV4dC5oIiwK LWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgg c2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKLWluZGV4IDMxMzUx MWYyMi4uMGNhM2EzMjZmIDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4 X3N5c2NhbGxfcmFuZ2VzLmgKLSsrKyBiL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNj YWxsX3Jhbmdlcy5oCi1AQCAtNTYsNiArNTYsMTMgQEAKLSAjZGVmaW5lIE1BWF9QVUJMSUNfU1lT Q0FMTCBfX05SX3N5c2NhbGxzCi0gI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NB TEwKLSAKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rI2luY2x1ZGUgPGFzbS91 bmlzdGQuaD4KLSsjZGVmaW5lIE1JTl9TWVNDQUxMIDB1Ci0rI2RlZmluZSBNQVhfUFVCTElDX1NZ U0NBTEwgMzg2dQotKyNkZWZpbmUgTUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCi0rCi0g I2Vsc2UKLSAjZXJyb3IgIlVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSIKLSAjZW5kaWYKLWRpZmYg LS1naXQgc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggc2FuZGJveC9saW51 eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLWluZGV4IDFhNDA3Yjk1Mi4uYTZhZWM1NDRlIDEw MDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsrKyBi L3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1AQCAtMTYsNiArMTYsOSBA QAotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1pc3Nl cyBzaXplX3QgZGVmaW5pdGlvbgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLSsjZWxpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAotK3R5 cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsKLSAjZW5kaWYKLSAjZW5kaWYKLSAKLUBA IC0zNDYsNiArMzQ5LDUxIEBAIHN0cnVjdCByZWdzX3N0cnVjdCB7Ci0gI2RlZmluZSBTRUNDT01Q X1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbM10KLSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFS TTUoX3JlZ3MpIChfcmVncykucmVnc1s0XQotICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVn cykgKF9yZWdzKS5yZWdzWzVdCi0rCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNp bmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0rdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0 cnVjdDsKLSsKLSsjaWZkZWYgQVJDSF9DUFVfTElUVExFX0VORElBTgotKyNkZWZpbmUgU0VDQ09N UF9BUkNIIEFVRElUX0FSQ0hfUFBDNjRMRQotKyNlbHNlCi0rI2RlZmluZSBTRUNDT01QX0FSQ0gg QVVESVRfQVJDSF9QUEM2NAotKyNlbmRpZgotKwotKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwg X3JlZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQotKwotKyNkZWZpbmUg U0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSsjZGVmaW5lIFNFQ0NP TVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQotKyNkZWZpbmUgU0VDQ09NUF9J UChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VDQ09NUF9Q QVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMihf Y3R4KSBTRUNDT01QX1JFRyhfY3R4LCA0KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBT RUNDT01QX1JFRyhfY3R4LCA1KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNChfY3R4KSBTRUNDT01Q X1JFRyhfY3R4LCA2KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNShfY3R4KSBTRUNDT01QX1JFRyhf Y3R4LCA3KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4 KQotKwotKyNkZWZpbmUgU0VDQ09NUF9OUl9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2Nv bXBfZGF0YSwgbnIpKQotKyNkZWZpbmUgU0VDQ09NUF9BUkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0 IGFyY2hfc2VjY29tcF9kYXRhLCBhcmNoKSkKLSsjZGVmaW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBc Ci0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2lu dGVyKSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0lQX0xTQl9JRFggXAotKyAgKG9mZnNldG9mKHN0 cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyAwKQotKyNkZWZp bmUgU0VDQ09NUF9BUkdfTVNCX0lEWChucikgXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3Nl Y2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0FSR19M U0JfSURYKG5yKSBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdz KSArIDggKiAobnIpICsgMCkKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAo X3JlZ3MpLmdwclszXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3Mp LmdwclswXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5uaXAKLSsjZGVm aW5lIFNFQ0NPTVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVncykuZ3ByWzNdCi0rI2RlZmluZSBTRUND T01QX1BUX1BBUk0yKF9yZWdzKSAoX3JlZ3MpLmdwcls0XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9Q QVJNMyhfcmVncykgKF9yZWdzKS5ncHJbNV0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3Jl Z3MpIChfcmVncykuZ3ByWzZdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3Jl Z3MpLmdwcls3XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5ncHJb OF0KLSsKLSAjZWxzZQotICNlcnJvciBVbnN1cHBvcnRlZCB0YXJnZXQgcGxhdGZvcm0KLSAKLWRp ZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGlj eS5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNj Ci1pbmRleCBhNmQyYzBkZmIuLjM3ZmRjMTc5YSAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MKLSsrKyBiL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MKLUBAIC04OCw3ICs4OCw4 IEBAIGJvb2wgSXNCYXNlbGluZVBvbGljeVdhdGNoZWQoaW50IHN5c25vKSB7Ci0gICAgICAgICAg U3lzY2FsbFNldHM6OklzUHJjdGwoc3lzbm8pIHx8Ci0gICAgICAgICAgU3lzY2FsbFNldHM6Oklz UHJvY2Vzc0dyb3VwT3JTZXNzaW9uKHN5c25vKSB8fAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgICAgICAgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChzeXNubykgfHwKLSAjZW5kaWYK LSAjaWYgZGVmaW5lZChfX2FybV9fKQotQEAgLTIxMCw3ICsyMTEsNyBAQCBSZXN1bHRFeHByIEV2 YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJubywKLSAgIH0KLSAKLSAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIGlmIChzeXNubyA9PSBfX05SX21tYXAp Ci0gICAgIHJldHVybiBSZXN0cmljdE1tYXBGbGFncygpOwotICNlbmRpZgotQEAgLTIyOCw3ICsy MjksNyBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlbmllZF9lcnJu bywKLSAgICAgcmV0dXJuIFJlc3RyaWN0UHJjdGwoKTsKLSAKLSAjaWYgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAg ZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgaWYgKHN5c25vID09IF9fTlJfc29ja2V0cGFpcikgewotICAg ICAvLyBPbmx5IGFsbG93IEFGX1VOSVgsIFBGX1VOSVguIENyYXNoIGlmIGFueXRoaW5nIGVsc2Ug aXMgc2Vlbi4KLSAgICAgc3RhdGljX2Fzc2VydChBRl9VTklYID09IFBGX1VOSVgsCi1AQCAtMjY4 LDcgKzI2OSw4IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVk X2Vycm5vLAotICAgfQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQot KyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoU3lzY2Fs bFNldHM6OklzU29ja2V0Q2FsbChzeXNubykpCi0gICAgIHJldHVybiBSZXN0cmljdFNvY2tldGNh bGxDb21tYW5kKCk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2Mgc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5jYwotaW5kZXggZmMzNjE4 N2M5Li4xYWZmYzkxODkgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCi0rKysgYi9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCi1AQCAtMjkxLDgg KzI5MSwxMCBAQCBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3RpbWVyX2NyZWF0ZSkKLSAjaWYg IWRlZmluZWQoX19hYXJjaDY0X18pCi0gVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9ldmVudGZk KQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfaW5vdGlmeV9pbml0KQotKyNpZiAhZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfdnNlcnZlcikKLSAj ZW5kaWYKLSsjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhZGVmaW5lZChP U19DSFJPTUVPUykKLSBCUEZfVEVTVF9DKEJhc2VsaW5lUG9saWN5LCBGdXRleEVJTlZBTCwgQmFz ZWxpbmVQb2xpY3kpIHsKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2Mgc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKLWluZGV4 IGY1MTkxNWVkYy4uY2EyZjRmMTA2IDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKLSsrKyBiL3Nh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJp Y3Rpb25zLmNjCi1AQCAtMzYsNyArMzYsOCBAQAotICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSAj aW5jbHVkZSA8c3lzL3B0cmFjZS5oPgotICNpZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5l ZChPU19DSFJPTUVPUykgJiYgIWRlZmluZWQoX19hcm1fXykgJiYgXAotLSAgICAhZGVmaW5lZChf X2FhcmNoNjRfXykgJiYgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkKLSsgICAgIWRl ZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYm IFwKLSsgICAgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBBbHNvIGluY2x1ZGUgYXNtL3B0 cmFjZS1hYmkuaCBzaW5jZSBwdHJhY2UuaCBpbiBvbGRlciBsaWJjIChmb3IgaW5zdGFuY2UKLSAv LyB0aGUgb25lIGluIFVidW50dSAxNi4wNCBMVFMpIGlzIG1pc3NpbmcgUFRSQUNFX0dFVF9USFJF QURfQVJFQS4KLSAvLyBhc20vcHRyYWNlLWFiaS5oIGRvZXNuJ3QgZXhpc3Qgb24gYXJtMzIgYW5k IFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgaXNuJ3QKLUBAIC00NSw2ICs0NiwxMSBAQAotICNlbmRp ZgotICNlbmRpZiAgLy8gIU9TX05BQ0xfTk9OU0ZJCi0gCi0rLy8gT24gUFBDNjQsIFRDR0VUUyBp cyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUg dGVybWlvcy5oCi0rI2lmZGVmIF9fcG93ZXJwYzY0X18KLSsjaW5jbHVkZSA8dGVybWlvcy5oPgot KyNlbmRpZgotKwotICNpZiBkZWZpbmVkKE9TX0FORFJPSUQpCi0gCi0gI2lmICFkZWZpbmVkKEZf RFVQRkRfQ0xPRVhFQykKLUBAIC0xMDcsNiArMTEzLDE1IEBAIGlubGluZSBib29sIElzQXJjaGl0 ZWN0dXJlTWlwcygpIHsKLSAjZW5kaWYKLSB9Ci0gCi0raW5saW5lIGJvb2wgSXNBcmNoaXRlY3R1 cmVQUEM2NCgpIHsKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgcmV0dXJuIHRydWU7 Ci0rI2Vsc2UKLSsgIHJldHVybiBmYWxzZTsKLSsjZW5kaWYKLSt9Ci0rCi0rCi0gLy8gVWJ1bnR1 J3MgdmVyc2lvbiBvZiBnbGliYyBoYXMgYSByYWNlIGNvbmRpdGlvbiBpbiBzZW1fcG9zdCB0aGF0 IGNhbiBjYXVzZQotIC8vIGl0IHRvIGNhbGwgZnV0ZXgoMikgd2l0aCBib2d1cyBvcCBhcmd1bWVu dHMuIFRvIHdvcmthcm91bmQgdGhpcywgd2UgbmVlZAotIC8vIHRvIGFsbG93IHRob3NlIGZ1dGV4 KDIpIGNhbGxzIHRvIGZhaWwgd2l0aCBFSU5WQUwsIGluc3RlYWQgb2YgY3Jhc2hpbmcgdGhlCi1A QCAtMjQ4LDYgKzI2Myw4IEBAIFJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCkgewot ICAgdWludDY0X3Qga09MYXJnZUZpbGVGbGFnID0gT19MQVJHRUZJTEU7Ci0gICBpZiAoSXNBcmNo aXRlY3R1cmVYODZfNjQoKSB8fCBJc0FyY2hpdGVjdHVyZUkzODYoKSB8fCBJc0FyY2hpdGVjdHVy ZU1pcHMoKSkKLSAgICAga09MYXJnZUZpbGVGbGFnID0gMDEwMDAwMDsKLSsgIGVsc2UgaWYgKElz QXJjaGl0ZWN0dXJlUFBDNjQoKSkKLSsgICAga09MYXJnZUZpbGVGbGFnID0gMDIwMDAwMDsKLSAK LSAgIGNvbnN0IEFyZzxpbnQ+IGNtZCgxKTsKLSAgIGNvbnN0IEFyZzxsb25nPiBsb25nX2FyZygy KTsKLUBAIC0yNjIsMTQgKzI3OSwyMyBAQCBSZXN1bHRFeHByIFJlc3RyaWN0RmNudGxDb21tYW5k cygpIHsKLSAgICAgICAgICAgICAgIEZfU0VUTEtXLAotICAgICAgICAgICAgICAgRl9HRVRMSywK LSAgICAgICAgICAgICAgIEZfRFVQRkQsCi0tICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMp LAotLSAgICAgICAgICAgICBBbGxvdygpKQotKyAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVD Ci0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsvLyBPbiBQUEM2NCwgRl9TRVRMSywgRl9H RVRMSywgRl9TRVRMS1cgYXJlIGRlZmluZWQgYXMgdGhlIDY0LWJpdCB2YXJpYW50cwotKy8vIGJ1 dCBnbGliYyB3aWxsIHNvbWV0aW1lcyBzdGlsbCB1c2UgdGhlIDMyLWJpdCB2ZXJzaW9ucy4gQWxs b3cgYm90aC4KLSsgICAgICAgICAgICAgICwKLSsgICAgICAgICAgICAgIDUsIC8qIEZfR0VUTEsg KDMyKSAqLwotKyAgICAgICAgICAgICAgNiwgLyogRl9TRVRMSyAoMzIpICovCi0rICAgICAgICAg ICAgICA3ICAvKiBGX1NFVExLVyAoMzIpICovCi0rI2VuZGlmCi0rICAgICAgICAgICAgICApLAot KyAgICAgICAgICAgIEFsbG93KCkpCi0gICAgICAgLkNhc2UoRl9TRVRGTCwKLSAgICAgICAgICAg ICBJZigobG9uZ19hcmcgJiB+a0FsbG93ZWRNYXNrKSA9PSAwLCBBbGxvdygpKS5FbHNlKENyYXNo U0lHU1lTKCkpKQotICAgICAgIC5EZWZhdWx0KENyYXNoU0lHU1lTKCkpOwotIH0KLSAKLS0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFJl c3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpIHsKLSAgIC8vIFVuZm9ydHVuYXRl bHksIHdlIGFyZSB1bmFibGUgdG8gcmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRlciB0bwotICAg Ly8gc29ja2V0cGFpcigyKS4gV2hpbHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQsIGl0J3Mgbm90 ZXdvcnRoeSB0aGF0IHZlcnkKLUBAIC00MTgsNyArNDQ0LDcgQEAgUmVzdWx0RXhwciBSZXN0cmlj dFBybGltaXRUb0dldHJsaW1pdChwaWRfdCB0YXJnZXRfcGlkKSB7Ci0gUmVzdWx0RXhwciBSZXN0 cmljdFB0cmFjZSgpIHsKLSAgIGNvbnN0IEFyZzxpbnQ+IHJlcXVlc3QoMCk7Ci0gICByZXR1cm4g U3dpdGNoKHJlcXVlc3QpLkNBU0VTKCgKLS0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICAg ICAgUFRSQUNFX0dFVFJFR1MsCi0gICAgICAgICBQVFJBQ0VfR0VURlBSRUdTLAotICAgICAgICAg UFRSQUNFX0dFVF9USFJFQURfQVJFQSwKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaCBzYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5o Ci1pbmRleCBiYTQyODlmMDUuLjlhNGQ1YWIyZCAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLSsr KyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNf cmVzdHJpY3Rpb25zLmgKLUBAIC00OCw3ICs0OCw3IEBAIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6 OlJlc3VsdEV4cHIgUmVzdHJpY3RNcHJvdGVjdEZsYWdzKCk7Ci0gLy8gT19OT05CTE9DSyB8IE9f U1lOQyB8IE9fTEFSR0VGSUxFIHwgT19DTE9FWEVDIHwgT19OT0FUSU1FLgotIFNBTkRCT1hfRVhQ T1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCk7Ci0gCi0tI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAv LyBSZXN0cmljdCBzb2NrZXRjYWxsKDIpIHRvIG9ubHkgYWxsb3cgc29ja2V0cGFpcigyKSwgc2Vu ZCgyKSwgcmVjdigyKSwKLSAvLyBzZW5kdG8oMiksIHJlY3Zmcm9tKDIpLCBzaHV0ZG93bigyKSwg c2VuZG1zZygyKSBhbmQgcmVjdm1zZygyKS4KLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1 bHRFeHByIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKLWRpZmYgLS1naXQgc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYyBzYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1pbmRleCBkMzY5M2ZkNzguLmQ0OTJj Zjk0YiAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNj YWxsX3NldHMuY2MKLSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNj YWxsX3NldHMuY2MKLUBAIC0yOSw3ICsyOSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZEdldHRpbWUoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19O Ul9nZXR0aW1lb2ZkYXk6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfdGltZToKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1 ZTsKLUBAIC00MSwxMiArNDIsMTQgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGlt ZShpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcDogIC8vIFBhcmFt ZXRlcnMgZmlsdGVyZWQgYnkgUmVzdHJpY3RDbG9ja0lEKCkuCi0gICAgIGNhc2UgX19OUl9jbG9j a19zZXR0aW1lOiAgICAvLyBQcml2aWxlZ2VkLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgotICNlbmRpZgotICAgICBjYXNlIF9f TlJfc2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfc3RpbWU6Ci0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci1AQCAtMTEy LDcgKzExNSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsK LSAgICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgot ICAgICBjYXNlIF9fTlJfZmNobW9kYXQ6Ci0gICAgIGNhc2UgX19OUl9mY2hvd25hdDogIC8vIFNo b3VsZCBiZSBjYWxsZWQgY2hvd25hdCA/Ci0tI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9uZXdm c3RhdGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZWxpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLSAgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi1AQCAt MTMxLDcgKzEzNCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8p IHsKLSAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKLSAgICAgY2FzZSBfX05SX21rZGlyYXQ6 Ci0gICAgIGNhc2UgX19OUl9ta25vZGF0OgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9vbGRsc3RhdDoKLSAgICAgY2FzZSBfX05SX29sZHN0YXQ6Ci0gI2VuZGlmCi1AQCAtMTQ1LDcg KzE0OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8pIHsKLSAj ZW5kaWYKLSAgICAgY2FzZSBfX05SX3N0YXRmczogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5v LgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3N0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc3ltbGlua2F0OgotQEAg LTE1NSw3ICsxNTksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJf dW5saW5rYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3V0aW1lOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJf dXRpbWVuc2F0OiAgLy8gTmV3LgotQEAgLTE3NCw3ICsxNzksOCBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0g ICAgICAgcmV0dXJuIHRydWU7Ci0gLy8gVE9ETyhqbG4pOiB0aGVzZSBzaG91bGQgYmUgZGVuaWVk IGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9mYWR2aXNl NjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChf X2kzODZfXykKLUBAIC0xODcsMTEgKzE5MywxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93 ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9mbG9j azogICAgICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAgICAgY2FzZSBfX05SX2ZzdGF0 ZnM6ICAgIC8vIEdpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0ZW0uCi0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK LSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfZnN0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZnN5bmM6ICAvLyBFUEVSTSBu b3QgYSB2YWxpZCBlcnJuby4KLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfb2xkZnN0 YXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotQEAgLTE5OSw2ICsyMDYsOCBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0g ICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJu by4KLSAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCi0gICAgIGNhc2UgX19OUl9hcm1fc3luY19maWxl X3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKyAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlMjogLy8gRVBFUk0gbm90 IGEgdmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgcmV0dXJuIGZh bHNlOwotQEAgLTIyNCw3ICsyMzMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEZpbGVT eXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2dl dGRlbnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVhZGRpcjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4g dHJ1ZTsKLUBAIC0yNjUsNyArMjc1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHZXRTaW1wbGVJ ZChpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NQcml2aWxlZ2VDaGFu Z2UoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9jYXBz ZXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9pb3Blcm06ICAvLyBJbnRlbCBwcml2aWxlZ2UuCi0g ICAgIGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRlbCBwcml2aWxlZ2UuCi0gI2VuZGlmCi1AQCAt MzE2LDcgKzMyNiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFNpZ25hbEhhbmRsaW5n KGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcnRfc2lncmV0dXJuOgotICAgICBjYXNlIF9f TlJfcnRfc2lndGltZWR3YWl0OgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NpZ2FjdGlvbjoKLSAgICAgY2FzZSBfX05SX3NpZ3By b2NtYXNrOgotICAgICBjYXNlIF9fTlJfc2lncmV0dXJuOgotQEAgLTMzMiw3ICszNDMsOCBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluZyhpbnQgc3lzbm8pIHsKLSAj ZW5kaWYKLSAgICAgY2FzZSBfX05SX3NpZ25hbGZkNDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zaWdwZW5kaW5nOgotICAgICBj YXNlIF9fTlJfc2lnc3VzcGVuZDoKLSAjZW5kaWYKLUBAIC0zNTYsNyArMzY4LDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkT3BlcmF0aW9uT25GZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYK LSAgICAgY2FzZSBfX05SX2R1cDM6Ci0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJj aDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX3NodXRkb3duOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVl OwotQEAgLTM5MCw3ICs0MDIsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNz U3RhcnRPckRlYXRoKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKLSAg ICAgY2FzZSBfX05SX3dhaXQ0OgotICAgICBjYXNlIF9fTlJfd2FpdGlkOgotLSNpZiBkZWZpbmVk KF9faTM4Nl9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0gICAgIGNhc2UgX19OUl93YWl0cGlkOgotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVl OwotQEAgLTQwNyw3ICs0MTksNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9jZXNz U3RhcnRPckRlYXRoKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0X3Rp ZF9hZGRyZXNzOgotICAgICBjYXNlIF9fTlJfdW5zaGFyZToKLS0jaWYgIWRlZmluZWQoX19taXBz X18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYg IWRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3Zmb3JrOgotICNlbmRpZgotICAgICBkZWZhdWx0OgotQEAgLTQ1Niw3ICs0NjgsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8p IHsKLSAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgZGVmYXVsdDoKLSAjaWYgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0g ICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc29ja2V0cGFpcjogIC8vIFdlIHdp bGwgd2FudCB0byBpbnNwZWN0IGl0cyBhcmd1bWVudC4KLSAjZW5kaWYKLSAgICAgICByZXR1cm4g ZmFsc2U7Ci1AQCAtNDY2LDcgKzQ3OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdl dE9yTW9kaWZ5U29ja2V0KGludCBzeXNubykgewotIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVk R2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gI2lm IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJj aDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2FjY2VwdDoK LSAgICAgY2FzZSBfX05SX2FjY2VwdDQ6Ci0gICAgIGNhc2UgX19OUl9iaW5kOgotQEAgLTQ4MSw3 ICs0OTMsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0KGlu dCBzeXNubykgewotIH0KLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK LSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIEJpZyBtdWx0 aXBsZXhpbmcgc3lzdGVtIGNhbGwgZm9yIHNvY2tldHMuCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNT b2NrZXRDYWxsKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotQEAgLTQ5NSw3ICs1 MDgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7Ci0gfQot ICNlbmRpZgotIAotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotIGJvb2wgU3lzY2FsbFNldHM6OklzTmV0d29ya1NvY2tldEluZm9ybWF0aW9uKGlu dCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0cGVlcm5h bWU6Ci1AQCAtNTIwLDcgKzUzNCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJl c3NTcGFjZUFjY2VzcyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX21pbmNvcmU6Ci0gICAg IGNhc2UgX19OUl9tbG9ja2FsbDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJj aDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX21tYXA6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotQEAgLTU1MCw3ICs1NjQsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl9sc2VlazoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9fbGxzZWVrOgotICNlbmRpZgotICNpZiAh ZGVmaW5lZChfX2FhcmNoNjRfXykKLUBAIC01NjIsMjYgKzU3NywyOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0FsbG93ZWRHZW5lcmFsSW8oaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9yZWFk djoKLSAgICAgY2FzZSBfX05SX3ByZWFkNjQ6Ci0gI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAot LSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8z Ml9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAg ICBjYXNlIF9fTlJfcmVjdjoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChf X2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVjdmZyb206ICAvLyBDb3VsZCBzcGVjaWZ5IHNvdXJj ZS4KLSAgICAgY2FzZSBfX05SX3JlY3Ztc2c6ICAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCi0g I2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKLSsj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zZWxlY3Q6Ci0gI2VuZGlmCi0tI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9fbmV3c2VsZWN0 OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NlbmQ6 Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAg IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3NlbmRtc2c6ICAvLyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgotICAgICBjYXNl IF9fTlJfc2VuZHRvOiAgIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRpb24uCi0gI2VuZGlmCi1A QCAtNjM4LDcgKzY1NSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1 bGVyKGludCBzeXNubykgewotICAgICAgIHJldHVybiB0cnVlOwotICAgICBjYXNlIF9fTlJfZ2V0 cHJpb3JpdHk6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfbmljZToKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NldHByaW9yaXR5 OgotQEAgLTY1MCw3ICs2NjgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1Nj aGVkdWxlcihpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc0FkbWluT3BlcmF0aW9u KGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2JkZmx1c2g6Ci0gI2VuZGlm Ci0gICAgIGNhc2UgX19OUl9rZXhlY19sb2FkOgotQEAgLTY2Niw3ICs2ODUsOCBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBzeXNubykgewotIAotIGJvb2wgU3lzY2Fs bFNldHM6OklzS2VybmVsTW9kdWxlKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewot LSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g ICAgIGNhc2UgX19OUl9jcmVhdGVfbW9kdWxlOgotICAgICBjYXNlIF9fTlJfZ2V0X2tlcm5lbF9z eW1zOiAgLy8gU2hvdWxkIEVOT1NZUy4KLSAgICAgY2FzZSBfX05SX3F1ZXJ5X21vZHVsZToKLUBA IC02OTksNyArNzE5LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNGc0NvbnRyb2woaW50IHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl9zd2Fwb2ZmOgotICAgICBjYXNlIF9fTlJfc3dhcG9uOgotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl91bW91bnQ6Ci0gI2VuZGlmCi0g ICAgIGNhc2UgX19OUl91bW91bnQyOgotQEAgLTcxNSw3ICs3MzYsNyBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc051bWEoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRjcHU6Ci0gICAgIGNh c2UgX19OUl9tYmluZDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18p Ci0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX21pZ3JhdGVfcGFnZXM6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9tb3Zl X3BhZ2VzOgotQEAgLTc0NCwxNCArNzY1LDE1IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFs UHJvY2Vzc0Vudmlyb25tZW50KGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAg ICBjYXNlIF9fTlJfYWNjdDogIC8vIFByaXZpbGVnZWQuCi0gI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9nZXRybGltaXQ6Ci0gI2VuZGlmCi0tI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykKLSsjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl91Z2V0cmxpbWl0OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgIGNhc2UgX19OUl91bGltaXQ6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9nZXRydXNh Z2U6Ci1AQCAtNzg1LDcgKzgwNyw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsU3lzdGVt U3RhdHVzKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc3lzaW5mbzoKLSAg ICAgY2FzZSBfX05SX3VuYW1lOgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9vbGR1 bmFtZToKLSAgICAgY2FzZSBfX05SX29sZG9sZHVuYW1lOgotICNlbmRpZgotQEAgLTg0Nyw4ICs4 NjksMTYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8p IHsKLSB9Ci0gI2VuZGlmCi0gCi0rLyogc2hpdHR5IGhhY2sgYXJvdW5kIFZvaWQncyA0LjE5IGtl cm5lbCBoZWFkZXJzIG1pc3NpbmcgdGhvc2UgbnVtYmVycyAqLwotKyNpZiBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pICYmICFkZWZpbmVkKF9fTlJfc2htZ2V0KQotKyNkZWZpbmUgX19OUl9zaG1nZXQg Mzk1Ci0rI2RlZmluZSBfX05SX3NobWN0bCAzOTYKLSsjZGVmaW5lIF9fTlJfc2htYXQgMzk3Ci0r I2RlZmluZSBfX05SX3NobWR0IDM5OAotKyNlbmRpZgotKwotICNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pIHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfNjRfQklUUykpCi0gLy8gVGhlc2UgZ2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhv cml0eSBhbmQgYnlwYXNzIHRoZSBzZXR1aWQgc2FuZGJveC4KLSBib29sIFN5c2NhbGxTZXRzOjpJ c1N5c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKSB7Ci1AQCAtODgwLDcgKzkxMCw4IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVk1lc3NhZ2VRdWV1ZShpbnQgc3lzbm8pIHsKLSAjZW5k aWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8 IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBs ZXhpbmcgc3lzdGVtIGNhbGwuCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WSXBjKGludCBz eXNubykgewotICAgc3dpdGNoIChzeXNubykgewotQEAgLTkwMCw3ICs5MzEsOCBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FueVN5c3RlbVYoaW50IHN5c25vKSB7Ci0gICByZXR1cm4gSXNTeXN0ZW1W TWVzc2FnZVF1ZXVlKHN5c25vKSB8fCBJc1N5c3RlbVZTZW1hcGhvcmVzKHN5c25vKSB8fAotICAg ICAgICAgIElzU3lzdGVtVlNoYXJlZE1lbW9yeShzeXNubyk7Ci0gI2VsaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgcmV0dXJuIElzU3lzdGVtVklwYyhzeXNubyk7Ci0gI2VuZGlmCi0gfQotQEAg LTk1Myw3ICs5ODUsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZhTm90aWZ5KGludCBzeXNubykg ewotIGJvb2wgU3lzY2FsbFNldHM6OklzVGltZXIoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5 c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXRpdGltZXI6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2FsYXJtOgot ICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2V0aXRpbWVyOgotQEAgLTEwMTIsMTggKzEwNDUsMjIg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNNaXNjKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJf c3luY2ZzOgotICAgICBjYXNlIF9fTlJfdmhhbmd1cDoKLSAvLyBUaGUgc3lzdGVtIGNhbGxzIGJl bG93IGFyZSBub3QgaW1wbGVtZW50ZWQuCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2Fmc19zeXNjYWxsOgotICNl bmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9icmVhazoKLSAj ZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfZ2V0cG1zZzoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfZ3R0eToKLSAgICAgY2FzZSBfX05SX2lkbGU6Ci0gICAg IGNhc2UgX19OUl9sb2NrOgotQEAgLTEwMzEsMjAgKzEwNjgsMjIgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNNaXNjKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcHJvZjoKLSAgICAgY2FzZSBf X05SX3Byb2ZpbDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcHV0cG1zZzoKLSAjZW5kaWYKLSAj aWYgZGVmaW5lZChfX3g4Nl82NF9fKQotICAgICBjYXNlIF9fTlJfc2VjdXJpdHk6Ci0gI2VuZGlm Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0r ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3N0dHk6Ci0gI2VuZGlm Ci0tI2lmIGRlZmluZWQoX194ODZfNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl90dXhjYWxsOgotICNlbmRpZgot LSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYm ICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl92c2VydmVyOgotICNlbmRp ZgotICAgICAgIHJldHVybiB0cnVlOwotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmggc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfc2V0cy5oCi1pbmRleCA5MjM1MzNlYzkuLjQxMWY3MmFjZCAxMDA2NDQKLS0t LSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuaAotKysr IGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi1AQCAt NDMsMTMgKzQzLDE0IEBAIGNsYXNzIFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKLSAgIHN0 YXRpYyBib29sIElzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKTsKLSAKLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVf TUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBm b3Igc29ja2V0cy4KLSAgIHN0YXRpYyBib29sIElzU29ja2V0Q2FsbChpbnQgc3lzbm8pOwotICNl bmRpZgotIAotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBzdGF0aWMg Ym9vbCBJc05ldHdvcmtTb2NrZXRJbmZvcm1hdGlvbihpbnQgc3lzbm8pOwotICNlbmRpZgotIAot QEAgLTc2LDcgKzc3LDcgQEAgY2xhc3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewotICAg c3RhdGljIGJvb2wgSXNTeXN0ZW1WU2VtYXBob3JlcyhpbnQgc3lzbm8pOwotICNlbmRpZgotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCi0gICAvLyBUaGVzZSBnaXZlIGEg bG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94Lgot ICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNubyk7Ci1AQCAtODgs NyArODksOCBAQCBjbGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gI2VuZGlmCi0g Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0r ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhp bmcgc3lzdGVtIGNhbGwuCi0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZJcGMoaW50IHN5c25vKTsK LSAjZW5kaWYKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNj IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotaW5kZXggZTQ3ZTk4YmY1Li5k NTNhN2ZmNTYgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwu Y2MKLSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotQEAgLTE4LDcg KzE4LDcgQEAgbmFtZXNwYWNlIHNhbmRib3ggewotIG5hbWVzcGFjZSB7Ci0gCi0gI2lmIGRlZmlu ZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8 fCBcCi0tICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0rICAgIGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQgKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAv LyBOdW1iZXIgdGhhdCdzIG5vdCBjdXJyZW50bHkgdXNlZCBieSBhbnkgTGludXgga2VybmVsIEFC SXMuCi0gY29uc3QgaW50IGtJbnZhbGlkU3lzY2FsbE51bWJlciA9IDB4MzUxZDM7Ci0gI2Vsc2UK LUBAIC0zMTAsMTIgKzMxMCw1NiBAQCBhc20oLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlbGwg dGhlIGtlcm5lbCBleGFjdGx5IHdoZXJlIHdlIG1hZGUgYQotICAgICAvLyBFbnRlciB0aGUga2Vy bmVsCi0gICAgICJzdmMgMFxuIgotICAgICAiMjpyZXRcbiIKLSsgICAgIi5jZmlfZW5kcHJvY1xu IgotKyAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCi0rI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgICAiLnRleHRcbiIKLSsgICAgIi5hbGlnbiA0XG4iCi0rICAg ICIudHlwZSBTeXNjYWxsQXNtIEBmdW5jdGlvblxuIgotKyAgICAiU3lzY2FsbEFzbTpcbiIKLSsg ICAgIi5jZmlfc3RhcnRwcm9jXG4iCi0rCi0rICAgIC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZl Ci0rICAgICJjbXBkaSAzLCAwXG4iCi0rICAgICJiZ3QgMmZcbiIKLSsKLSsgICAgLy8gTG9hZCBh ZGRyZXNzIG9mIDNmIGludG8gcjMgYW5kIHJldHVybgotKyAgICAibWZsciAxMFxuIgotKyAgICAi YmwgMWZcbiIKLSsgICAgIjE6IG1mbHIgM1xuIgotKyAgICAibXRsciAxMFxuIgotKyAgICAiYWRk aSAzLCAzLCA0KjEzXG4iCi0rICAgICJibHJcbiIKLSsKLSsgICAgLy8gTG9hZCBhcmd1bWVudHMg ZnJvbSBhcnJheSBpbnRvIHIzLTgKLSsgICAgLy8gc2F2ZSBwYXJhbSAzIGluIHIxMAotKyAgICAi MjpcbiIKLSsgICAgIm1yIDAsIDNcbiIKLSsgICAgImxkIDMsIDAoNClcbiIKLSsgICAgImxkIDUs IDE2KDQpXG4iCi0rICAgICJsZCA2LCAyNCg0KVxuIgotKyAgICAibGQgNywgMzIoNClcbiIKLSsg ICAgImxkIDgsIDQwKDQpXG4iCi0rICAgICJsZCA0LCA4KDQpXG4iCi0rICAgICJsaSA5LCAwXG4i Ci0rCi0rICAgIC8vIEVudGVyIGtlcm5lbAotKyAgICAic2NcbiIKLSsKLSsgICAgLy8gTWFnaWMg cmV0dXJuIGFkZHJlc3MKLSsgICAgIjM6XG4iCi0rICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0 dXJuIHZhbHVlcyBhcmUgYWx3YXlzIHBvc2l0aXZlLgotKyAgICAvLyBDaGVjayBmb3IgZXJyb3Ig aW4gY3IwLlNPIGFuZCBuZWdhdGUgdXBvbiBlcnJvcgotKyAgICAiYmMgNCwgMywgNGZcbiIKLSsg ICAgIm5lZyAzLCAzXG4iCi0rICAgICI0OiBibHJcbiIKLSsKLSAgICAgIi5jZmlfZW5kcHJvY1xu IgotICAgICAiLnNpemUgU3lzY2FsbEFzbSwgLi1TeXNjYWxsQXNtXG4iCi0gI2VuZGlmCi0gICAg ICk7ICAvLyBhc20KLSAKLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBleHRlcm4gIkMiIHsKLSBpbnRw dHJfdCBTeXNjYWxsQXNtKGludHB0cl90IG5yLCBjb25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKLSB9 Ci1AQCAtNDI5LDYgKzQ3Myw4IEBAIGludHB0cl90IFN5c2NhbGw6OkNhbGwoaW50IG5yLAotICAg ICByZXQgPSBpbm91dDsKLSAgIH0KLSAKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r ICBpbnRwdHJfdCByZXQgPSBTeXNjYWxsQXNtKG5yLCBhcmdzKTsKLSAjZWxzZQotICNlcnJvciAi VW5pbXBsZW1lbnRlZCBhcmNoaXRlY3R1cmUiCi0gI2VuZGlmCi1AQCAtNDQ1LDggKzQ5MSwxOCBA QCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29u dGV4dF90KiBjdHgpIHsKLSAgICAgLy8gbmVlZHMgdG8gYmUgY2hhbmdlZCBiYWNrLgotICAgICBy ZXRfdmFsID0gLXJldF92YWw7Ci0gICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDE7Ci0tICB9IGVs c2UKLSsgIH0gZWxzZSB7Ci0gICAgIFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDA7Ci0rICB9Ci0rI2Vu ZGlmCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFNhbWUgYXMgTUlQUywgbmVl ZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKLSsgIGlmIChy ZXRfdmFsIDw9IC0xICYmIHJldF92YWwgPj0gLTQwOTUpIHsKLSsgICAgcmV0X3ZhbCA9IC1yZXRf dmFsOwotKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0rICB9 IGVsc2UgewotKyAgICBjdHgtPnVjX21jb250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOwot KyAgfQotICNlbmRpZgotICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdf dD4ocmV0X3ZhbCk7Ci0gfQotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3Ry YXAuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCi1pbmRleCA5ODg0YmU4YmIu Ljk4ZTQzNzFhYSAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5j YwotKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi90cmFwLmNjCi1AQCAtMjMyLDYgKzIz MiwyMCBAQCB2b2lkIFRyYXA6OlNpZ1N5cyhpbnQgbnIsIExpbnV4U2lnSW5mbyogaW5mbywgdWNv bnRleHRfdCogY3R4KSB7Ci0gICAgICAgU2V0SXNJblNpZ0hhbmRsZXIoKTsKLSAgICAgfQotIAot KyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIC8vIE9uIHBwYzY0K2dsaWJjLCBzb21l IHN5c2NhbGxzIHNlZW0gdG8gYWNjaWRlbnRhbGx5IG5lZ2F0ZSB0aGUgZmlyc3QKLSsgICAgLy8g cGFyYW1ldGVyIHdoaWNoIGNhdXNlcyBjaGVja3MgYWdhaW5zdCBpdCB0byBmYWlsLiBGb3Igbm93 LCBtYW51YWxseQotKyAgICAvLyBuZWdhdGUgdGhlbSBiYWNrLgotKyAgICAvLyBUT0RPKHNoYXdu QGFuYXN0YXMuaW8pOiBpbnZlc3RpZ2F0ZSB0aGlzIGlzc3VlIGZ1cnRoZXIKLSsgICAgYXV0byBu ciA9IFNFQ0NPTVBfU1lTQ0FMTChjdHgpOwotKyAgICBpZiAobnIgPT0gX19OUl9vcGVuYXQgfHwg bnIgPT0gX19OUl9ta2RpcmF0IHx8IG5yID09IF9fTlJfZmFjY2Vzc2F0IHx8IG5yID09IF9fTlJf cmVhZGxpbmthdCB8fAotKyAgICAgICAgbnIgPT0gX19OUl9yZW5hbWVhdCB8fCBuciA9PSBfX05S X3JlbmFtZWF0MiB8fCBuciA9PSBfX05SX25ld2ZzdGF0YXQgfHwgbnIgPT0gX19OUl91bmxpbmth dCkgewotKyAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludD4oU0VDQ09NUF9QQVJNMShjdHgpKSA+ IDApIHsKLSsgICAgICAgICAgICBTRUNDT01QX1BBUk0xKGN0eCkgPSAtU0VDQ09NUF9QQVJNMShj dHgpOwotKyAgICAgICAgfQotKyAgICB9Ci0rI2VuZGlmCi0rCi0gICAgIC8vIENvcHkgdGhlIHNl Y2NvbXAtc3BlY2lmaWMgZGF0YSBpbnRvIGEgYXJjaF9zZWNjb21wX2RhdGEgc3RydWN0dXJlLiBU aGlzCi0gICAgIC8vIGlzIHdoYXQgd2UgYXJlIHNob3dpbmcgdG8gVHJhcEZuYyBjYWxsYmFja3Mg dGhhdCB0aGUgc3lzdGVtIGNhbGwKLSAgICAgLy8gZXZhbHVhdG9yIHJlZ2lzdGVyZWQgd2l0aCB0 aGUgc2FuZGJveC4KLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFs cy5jYyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCi1pbmRleCBkN2I1ZDhj NDQuLjRhZGM2ZDBkNCAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVu dGlhbHMuY2MKLSsrKyBiL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLUBA IC04MSw3ICs4MSw3IEBAIGJvb2wgQ2hyb290VG9TYWZlRW1wdHlEaXIoKSB7Ci0gICBwaWRfdCBw aWQgPSAtMTsKLSAgIGFsaWduYXMoMTYpIGNoYXIgc3RhY2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlO XTsKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BV X0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsg ICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCi0gICAvLyBUaGUgc3RhY2sgZ3Jvd3MgZG93bndhcmQuCi0gICB2b2lkKiBzdGFj ayA9IHN0YWNrX2J1ZiArIHNpemVvZihzdGFja19idWYpOwotICNlbHNlCi1kaWZmIC0tZ2l0IHNh bmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVycy5jYyBzYW5kYm94L2xpbnV4L3Nl cnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLWluZGV4IGZjZmQyYWExMi4uZjZlYjMyZmI3IDEw MDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi0r KysgYi9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLUBAIC01OCw3 ICs1OCw3IEBAIGxvbmcgc3lzX2Nsb25lKHVuc2lnbmVkIGxvbmcgZmxhZ3MsCi0gI2lmIGRlZmlu ZWQoQVJDSF9DUFVfWDg2XzY0KQotICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3Ms IGNoaWxkX3N0YWNrLCBwdGlkLCBjdGlkLCB0bHMpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVf WDg2KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg fHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBDT05GSUdfQ0xPTkVfQkFD S1dBUkRTIGRlZmluZWQuCi0gICByZXR1cm4gc3lzY2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hp bGRfc3RhY2ssIHB0aWQsIHRscywgY3RpZCk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IHNhbmRib3gv bGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2Mgc2FuZGJveC9saW51eC9zeXNj YWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotaW5kZXggODMyMWQyMzc5Li43ZTVhZDFkZTMg MTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNz LmNjCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNj Ci1AQCAtMTU3LDcgKzE1Nyw3IEBAIGJvb2wgQnJva2VyUHJvY2Vzczo6SXNTeXNjYWxsQWxsb3dl ZChpbnQgc3lzbm8pIGNvbnN0IHsKLSAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQpCi0gICAgIGNh c2UgX19OUl9mc3RhdGF0OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hYXJjaDY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbmV3 ZnN0YXRhdDoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gIWZhc3RfY2hlY2tfaW5fY2xpZW50XyB8 fCBhbGxvd2VkX2NvbW1hbmRfc2V0Xy50ZXN0KENPTU1BTkRfU1RBVCk7Ci1kaWZmIC0tZ2l0IHNh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oIHNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi1pbmRleCBhNjBmZTJhZDMuLjlkY2NkYjUx ZCAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29t cC5oCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAot QEAgLTI5LDYgKzI5LDkgQEAKLSAjaWZuZGVmIEVNX0FBUkNINjQKLSAjZGVmaW5lIEVNX0FBUkNI NjQgMTgzCi0gI2VuZGlmCi0rI2lmbmRlZiBFTV9QUEM2NAotKyNkZWZpbmUgRU1fUFBDNjQgMjEK LSsjZW5kaWYKLSAKLSAjaWZuZGVmIF9fQVVESVRfQVJDSF82NEJJVAotICNkZWZpbmUgX19BVURJ VF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKLUBAIC01NCw2ICs1NywxMiBAQAotICNpZm5kZWYgQVVE SVRfQVJDSF9BQVJDSDY0Ci0gI2RlZmluZSBBVURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNINjQg fCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCi0gI2VuZGlmCi0rI2lmbmRl ZiBBVURJVF9BUkNIX1BQQzY0Ci0rI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8 IF9fQVVESVRfQVJDSF82NEJJVCkKLSsjZW5kaWYKLSsjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRM RQotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82 NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKLSsjZW5kaWYKLSAKLSAvLyBGb3IgcHJjdGwuaAotICNp Zm5kZWYgUFJfU0VUX1NFQ0NPTVAKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9saW51eF9zaWduYWwuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Np Z25hbC5oCi1pbmRleCBmNWE3MzY3NjEuLjUxNWIyMWE1ZiAxMDA2NDQKLS0tLSBhL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKLSsrKyBiL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKLUBAIC0xMyw3ICsxMyw3IEBACi0gLy8gKG5v dCB1bmRlZmluZWQsIGJ1dCBkZWZpbmVkIGRpZmZlcmVudCB2YWx1ZXMgYW5kIGluIGRpZmZlcmVu dCBtZW1vcnkKLSAvLyBsYXlvdXRzKS4gU28sIGZpbGwgdGhlIGdhcCBoZXJlLgotICNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykg fHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gCi0gI2RlZmluZSBMSU5VWF9TSUdIVVAgMQot ICNkZWZpbmUgTElOVVhfU0lHSU5UIDIKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9saW51eF9zeXNjYWxscy5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGlu dXhfc3lzY2FsbHMuaAotaW5kZXggMmI3OGEwY2MzLi4wYTcwZjVlYTUgMTAwNjQ0Ci0tLS0gYS9z YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKLSsrKyBiL3NhbmRi b3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAotQEAgLTM1LDUgKzM1LDkg QEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm02NF9saW51eF9z eXNjYWxscy5oIgotICNlbmRpZgotIAotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rI2lu Y2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMu aCIKLSsjZW5kaWYKLSsKLSAjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNf TElOVVhfU1lTQ0FMTFNfSF8KLSAKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9saW51eF91Y29udGV4dC5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhf dWNvbnRleHQuaAotaW5kZXggMjJjZTc4MDI3Li5hNjliMDI0YzIgMTAwNjQ0Ci0tLS0gYS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Vjb250ZXh0LmgKLSsrKyBiL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotQEAgLTExLDYgKzExLDggQEAK LSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRl eHQuaCIKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKQotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2kzODZfbGludXhfdWNvbnRleHQuaCIKLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBj NjRfbGludXhfdWNvbnRleHQuaCIKLSAjZWxzZQotICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgeW91 ciBhcmNoaXRlY3R1cmUgaW4gUE5hQ2wgaGVhZGVyIgotICNlbmRpZgotZGlmZiAtLWdpdCBzYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmggc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCi1uZXcgZmlsZSBtb2Rl IDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5jY2FjZmZlMjIKLS0tLSAvZGV2L251bGwKLSsrKyBi L3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaAotQEAg LTAsMCArMSwxMiBAQAotKy8vIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBB bGwgcmlnaHRzIHJlc2VydmVkLgotKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSsvLyBmb3VuZCBpbiB0aGUg TElDRU5TRSBmaWxlLgotKwotKyNpZm5kZWYgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19Q UEM2NF9MSU5VWF9TWVNDQUxMU19IXwotKyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVB REVSU19QUEM2NF9MSU5VWF9TWVNDQUxMU19IXwotKwotKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+ Ci0rCi0rLy9UT0RPOiBpcyBpdCBuZWNlc3NhcnkgdG8gcmVkZWZpbmUgc3lzY2FsbCBudW1iZXJz IGZvciBQUEM2ND8KLSsKLSsjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNf UFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXN0ZW1f aGVhZGVycy9wcGM2NF9saW51eF91Y29udGV4dC5oIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvcHBjNjRfbGludXhfdWNvbnRleHQuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAwMC4uMDc3MjhlMDg3Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5 c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKLUBAIC0wLDAgKzEsMTIgQEAKLSsv LyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsK LSsjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRF WFRfSF8KLSsjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhf VUNPTlRFWFRfSF8KLSsKLSsjaW5jbHVkZSA8c3lzL3Vjb250ZXh0Lmg+Ci0rCi0rLy9UT0RPOiBp cyBpdCBuZWNlc3NhcnkgdG8gcmVkZWZpbmUgdWNvbnRleHQgb24gUFBDNjQ/Ci0rCi0rI2VuZGlm ICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJTlVYX1VDT05URVhUX0hf Ci1kaWZmIC0tZ2l0IHNlcnZpY2VzL3NlcnZpY2VfbWFuYWdlci9zYW5kYm94L2xpbnV4L2JwZl9y ZW5kZXJlcl9wb2xpY3lfbGludXguY2Mgc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gv bGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwotaW5kZXggZmI4OWIzMzU2Li4xZTk4 NDczMWUgMTAwNjQ0Ci0tLS0gYS9zZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51 eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi0rKysgYi9zZXJ2aWNlcy9zZXJ2aWNlX21h bmFnZXIvc2FuZGJveC9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi1AQCAtMTUs NiArMTUsMTEgQEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51 eF9zeXNjYWxscy5oIgotICNpbmNsdWRlICJzZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJv eC9saW51eC9zYW5kYm94X2xpbnV4LmgiCi0gCi0rLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZp bmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlv cy5oCi0rI2lmZGVmIF9fcG93ZXJwYzY0X18KLSsjaW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRp ZgotKwotIC8vIFRPRE8odmlnbmF0dGkpOiByZXBsYWNlIHRoZSBsb2NhbCBkZWZpbml0aW9ucyBi ZWxvdyB3aXRoICNpbmNsdWRlCi0gLy8gPGxpbnV4L2RtYS1idWYuaD4gb25jZSBrZXJuZWwgdmVy c2lvbiA0LjYgYmVjb21lcyB3aWRlbHkgdXNlZC4KLSAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4K LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5m b1NpbmsuaCB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2lu ay5oCi1pbmRleCAzYTgwN2UxZS4uNTI1ODYxN2EgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9h bmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oCi0rKysgYi90aGlyZF9wYXJ0 eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oCi1AQCAtOTIsNyArOTIs MTYgQEAgY2xhc3MgVEluZm9TaW5rQmFzZQotICAgICAgICAgICAgIHN0cmVhbS5wcmVjaXNpb24o OCk7Ci0gICAgICAgICAgICAgc3RyZWFtIDw8IGY7Ci0gICAgICAgICB9Ci0tICAgICAgICBzaW5r LmFwcGVuZChzdHJlYW0uc3RyKCkpOwotKwotKyAgICAgICAgLy8gSGFjayB0byB3b3JrIGFyb3Vu ZCBhIGJ1ZyB3aGVyZSBuZWdhdGl2ZSBmbG9hdGluZyBwb2ludCB2YWx1ZXMKLSsgICAgICAgIC8v IGFyZSByZW5kZXJlZCBsaWtlICcuMC41JyBpbnN0ZWFkIG9mICctMC41JwotKyAgICAgICAgc3Rk OjpzdHJpbmcgcmVzKHN0cmVhbS5zdHIoKSk7Ci0rCi0rICAgICAgICBpZiAoc2lnbmJpdChmKSkg eyAvLyB0ZXN0IGlmIGYgaXMgbmVnYXRpdmUKLSsgICAgICAgICAgICByZXNbMF0gPSAnLSc7Ci0r ICAgICAgICB9Ci0rCi0rICAgICAgICBzaW5rLmFwcGVuZChyZXMpOwotICAgICAgICAgcmV0dXJu ICp0aGlzOwotICAgICB9Ci0gICAgIC8vIFdyaXRlIGJvb2xlYW4gdmFsdWVzIGFzIHRoZWlyIG5h bWVzIGluc3RlYWQgb2YgaW50ZWdyYWwgdmFsdWUuCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Fu Z2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaCB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5H TEUvQ29uc3RhbnRzLmgKLWluZGV4IDQyOTY0Y2MxLi42NjA3ZGVlYiAxMDA2NDQKLS0tLSBhL3Ro aXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAotKysrIGIvdGhpcmRfcGFy dHkvYW5nbGUvc3JjL2xpYkFOR0xFL0NvbnN0YW50cy5oCi1AQCAtOSw2ICs5LDcgQEAKLSAjaWZu ZGVmIExJQkFOR0xFX0NPTlNUQU5UU19IXwotICNkZWZpbmUgTElCQU5HTEVfQ09OU1RBTlRTX0hf Ci0gCi0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0gI2luY2x1ZGUgImNvbW1vbi9wbGF0Zm9ybS5oIgot IAotICNpbmNsdWRlIDxzdGRpbnQuaD4KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYm9yaW5nc3Ns L0JVSUxELmduIHRoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotaW5kZXggYjQzNTQ5OWY0 Li5hYzhhODRiNmQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24K LSsrKyBiL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotQEAgLTEwMSw2ICsxMDEsMTMg QEAgaWYgKGlzX3dpbiAmJiAhaXNfbXNhbiAmJiBjdXJyZW50X2NwdSAhPSAiYXJtNjQiKSB7Ci0g ICAgICAgfSBlbHNlIHsKLSAgICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25m aWciIF0KLSAgICAgICB9Ci0rICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0Iikg ewotKyAgICAgIGlmIChpc19saW51eCkgewotKyAgICAgICAgIyBUT0RPOiBwcGM2NCAoYmUpIGNo ZWNrCi0rICAgICAgICBzb3VyY2VzICs9IGNyeXB0b19zb3VyY2VzX2xpbnV4X3BwYzY0bGUKLSsg ICAgICB9IGVsc2UgewotKyAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZp ZyIgXQotKyAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSAgICAgICBwdWJsaWNfY29uZmlncyA9IFsg Ijpub19hc21fY29uZmlnIiBdCi0gICAgIH0KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvQlVJTEQuZ24gdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLWluZGV4IDU2MTdkZTg4 Li5kYzhiYzE3NiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi0r KysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotQEAgLTU5OCw3ICs1OTgsNiBAQCBp ZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50 L21pbmlkdW1wX2ZpbGVfd3JpdGVyLmgiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2Nv bnZlcnRfVVRGLmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9jb252ZXJ0X1VURi5o IiwKLS0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0 LlMiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuY2Mi LAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaCIsCi0g ICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmdXRpbHMuY2MiLAotQEAgLTYzNiw2 ICs2MzUsMTQgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAKLSAgICAgbGlicyA9 IFsgImRsIiBdCi0gCi0rICAgIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgICAg ICBkZWZpbmVzID0gWyAiSEFWRV9HRVRDT05URVhUIiBdCi0rICAgIH0gZWxzZSB7Ci0rICAgICAg ICBzb3VyY2VzICs9IFsKLSsgICAgICAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9i cmVha3BhZF9nZXRjb250ZXh0LlMiCi0rICAgICAgICBdCi0rICAgIH0KLSsKLSAgICAgaW5jbHVk ZV9kaXJzID0gWwotICAgICAgICIuIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjIiwKLUBAIC02ODYs NyArNjkzLDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAgICAgICAiYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0 ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0 ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0X3V0aWxzLmNjIiwKLSAgICAgICAiYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvcHJvY19jcHVpbmZvX3JlYWRlcl91bml0 dGVzdC5jYyIsCi0tICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0 Y29udGV4dF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgv ZWxmX2NvcmVfZHVtcF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24v bGludXgvZmlsZV9pZF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24v bGludXgvbGludXhfbGliY19zdXBwb3J0X3VuaXR0ZXN0LmNjIiwKLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vcmF3X2NvbnRleHRfY3B1LmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLWluZGV4IDA3 ZDkxNzFhLi45YWVkNGNiMyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5o Ci0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAotQEAgLTQ0LDYgKzQ0LDggQEAgdHlw ZWRlZiBNRFJhd0NvbnRleHRBUk0gUmF3Q29udGV4dENQVTsKLSB0eXBlZGVmIE1EUmF3Q29udGV4 dEFSTTY0X09sZCBSYXdDb250ZXh0Q1BVOwotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gdHlw ZWRlZiBNRFJhd0NvbnRleHRNSVBTIFJhd0NvbnRleHRDUFU7Ci0rI2VsaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotK3R5cGVkZWYgTURSYXdDb250ZXh0UFBDNjQgUmF3Q29udGV4dENQVTsKLSAj ZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0 Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYyB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVy X2NvbW1vbi90aHJlYWRfaW5mby5jYwotaW5kZXggYWFlMWRjMTMuLjAzYWZlYzdhIDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZv LmNjCi1AQCAtMjcwLDcgKzI3MCw0MiBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0 KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IG1j b250ZXh0LmZwY19laXI7Ci0gI2VuZGlmCi0gfQotLSNlbmRpZiAgLy8gX19taXBzX18KLSsKLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rdWludHB0cl90IFRocmVhZEluZm86Okdl dEluc3RydWN0aW9uUG9pbnRlcigpIGNvbnN0IHsKLSsgICAgcmV0dXJuIG1jb250ZXh0LmdwX3Jl Z3NbUFRfTklQXTsKLSt9Ci0rCi0rdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdD b250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKLSsgICAgb3V0LT5jb250ZXh0X2ZsYWdzID0gTURfQ09O VEVYVF9QUEM2NF9GVUxMOwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBD NjRfR1BSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmdwcltpXSA9IG1jb250ZXh0LmdwX3Jl Z3NbaV07Ci0rCi0rICAgIG91dC0+bHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0xOS107Ci0rICAg IG91dC0+c3JyMCA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSsgICAgb3V0LT5zcnIxID0g bWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdOwotKyAgICBvdXQtPmNyID0gbWNvbnRleHQuZ3BfcmVn c1tQVF9DQ1JdOwotKyAgICBvdXQtPnhlciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXTsKLSsg ICAgb3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Ci0rICAgIAotKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQot KyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07 Ci0rCi0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IG1jb250ZXh0LmZwX3JlZ3NbTkZQUkVH LTFdOwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19W Ul9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0gXAot KyAgICAgICAgICAgIHsoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMF0pIDw8IDMyKSAKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MudnJyZWdzW2ldWzFdLCAKLSsgICAgICAg ICAgICAoKCh1aW50NjRfdCl2cmVncy52cnJlZ3NbaV1bMl0pIDw8IDMyKQotKyAgICAgICAgICAg ICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVszXX07Ci0rCi0rICAgIG91dC0+dnJzYXZl ID0gdnJlZ3MudnJzYXZlOwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjciA9IHswLCB2 cmVncy52c2NyLnZzY3Jfd29yZH07Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cnZhbGlk ID0gMHhGRkZGRkZGRjsgCi0rfQotKyNlbmRpZiAgLy8gX19wb3dlcnBjNjRfXwotIAotIHZvaWQg VGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnModm9pZCoqIGdwX3JlZ3MsIHNp emVfdCogc2l6ZSkgewotICAgYXNzZXJ0KGdwX3JlZ3MgfHwgc2l6ZSk7Ci1AQCAtMjc5LDYgKzMx NCwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQq KiBncF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAgICAgKmdwX3JlZ3MgPSBtY29udGV4dC5ncmVn czsKLSAgIGlmIChzaXplKQotICAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5ncmVncyk7Ci0r I2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKGdwX3JlZ3MpCi0rICAgICpncF9y ZWdzID0gbWNvbnRleHQuZ3BfcmVnczsKLSsgIGlmIChzaXplKQotKyAgICAqc2l6ZSA9IHNpemVv ZihtY29udGV4dC5ncF9yZWdzKTsKLSAjZWxzZQotICAgaWYgKGdwX3JlZ3MpCi0gICAgICpncF9y ZWdzID0gJnJlZ3M7Ci1AQCAtMjk0LDYgKzMzNCwxMSBAQCB2b2lkIFRocmVhZEluZm86OkdldEZs b2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICAg ICAqZnBfcmVncyA9ICZtY29udGV4dC5mcHJlZ3M7Ci0gICBpZiAoc2l6ZSkKLSAgICAgKnNpemUg PSBzaXplb2YobWNvbnRleHQuZnByZWdzKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICBpZiAoZnBfcmVncykKLSsgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuZnBfcmVnczsKLSsg IGlmIChzaXplKQotKyAgICAqc2l6ZSA9IHNpemVvZihtY29udGV4dC5mcF9yZWdzKTsKLSAjZWxz ZQotICAgaWYgKGZwX3JlZ3MpCi0gICAgICpmcF9yZWdzID0gJmZwcmVnczsKLUBAIC0zMDIsNCAr MzQ3LDEzIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycyh2b2lk KiogZnBfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gI2VuZGlmCi0gfQotIAotKyNpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rdm9pZCBUaHJlYWRJbmZvOjpHZXRWZWN0b3JSZWdpc3RlcnModm9p ZCoqIHZfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0rICAgIGlmICh2X3JlZ3MpCi0rICAgICAgICAq dl9yZWdzID0gJnZyZWdzOwotKyAgICBpZiAoc2l6ZSkKLSsgICAgICAgICpzaXplID0gc2l6ZW9m KHZyZWdzKTsKLSt9Ci0rI2VuZGlmCi0rCi0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3Bh ZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZv LmgKLWluZGV4IGZiMjE2ZmE2Li41OTNhYWM4MiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVh ZF9pbmZvLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKLUBAIC02OCw2ICs2OCwxMCBA QCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBp biA8c3lzL3VzZXIuaD4KLSAgIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0IHJlZ3M7Ci0gICBzdHJ1 Y3QgdXNlcl9mcHNpbWRfc3RydWN0IGZwcmVnczsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+ LgotKyAgbWNvbnRleHRfdCBtY29udGV4dDsKLSsgIHZycmVnc2V0X3QgdnJlZ3M7Ci0gI2VsaWYg ZGVmaW5lZChfX21pcHNfXykKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlIGRlZmluZWQgaW4gPHN5 cy91Y29udGV4dC5oPi4KLSAgIG1jb250ZXh0X3QgbWNvbnRleHQ7Ci1AQCAtODQsNiArODgsMTEg QEAgc3RydWN0IFRocmVhZEluZm8gewotIAotICAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQg c2l6ZSBvZiBmbG9hdCBwb2ludCByZWdpc3RlciBhcmVhLgotICAgdm9pZCBHZXRGbG9hdGluZ1Bv aW50UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpOwotKwotKyNpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9m IHRoZSB2ZWN0b3IgcmVnaXN0ZXIgYXJlYS4gKFBQQzY0IG9ubHkpCi0rICB2b2lkIEdldFZlY3Rv clJlZ2lzdGVycyh2b2lkKiogdl9yZWdzLCBzaXplX3QqIHNpemUpOwotKyNlbmRpZgotIH07Ci0g Ci0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91 Y29udGV4dF9yZWFkZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1pbmRleCBlZTUx NWM0MS4uMTA5MDQ3MGYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotQEAgLTI1NCw2ICsyNTQsNDggQEAg dm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0LCBj b25zdCB1Y29udGV4dF90ICp1YykgewotICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IHVjLT51Y19t Y29udGV4dC5mcGNfZWlyOyAgLy8gVW51c2VkLgotICNlbmRpZgotIH0KLSsKLSsjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFj a1BvaW50ZXIoY29uc3QgdWNvbnRleHRfdCogdWMpIHsKLSsgICAgcmV0dXJuIHVjLT51Y19tY29u dGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXTsKLSt9Ci0rCi0rdWludHB0cl90 IFVDb250ZXh0UmVhZGVyOjpHZXRJbnN0cnVjdGlvblBvaW50ZXIoY29uc3QgdWNvbnRleHRfdCog dWMpIHsKLSsgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rfQot KwotK3ZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91 dCwgY29uc3QgdWNvbnRleHRfdCogdWMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpIHsKLSsgICAgb3V0LT5jb250ZXh0X2ZsYWdz ID0gTURfQ09OVEVYVF9QUEM2NF9GVUxMOwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1E X0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCi0rICAgICAgICBvdXQtPmdwcltpXSA9IHVj LT51Y19tY29udGV4dC5ncF9yZWdzW2ldOwotKwotKyAgICBvdXQtPmxyID0gdWMtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfTE5LXTsgICAgCi0rICAgIG91dC0+c3JyMCA9IHVjLT51Y19tY29udGV4 dC5ncF9yZWdzW1BUX05JUF07Ci0rICAgIG91dC0+c3JyMSA9IHVjLT51Y19tY29udGV4dC5ncF9y ZWdzW1BUX01TUl07Ci0rICAgIG91dC0+Y3IgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9D Q1JdOwotKyAgICBvdXQtPnhlciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl07Ci0r ICAgIG91dC0+Y3RyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0r ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5U OyBpKyspCi0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gdWMtPnVjX21jb250 ZXh0LmZwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19t Y29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBN RF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+dmVjdG9y X3NhdmUuc2F2ZV92cltpXSA9Ci0rICAgICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLT52cnJl Z3NbaV1bMF0pIDw8IDMyKSAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJy ZWdzW2ldWzFdLCAKLSsgICAgICAgICAgICAgKCgodWludDY0X3QpdnJlZ3MtPnZycmVnc1tpXVsy XSkgPDwgMzIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJlZ3MtPnZycmVnc1tpXVsz XX07Ci0rCi0rICAgIG91dC0+dnJzYXZlID0gdnJlZ3MtPnZyc2F2ZTsKLSsgICAgb3V0LT52ZWN0 b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MtPnZzY3IudnNjcl93b3JkfTsKLSsgICAgb3V0 LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZGOyAKLSt9Ci0rCi0gI2VuZGlm Ci0gCi0gfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1v bi91Y29udGV4dF9yZWFkZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAotaW5kZXggOGU3 NGE4YTUuLjdjYjY2N2E3IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgK LSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVt cF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCi1AQCAtNTUsNiArNTUsOSBAQCBzdHJ1 Y3QgVUNvbnRleHRSZWFkZXIgewotICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICBzdGF0 aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0 X3QgKnVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZwc2lt ZF9jb250ZXh0KiBmcHJlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIHN0 YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRl eHRfdCAqdWMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90 KiB2cmVncyk7Ci0gI2Vsc2UKLSAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRl eHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpOwotICNlbmRpZgotZGlmZiAtLWdpdCB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhj ZXB0aW9uX2hhbmRsZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1pbmRleCBjNjVmZWFhMS4uNWE3 YWI1MGMgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu ZGxlci5jYwotQEAgLTQ2MSw5ICs0NjEsMTYgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpIYW5k bGVTaWduYWwoaW50IC8qc2lnKi8sIHNpZ2luZm9fdCogaW5mbywgdm9pZCogdWMpIHsKLSAgICAg bWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRlLCBmcF9wdHIsCi0gICAgICAgICAg ICBzaXplb2YoZ19jcmFzaF9jb250ZXh0Xy5mbG9hdF9zdGF0ZSkpOwotICAgfQotKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIE9uIFBQQzY0LCB3ZSBtdXN0IGNvcHkgVlIgc3Rh dGUKLSsgIHVjb250ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsKLSsgIGlmICh1Y19w dHItPnVjX21jb250ZXh0LnZfcmVncykgewotKyAgICBtZW1jcHkoJmdfY3Jhc2hfY29udGV4dF8u dmVjdG9yX3N0YXRlLCB1Y19wdHItPnVjX21jb250ZXh0LnZfcmVncywKLSsgICAgICAgICAgIHNp emVvZihnX2NyYXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0ZSkpOwotKyAgfQotICNlbGlmICFkZWZp bmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAvLyBGUCBzdGF0ZSBp cyBub3QgcGFydCBvZiB1c2VyIEFCSSBvbiBBUk0gTGludXguCi0tICAvLyBJbiBjYXNlIG9mIE1J UFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3QKLSsgIC8vIElu IGNhc2Ugb2YgTUlQUywgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0 X3QKLSAgIC8vIGFuZCAnZmxvYXRfc3RhdGUnIGlzIG5vdCBhIG1lbWJlciBvZiBDcmFzaENvbnRl eHQuCi0gICB1Y29udGV4dF90KiB1Y19wdHIgPSAodWNvbnRleHRfdCopdWM7Ci0gICBpZiAodWNf cHRyLT51Y19tY29udGV4dC5mcHJlZ3MpIHsKLUBAIC03MDEsMTEgKzcwOCwxOSBAQCBib29sIEV4 Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7Ci0gICB9Ci0gI2VuZGlmCi0gCi0tI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZp bmVkKF9fbWlwc19fKQotKyNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9f YWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykgXAotKyAgICAmJiAhZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotICAgLy8gRlBVIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIEFSTSBFQUJJIHVjb250 ZXh0X3QuCi0gICBtZW1jcHkoJmNvbnRleHQuZmxvYXRfc3RhdGUsIGNvbnRleHQuY29udGV4dC51 Y19tY29udGV4dC5mcHJlZ3MsCi0gICAgICAgICAgc2l6ZW9mKGNvbnRleHQuZmxvYXRfc3RhdGUp KTsKLSAjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gVmVjdG9y IHJlZ2lzdGVycyBtdXN0IGJlIGNvcGllZCBvbiBQUEM2NAotKyAgbWVtY3B5KCZjb250ZXh0LnZl Y3Rvcl9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LnZfcmVncywKLSsgICAgICAg ICBzaXplb2YoY29udGV4dC52ZWN0b3Jfc3RhdGUpKTsKLSsjZW5kaWYKLSsKLSAgIGNvbnRleHQu dGlkID0gc3lzX2dldHRpZCgpOwotIAotICAgLy8gQWRkIGFuIGV4Y2VwdGlvbiBzdHJlYW0gdG8g dGhlIG1pbmlkdW1wIGZvciBiZXR0ZXIgcmVwb3J0aW5nLgotQEAgLTcyNiw2ICs3NDEsOSBAQCBi b29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7Ci0gI2VsaWYgZGVmaW5lZChf X21pcHNfXykKLSAgIGNvbnRleHQuc2lnaW5mby5zaV9hZGRyID0KLSAgICAgICByZWludGVycHJl dF9jYXN0PHZvaWQqPihjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQucGMpOwotKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGNvbnRleHQuc2lnaW5mby5zaV9hZGRyID0KLSsgICAg ICByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9OSVBdKTsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBw b3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9u X2hhbmRsZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAotaW5kZXggZjQ0NDgzZmYuLjM2Y2U2ZDZjIDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCi1A QCAtMTkyLDcgKzE5MiwxMSBAQCBjbGFzcyBFeGNlcHRpb25IYW5kbGVyIHsKLSAgICAgc2lnaW5m b190IHNpZ2luZm87Ci0gICAgIHBpZF90IHRpZDsgIC8vIHRoZSBjcmFzaGluZyB0aHJlYWQuCi0g ICAgIHVjb250ZXh0X3QgY29udGV4dDsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAvLyBQ UEM2NCdzIEZQIHN0YXRlIGlzIGEgcGFydCBvZiB1Y29udGV4dF90IGxpa2UgTUlQUyBidXQgdGhl IHZlY3RvcgotKyAgICAvLyBzdGF0ZSBpcyBub3QsIHNvIGEgc3RydWN0IGlzIG5lZWRlZC4KLSsg ICAgdnN0YXRlX3QgdmVjdG9yX3N0YXRlOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykg JiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIC8vICNpZmRlZiB0aGlzIG91dCBiZWNhdXNlIEZQ IHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIGZvciBMaW51eCBBUk0uCi0gICAgIC8vIElu IGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2YgdWNvbnRleHRf dCBzbwotICAgICAvLyAnZmxvYXRfc3RhdGUnIGlzIG5vdCByZXF1aXJlZC4KLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYwot aW5kZXggOGQ4ODA5ZmEuLmUyZWIwMzFlIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3Vu aXR0ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKLUBAIC0zMDcsNyAr MzA3LDcgQEAgVEVTVChFeGNlcHRpb25IYW5kbGVyVGVzdCwgUGFyYWxsZWxDaGlsZENyYXNoZXNE b250SGFuZykgewotICAgfQotIAotICAgLy8gV2FpdCBhIHdoaWxlIHVudGlsIHRoZSBjaGlsZCBz aG91bGQgaGF2ZSBjcmFzaGVkLgotLSAgdXNsZWVwKDEwMDAwMDApOwotKyAgdXNsZWVwKDIwMDAw MDApOwotICAgLy8gS2lsbCB0aGUgY2hpbGQgaWYgaXQgaXMgc3RpbGwgcnVubmluZy4KLSAgIGtp bGwoY2hpbGQsIFNJR0tJTEwpOwotIAotQEAgLTU1OSw2ICs1NTksOCBAQCBjb25zdCB1bnNpZ25l ZCBjaGFyIGtJbGxlZ2FsSW5zdHJ1Y3Rpb25bXSA9IHsKLSAjaWYgZGVmaW5lZChfX21pcHNfXykK LSAgIC8vIG1mYzIgemVybyxJbXBsIC0gdXN1YWxseSBpbGxlZ2FsIGluIHVzZXJzcGFjZS4KLSAg IDB4NDgsIDB4MDAsIDB4MDAsIDB4NDgKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0r ICAweDAxLCAweDAxLCAweDAxLCAweDAxIC8vIENyYXNoZXMgb24gYSB0ZXN0ZWQgUE9XRVI5IGNw dQotICNlbHNlCi0gICAvLyBUaGlzIGNyYXNoZXMgd2l0aCBTSUdJTEwgb24geDg2L3g4Ni02NC9h cm0uCi0gICAweGZmLCAweGZmLCAweGZmLCAweGZmCi1AQCAtNzU0LDEwICs3NTYsMTAgQEAgVEVT VChFeGNlcHRpb25IYW5kbGVyVGVzdCwgSW5zdHJ1Y3Rpb25Qb2ludGVyTWVtb3J5TWF4Qm91bmQp IHsKLSAKLSAgIC8vIFRoZXNlIGFyZSBkZWZpbmVkIGhlcmUgc28gdGhlIHBhcmVudCBjYW4gdXNl IHRoZW0gdG8gY2hlY2sgdGhlCi0gICAvLyBkYXRhIGZyb20gdGhlIG1pbmlkdW1wIGFmdGVyd2Fy ZHMuCi0tICAvLyBVc2UgNGsgaGVyZSBiZWNhdXNlIHRoZSBPUyB3aWxsIGhhbmQgb3V0IGEgc2lu Z2xlIHBhZ2UgZXZlbgotKyAgLy8gVXNlIHRoZSBwYWdlIHNpemUgaGVyZSBiZWNhdXNlIHRoZSBP UyB3aWxsIGhhbmQgb3V0IGEgc2luZ2xlIHBhZ2UgZXZlbgotICAgLy8gaWYgYSBzbWFsbGVyIHNp emUgaXMgcmVxdWVzdGVkLCBhbmQgdGhpcyB0ZXN0IHdhbnRzIHRvCi0gICAvLyB0ZXN0IHRoZSB1 cHBlciBib3VuZCBvZiB0aGUgbWVtb3J5IHJhbmdlLgotLSAgY29uc3QgdWludDMyX3Qga01lbW9y eVNpemUgPSA0MDk2OyAgLy8gYnl0ZXMKLSsgIGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0g Z2V0cGFnZXNpemUoKTsgIC8vIGJ5dGVzCi0gICBjb25zdCBpbnQga09mZnNldCA9IGtNZW1vcnlT aXplIC0gc2l6ZW9mKGtJbGxlZ2FsSW5zdHJ1Y3Rpb24pOwotIAotICAgY29uc3QgcGlkX3QgY2hp bGQgPSBmb3JrKCk7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRl ci9taWNyb2R1bXBfd3JpdGVyLmNjCi1pbmRleCBmYTNjMTcxMy4uNmNlNzA5ZTIgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3Jv ZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93 cml0ZXIuY2MKLUBAIC0xMzgsNyArMTM4LDkgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKLSAg ICAgICAgICAgICAgICAgICBjb25zdCBNaWNyb2R1bXBFeHRyYUluZm8mIG1pY3JvZHVtcF9leHRy YV9pbmZvLAotICAgICAgICAgICAgICAgICAgIExpbnV4RHVtcGVyKiBkdW1wZXIpCi0gICAgICAg OiB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0IDogTlVMTCksCi0tI2lmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsgICAgICAgIHZlY3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0 LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYm ICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAgICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29u dGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKLSAjZW5kaWYKLSAgICAgICAgIGR1bXBlcl8oZHVt cGVyKSwKLUBAIC0zMzcsNiArMzM5LDggQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKLSAjIGVs c2UKLSAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCAo bjMyKSIKLSAjZW5kaWYKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIGNvbnN0 IGNoYXIga0FyY2hbXSA9ICJwcGM2NCI7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBoYXMg bm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgotICNlbmRpZgotQEAgLTQwOSw3 ICs0MTMsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAgdm9pZCBEdW1wQ1BVU3RhdGUo KSB7Ci0gICAgIFJhd0NvbnRleHRDUFUgY3B1OwotICAgICBteV9tZW1zZXQoJmNwdSwgMCwgc2l6 ZW9mKFJhd0NvbnRleHRDUFUpKTsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVm aW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICBVQ29udGV4 dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfLCB2ZWN0b3Jfc3RhdGVfKTsK LSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAg ICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRfLCBmbG9hdF9z dGF0ZV8pOwotICNlbHNlCi0gICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dCgmY3B1 LCB1Y29udGV4dF8pOwotQEAgLTYwNSw3ICs2MTEsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIg ewotICAgdm9pZCogQWxsb2ModW5zaWduZWQgYnl0ZXMpIHsgcmV0dXJuIGR1bXBlcl8tPmFsbG9j YXRvcigpLT5BbGxvYyhieXRlcyk7IH0KLSAKLSAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVj b250ZXh0XzsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNf XykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29uc3QgZ29vZ2xlX2JyZWFrcGFk Ojp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9F QUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgY29uc3QgZ29vZ2xlX2JyZWFrcGFkOjpm cHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsKLSAjZW5kaWYKLSAgIExpbnV4RHVtcGVyKiBk dW1wZXJfOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYyB0 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93 cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYwotaW5kZXggNjMzOWFjMGMuLjI5MWFm MTA2IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLSsr KyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9k dW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1AQCAtMjc5LDEwICsyNzks MTkgQEAgVEVTVChNaWNyb2R1bXBXcml0ZXJUZXN0LCBCYXNpY1dpdGhNYXBwaW5ncykgewotICAg Q3Jhc2hBbmRHZXRNaWNyb2R1bXAobWFwcGluZ3MsIE1pY3JvZHVtcEV4dHJhSW5mbygpLCAmYnVm KTsKLSAgIEFTU0VSVF9UUlVFKENvbnRhaW5zTWljcm9kdW1wKGJ1ZikpOwotIAotKyAgaW50IHBh Z2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7Ci0gI2lmZGVmIF9fTFA2NF9fCi0tICBBU1NFUlRfTkUo c3RkOjpzdHJpbmc6Om5wb3MsCi0tICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAw MTAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMDEwMDAgIgotLSAgICAgICAgICAgICAg ICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwot KyAgLy8gVGhpcyB0ZXN0IGlzIG9ubHkgYXZhaWxhYmxlIGZvciB0aGUgZm9sbG93aW5nIHBhZ2Ug c2l6ZXMKLSsgIEFTU0VSVF9UUlVFKChwYWdlX3NpemUgPT0gNDA5NikgfHwgKHBhZ2Vfc2l6ZSA9 PSA2NTUzNikpOwotKyAgaWYgKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB7IAotKyAgICBBU1NFUlRfTkUo c3RkOjpzdHJpbmc6Om5wb3MsCi0rICAgICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAw MDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCi0rICAgICAgICAgICAg ICAgICAgICAgICAiMzMyMjExMDA1NTQ0Nzc2Njg4OTlBQUJCQ0NEREVFRkYwIGxpYmZvby5zbyIp KTsKLSsgIH0gZWxzZSB7Ci0rICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSsgICAg ICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMTAwMDAgMDAwMDAwMDAwMDAwMDAyQSAw MDAwMDAwMDAwMDEwMDAwICIKLSsgICAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3 NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgfQotICNlbHNlCi0gICBBU1NF UlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCi0gICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDEw MDAgMDAwMDAwMkEgMDAwMDEwMDAgIgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBl ci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlk dW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotaW5kZXggNDE1MDY4OTguLmI5M2U0YWZj IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLSsrKyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X2NvcmVfZHVtcGVyLmNjCi1AQCAtMTEyLDYgKzExMiw5IEBAIGJvb2wgTGludXhDb3JlRHVt cGVyOjpHZXRUaHJlYWRJbmZvQnlJbmRleChzaXplX3QgaW5kZXgsIFRocmVhZEluZm8qIGluZm8p IHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgc3RhY2tfcG9pbnRlciA9Ci0gICAgICAg cmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVY VF9NSVBTX1JFR19TUF0pOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIHN0YWNr X3BvaW50ZXIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250 ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdKTsKLSAjZWxzZQotICNlcnJvciAi VGhpcyBjb2RlIGhhc24ndCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2Vu ZGlmCi1AQCAtMTk3LDcgKzIwMCwxMCBAQCBib29sIExpbnV4Q29yZUR1bXBlcjo6RW51bWVyYXRl VGhyZWFkcygpIHsKLSAgICAgICAgIG1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKFRocmVhZEluZm8p KTsKLSAgICAgICAgIGluZm8udGdpZCA9IHN0YXR1cy0+cHJfcGdycDsKLSAgICAgICAgIGluZm8u cHBpZCA9IHN0YXR1cy0+cHJfcHBpZDsKLS0jaWYgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMTsgaSsr KQotKyAgICAgICAgICAgIGluZm8ubWNvbnRleHQuZ3BfcmVnc1tpXSA9IHN0YXR1cy0+cHJfcmVn W2ldOwotKyNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gI2lmIGRlZmluZWQoX19BTkRST0lEX18p Ci0gICAgICAgICBmb3IgKGludCBpID0gRUZfUjA7IGkgPD0gRUZfUjMxOyBpKyspCi0gICAgICAg ICAgIGluZm8ubWNvbnRleHQuZ3JlZ3NbaSAtIEVGX1IwXSA9IHN0YXR1cy0+cHJfcmVnW2ldOwot ZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi1p bmRleCAxMTEyMDM1Yi4uODUyM2RhZDYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIu Y2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwotQEAgLTc2NSw3ICs3NjUsOSBAQCBib29s IExpbnV4RHVtcGVyOjpHZXRTdGFja0luZm8oY29uc3Qgdm9pZCoqIHN0YWNrLCBzaXplX3QqIHN0 YWNrX2xlbiwKLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbnRfc3RhY2tfcG9p bnRlciAmIH4ocGFnZV9zaXplIC0gMSkpOwotIAotICAgLy8gVGhlIG51bWJlciBvZiBieXRlcyBv ZiBzdGFjayB3aGljaCB3ZSB0cnkgdG8gY2FwdHVyZS4KLS0gIHN0YXRpYyBjb25zdCBwdHJkaWZm X3Qga1N0YWNrVG9DYXB0dXJlID0gMzIgKiAxMDI0OwotKyAgLy8gVGhpcyBub3cgZGVwZW5kcyBv biBwYWdlX3NpemUgdG8gYXZvaWQgbWlzc2luZyBkYXRhCi0rICAvLyBvbiBzeXN0ZW1zIHdpdGgg bGFyZ2VyIHBhZ2Ugc2l6ZXMuCi0rICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IGtTdGFja1RvQ2Fw dHVyZSA9IDggKiBwYWdlX3NpemU7Ci0gCi0gICBjb25zdCBNYXBwaW5nSW5mbyogbWFwcGluZyA9 IEZpbmRNYXBwaW5nKHN0YWNrX3BvaW50ZXIpOwotICAgaWYgKCFtYXBwaW5nKQotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9kdW1wZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotaW5kZXggZjRhNzVk OTAuLjAyMDk4MWY1IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmgKLSsrKyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL2xpbnV4X2R1bXBlci5oCi1AQCAtNjMsNyArNjMsOCBAQCBuYW1lc3BhY2UgZ29vZ2xlX2Jy ZWFrcGFkIHsKLSAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBfQUJJTzMyKQot IHR5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXhfZW50cnk7Ci0gI2VsaWYgZGVmaW5lZChfX3g4 Nl82NCkgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAgICAgKGRlZmluZWQoX19taXBz X18pICYmIF9NSVBTX1NJTSAhPSBfQUJJTzMyKQotKyAgICAgKGRlZmluZWQoX19taXBzX18pICYm IF9NSVBTX1NJTSAhPSBfQUJJTzMyKSB8fCBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gdHlwZWRlZiBFbGY2NF9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKLSAjZW5kaWYKLSAKLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYyB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9k dW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1pbmRleCAzYWQ0OGU1MC4uMTY4OGMzNjUgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi0rKysgYi90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1AQCAtNTEsNiArNTEsOCBAQAotICNk ZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicmN4IgotICNlbGlmIGRlZmluZWQoX19taXBzX18pCi0g I2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICIkMSIKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyOCIKLSAjZWxzZQotICNlcnJvciBUaGlz IHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRpZgotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9k dW1wZXIuY2MKLWluZGV4IGUzZGRiODFhLi5mYTI4NTc1ZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X3B0cmFjZV9kdW1wZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MK LUBAIC0xNDksMTkgKzE0OSwyNyBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpDb3B5RnJvbVBy b2Nlc3Modm9pZCogZGVzdCwgcGlkX3QgY2hpbGQsCi0gICByZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0t Ym9vbCBMaW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVhZEluZm8qIGluZm8s IHBpZF90IHRpZCkKLS17Ci0rYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0 KFRocmVhZEluZm8qIGluZm8sIHBpZF90IHRpZCkgewotICNpZmRlZiBQVFJBQ0VfR0VUUkVHU0VU Ci0gICBzdHJ1Y3QgaW92ZWMgaW87Ci0gICBpbmZvLT5HZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVy cygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKLS0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9H RVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgewot KyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUlNUQVRVUywg KHZvaWQqKSZpbykgPT0gLTEpIHsKLSAgICAgcmV0dXJuIGZhbHNlOwotICAgfQotIAotICAgaW5m by0+R2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsK LS0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVH U0VULCAodm9pZCopJmlvKSA9PSAtMSkgewotKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VU LCB0aWQsICh2b2lkKilOVF9GUFJFR1NFVCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKLSAgICAgcmV0 dXJuIGZhbHNlOwotICAgfQotKwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBH cmFiIHRoZSB2ZWN0b3IgcmVnaXN0ZXJzIG9uIFBQQzY0IHRvbwotKyAgaW5mby0+R2V0VmVjdG9y UmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotKyAgaWYgKHB0cmFjZShQVFJB Q0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUENfVk1YLCAodm9pZCopJmlvKSA9PSAtMSkg ewotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rI2VuZGlmIC8vIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsKLSAgIHJldHVybiB0cnVlOwotICNlbHNlCi0gICByZXR1cm4gZmFsc2U7Ci1AQCAt Mjk4LDYgKzMwNiw5IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkdldFRocmVhZEluZm9CeUlu ZGV4KHNpemVfdCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgewotICNlbGlmIGRlZmluZWQoX19t aXBzX18pCi0gICBzdGFja19wb2ludGVyID0KLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4 X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7Ci0rI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhY2tfcG9pbnRlciA9Ci0rICAgICAgcmVp bnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhU X1BQQzY0X1JFR19TUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4g cG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfcHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVy X3VuaXR0ZXN0LmNjCi1pbmRleCBlYTZiOWExMi4uOWIzMThmZTAgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJh Y2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi1AQCAtNDYyLDYgKzQ2Miw5IEBAIFRFU1QoTGludXhQdHJh Y2VEdW1wZXJUZXN0LCBWZXJpZnlTdGFja1JlYWRXaXRoTXVsdGlwbGVUaHJlYWRzKSB7Ci0gI2Vs aWYgZGVmaW5lZChfX21pcHNfXykKLSAgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0aW9uID0K LSAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250ZXh0Lmdy ZWdzWzFdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIHBpZF90KiBwcm9j ZXNzX3RpZF9sb2NhdGlvbiA9Ci0rICAgICAgICByZWludGVycHJldF9jYXN0PHBpZF90Kj4ob25l X3RocmVhZC5tY29udGV4dC5ncF9yZWdzWzhdKTsKLSAjZWxzZQotICNlcnJvciBUaGlzIHRlc3Qg aGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRpZgotQEAgLTU1OSw2 ICs1NjIsOCBAQCBURVNUX0YoTGludXhQdHJhY2VEdW1wZXJUZXN0LCBTYW5pdGl6ZVN0YWNrQ29w eSkgewotICAgdWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLnJlZ3MucmN4OwotICNl bGlmIGRlZmluZWQoX19taXBzX18pCi0gICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2lu Zm8ubWNvbnRleHQuZ3JlZ3NbMV07Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAg dWludHB0cl90IGhlYXBfYWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdwX3JlZ3NbOF07Ci0g I2Vsc2UKLSAjZXJyb3IgVGhpcyB0ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0 Zm9ybS4KLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L21pbmlkdW1wX3dyaXRlci5jYwotaW5kZXggZjhjZGYyYTEuLmNiODA4YzE1IDEwMDY0NAotLS0t IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIu Y2MKLUBAIC0xMzYsNyArMTM2LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAgICAgIDog ZmRfKG1pbmlkdW1wX2ZkKSwKLSAgICAgICAgIHBhdGhfKG1pbmlkdW1wX3BhdGgpLAotICAgICAg ICAgdWNvbnRleHRfKGNvbnRleHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAotLSNpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rICAgICAgICB2ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4 dC0+dmVjdG9yX3N0YXRlIDogTlVMTCksCi0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAm JiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8gJmNv bnRleHQtPmZsb2F0X3N0YXRlIDogTlVMTCksCi0gI2VuZGlmCi0gICAgICAgICBkdW1wZXJfKGR1 bXBlciksCi1AQCAtNDY4LDcgKzQ3MCw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAg ICAgIGlmICghY3B1LkFsbG9jYXRlKCkpCi0gICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg ICAgIG15X21lbXNldChjcHUuZ2V0KCksIDAsIHNpemVvZihSYXdDb250ZXh0Q1BVKSk7Ci0tI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4 dChjcHUuZ2V0KCksIHVjb250ZXh0XywgdmVjdG9yX3N0YXRlXyk7Ci0rI2VsaWYgIWRlZmluZWQo X19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgICAgIFVDb250ZXh0UmVh ZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsK LSAjZWxzZQotICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQo KSwgdWNvbnRleHRfKTsKLUBAIC04OTcsNyArOTAxLDcgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIg ewotICAgICBkaXJlbnQtPmxvY2F0aW9uLnJ2YSA9IDA7Ci0gICB9Ci0gCi0tI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f bWlwc19fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBib29sIFdyaXRlQ1BVSW5mb3Jt YXRpb24oTURSYXdTeXN0ZW1JbmZvKiBzeXNfaW5mbykgewotICAgICBjaGFyIHZlbmRvcl9pZFtz aXplb2Yoc3lzX2luZm8tPmNwdS54ODZfY3B1X2luZm8udmVuZG9yX2lkKSArIDFdID0gezB9Owot ICAgICBzdGF0aWMgY29uc3QgY2hhciB2ZW5kb3JfaWRfbmFtZVtdID0gInZlbmRvcl9pZCI7Ci1A QCAtOTE3LDcgKzkyMSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAKLSAgICAgLy8gcHJv Y2Vzc29yX2FyY2hpdGVjdHVyZSBzaG91bGQgYWx3YXlzIGJlIHNldCwgZG8gdGhpcyBmaXJzdAot ICAgICBzeXNfaW5mby0+cHJvY2Vzc29yX2FyY2hpdGVjdHVyZSA9Ci0tI2lmIGRlZmluZWQoX19t aXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIE1EX0NQVV9BUkNI SVRFQ1RVUkVfUFBDNjQ7Ci0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAjIGlmIF9NSVBTX1NJ TSA9PSBfQUJJTzMyCi0gICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJFX01JUFM7Ci0gIyBlbGlm IF9NSVBTX1NJTSA9PSBfQUJJNjQKLUBAIC0xMzMzLDcgKzEzMzksOSBAQCBjbGFzcyBNaW5pZHVt cFdyaXRlciB7Ci0gICBjb25zdCBjaGFyKiBwYXRoXzsgIC8vIFBhdGggdG8gdGhlIGZpbGUgd2hl cmUgdGhlIG1pbmlkdW0gc2hvdWxkIGJlIHdyaXR0ZW4uCi0gCi0gICBjb25zdCB1Y29udGV4dF90 KiBjb25zdCB1Y29udGV4dF87ICAvLyBhbHNvIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCi0tI2lm ICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3QqIGNv bnN0IHZlY3Rvcl9zdGF0ZV87Ci0rI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVm aW5lZChfX21pcHNfXykKLSAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBjb25z dCBmbG9hdF9zdGF0ZV87ICAvLyBkaXR0bwotICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1bXBl cl87Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dy aXRlci5oCi1pbmRleCBlM2IwYjE2ZC4uY2NkOGFhMGEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5p ZHVtcF93cml0ZXIuaAotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKLUBAIC00OCw2ICs0 OCw4IEBAIGNsYXNzIEV4Y2VwdGlvbkhhbmRsZXI7Ci0gCi0gI2lmIGRlZmluZWQoX19hYXJjaDY0 X18pCi0gdHlwZWRlZiBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQgZnBzdGF0ZV90OwotKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSt0eXBlZGVmIHZycmVnc2V0X3QgdnN0YXRlX3Q7Ci0gI2Vs aWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSB0eXBlZGVm IHN0ZDo6cmVtb3ZlX3BvaW50ZXI8ZnByZWdzZXRfdD46OnR5cGUgZnBzdGF0ZV90OwotICNlbmRp ZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWlu aWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi1pbmRleCAzMDE3YTQ5YS4uMzY0ZWZkNzkgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21p bmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYwotQEAgLTcxNSw2ICs3MTUsOSBAQCBURVNUKE1pbmlk dW1wV3JpdGVyVGVzdCwgSW52YWxpZFN0YWNrUG9pbnRlcikgewotICNlbGlmIGRlZmluZWQoX19t aXBzX18pCi0gICBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbTURfQ09OVEVYVF9N SVBTX1JFR19TUF0gPQotICAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRlcjsKLSsjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rICBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVn c1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0gPQotKyAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRl cjsKLSAjZWxzZQotICMgZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlv dXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2Zp bGUuY2MKLWluZGV4IDRlOTM4MjY5Li5mMGZmMTVkOSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNj Ci0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21l bW9yeV9tYXBwZWRfZmlsZS5jYwotQEAgLTY1LDggKzY1LDcgQEAgYm9vbCBNZW1vcnlNYXBwZWRG aWxlOjpNYXAoY29uc3QgY2hhciogcGF0aCwgc2l6ZV90IG9mZnNldCkgewotICAgfQotIAotICNp ZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKLS0gICAo ZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkKLS0KLSsgICAoZGVmaW5l ZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQkk2NCkgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgc3RydWN0IGtlcm5lbF9zdGF0IHN0OwotICAgaWYgKHN5c19mc3RhdChmZCwgJnN0 KSA9PSAtMSB8fCBzdC5zdF9zaXplIDwgMCkgewotICNlbHNlCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxl X3VuaXR0ZXN0LmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGlu dXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi1pbmRleCBmYWQ1OWY0MC4uNjE2NDk2 ZDYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9u L2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5p dHRlc3QuY2MKLUBAIC0xNzYsOSArMTc2LDEwIEBAIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVz dCwgUmVtYXBBZnRlck1hcCkgewotIFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgTWFwV2l0 aE9mZnNldCkgewotICAgLy8gUHV0IG1vcmUgZGF0YSBpbiB0aGUgdGVzdCBmaWxlIHRoaXMgdGlt ZS4gT2Zmc2V0cyBjYW4gb25seSBiZQotICAgLy8gZG9uZSBvbiBwYWdlIGJvdW5kYXJpZXMsIHNv IHdlIG5lZWQgYSB0d28gcGFnZSBmaWxlIHRvIHRlc3QgdGhpcy4KLS0gIGNvbnN0IGludCBwYWdl X3NpemUgPSA0MDk2OwotLSAgY2hhciBkYXRhMVsyICogcGFnZV9zaXplXTsKLS0gIHNpemVfdCBk YXRhMV9zaXplID0gc2l6ZW9mKGRhdGExKTsKLSsgIGNvbnN0IGludCBwYWdlX3NpemUgPSBnZXRw YWdlc2l6ZSgpOwotKyAgY2hhciAqZGF0YTEgPSBzdGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKDIg KiBwYWdlX3NpemUpKTsKLSsgIEVYUEVDVF9UUlVFKGRhdGExICE9IE5VTEwpOwotKyAgc2l6ZV90 IGRhdGExX3NpemUgPSAoMiAqIHBhZ2Vfc2l6ZSk7Ci0gICBmb3IgKHNpemVfdCBpID0gMDsgaSA8 IGRhdGExX3NpemU7ICsraSkgewotICAgICBkYXRhMVtpXSA9IGkgJiAweDdmOwotICAgfQotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9h bGxvY2F0b3JfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Nv bW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1pbmRleCA0M2M4NjMxNC4uMjczMjVi ODEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9u L21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jb21tb24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwotQEAgLTU3 LDggKzU3LDkgQEAKLSAKLSAgIEVYUEVDVF9FUSgwVSwgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRl ZCgpKTsKLSAgIHVpbnQ4X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0 b3IuQWxsb2MoMTAwMDApKTsKLSsgIHVpbnQ2NF90IGV4cGVjdGVkX3BhZ2VzID0gMSArICgoMTAw MDAgLSAxKSAvIGdldHBhZ2VzaXplKCkpOwotICAgQVNTRVJUX0ZBTFNFKHAgPT0gTlVMTCk7Ci0t ICBFWFBFQ1RfRVEoM1UsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7Ci0rICBFWFBFQ1Rf RVEoZXhwZWN0ZWRfcGFnZXMsIGFsbG9jYXRvci5wYWdlc19hbGxvY2F0ZWQoKSk7Ci0gICBmb3Ig KHVuc2lnbmVkIGkgPSAxOyBpIDwgMTA7ICsraSkgewotICAgICB1aW50OF90KiBwID0gcmVpbnRl cnByZXRfY2FzdDx1aW50OF90Kj4oYWxsb2NhdG9yLkFsbG9jKGkpKTsKLSAgICAgQVNTRVJUX0ZB TFNFKHAgPT0gTlVMTCk7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfbGludXguY2MgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotaW5kZXgg Y2NjOWYxNDUuLmRlYmFlZDRkIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotKysrIGIvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51 eC5jYwotQEAgLTIwMiwxMiArMjAyLDE0IEBAIGJvb2wgRXhwbG9pdGFiaWxpdHlMaW51eDo6RW5k ZWRPbklsbGVnYWxXcml0ZSh1aW50NjRfdCBpbnN0cnVjdGlvbl9wdHIpIHsKLSAgIC8vIENoZWNr IGFyY2hpdGVjdHVyZSBhbmQgc2V0IGFyY2hpdGVjdHVyZSB2YXJpYWJsZSB0byBjb3JyZXNwb25k aW5nIGZsYWcKLSAgIC8vIGluIG9iamR1bXAuCi0gICBzd2l0Y2ggKGNvbnRleHQtPkdldENvbnRl eHRDUFUoKSkgewotKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkKLSAg ICAgY2FzZSBNRF9DT05URVhUX1g4NjoKLSAgICAgICBhcmNoaXRlY3R1cmUgPSAiaTM4NiI7Ci0g ICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgTURfQ09OVEVYVF9BTUQ2NDoKLSAgICAgICBhcmNoaXRl Y3R1cmUgPSAiaTM4Njp4ODYtNjQiOwotICAgICAgIGJyZWFrOwotKyNlbmRpZgotICAgICBkZWZh dWx0OgotICAgICAgIC8vIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4gTm90ZSB0aGF0IEFSTSBh cmNoaXRlY3R1cmVzIGFyZSBub3QKLSAgICAgICAvLyBzdXBwb3J0ZWQgYmVjYXVzZSBvYmpkdW1w IGRvZXMgbm90IHN1cHBvcnQgQVJNLgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRl c3QuY2MKLWluZGV4IDUyOGVlNWYyLi43Mjc2NGQ2YyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3Qu Y2MKLSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhw bG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKLUBAIC0xMDQsNiArMTA0LDggQEAgRXhwbG9pdGFiaWxp dHlGb3IoY29uc3Qgc3RyaW5nJiBmaWxlbmFtZSkgewotIH0KLSAKLSBURVNUKEV4cGxvaXRhYmls aXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKLSsvLyBUaGUgZm9sbG93aW5nIHRlc3RzIGFy ZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4IG1hY2hpbmUuCi0rI2lmICFk ZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkK LSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAg ICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImFzY2lpX3JlYWRfYXYuZG1wIikpOwotICAgQVNT RVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLUBAIC0xMzYsOSAr MTM4LDEyIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2luZG93c0VuZ2luZSkgewot ICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2Nsb2JiZXJfd3JpdGUuZG1w IikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfTE9XLAot ICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2NvbmRpdGlvbmFsLmRtcCIp KTsKLSsjZW5kaWYKLSB9Ci0gCi0gVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVu Z2luZSkgewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkgZXhlY3V0YWJsZSBvbiBh biB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRlZmlu ZWQoX194ODZfNjQpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElU WV9JTlRFUkVTVElORywKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfbnVs bF9yZWFkX2F2LmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRB QklMSVRZX0hJR0gsCi1AQCAtMTcxLDcgKzE3Niw4IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0 LCBUZXN0TGludXhFbmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGlu dXhfZXhlY3V0YWJsZV9oZWFwLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6 OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxp bnV4X2ptcF90b19tb2R1bGVfbm90X2V4ZV9yZWdpb24uZG1wIikpOwotLSNpZm5kZWYgX1dJTjMy Ci0rI2VuZGlmCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBk ZWZpbmVkKF9feDg2XzY0KSkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRB QklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRl X3RvX25vbndyaXRhYmxlX21vZHVsZS5kbXAiKSk7Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFr cGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTE4MiwxMCArMTg4LDEwIEBAIFRFU1QoRXhw bG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0 YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fb3V0c2lkZV9tb2R1bGVfdmlhX21hdGguZG1wIikp OwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSU5URVJFU1RJ TkcsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4X3dyaXRlX3RvX3VuZGVy XzRrLmRtcCIpKTsKLS0jZW5kaWYgIC8vIF9XSU4zMgotKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJ TjMyKSAmJiAoIWRlZmluZWQoX19pMzg2KSAmJiAhZGVmaW5lZChfX3g4Nl82NCkpCi0gfQotIAot LSNpZm5kZWYgX1dJTjMyCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2 KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rl c3QsIERpc2Fzc2VtYmxlQnl0ZXNUZXN0KSB7Ci0gICBBU1NFUlRfRkFMU0UoRXhwbG9pdGFiaWxp dHlMaW51eFRlc3Q6OkRpc2Fzc2VtYmxlQnl0ZXMoIiIsIE5VTEwsIDUsIE5VTEwpKTsKLSAgIHVp bnQ4X3QgYnl0ZXNbNl0gPSB7MHhjNywgMHgwLCAweDUsIDB4MCwgMHgwLCAweDB9OwotQEAgLTMw MSw2ICszMDcsNyBAQCBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGlsc1Rlc3QsIENhbGN1bGF0 ZUFkZHJlc3NUZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd3JpdGVfYWRkcmVzcykpOwotIH0KLS0jZW5k aWYgIC8vIF9XSU4zMgotKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChf X2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotKwotIAotIH0gIC8vIG5hbWVzcGFjZQotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvdG9vbHMvbGludXgvbWQy Y29yZS9taW5pZHVtcC0yLWNvcmUuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi1pbmRleCBhNjBiZTMyMy4u MzViMTFiNmQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv dG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MKLSsrKyBiL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29y ZS5jYwotQEAgLTc3LDYgKzc3LDggQEAKLSAgICNkZWZpbmUgRUxGX0FSQ0ggIEVNX01JUFMKLSAj ZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAgI2RlZmluZSBFTEZfQVJDSCAgRU1fQUFSQ0g2 NAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICNkZWZpbmUgRUxGX0FSQ0ggIEVN X1BQQzY0Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19hcm1fXykKLUBAIC04Nyw2ICs4OSw4 IEBAIHR5cGVkZWYgdXNlcl9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7Ci0gI2VsaWYgZGVmaW5lZCAo X19taXBzX18pCi0gLy8gVGhpcyBmaWxlLWxvY2FsIHR5cGVkZWYgc2ltcGxpZmllcyB0aGUgc291 cmNlIGNvZGUuCi0gdHlwZWRlZiBncmVnc2V0X3QgdXNlcl9yZWdzX3N0cnVjdDsKLSsjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyB1c2VyX3JlZ3Nf c3RydWN0OwotICNlbmRpZgotIAotIHVzaW5nIGdvb2dsZV9icmVha3BhZDo6TURUeXBlSGVscGVy OwotQEAgLTMyMSw2ICszMjUsOSBAQCBzdHJ1Y3QgQ3Jhc2hlZFByb2Nlc3MgewotICNlbmRpZgot ICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAgICB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdz OwotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIG1jb250ZXh0X3Qg bWNvbnRleHQ7Ci0gI2VuZGlmCi0gICAgIHVpbnRwdHJfdCBzdGFja19hZGRyOwotICAgICBjb25z dCB1aW50OF90KiBzdGFjazsKLUBAIC01MzUsNiArNTQyLDM4IEBAIFBhcnNlVGhyZWFkUmVnaXN0 ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHJlYWQqIHRocmVhZCwKLSAgIHRocmVhZC0+bWNvbnRleHQu ZnBjX2VpciA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZmlyOwotICNlbmRpZgotIH0KLSsjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rc3RhdGljIHZvaWQKLStQYXJzZVRocmVhZFJlZ2lzdGVy cyhDcmFzaGVkUHJvY2Vzczo6VGhyZWFkKiB0aHJlYWQsCi0rICAgICAgICAgICAgICAgICAgICAg Y29uc3QgTWluaWR1bXBNZW1vcnlSYW5nZSYgcmFuZ2UpIHsKLSsgIGNvbnN0IE1EUmF3Q29udGV4 dFBQQzY0KiByYXdyZWdzID0gcmFuZ2UuR2V0RGF0YTxNRFJhd0NvbnRleHRQUEM2ND4oMCk7Ci0r Ci0rICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKysp Ci0rICAgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tpXSA9IHJhd3JlZ3MtPmdwcltpXTsKLSsK LSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdID0gcmF3cmVncy0+bHI7Ci0rICB0 aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXSA9IHJhd3JlZ3MtPnNycjA7Ci0rICB0aHJl YWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXSA9IHJhd3JlZ3MtPnNycjE7Ci0rICB0aHJlYWQt Pm1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXSA9IHJhd3JlZ3MtPmNyOwotKyAgdGhyZWFkLT5tY29u dGV4dC5ncF9yZWdzW1BUX1hFUl0gPSByYXdyZWdzLT54ZXI7Ci0rICB0aHJlYWQtPm1jb250ZXh0 LmdwX3JlZ3NbUFRfQ1RSXSA9IHJhd3JlZ3MtPmN0cjsKLSsgIHRocmVhZC0+bWNvbnRleHQudl9y ZWdzLT52cnNhdmUgPSByYXdyZWdzLT52cnNhdmU7Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8 IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQotKyAgICAgIHRocmVhZC0+ bWNvbnRleHQuZnBfcmVnc1tpXSA9IHJhd3JlZ3MtPmZsb2F0X3NhdmUuZnByZWdzW2ldOwotKwot KyAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXSA9IHJhd3JlZ3MtPmZsb2F0X3Nh dmUuZnBzY3I7Ci0rCi0rICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQ Q19WUl9DT1VOVDsgaSsrKSB7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVn c1tpXVswXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0uaGlnaCA+PiAzMjsKLSsg ICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzFdID0gcmF3cmVncy0+dmVj dG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdz LT52cnJlZ3NbaV1bMl0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdyA+PiAz MjsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzNdID0gcmF3cmVn cy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5sb3c7Ci0rICB9Ci0rCi0rICB0aHJlYWQtPm1jb250 ZXh0LnZfcmVncy0+dnNjci52c2NyX3dvcmQgPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3Zz Y3IubG93ICYgMHhGRkZGRkZGRjsKLSt9Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMgY29kZSBo YXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgotICNlbmRpZgotQEAgLTYy Myw2ICs2NjIsMTIgQEAgUGFyc2VTeXN0ZW1JbmZvKGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMsIENy YXNoZWRQcm9jZXNzKiBjcmFzaGluZm8sCi0gIyBlbHNlCi0gIyAgZXJyb3IgIlRoaXMgbWlwcyBB QkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCi0gIyBlbmRpZgotKyNlbGlmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChzeXNpbmZvLT5wcm9jZXNzb3JfYXJjaGl0ZWN0 dXJlICE9IE1EX0NQVV9BUkNISVRFQ1RVUkVfUFBDNjQpIHsKLSsgICAgZnByaW50ZihzdGRlcnIs Ci0rICAgICAgICAgICAgIlRoaXMgdmVyc2lvbiBvZiBtaW5pZHVtcC0yLWNvcmUgb25seSBzdXBw b3J0cyBQUEM2NC5cbiIpOwotKyAgICBleGl0KDEpOwotKyAgfQotICNlbHNlCi0gI2Vycm9yICJU aGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKLSAjZW5k aWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JT IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUwotaW5kZXggODcyNGI3 ZjMuLjhlMjk0MjRlIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv Q09OVFJJQlVUT1JTCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9DT05UUklC VVRPUlMKLUBAIC0xMywzICsxMyw0IEBAIE1hcmsgTWVudG92YWkgPG1hcmtAY2hyb21pdW0ub3Jn PgotIFJvYmVydCBTZXNlayA8cnNlc2VrQGNocm9taXVtLm9yZz4KLSBTY290dCBHcmFoYW0gPHNj b3R0bWdAY2hyb21pdW0ub3JnPgotIEpvc2h1YSBQZXJhemEgPGpwZXJhemFAY2hyb21pdW0ub3Jn PgotK1NoYXduIEFuYXN0YXNpbyA8c2hhd25AYW5hc3Rhcy5pbz4KLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmggdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLWluZGV4IDZlZDc3 YTk4Li4xZmQ4MzQ2OSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L2NvbXBhdC9saW51eC9zeXMvdXNlci5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAotQEAgLTE1LDYgKzE1LDcgQEAKLSAjaWZuZGVm IENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXwotICNkZWZpbmUgQ1JBU0hQQURfQ09N UEFUX0xJTlVYX1NZU19VU0VSX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0gI2luY2x1ZGVf bmV4dCA8c3lzL3VzZXIuaD4KLSAKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5o IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQu aAotaW5kZXggM2EzZTYwM2MuLjMxMThkOWU5IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5oCi0rKysgYi90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0LmgKLUBAIC01 OTIsNiArNTkyLDcwIEBAIHN0cnVjdCBNaW5pZHVtcENvbnRleHRNSVBTNjQgewotICAgdWludDY0 X3QgZmlyOwotIH07Ci0gCi0rLy8hIFxicmllZiBwcGM2NC1zcGVjaWZpYyBmbGFncyBmb3IgTWlu aWR1bXBQUEM2NDo6Y29udGV4dF9mbGFncwotKy8vISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVfcHBj NjQuaCBmcm9tIGJyZWFrcGFkCi0rZW51bSBNaW5pZHVtcENvbnRleHRQUEM2NEZsYWdzIDogdWlu dDMyX3QgewotKyAgLy8hIFxicmllZiBJZGVudGlmaWVzIHRoZSBjb250ZXh0IGFzIFBQQzY0Lgot KyAga01pbmlkdW1wQ29udGV4dFBQQzY0ID0gMHgwMTAwMDAwMCwKLSsKLSsgIC8vISBcYnJpZWYg SW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzLgotKyAg Ly8hCi0rICAvLyEgUmVnaXN0ZXJzIGByMGAtYHIzMWAsIGBuaXBgLCBgbXNyYCwgYGxyYCwgZXRj LiBhcmUgdmFsaWQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNlID0ga01pbmlkdW1wQ29u dGV4dFBQQzY0IHwgMHgwMDAwMDAwMSwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2 YWxpZGl0eSBvZiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdp c3RlcnMgYGZwMGAtYGZwMzFgLCBgZnBzY3JgIGFyZSB2YWxpZC4KLSsgIGtNaW5pZHVtcENvbnRl eHRQUEM2NEZsb2F0aW5nID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAwOCwKLSsK LSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBBbHRpdmVjL1ZNWCByZWdp c3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMgYHYwYC1gdjMxYCwgYHZzY3JgLCBgdnJz YXZlYC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NFZlY3RvciA9IGtNaW5pZHVtcENvbnRleHRQ UEM2NCB8IDB4MDAwMDAwMjAsCi0rCi0rICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRp dHkgb2YgYWxsIHJlZ2lzdGVycwotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0QWxsID0ga01pbmlk dW1wQ29udGV4dFBQQzY0QmFzZSAgICAgfAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg a01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgfAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yCi0rfTsKLSsKLSsvLyEgXGJyaWVmIEEg UFBDNjQgQ1BVIGNvbnRleHQgY2FycmllZCBpbiBhIG1pbmlkdW1wIGZpbGUuCi0rLy8hIEJhc2Vk IG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQuCi0rc3RydWN0IE1pbmlkdW1w Q29udGV4dFBQQzY0IHsKLSsgIHVpbnQ2NF90IGNvbnRleHRfZmxhZ3M7Ci0rCi0rICAvLyEgXGJy aWVmIEdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCi0rICB1aW50NjRfdCBuaXA7Ci0rICB1aW50 NjRfdCBtc3I7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsgIHVpbnQ2NF90IGNjcjsKLSsgIHVp bnQ2NF90IHhlcjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVpbnQ2NF90IGN0cjsKLSsKLSsgIC8v ISBcYnJpZWYgRmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgotKyAgZG91YmxlIGZwcmVnc1szMl07 Ci0rCi0rICAvLyEgXGJyaWVmIEZQVSBzdGF0dXMgcmVnaXN0ZXIuCi0rICBkb3VibGUgZnBzY3I7 Ci0rCi0rICAvLyEgXGJyaWVmIEFsdGl2ZWMvVk1YIHZlY3RvciByZWdpc3RlcnMuCi0rICBzdHJ1 Y3QgewotKyAgICAgIC8vISBcYnJpZWYgVmVjdG9yIHJlZ2lzdGVycyBhcmUgMTI4Yml0cy4KLSsg ICAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZyWzMyXTsKLSsgICAgICB1aW50MTI4X3N0cnVjdCBz YXZlX3ZzY3I7Ci0rCi0rICAgICAgLy8hIFxicmllZiBQYWRkaW5nIGluY2x1ZGVkIGZvciBicmVh a3BhZCBjb21wYXRpYmlsdGl5LgotKyAgICAgIHVpbnQzMl90IHNhdmVfcGFkNVs0XTsKLSsKLSsg ICAgICAvLyEgXGJyaWVmIFZSU0FWRSByZWdpc3Rlci4KLSsgICAgICB1aW50MzJfdCBzYXZlX3Zy c2F2ZTsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9yIGJyZWFrcGFk IGNvbXBhdGliaWx0aXkuCi0rICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ2WzddOwotKyAgfSB2cmVn czsKLSt9OwotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAotICNlbmRpZiAgLy8gQ1JB U0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9IXwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYyB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dy aXRlci5jYwotaW5kZXggZDdlNTNhNDkuLmQ4OWViOWUwIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2Nv bnRleHRfd3JpdGVyLmNjCi1AQCAtMTAxLDYgKzEwMSwxMyBAQCBNaW5pZHVtcENvbnRleHRXcml0 ZXI6OkNyZWF0ZUZyb21TbmFwc2hvdChjb25zdCBDUFVDb250ZXh0KiBjb250ZXh0X3NuYXBzaG90 KSB7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAKLSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJl UFBDNjQ6IHsKLSsgICAgICBjb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxNaW5pZHVtcENvbnRl eHRQUEM2NFdyaXRlcj4oKTsKLSsgICAgICByZWludGVycHJldF9jYXN0PE1pbmlkdW1wQ29udGV4 dFBQQzY0V3JpdGVyKj4oY29udGV4dC5nZXQoKSkKLSsgICAgICAgICAgLT5Jbml0YWxpemVGcm9t U25hcHNob3QoY29udGV4dF9zbmFwc2hvdC0+cHBjNjQpOwotKyAgICAgIGJyZWFrOwotKyAgICB9 Ci0rCi0gICAgIGRlZmF1bHQ6IHsKLSAgICAgICBMT0coRVJST1IpIDw8ICJ1bmtub3duIGNvbnRl eHQgYXJjaGl0ZWN0dXJlICIKLSAgICAgICAgICAgICAgICAgIDw8IGNvbnRleHRfc25hcHNob3Qt PmFyY2hpdGVjdHVyZTsKLUBAIC00NTMsNCArNDYwLDQ3IEBAIHNpemVfdCBNaW5pZHVtcENvbnRl eHRNSVBTNjRXcml0ZXI6OkNvbnRleHRTaXplKCkgY29uc3QgewotICAgcmV0dXJuIHNpemVvZihj b250ZXh0Xyk7Ci0gfQotIAotK01pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpNaW5pZHVtcENv bnRleHRQUEM2NFdyaXRlcigpCi0rICA6IE1pbmlkdW1wQ29udGV4dFdyaXRlcigpLCBjb250ZXh0 XygpIHsKLSsgICAgY29udGV4dF8uY29udGV4dF9mbGFncyA9IGtNaW5pZHVtcENvbnRleHRQUEM2 NDsKLSt9Ci0rCi0rTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6On5NaW5pZHVtcENvbnRleHRQ UEM2NFdyaXRlcigpID0gZGVmYXVsdDsKLSsKLSt2b2lkIE1pbmlkdW1wQ29udGV4dFBQQzY0V3Jp dGVyOjpJbml0YWxpemVGcm9tU25hcHNob3QoCi0rICAgIGNvbnN0IENQVUNvbnRleHRQUEM2NCog Y29udGV4dF9zbmFwc2hvdCkgewotKyAgRENIRUNLX0VRKHN0YXRlKCksIGtTdGF0ZU11dGFibGUp OwotKyAgRENIRUNLX0VRKGNvbnRleHRfLmNvbnRleHRfZmxhZ3MsIGtNaW5pZHVtcENvbnRleHRQ UEM2NCk7Ci0rCi0rICBjb250ZXh0Xy5jb250ZXh0X2ZsYWdzID0ga01pbmlkdW1wQ29udGV4dFBQ QzY0QWxsOwotKwotKyAgbWVtY3B5KGNvbnRleHRfLnJlZ3MsIGNvbnRleHRfc25hcHNob3QtPnJl Z3MsIHNpemVvZihjb250ZXh0Xy5yZWdzKSk7Ci0rICBjb250ZXh0Xy5uaXAgPSBjb250ZXh0X3Nu YXBzaG90LT5uaXA7Ci0rICBjb250ZXh0Xy5tc3IgPSBjb250ZXh0X3NuYXBzaG90LT5tc3I7Ci0r ICBjb250ZXh0Xy5jY3IgPSBjb250ZXh0X3NuYXBzaG90LT5jY3I7Ci0rICBjb250ZXh0Xy54ZXIg PSBjb250ZXh0X3NuYXBzaG90LT54ZXI7Ci0rICBjb250ZXh0Xy5sbmsgPSBjb250ZXh0X3NuYXBz aG90LT5sbms7Ci0rICBjb250ZXh0Xy5jdHIgPSBjb250ZXh0X3NuYXBzaG90LT5jdHI7Ci0rCi0r ICBtZW1jcHkoY29udGV4dF8uZnByZWdzLCBjb250ZXh0X3NuYXBzaG90LT5mcHJlZ3MsIHNpemVv Zihjb250ZXh0Xy5mcHJlZ3MpKTsKLSsgIGNvbnRleHRfLmZwc2NyID0gY29udGV4dF9zbmFwc2hv dC0+ZnBzY3I7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8udnJlZ3Muc2F2ZV92ciwgY29udGV4dF9z bmFwc2hvdC0+dnJlZ3Muc2F2ZV92ciwKLSsgICAgICAgICBzaXplb2YoY29udGV4dF8udnJlZ3Mu c2F2ZV92cikpOwotKyAgbWVtY3B5KCZjb250ZXh0Xy52cmVncy5zYXZlX3ZzY3IsICZjb250ZXh0 X3NuYXBzaG90LT52cmVncy5zYXZlX3ZzY3IsCi0rICAgICAgICAgc2l6ZW9mKGNvbnRleHRfLnZy ZWdzLnNhdmVfdnNjcikpOwotKyAgY29udGV4dF8udnJlZ3Muc2F2ZV92cnNhdmUgPSBjb250ZXh0 X3NuYXBzaG90LT52cmVncy5zYXZlX3Zyc2F2ZTsKLSt9Ci0rCi0rYm9vbCBNaW5pZHVtcENvbnRl eHRQUEM2NFdyaXRlcjo6V3JpdGVPYmplY3QoCi0rICAgIEZpbGVXcml0ZXJJbnRlcmZhY2UqIGZp bGVfd3JpdGVyKSB7Ci0rICBEQ0hFQ0tfRVEoc3RhdGUoKSwga1N0YXRlV3JpdGFibGUpOwotKyAg cmV0dXJuIGZpbGVfd3JpdGVyLT5Xcml0ZSgmY29udGV4dF8sIHNpemVvZihjb250ZXh0XykpOwot K30KLSsKLStzaXplX3QgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6OkNvbnRleHRTaXplKCkg Y29uc3QgewotKyAgRENIRUNLX0dFKHN0YXRlKCksIGtTdGF0ZUZyb3plbik7Ci0rICByZXR1cm4g c2l6ZW9mKGNvbnRleHRfKTsKLSt9Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2Nv bnRleHRfd3JpdGVyLmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXIuaAotaW5kZXggZDRhYjkzNmUuLjFkMjJmYzU5IDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29u dGV4dF93cml0ZXIuaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1 bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAotQEAgLTMxNSw2ICszMTUsNDUgQEAgY2xhc3Mg TWluaWR1bXBDb250ZXh0TUlQUzY0V3JpdGVyIGZpbmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4 dFdyaXRlciB7Ci0gICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0TUlQ UzY0V3JpdGVyKTsKLSB9OwotIAotK2NsYXNzIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyIGZp bmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7Ci0rIHB1YmxpYzoKLSsgIE1pbmlk dW1wQ29udGV4dFBQQzY0V3JpdGVyKCk7Ci0rICB+TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIo KSBvdmVycmlkZTsKLSsKLSsgIC8vISBcYnJpZWYgSW5pdGFsaXplcyB0aGUgTWluaWR1bXBDb250 ZXh0UFBDNjQgYmFzZWQgb24gXGEgY29udGV4dF9zbmFwc2hvdC4KLSsgIC8vIQotKyAgLy8hIFxw YXJhbVtpbl0gY29udGV4dF9zbmFwc2hvdCBUaGUgY29udGV4dCBzbmFwc2hvdCB0byB1c2UgYXMg c291cmNlIGRhdGEuCi0rICAvLyEKLSsgIC8vISBcbm90ZSBWYWxpZCBpbiAja1N0YXRlTXV0YWJs ZS4gTm8gbXV0YXRpb24gb2YgY29udGV4dCgpIG1heSBiZSBkb25lIGJlZm9yZQotKyAgLy8hICAg ICBjYWxsaW5nIHRoaXMgbWV0aG9kLCBhbmQgaXQgaXMgbm90IG5vcm1hbGx5IG5lY2Vzc2FyeSB0 byBhbHRlcgotKyAgLy8hICAgICBjb250ZXh0KCkgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4K LSsgIHZvaWQgSW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29u dGV4dF9zbmFwc2hvdCk7Ci0rCi0rICAvLyEgXGJyaWVmIFJldHVybnMgYSBwb2ludGVyIHRvIHRo ZSBjb250ZXh0IHN0cnVjdHVyZSB0aGF0IHRoaXMgb2JqZWN0IHdpbGwKLSsgIC8vISAgICAgd3Jp dGUuCi0rICAvLyEKLSsgIC8vISBcYXR0ZW50aW9uIFRoaXMgcmV0dXJucyBhIG5vbi1gY29uc3Rg IHBvaW50ZXIgdG8gdGhpcyBvYmplY3TigJlzIHByaXZhdGUKLSsgIC8vISAgICAgZGF0YSBzbyB0 aGF0IGEgY2FsbGVyIGNhbiBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgZGlyZWN0bHku Ci0rICAvLyEgICAgIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHByb3ZpZGluZyBzZXR0ZXIgaW50ZXJm YWNlcyB0byBlYWNoIGZpZWxkIGluIHRoZQotKyAgLy8hICAgICBjb250ZXh0IHN0cnVjdHVyZSB3 b3VsZCBiZSB1bndpZWxkeSBhbmQgY3VtYmVyc29tZS4gQ2FyZSBtdXN0IGJlIHRha2VuCi0rICAv LyEgICAgIHRvIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBjb3JyZWN0bHkuIFRoZSBj b250ZXh0IHN0cnVjdHVyZQotKyAgLy8hICAgICBtdXN0IG9ubHkgYmUgbW9kaWZpZWQgd2hpbGUg dGhpcyBvYmplY3QgaXMgaW4gdGhlICNrU3RhdGVNdXRhYmxlCi0rICAvLyEgICAgIHN0YXRlLgot KyAgTWluaWR1bXBDb250ZXh0UFBDNjQqIGNvbnRleHQoKSB7IHJldHVybiAmY29udGV4dF87IH0K LSsKLSsgcHJvdGVjdGVkOgotKyAgLy8gTWluaWR1bXBXcml0YWJsZToKLSsgIGJvb2wgV3JpdGVP YmplY3QoRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIG92ZXJyaWRlOwotKwotKyAg Ly8gTWluaWR1bXBDb250ZXh0V3JpdGVyOgotKyAgc2l6ZV90IENvbnRleHRTaXplKCkgY29uc3Qg b3ZlcnJpZGU7Ci0rCi0rIHByaXZhdGU6Ci0rICBNaW5pZHVtcENvbnRleHRQUEM2NCBjb250ZXh0 XzsKLSsKLSsgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihNaW5pZHVtcENvbnRleHRQUEM2NFdy aXRlcik7Ci0rfTsKLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLSAKLSAjZW5kaWYgIC8v IENSQVNIUEFEX01JTklEVU1QX01JTklEVU1QX0NPTlRFWFRfV1JJVEVSX0hfCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRf d3JpdGVyX3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWlu aWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotaW5kZXggMzIxNmE5MDYuLmE5ZmNiZTlkIDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotQEAgLTIxMyw2 ICsyMTMsMjEgQEAgVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIE1JUFM2NF9Gcm9tU25hcHNo b3QpIHsKLSAgICAgICBjb250ZXh0LCBFeHBlY3RNaW5pZHVtcENvbnRleHRNSVBTNjQsIGtTZWVk KTsKLSB9Ci0gCi0rVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIFBQQzY0X1plcm9zKSB7Ci0r ICBFbXB0eUNvbnRleHRUZXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENv bnRleHRQUEM2ND4oCi0rICAgIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0KTsKLSt9Ci0rCi0r VEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIFBQQzY0X0Zyb21TbmFwc2hvdCkgewotKyAgY29u c3RleHByIHVpbnQzMl90IGtTZWVkID0gNjQ7Ci0rICBDUFVDb250ZXh0UFBDNjQgY29udGV4dF9w cGM2NDsKLSsgIENQVUNvbnRleHQgY29udGV4dDsKLSsgIGNvbnRleHQucHBjNjQgPSAmY29udGV4 dF9wcGM2NDsKLSsgIEluaXRpYWxpemVDUFVDb250ZXh0UFBDNjQoJmNvbnRleHQsIGtTZWVkKTsK LSsgIEZyb21TbmFwc2hvdFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1w Q29udGV4dFBQQzY0PigKLSsgICAgICBjb250ZXh0LCBFeHBlY3RNaW5pZHVtcENvbnRleHRQUEM2 NCwga1NlZWQpOwotK30KLSsKLSB9ICAvLyBuYW1lc3BhY2UKLSB9ICAvLyBuYW1lc3BhY2UgdGVz dAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNjIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0 ZXIuY2MKLWluZGV4IGExMzQwNzYwLi45NWRjOTI1MiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX21p c2NfaW5mb193cml0ZXIuY2MKLUBAIC0xMjYsNiArMTI2LDggQEAgc3RkOjpzdHJpbmcgTWluaWR1 bXBNaXNjSW5mb0RlYnVnQnVpbGRTdHJpbmcoKSB7Ci0gICBzdGF0aWMgY29uc3RleHByIGNoYXIg a0NQVVtdID0gIm1pcHMiOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQUzY0RUwpCi0gICBz dGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gIm1pcHM2NCI7Ci0rI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NCkKLSsgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAicHBjNjQi OwotICNlbHNlCi0gI2Vycm9yIGRlZmluZSBrQ1BVIGZvciB0aGlzIENQVQotICNlbmRpZgotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21l bW9yeS5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21l bW9yeS5jYwotaW5kZXggYTUxNjI2Y2MuLjYxZTBiMjBhIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKLSsrKyBiL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCi1A QCAtMTExLDYgKzExMSwxMSBAQCB2b2lkIENhcHR1cmVNZW1vcnk6OlBvaW50ZWRUb0J5Q29udGV4 dChjb25zdCBDUFVDb250ZXh0JiBjb250ZXh0LAotICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBi YXNlOjpzaXplKGNvbnRleHQubWlwc2VsLT5yZWdzKTsgKytpKSB7Ci0gICAgIE1heWJlQ2FwdHVy ZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5taXBzZWwtPnJlZ3NbaV0pOwotICAgfQot KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgTWF5YmVDYXB0dXJlTWVt b3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0LnBwYzY0LT5uaXApOwotKyAgZm9yIChzaXplX3Qg aSA9IDA7IGkgPCBiYXNlOjpzaXplKGNvbnRleHQucHBjNjQtPnJlZ3MpOyArK2kpIHsKLSsgICAg TWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0LnBwYzY0LT5yZWdzW2ld KTsKLSsgIH0KLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmggdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCi1p bmRleCA4MTFhNzIwOS4uZjRmODM5ODEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmgKLSsrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAotQEAgLTQzLDcg KzQzLDEwIEBAIGVudW0gQ1BVQXJjaGl0ZWN0dXJlIHsKLSAgIGtDUFVBcmNoaXRlY3R1cmVNSVBT RUwsCi0gCi0gICAvLyEgXGJyaWVmIDY0LWJpdCBNSVBTRUwuCi0tICBrQ1BVQXJjaGl0ZWN0dXJl TUlQUzY0RUwKLSsgIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTCwKLSsKLSsgIC8vISBcYnJpZWYg NjQtYml0IFBQQzY0LgotKyAga0NQVUFyY2hpdGVjdHVyZVBQQzY0Ci0gfTsKLSAKLSB9ICAvLyBu YW1lc3BhY2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvY3B1X2NvbnRleHQuY2MKLWluZGV4IDZmYjhkN2U3Li5iMDFmN2NhZCAxMDA2NDQK LS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0 LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29u dGV4dC5jYwotQEAgLTE2OSw2ICsxNjksOCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpJbnN0cnVj dGlvblBvaW50ZXIoKSBjb25zdCB7Ci0gICAgICAgcmV0dXJuIGFybS0+cGM7Ci0gICAgIGNhc2Ug a0NQVUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICAgIHJldHVybiBhcm02NC0+cGM7Ci0rICAgIGNh c2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotKyAgICAgIHJldHVybiBwcGM2NC0+bmlwOwotICAg ICBkZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1A QCAtMTg1LDYgKzE4Nyw4IEBAIHVpbnQ2NF90IENQVUNvbnRleHQ6OlN0YWNrUG9pbnRlcigpIGNv bnN0IHsKLSAgICAgICByZXR1cm4gYXJtLT5zcDsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJl QVJNNjQ6Ci0gICAgICAgcmV0dXJuIGFybTY0LT5zcDsKLSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0 dXJlUFBDNjQ6Ci0rICAgICAgcmV0dXJuIHBwYzY0LT5yZWdzWzFdOwotICAgICBkZWZhdWx0Ogot ICAgICAgIE5PVFJFQUNIRUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAtMTk2LDYgKzIw MCw3IEBAIGJvb2wgQ1BVQ29udGV4dDo6SXM2NEJpdCgpIGNvbnN0IHsKLSAgICAgY2FzZSBrQ1BV QXJjaGl0ZWN0dXJlWDg2XzY0OgotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKLSAg ICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUw6Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVj dHVyZVBQQzY0OgotICAgICAgIHJldHVybiB0cnVlOwotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1 cmVYODY6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTToKLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuaCB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1pbmRleCBmYjIzYzQ2 Ny4uZWViZWRlNjMgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9jcHVfY29udGV4dC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1AQCAtMzUyLDYgKzM1MiwyNCBAQCBzdHJ1Y3QgQ1BV Q29udGV4dE1JUFM2NCB7Ci0gICB1aW50NjRfdCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIEEg Y29udGV4dCBzdHJ1Y3R1cmUgY2FycnlpbmcgUFBDNjQgQ1BVIHN0YXRlLgotK3N0cnVjdCBDUFVD b250ZXh0UFBDNjQgewotKyAgdWludDY0X3QgbmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWlu dDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRfdCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1 aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCBjdHI7Ci0rICBkb3VibGUgZnByZWdzWzMyXTsKLSsg IGRvdWJsZSBmcHNjcjsKLSsgIHN0cnVjdCB7Ci0rICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJb MzJdOwotKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3ZzY3I7Ci0rICAgIHVpbnQzMl90IHNhdmVf dnJzYXZlOwotKyAgfSB2cmVnczsKLSt9OwotKwotIC8vISBcYnJpZWYgQSBjb250ZXh0IHN0cnVj dHVyZSBjYXBhYmxlIG9mIGNhcnJ5aW5nIHRoZSBjb250ZXh0IG9mIGFueSBzdXBwb3J0ZWQKLSAv LyEgICAgIENQVSBhcmNoaXRlY3R1cmUuCi0gc3RydWN0IENQVUNvbnRleHQgewotQEAgLTM4Miw2 ICs0MDAsNyBAQCBzdHJ1Y3QgQ1BVQ29udGV4dCB7Ci0gICAgIENQVUNvbnRleHRBUk02NCogYXJt NjQ7Ci0gICAgIENQVUNvbnRleHRNSVBTKiBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQq IG1pcHM2NDsKLSsgICAgQ1BVQ29udGV4dFBQQzY0KiBwcGM2NDsKLSAgIH07Ci0gfTsKLSAKLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1 X2NvbnRleHRfbGludXguaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9jcHVfY29udGV4dF9saW51eC5oCi1pbmRleCA5ZjQ2YTQ4OS4uYWE2NzdjNGUgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVf Y29udGV4dF9saW51eC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oCi1AQCAtMTUsNiArMTUsNyBAQAotICNpZm5k ZWYgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhfQ1BVX0NPTlRFWFRfTElOVVhfSF8KLSAjZGVmaW5l IENSQVNIUEFEX1NOQVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCi0gCi0rI2luY2x1 ZGUgPGNzdHJpbmc+Ci0gI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgotICNpbmNsdWRl ICJzbmFwc2hvdC9jcHVfY29udGV4dC5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9saW51eC9zaWdu YWxfY29udGV4dC5oIgotQEAgLTE3NCw2ICsxNzUsNzggQEAgdm9pZCBJbml0aWFsaXplQ1BVQ29u dGV4dE1JUFMoCi0gCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9NSVBTX0ZBTUlMWSB8fCBET1hZR0VO Ci0gCi0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKSB8fCBET1hZR0VOCi0rCi0r Ly8hIFxicmllZiBJbml0YWxpemVzIGEgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSBmcm9tIG5h dGl2ZSBjb250ZXh0Ci0rLy8hICAgICBzdHJ1Y3R1cmVzIG9uIExpbnV4LgotKy8vIQotKy8vISBc cGFyYW1baW5dIHRocmVhZF9jb250ZXh0IFRoZSBuYXRpdmUgdGhyZWFkIGNvbnRleHQuCi0rLy8h IFxwYXJhbVtpbl0gZmxvYXRfY29udGV4dCBUaGUgbmF0aXZlIGZsb2F0IGNvbnRleHQuCi0rLy8h IFxwYXJhbVtpbl0gdmVjdG9yX2NvbnRleHQgVGhlIG5hdGl2ZSB2ZWN0b3IgY29udGV4dC4KLSsv LyEgXHBhcmFtW291dF0gY29udGV4dCBUaGUgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSB0byBp bml0YWxpemUuCi0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLSt2b2lkIEluaXRpYWxpemVD UFVDb250ZXh0UFBDNjQoCi0rICAgIGNvbnN0IFRocmVhZENvbnRleHQ6OnQ2NF90JiB0aHJlYWRf Y29udGV4dCwKLSsgICAgY29uc3QgRmxvYXRDb250ZXh0OjpmNjRfdCYgZmxvYXRfY29udGV4dCwK LSsgICAgY29uc3QgVmVjdG9yQ29udGV4dDo6djY0X3QmIHZlY3Rvcl9jb250ZXh0LAotKyAgICB0 eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsKLSsgIG1lbWNweShjb250 ZXh0LT5yZWdzLCB0aHJlYWRfY29udGV4dC5ncHIsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7Ci0r ICBjb250ZXh0LT5uaXAgPSB0aHJlYWRfY29udGV4dC5uaXA7Ci0rICBjb250ZXh0LT5tc3IgPSB0 aHJlYWRfY29udGV4dC5tc3I7Ci0rICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7 Ci0rICBjb250ZXh0LT54ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7Ci0rICBjb250ZXh0LT5sbmsg PSB0aHJlYWRfY29udGV4dC5sbms7Ci0rICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5j dHI7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LmZwcmVncywg c2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250 ZXh0LmZwc2NyOwotKwotKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgewotKyAg ICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rv cl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0 LnZycmVnc1tpXVsxXSwKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3Nb aV1bMl0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KLSsg ICAgfTsKLSsgIH0KLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRl eHQudnJzYXZlOwotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2 ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29yZH07Ci0rfQotKwotK3RlbXBsYXRlIDx0eXBlbmFt ZSBUcmFpdHM+Ci0rdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KAotKyAgICBjb25zdCBT aWduYWxUaHJlYWRDb250ZXh0NjQgJnRocmVhZF9jb250ZXh0LAotKyAgICBjb25zdCBTaWduYWxG bG9hdENvbnRleHQ2NCAmZmxvYXRfY29udGV4dCwKLSsgICAgY29uc3QgU2lnbmFsVmVjdG9yQ29u dGV4dDY0ICZ2ZWN0b3JfY29udGV4dCwKLSsgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0 KiBjb250ZXh0KSB7Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQu cmVncywgc2l6ZW9mKGNvbnRleHQtPnJlZ3MpKTsKLSsgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9j b250ZXh0Lm5pcDsKLSsgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKLSsgIGNv bnRleHQtPmNjciA9IHRocmVhZF9jb250ZXh0LmNjcjsKLSsgIGNvbnRleHQtPnhlciA9IHRocmVh ZF9jb250ZXh0LnhlcjsKLSsgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKLSsg IGNvbnRleHQtPmN0ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0 LT5mcHJlZ3MsIGZsb2F0X2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOwot KyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAgZm9yICh1aW50 OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgewotKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ld ID0gewotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwg MzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsgICAgICAoKCh1 aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0rICAgICAgICB2 ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNvbnRleHQtPnZy ZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29udGV4dC0+dnJl Z3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29y ZH07Ci0rfQotKwotKwotKyNlbmRpZgotKwotIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotIH0g IC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZGVidWdfcmVuZGV6dm91c190 ZXN0LmNjCi1pbmRleCBiZTIyYzkwMy4uYzVkZjIzZDEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3Qu Y2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2Rl YnVnX3JlbmRlenZvdXNfdGVzdC5jYwotQEAgLTE1OSw5ICsxNTksMTEgQEAgdm9pZCBUZXN0QWdh aW5zdFRhcmdldChQdHJhY2VDb25uZWN0aW9uKiBjb25uZWN0aW9uKSB7Ci0gICAgICAgICAgIGNv bnN0IGJvb2wgaXNfdmRzb19tYXBwaW5nID0KLSAgICAgICAgICAgICAgIGRldmljZSA9PSAwICYm IGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJbdmRzb10iOwotICAgICAgICAgICBzdGF0 aWMgY29uc3RleHByIGNoYXIga1ByZWZpeFtdID0gImxpbnV4LXZkc28uc28uIjsKLSsgICAgICAg ICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXg2NFtdID0gImxpbnV4LXZkc282NC5zby4i OwotICAgICAgICAgICByZXR1cm4gaXNfdmRzb19tYXBwaW5nID09Ci0gICAgICAgICAgICAgICAg ICAobW9kdWxlX25hbWUuZW1wdHkoKSB8fAotLSAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1l LmNvbXBhcmUoMCwgc3RybGVuKGtQcmVmaXgpLCBrUHJlZml4KSA9PSAwKTsKLSsgICAgICAgICAg ICAgICAgICBtb2R1bGVfbmFtZS5jb21wYXJlKDAsIHN0cmxlbihrUHJlZml4KSwga1ByZWZpeCkg PT0gMCB8fAotKyAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lLmNvbXBhcmUoMCwgc3RybGVu KGtQcmVmaXg2NCksIGtQcmVmaXg2NCkgPT0gMCk7Ci0gICAgICAgICB9LAotICAgICAgICAgbW9k dWxlX21hcHBpbmctPm5hbWUsCi0gICAgICAgICBtb2R1bGVfbWFwcGluZy0+ZGV2aWNlLAotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNl cHRpb25fc25hcHNob3RfbGludXguY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi1pbmRleCBjZDQwYjNiMS4u NmJjZjIzYjYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLSsrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51 eC5jYwotQEAgLTMyMyw2ICszMjMsNjkgQEAgYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpS ZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAotICAgICAgIHJlYWRlciwgY29udGV4dF9hZGRy ZXNzLCBjb250ZXh0Xy5taXBzNjQpOwotIH0KLSAKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKLSsKLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgotK3N0YXRpYyBib29s IFJlYWRDb250ZXh0KFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAotKyAgICAgICAgICAgICAg ICAgICAgICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcywKLSsgICAgICAgICAgICAg ICAgICAgICAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGRlc3RfY29udGV4dCkgewot KyAgY29uc3QgUHJvY2Vzc01lbW9yeSogbWVtb3J5ID0gcmVhZGVyLT5NZW1vcnkoKTsKLSsKLSsg IExpbnV4Vk1BZGRyZXNzIGdwX3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRfYWRkcmVzcyArCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRl eHQpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVu YW1lIFRyYWl0czo6TUNvbnRleHQsIGdwX3JlZ3MpOwotKwotKyAgdHlwZW5hbWUgVHJhaXRzOjpT aWduYWxUaHJlYWRDb250ZXh0IHRocmVhZF9jb250ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQo Z3BfcmVnc19hZGRyZXNzLCBzaXplb2YodGhyZWFkX2NvbnRleHQpLCAmdGhyZWFkX2NvbnRleHQp KSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgZ3BfcmVncyEiOwotKyAgICBy ZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICBMaW51eFZNQWRkcmVzcyBmcF9yZWdzX2FkZHJlc3Mg PSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0LCBmcF9yZWdzKTsK LSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsRmxvYXRDb250ZXh0IGZwX2NvbnRleHQ7Ci0r ICBpZiAoIW1lbW9yeS0+UmVhZChmcF9yZWdzX2FkZHJlc3MsIHNpemVvZihmcF9jb250ZXh0KSwg JmZwX2NvbnRleHQpKSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgZnBfcmVn cyEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICBMaW51eFZNQWRkcmVzcyB2X3Jl Z3NfcHRyX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpICsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4 dCwgdm14X3Jlc2VydmUpICsgODsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVmVjdG9y Q29udGV4dCB2X2NvbnRleHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVhZCh2X3JlZ3NfcHRyX2FkZHJl c3MsIHNpemVvZih2X2NvbnRleHQpLCAmdl9jb250ZXh0KSkgewotKyAgICBMT0coRVJST1IpIDw8 ICJDb3VsZG4ndCByZWFkIHZfcmVncyEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0r ICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0PENvbnRleHRUcmFpdHM2ND4odGhyZWFkX2NvbnRl eHQsIGZwX2NvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZfY29udGV4dCwg ZGVzdF9jb250ZXh0KTsKLSsKLSsgIHJldHVybiB0cnVlOwotK30KLSsKLSt0ZW1wbGF0ZTw+Ci0r Ym9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+ KAotKyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgTGludXhWTUFkZHJlc3Mg Y29udGV4dF9hZGRyZXNzKSB7Ci0rICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0 ZWN0dXJlUFBDNjQ7Ci0rICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsK LSsKLSsgIHJldHVybiBpbnRlcm5hbDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKLSsg ICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ucHBjNjQpOwotK30KLSsKLSt0 ZW1wbGF0ZTw+Ci0rYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250 ZXh0VHJhaXRzMzI+KAotKyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgTGlu dXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzKSB7Ci0rICAvLyBQUEM2NCBpcyA2NC1iaXQKLSsg IHJldHVybiBmYWxzZTsKLSt9Ci0rCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi0g Ci0gYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpJbml0aWFsaXplKFByb2Nlc3NSZWFkZXJM aW51eCogcHJvY2Vzc19yZWFkZXIsCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9s aW51eC5oCi1pbmRleCBlYTBjZDIxMC4uZTQyZGY1MjAgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGlu dXguaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv ZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgKLUBAIC04NCw2ICs4NCw4IEBAIGNsYXNzIEV4Y2Vw dGlvblNuYXBzaG90TGludXggZmluYWwgOiBwdWJsaWMgRXhjZXB0aW9uU25hcHNob3QgewotICNl bGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAgIENQVUNvbnRleHRNSVBTIG1p cHNlbDsKLSAgICAgQ1BVQ29udGV4dE1JUFM2NCBtaXBzNjQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIENQVUNvbnRleHRQUEM2NCBwcGM2NDsKLSAjZW5kaWYK LSAgIH0gY29udGV4dF91bmlvbl87Ci0gICBDUFVDb250ZXh0IGNvbnRleHRfOwotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25f c25hcHNob3RfbGludXhfdGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFw c2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXhfdGVzdC5jYwotaW5kZXggZTRmZjFh YjcuLjI1NTM0ZGQwIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKLSsrKyBiL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFw c2hvdF9saW51eF90ZXN0LmNjCi1AQCAtMjk2LDcgKzI5NiwyOCBAQCB2b2lkIEV4cGVjdENvbnRl eHQoY29uc3QgQ1BVQ29udGV4dCYgYWN0dWFsLCBjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBleHBl Y3RlZCkgewotICAgICAgICAgICAgIDApOwotICN1bmRlZiBDUFVfQVJDSF9OQU1FCi0gfQotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotK3VzaW5nIE5hdGl2ZUNQVUNvbnRl eHQgPSB1Y29udGV4dF90OwotKwotK3ZvaWQgSW5pdGlhbGl6ZUNvbnRleHQoTmF0aXZlQ1BVQ29u dGV4dCogY29udGV4dCkgewotKyAgZm9yIChzaXplX3QgcmVnID0gMDsgcmVnIDwgMzI7ICsrcmVn KSB7Ci0rICAgIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbcmVnXSA9IHJlZzsKLSsgIH0K LSsKLSsgIG1lbXNldCgmY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVncywgNDQsCi0rICAgICAg c2l6ZW9mKGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MpKTsKLSt9Ci0gCi0rdm9pZCBFeHBl Y3RDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29udGV4 dCYgZXhwZWN0ZWQpIHsKLSsgIEVYUEVDVF9FUShhY3R1YWwuYXJjaGl0ZWN0dXJlLCBrQ1BVQXJj aGl0ZWN0dXJlUFBDNjQpOwotKwotKyAgZm9yIChzaXplX3QgcmVnID0gMDsgcmVnIDwgMzI7ICsr cmVnKSB7Ci0rICAgIEVYUEVDVF9FUShhY3R1YWwucHBjNjQtPnJlZ3NbcmVnXSwgZXhwZWN0ZWQu dWNfbWNvbnRleHQuZ3BfcmVnc1tyZWddKTsKLSsgIH0KLSsKLSsgIEVYUEVDVF9FUShtZW1jbXAo YWN0dWFsLnBwYzY0LT5mcHJlZ3MsIGV4cGVjdGVkLnVjX21jb250ZXh0LmZwX3JlZ3MsCi0rICAg ICAgICAgICAgc2l6ZW9mKGFjdHVhbC5wcGM2NC0+ZnByZWdzKSksIDApOwotK30KLSAjZWxzZQot ICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYyB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5j YwotaW5kZXggYjk2YWJmZTcuLmRmMTJjYTU2IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MKLSsr KyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3Nf cmVhZGVyX2xpbnV4LmNjCi1AQCAtMTA4LDYgKzEwOCw4IEBAIHZvaWQgUHJvY2Vzc1JlYWRlckxp bnV4OjpUaHJlYWQ6OkluaXRpYWxpemVTdGFjayhQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlcikg ewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICBzdGFja19wb2ludGVy ID0gcmVhZGVyLT5JczY0Qml0KCkgPyB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50NjQucmVn c1syOV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRocmVhZF9pbmZv LnRocmVhZF9jb250ZXh0LnQzMi5yZWdzWzI5XTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKLSsgIHN0YWNrX3BvaW50ZXIgPSB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4 dC50NjQuZ3ByWzFdOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVh ZGVyX2xpbnV4X3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYwotaW5kZXggNWI1NzIzNjEuLjA0OWMz Mjg1IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5j YwotQEAgLTYxMiw2ICs2MTIsOCBAQCBib29sIFdyaXRlVGVzdE1vZHVsZShjb25zdCBiYXNlOjpG aWxlUGF0aCYgbW9kdWxlX3BhdGgpIHsKLSAgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVNX0FB UkNINjQ7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTRUwpIHx8IGRlZmluZWQoQVJDSF9D UFVfTUlQUzY0RUwpCi0gICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9NSVBTOwotKyNlbGlm IGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0rICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9Q UEM2NDsKLSAjZW5kaWYKLSAKLSAgIG1vZHVsZS5laGRyLmVfdmVyc2lvbiA9IEVWX0NVUlJFTlQ7 Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L3NpZ25hbF9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvc2lnbmFsX2NvbnRleHQuaAotaW5kZXggMTEwMDI0NjguLjhlMzM1YTA5IDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFs X2NvbnRleHQuaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvc2lnbmFsX2NvbnRleHQuaAotQEAgLTQyMiw2ICs0MjIsODkgQEAgc3RhdGljX2Fzc2Vy dChvZmZzZXRvZihVQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+LCBtY29udGV4dC5mcHJlZ3MpID09 Ci0gICAgICAgICAgICAgICAiY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKLSAjZW5kaWYKLSAK LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsKLStzdHJ1Y3QgU2lnbmFs VGhyZWFkQ29udGV4dDY0IHsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwotKyAgdWludDY0X3Qgbmlw OwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3Qgb3JpZ19yMzsKLSsgIHVpbnQ2NF90IGN0 cjsKLSsgIHVpbnQ2NF90IGxuazsKLSsgIHVpbnQ2NF90IHhlcjsKLSsgIHVpbnQ2NF90IGNjcjsK LSsgIHVpbnQ2NF90IHNvZnRlOwotKyAgdWludDY0X3QgdHJhcDsKLSsgIHVpbnQ2NF90IGRhcjsK LSsgIHVpbnQ2NF90IGRzaXNyOwotKyAgdWludDY0X3QgcmVzdWx0OwotKyAgdWludDY0X3QgZHNj cjsKLSsgIHVpbnQ2NF90IGZwcjBbM107Ci0rfTsKLSsKLStzdHJ1Y3QgU2lnbmFsRmxvYXRDb250 ZXh0NjQgewotKyAgZG91YmxlIHJlZ3NbMzJdOwotKyAgZG91YmxlIGZwc2NyOwotK307Ci0rCi0r c3RydWN0IFNpZ25hbFZlY3RvckNvbnRleHQ2NCB7Ci0rICBpbnQzMl90IHZycmVnc1szMl1bNF07 Ci0rICBzdHJ1Y3QgewotKyAgICBpbnQzMl90IF9fcGFkWzNdOwotKyAgICBpbnQzMl90IHZzY3Jf d29yZDsKLSsgIH0gdnNjcjsKLSsgIGludDMyX3QgdnJzYXZlOwotKyAgaW50MzJfdCBfX3BhZFsz XTsKLSt9IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpOwotKwotKwotKyNwcmFnbWEg cGFjayhwb3ApCi0rc3RydWN0IE1Db250ZXh0NjQgewotKyAgdWludDY0X3QgcmVzZXJ2ZWRbNF07 Ci0rICBpbnQzMl90IHNpZ25hbDsKLSsgIGludDMyX3QgX19wYWQwOwotKyAgdWludDY0X3QgaGFu ZGxlcjsKLSsgIHVpbnQ2NF90IG9sZG1hc2s7Ci0rICB1aW50NjRfdCBwdF9yZWdzX3B0cjsKLSsg IFNpZ25hbFRocmVhZENvbnRleHQ2NCBncF9yZWdzOwotKyAgU2lnbmFsRmxvYXRDb250ZXh0NjQg IGZwX3JlZ3M7Ci0rICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKLSsgIGludDY0X3Qg dm14X3Jlc2VydmVbNjldOwotK307Ci0rCi0rc3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1Ymxp YyBUcmFpdHM2NCB7Ci0rICB1c2luZyBNQ29udGV4dCA9IE1Db250ZXh0NjQ7Ci0rICB1c2luZyBT aWduYWxUaHJlYWRDb250ZXh0ID0gU2lnbmFsVGhyZWFkQ29udGV4dDY0OwotKyAgdXNpbmcgU2ln bmFsRmxvYXRDb250ZXh0ID0gU2lnbmFsRmxvYXRDb250ZXh0NjQ7Ci0rICB1c2luZyBTaWduYWxW ZWN0b3JDb250ZXh0ID0gU2lnbmFsVmVjdG9yQ29udGV4dDY0OwotKyAgdXNpbmcgQ1BVQ29udGV4 dCA9IENQVUNvbnRleHRQUEM2NDsKLSt9OwotKwotK3N0cnVjdCBDb250ZXh0VHJhaXRzMzIgOiBw dWJsaWMgVHJhaXRzMzIge307Ci0rCi0rc3RydWN0IFVDb250ZXh0IHsKLSsgIHVpbnQ2NF90IGZs YWdzOwotKyAgdWludDY0X3QgbGluazsKLSsgIFNpZ25hbFN0YWNrPENvbnRleHRUcmFpdHM2ND4g c3RhY2s7Ci0rICBTaWdzZXQ8Q29udGV4dFRyYWl0czY0PiBzaWdtYXNrOwotKyAgTUNvbnRleHQ2 NCBtY29udGV4dDsKLSt9OwotKyNwcmFnbWEgcGFjayhwdXNoLCAxKQotKwotK3N0YXRpY19hc3Nl cnQoc2l6ZW9mKFVDb250ZXh0KSA9PSBzaXplb2YodWNvbnRleHRfdCksCi0rICAgICAgICAgICAg ICAidWNvbnRleHRfdCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoTUNv bnRleHQ2NCkgPT0gc2l6ZW9mKG1jb250ZXh0X3QpLAotKyAgICAgICAgICAgICAgIm1jb250ZXh0 X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFRocmVhZENv bnRleHQ2NCkgPT0gc2l6ZW9mKGdyZWdzZXRfdCksCi0rICAgICAgICAgICAgICAiZ3JlZ3NldF90 IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxGbG9hdENvbnRl eHQ2NCkgPT0gc2l6ZW9mKGZwcmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgImZwcmVnc2V0X3Qg c2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFZlY3RvckNvbnRl eHQ2NCkgPT0gc2l6ZW9mKHZycmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgInZycmVnc2V0X3Qg c2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNvbnRleHQsIG1jb250 ZXh0KSA9PQotKyAgICAgICAgICAgICAgb2Zmc2V0b2YodWNvbnRleHRfdCwgdWNfbWNvbnRleHQp LCAibWNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChvZmZzZXRvZihN Q29udGV4dDY0LCBncF9yZWdzKSA9PQotKyAgICAgICAgICAgICAgb2Zmc2V0b2YobWNvbnRleHRf dCwgZ3BfcmVncyksICJncF9yZWdzIG9mZnNldCBtaXNtYXRjaCIpOwotICNlbHNlCi0gI2Vycm9y IFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9s aW51eC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0 ZW1fc25hcHNob3RfbGludXguY2MKLWluZGV4IDg1NjRkM2Q0Li5iNjkwZWNkNCAxMDA2NDQKLS0t LSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9z bmFwc2hvdF9saW51eC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvc3lzdGVtX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAtMjAzLDYgKzIwMyw4IEBA IENQVUFyY2hpdGVjdHVyZSBTeXN0ZW1TbmFwc2hvdExpbnV4OjpHZXRDUFVBcmNoaXRlY3R1cmUo KSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVy biBwcm9jZXNzX3JlYWRlcl8tPklzNjRCaXQoKSA/IGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoga0NQVUFyY2hpdGVjdHVyZU1J UFNFTDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVybiBr Q1BVQXJjaGl0ZWN0dXJlUFBDNjQ7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hp dGVjdHVyZQotICNlbmRpZgotQEAgLTIxOCw2ICsyMjAsOSBAQCB1aW50MzJfdCBTeXN0ZW1TbmFw c2hvdExpbnV4OjpDUFVSZXZpc2lvbigpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJu IDA7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0 IGltcGxlbWVudGVkIG9uIFBQQzY0Ci0rICByZXR1cm4gMDsKLSAjZWxzZQotICNlcnJvciBwb3J0 IHRvIHlvdXIgYXJjaGl0ZWN0dXJlCi0gI2VuZGlmCi1AQCAtMjM4LDYgKzI0Myw5IEBAIHN0ZDo6 c3RyaW5nIFN5c3RlbVNuYXBzaG90TGludXg6OkNQVVZlbmRvcigpIGNvbnN0IHsKLSAjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24g TUlQUwotICAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxlbWVudGVkIG9uIFBQQzY0Ci0rICByZXR1 cm4gc3RkOjpzdHJpbmcoKTsKLSAjZWxzZQotICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0 dXJlCi0gI2VuZGlmCi1AQCAtMzcxLDYgKzM3OSw5IEBAIGJvb2wgU3lzdGVtU25hcHNob3RMaW51 eDo6TlhFbmFibGVkKCkgY29uc3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpCi0gICAvLyBOb3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCi0gICByZXR1cm4gZmFsc2U7Ci0r I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxl bWVudGVkIG9uIFBQQzY0Ci0rICByZXR1cm4gZmFsc2U7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4K LSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNj IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFw c2hvdF9saW51eC5jYwotaW5kZXggZTNlMmJlYmQuLjhlZjQzNzUyIDEwMDY0NAotLS0tIGEvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90 X2xpbnV4LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC90aHJlYWRfc25hcHNob3RfbGludXguY2MKLUBAIC0xODYsNiArMTg2LDE0IEBAIGJvb2wg VGhyZWFkU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nl c3NfcmVhZGVyLAotICAgICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLmZsb2F0X2NvbnRleHQuZjMy LAotICAgICAgICAgY29udGV4dF8ubWlwc2VsKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKLSsgIGNvbnRleHRfLmFyY2hpdGVjdHVyZSA9IGtDUFVBcmNoaXRl Y3R1cmVQUEM2NDsKLSsgIGNvbnRleHRfLnBwYzY0ID0gJmNvbnRleHRfdW5pb25fLnBwYzY0Owot KyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KAotKyAgICAgIHRo cmVhZC50aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50NjQsCi0rICAgICAgdGhyZWFkLnRocmVh ZF9pbmZvLmZsb2F0X2NvbnRleHQuZjY0LAotKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby52ZWN0 b3JfY29udGV4dC52NjQsCi0rICAgICAgY29udGV4dF8ucHBjNjQpOwotICNlbHNlCi0gI2Vycm9y IFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi1pbmRl eCA0NGNjNmY2ZC4uZDQxMzY0NjEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAotKysrIGIvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90 X2xpbnV4LmgKLUBAIC02OCw2ICs2OCw4IEBAIGNsYXNzIFRocmVhZFNuYXBzaG90TGludXggZmlu YWwgOiBwdWJsaWMgVGhyZWFkU25hcHNob3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpCi0gICAgIENQVUNvbnRleHRNSVBTIG1pcHNlbDsKLSAgICAgQ1BVQ29udGV4dE1J UFM2NCBtaXBzNjQ7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAg IENQVUNvbnRleHRQUEM2NCBwcGM2NDsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAg Ly8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCi1pbmRleCBkM2Q1ZWJk Zi4uM2ZkNzMwY2IgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91 dGlsL2xpbnV4L2F1eGlsaWFyeV92ZWN0b3IuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwotQEAgLTU2LDYgKzU2LDEx IEBAIGJvb2wgQXV4aWxpYXJ5VmVjdG9yOjpSZWFkKFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rp b24pIHsKLSAgICAgaWYgKHR5cGUgPT0gQVRfSUdOT1JFKSB7Ci0gICAgICAgY29udGludWU7Ci0g ICAgIH0KLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIGlmICh0eXBl ID09IEFUX0lHTk9SRVBQQykgewotKyAgICAgIGNvbnRpbnVlOwotKyAgICB9Ci0rI2VuZGlmCi0g ICAgIGlmICghTWFwSW5zZXJ0T3JSZXBsYWNlKCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0 cikpIHsKLSAgICAgICBMT0coRVJST1IpIDw8ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7Ci0gICAg ICAgcmV0dXJuIGZhbHNlOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL2xpbnV4L3B0cmFjZV9icm9rZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNjCi1pbmRleCAxNTVhMWUwYy4uNWU1MGNlYjUg MTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0 cmFjZV9icm9rZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwv bGludXgvcHRyYWNlX2Jyb2tlci5jYwotQEAgLTk0LDggKzk0LDggQEAgaW50IFB0cmFjZUJyb2tl cjo6UnVuKCkgewotIH0KLSAKLSBib29sIFB0cmFjZUJyb2tlcjo6QWxsb2NhdGVBdHRhY2htZW50 cygpIHsKLS0gIGNvbnN0ZXhwciBzaXplX3QgcGFnZV9zaXplID0gNDA5NjsKLS0gIGNvbnN0ZXhw ciBzaXplX3QgYWxsb2Nfc2l6ZSA9Ci0rICBzdGF0aWMgc2l6ZV90IHBhZ2Vfc2l6ZSA9IGdldHBh Z2VzaXplKCk7Ci0rICBzaXplX3QgYWxsb2Nfc2l6ZSA9Ci0gICAgICAgKHNpemVvZihTY29wZWRQ dHJhY2VBdHRhY2gpICsgcGFnZV9zaXplIC0gMSkgJiB+KHBhZ2Vfc2l6ZSAtIDEpOwotICAgdm9p ZCogYWxsb2MgPSBzYnJrKGFsbG9jX3NpemUpOwotICAgaWYgKHJlaW50ZXJwcmV0X2Nhc3Q8aW50 cHRyX3Q+KGFsbG9jKSA9PSAtMSkgewotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCi1pbmRleCA1NTdlMGQzNi4uMDhhZTQzNGIgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIu Y2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNl ci5jYwotQEAgLTM5OCw2ICszOTgsNjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlk LAotICAgcmV0dXJuIHRydWU7Ci0gfQotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQotKy8vIFBQQzY0IGhhcyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2Ug Mi42LjI3IChldmVuIGJlZm9yZSB4ODYgaGFkIGl0KS4KLSsvLyBUaGF0IG1lYW5zIHdlIGNhbiBz aW1wbHkgdXNlIFBUUkFDRV9HRVRSRUdFU0VULgotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0 aW5hdGlvbj4KLStib29sIEdldFJlZ2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGlu YXRpb24qIGRlc3QsIGJvb2wgY2FuX2xvZykgewotKyAgaW92ZWMgaW92OwotKyAgaW92Lmlvdl9i YXNlID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZGVzdCk7Ci0rICBpb3YuaW92X2xlbiA9IHNp emVvZigqZGVzdCk7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRl cnByZXRfY2FzdDx2b2lkKj4oc2V0KSwgJmlvdikgIT0gMCkgewotKyAgICBQTE9HX0lGKEVSUk9S LCBjYW5fbG9nKSA8PCAicHRyYWNlIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKyAgaWYg KGlvdi5pb3ZfbGVuICE9IHNpemVvZigqZGVzdCkpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5f bG9nKSA8PCAiVW5leHBlY3RlZCByZWdpc3RlcnMgc2l6ZSI7Ci0rICAgIHJldHVybiBmYWxzZTsK LSsgIH0KLSsgIHJldHVybiB0cnVlOwotK30KLSsKLStib29sIEdldFZlY3RvclJlZ2lzdGVyczY0 KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNv bnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJl dHVybiBHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9s b2cpOwotK30KLSsKLStib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAg cmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2Fu X2xvZyk7Ci0rfQotKwotK2Jvb2wgR2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSsgICAgICAg ICAgICAgICAgICAgICBjb25zdCBUaHJlYWRDb250ZXh0JiBjb250ZXh0LAotKyAgICAgICAgICAg ICAgICAgICAgIExpbnV4Vk1BZGRyZXNzKiBhZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAg IGJvb2wgY2FuX2xvZykgewotKyAgLy8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhS RUFEX0FSRUEgc2luY2UgdGhlIHRocmVhZCBwb2ludGVyCi0rICAvLyBpcyBzdG9yZWQgaW4gR1BS IDEzLgotKyAgVGhyZWFkQ29udGV4dDo6dDY0X3QgdGM7Ci0rICBpZiAoIUdldFJlZ2lzdGVyU2V0 KHRpZCwgTlRfUFJTVEFUVVMsICZ0YywgY2FuX2xvZykpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBj YW5fbG9nKSA8PCAiVW5hYmxlIHRvIGdldCB0aHJlYWQgcG9pbnRlciEiOwotKyAgICByZXR1cm4g ZmFsc2U7Ci0rICB9Ci0rCi0rICAqYWRkcmVzcyA9IHRjLmdwclsxM107Ci0rCi0rICByZXR1cm4g dHJ1ZTsKLSt9Ci0rCi0rLy8gU3R1YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2Fi bGUgb24gUFBDNjQKLStib29sIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1 cm4gZmFsc2U7IH0KLStib29sIEdldFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCi0rICAgICAgICAg ICAgICAgICAgICAgY29uc3QgVGhyZWFkQ29udGV4dCAmY29udGV4dCwKLSsgICAgICAgICAgICAg ICAgICAgICBMaW51eFZNQWRkcmVzcyAqYWRkcmVzcywKLSsgICAgICAgICAgICAgICAgICAgICBi b29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4K LSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLUBAIC00OTQsNiArNTUyLDkgQEAgYm9v bCBQdHJhY2VyOjpHZXRUaHJlYWRJbmZvKHBpZF90IHRpZCwgVGhyZWFkSW5mbyogaW5mbykgewot ICAgaWYgKGlzXzY0X2JpdF8pIHsKLSAgICAgcmV0dXJuIEdldEdlbmVyYWxQdXJwb3NlUmVnaXN0 ZXJzNjQodGlkLCAmaW5mby0+dGhyZWFkX2NvbnRleHQsIGNhbl9sb2dfKSAmJgotICAgICAgICAg ICAgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPmZsb2F0X2NvbnRleHQs IGNhbl9sb2dfKSAmJgotKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAg ICAgICAgIEdldFZlY3RvclJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnZlY3Rvcl9jb250ZXh0LCBj YW5fbG9nXykgJiYKLSsjZW5kaWYKLSAgICAgICAgICAgIEdldFRocmVhZEFyZWE2NCh0aWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+dGhyZWFkX2NvbnRleHQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmluZm8tPnRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3Ms Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhy ZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVh ZF9pbmZvLmgKLWluZGV4IDViNTVjMjRhLi5kZWEwZDFmMyAxMDA2NDQKLS0tLSBhL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotKysrIGIvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1AQCAt MjgsNiArMjgsMTAgQEAKLSAjaW5jbHVkZSA8YW5kcm9pZC9hcGktbGV2ZWwuaD4KLSAjZW5kaWYK LSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rI2luY2x1ZGUgPHN5cy91 Y29udGV4dC5oPgotKyNlbmRpZgotKwotIG5hbWVzcGFjZSBjcmFzaHBhZCB7Ci0gCi0gLy8hIFxi cmllZiBUaGUgc2V0IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMgZm9yIGFuIGFyY2hpdGVj dHVyZSBmYW1pbHkuCi1AQCAtNzksNiArODMsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAg ICAgdWludDMyX3QgY3AwX3N0YXR1czsKLSAgICAgdWludDMyX3QgY3AwX2NhdXNlOwotICAgICB1 aW50MzJfdCBwYWRkaW5nMV87Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp Ci0rICAgIC8vIFBQQzY0IGlzIDY0LWJpdAotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlm ICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMTMyLDYgKzEzOCwyMSBAQCB1bmlvbiBUaHJl YWRDb250ZXh0IHsKLSAgICAgdWludDY0X3QgY3AwX2JhZHZhZGRyOwotICAgICB1aW50NjRfdCBj cDBfc3RhdHVzOwotICAgICB1aW50NjRfdCBjcDBfY2F1c2U7Ci0rI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFJlZmxlY3RzIHN0cnVjdCBwdF9yZWdzIGluIGFz bS9wdHJhY2UuaC4KLSsgICAgdWludDY0X3QgZ3ByWzMyXTsKLSsgICAgdWludDY0X3QgbmlwOwot KyAgICB1aW50NjRfdCBtc3I7Ci0rICAgIHVpbnQ2NF90IG9yaWdfZ3ByMzsKLSsgICAgdWludDY0 X3QgY3RyOwotKyAgICB1aW50NjRfdCBsbms7Ci0rICAgIHVpbnQ2NF90IHhlcjsKLSsgICAgdWlu dDY0X3QgY2NyOwotKyAgICB1aW50NjRfdCBzb2Z0ZTsKLSsgICAgdWludDY0X3QgdHJhcDsKLSsg ICAgdWludDY0X3QgZGFyOwotKyAgICB1aW50NjRfdCBkc2lzcjsKLSsgICAgdWludDY0X3QgcmVz dWx0OwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFN SUxZCi1AQCAtMTQzLDYgKzE2NCw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgewotICAgdXNpbmcg TmF0aXZlVGhyZWFkQ29udGV4dCA9IHVzZXJfcmVnczsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKQotIC8vIE5vIGFwcHJvcHJpYXRlIE5hdGl2ZVRocmVhZHNDb250ZXh0IHR5 cGUgYXZhaWxhYmxlIGZvciBNSVBTCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCi0rICB1c2luZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0gc3RydWN0IHB0X3JlZ3M7Ci0gI2Vs c2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkgfHwgQVJD SF9DUFVfQVJNNjQKLUBAIC0yMTgsNiArMjQxLDkgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSAg ICAgfSBmcHJlZ3NbMzJdOwotICAgICB1aW50MzJfdCBmcGNzcjsKLSAgICAgdWludDMyX3QgZnB1 X2lkOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBDcmFz aHBhZCdzIFBQQyBzdXBwb3J0IGlzIDY0LWJpdCBvbmx5LCBzbyB0aGlzCi0rICAgIC8vIDMyYml0 LW9ubHkgc3RydWN0IGlzIGRlY2xhcmVkIGFzIGVtcHR5LgotICNlbHNlCi0gI2Vycm9yIFBvcnQu Ci0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMjUyLDYgKzI3OCwxMCBAQCB1 bmlvbiBGbG9hdENvbnRleHQgewotICAgICBkb3VibGUgZnByZWdzWzMyXTsKLSAgICAgdWludDMy X3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90IGZwdV9pZDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUmVmbGVjdHMgZnByZWdzZXRfdCBpbiBzeXMvdWNvbnRl eHQuaAotKyAgICBkb3VibGUgZnByZWdzWzMyXTsKLSsgICAgZG91YmxlIGZwc2NyOwotICNlbHNl Ci0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMjgw LDYgKzMxMCw4IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0gICBzdGF0aWNfYXNzZXJ0KHNpemVv ZihmNjQpID09IHNpemVvZih1c2VyX2Zwc2ltZF9zdHJ1Y3QpLCAiU2l6ZSBtaXNtYXRjaCIpOwot ICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gLy8gTm8gYXBwcm9wcmlhdGUg ZmxvYXRpbmcgcG9pbnQgY29udGV4dCBuYXRpdmUgdHlwZSBmb3IgYXZhaWxhYmxlIE1JUFMuCi0r I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBzdGF0aWNfYXNzZXJ0KHNp emVvZihmNjQpID09IHNpemVvZihmcHJlZ3NldF90KSwgIlNpemUgbWlzbWF0Y2giKTsKLSAjZWxz ZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2Ci1AQCAtMjg3LDYgKzMx OSwyNiBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotIHN0YXRpY19hc3NlcnQoc3RkOjppc19zdGFu ZGFyZF9sYXlvdXQ8RmxvYXRDb250ZXh0Pjo6dmFsdWUsCi0gICAgICAgICAgICAgICAiTm90IHN0 YW5kYXJkIGxheW91dCIpOwotIAotKy8vISBcYnJpZWYgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNl ZCBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWlseQotK3VuaW9uIFZlY3RvckNvbnRleHQgewotKyAg c3RydWN0IHYzMl90IHt9IHYzMjsKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp Ci0rICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKSAvLyBWZWN0b3IgY29udGV4dCBt dXN0IGJlIGRvdWJsZXdvcmQgYWxpZ25lZC4KLSsjZW5kaWYKLSsgIHN0cnVjdCB2NjRfdCB7Ci0r I2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBSZWZsZWN0cyB2cnJl Z3NldF90IGluIHN5cy91Y29udGV4dC5oCi0rICAgIHVpbnQzMl90IHZycmVnc1szMl1bNF07Ci0r ICAgIHN0cnVjdCB7Ci0rICAgICAgdWludDMyX3QgX19wYWRbM107Ci0rICAgICAgdWludDMyX3Qg dnNjcl93b3JkOwotKyAgICB9IHZzY3I7Ci0rICAgIHVpbnQzMl90IHZyc2F2ZTsKLSsgICAgdWlu dDMyX3QgX19wYWRbM107Ci0rI2VuZGlmCi0rICB9IHY2NDsKLSt9OwotKwotIC8vISBcYnJpZWYg QSBjb2xsZWN0aW9uIG9mIGBwdHJhY2VgLWFibGUgaW5mb3JtYXRpb24gYWJvdXQgYSB0aHJlYWQu Ci0gc3RydWN0IFRocmVhZEluZm8gewotICAgVGhyZWFkSW5mbygpOwotQEAgLTI5OCw2ICszNTAs OSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gICAvLyEgXGJyaWVmIFRoZSBmbG9hdGluZyBwb2lu dCByZWdpc3RlcnMgZm9yIHRoZSB0aHJlYWQuCi0gICBGbG9hdENvbnRleHQgZmxvYXRfY29udGV4 dDsKLSAKLSsgIC8vISBcYnJpZWYgKE9wdGlvbmFsKSBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2Vk IGZvciB0aGUgdGhyZWFkLgotKyAgVmVjdG9yQ29udGV4dCB2ZWN0b3JfY29udGV4dDsKLSsKLSAg IC8vISBcYnJpZWYgVGhlIHRocmVhZC1sb2NhbCBzdG9yYWdlIGFkZHJlc3MgZm9yIHRoZSB0aHJl YWQuCi0gICBMaW51eFZNQWRkcmVzcyB0aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzOwotIH07 Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0 dXJlX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0LmgKLWluZGV4IDNmZjcxMTg0Li4zZTgyZjRiOSAxMDA2NDQKLS0tLSBhL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAot KysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29u dGV4dC5oCi1AQCAtNjgsNiArNjgsNyBAQCB1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRl eHRfdDsKLSAvLyEgICAgIG1hY09TL0xpbnV4L0Z1Y2hzaWEgfCB4ODZfNjQgICAgICAgfCBgJSVy ZGlgCi0gLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgQVJNL0FSTTY0ICAgIHwgYHIwYC9g eDBgCi0gLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgTUlQUy9NSVBTNjQgIHwgYCRhMGAK LSsvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBQUEM2NCAgICAgICAgfCBgcjNgCi0gLy8h Ci0gLy8hICAgICBBZGRpdGlvbmFsbHksIHRoZSB2YWx1ZSBgTFJgIG9uIEFSTS9BUk02NCB3aWxs IGJlIHRoZSByZXR1cm4gYWRkcmVzcyBvZgotIC8vISAgICAgdGhpcyBmdW5jdGlvbi4KLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29u dGV4dF9saW51eC5TIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0 dXJlX2NvbnRleHRfbGludXguUwotaW5kZXggNTIyMTVlZTUuLmIzZTRhM2VjIDEwMDY0NAotLS0t IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4 dF9saW51eC5TCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2Mv Y2FwdHVyZV9jb250ZXh0X2xpbnV4LlMKLUBAIC0zMiw3ICszMiw3IEBACi0gICAuYmFsaWduIDQs IDB4MAotICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MLCAlZnVuY3Rpb24KLSAgIC50eXBl IENBUFRVUkVDT05URVhUX1NZTUJPTDIsICVmdW5jdGlvbgotLSNlbGlmIGRlZmluZWQoX19taXBz X18pCi0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgLmJhbGlnbiA0LCAweDAKLSAjZW5kaWYKLSAKLUBAIC00MjMsNCArNDIzLDIxNCBAQCBDQVBU VVJFQ09OVEVYVF9TWU1CT0wyOgotICAganIgJHJhCi0gCi0gICAuc2V0IGF0Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gU3RvcmUgcjAtcjMxCi0rICBzdGQgMCwgMHhlOCgz KSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMF0KLSsgIHN0ZCAxLCAweGYwKDMp ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXQotKyAgc3RkIDIsIDB4ZjgoMykg ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzJdCi0rICAvLyBub3RlIHRoYXQgcjMn cyBvcmlnaW5hbCB2YWx1ZSB3YXMgbG9zdAotKyAgc3RkIDMsIDB4MTAwKDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5ncF9yZWdzWzNdCi0rICBzdGQgNCwgMHgxMDgoMykgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmdwX3JlZ3NbNF0KLSsgIHN0ZCA1LCAweDExMCgzKSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1s1XQotKyAgc3RkIDYsIDB4MTE4KDMpICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzZdCi0rICBzdGQgNywgMHgxMjAoMykgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbN10KLSsgIHN0ZCA4LCAweDEyOCgzKSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1s4XQotKyAgc3RkIDksIDB4MTMwKDMpICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5ncF9yZWdzWzldCi0rICBzdGQgMTAsIDB4MTM4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTBdCi0rICBzdGQgMTEsIDB4MTQwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTFdCi0rICBzdGQgMTIsIDB4MTQ4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTJdCi0rICBzdGQgMTMsIDB4MTUwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTNdCi0rICBzdGQgMTQsIDB4MTU4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTRdCi0rICBzdGQgMTUsIDB4MTYwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTVdCi0rICBzdGQgMTYsIDB4MTY4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTZdCi0rICBzdGQgMTcsIDB4MTcwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTddCi0rICBzdGQgMTgsIDB4MTc4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMThdCi0rICBzdGQgMTksIDB4MTgwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMTldCi0rICBzdGQgMjAsIDB4MTg4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjBdCi0rICBzdGQgMjEsIDB4MTkwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjFdCi0rICBzdGQgMjIsIDB4MTk4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjJdCi0rICBzdGQgMjMsIDB4MWEwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjNdCi0rICBzdGQgMjQsIDB4MWE4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjRdCi0rICBzdGQgMjUsIDB4MWIwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjVdCi0rICBzdGQgMjYsIDB4MWI4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjZdCi0rICBzdGQgMjcsIDB4MWMwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjddCi0rICBzdGQgMjgsIDB4MWM4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjhdCi0rICBzdGQgMjksIDB4MWQwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMjldCi0rICBzdGQgMzAsIDB4MWQ4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMzBdCi0rICBzdGQgMzEsIDB4MWUwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbMzFdCi0rCi0rICAvLyBGb3IgTklQLCB3ZSBjYW4gdXNlIHRoZSB2YWx1 ZSBpbiB0aGUgbGluayByZWdpc3RlcgotKyAgbWZsciAwCi0rICBzdGQgMCwgMHgxZTgoMykgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdCi0rCi0rICAvLyBDVFIKLSsgIG1m Y3RyIDAKLSsgIHN0ZCAwLCAweDIwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdz W1BUX0NUUl0KLSsKLSsgIC8vIEZvciBMTkssIHdlJ2xsIHVzZSB0aGUgY2FsbGVyJ3MgTFIgc2F2 ZSBhcmVhICgyIHN0YWNrIGZyYW1lcyB1cCkuCi0rICAvLyByNCBjYW4gYmUgdXNlZCBhcyBhIHNj cmF0Y2ggcmVnaXN0ZXIgc2luY2UgaXQgaGFzIGFscmVhZHkgYmVlbiBzYXZlZC4KLSsgIGxkIDQs IDAoMSkKLSsgIGxkIDQsIDE2KDQpCi0rICBzdGQgNCwgMHgyMDgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdCi0rCi0rICAvLyBYRVIKLSsgIG1meGVyIDAKLSsgIHN0 ZCAwLCAweDIxMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0KLSsK LSsgIC8vIENDUgotKyAgbWZjciAwCi0rICBzdGQgMCwgMHgyMTgoMykgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdCi0rCi0rICAvLyBNU1IsIG9yaWdfcjMsIE1RLCBUUkFQ LCBEQVIsIERTSVNSLCBSRVNVTFQsIERTQ1IsCi0rICAvLyBub3QgdXNlZCBvciBub3QgcmVsZXZh bnQsICB6ZXJvIHRoZW0gb3V0LgotKyAgbGkgNCwgMAotKyAgc3RkIDQsIDB4MWYwKDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXQotKyAgc3RkIDQsIDB4MWY4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfT1JJR19SM10KLSsgIHN0ZCA0LCAweDIy MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01RXQotKyAgc3RkIDQsIDB4 MjI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfVFJBUF0KLSsgIHN0ZCA0 LCAweDIzMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RBUl0KLSsgIHN0 ZCA0LCAweDIzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTSVNSXQot KyAgc3RkIDQsIDB4MjQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfUkVT VUxUXQotKyAgc3RkIDQsIDB4MjQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3Nb UFRfRFNDUl0KLSsKLSsgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC5yZWdzIHRvIHBv aW50IHRvIGdwX3JlZ3MKLSsgIGFkZGkgMCwgMywgMHhlOAotKyAgc3RkIDAsIDB4ZTAoMykKLSsK LSsgIC8vIFNhdmUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIDAtMzEKLSsgIHN0ZmQgMCwgMHgy NjgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMF0KLSsgIHN0ZmQgMSwgMHgy NzAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMV0KLSsgIHN0ZmQgMiwgMHgy NzgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMl0KLSsgIHN0ZmQgMywgMHgy ODAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbM10KLSsgIHN0ZmQgNCwgMHgy ODgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNF0KLSsgIHN0ZmQgNSwgMHgy OTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNV0KLSsgIHN0ZmQgNiwgMHgy OTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNl0KLSsgIHN0ZmQgNywgMHgy YTAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbN10KLSsgIHN0ZmQgOCwgMHgy YTgoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOF0KLSsgIHN0ZmQgOSwgMHgy YjAoMykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOV0KLSsgIHN0ZmQgMTAsIDB4 MmI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTBdCi0rICBzdGZkIDExLCAw eDJjMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzExXQotKyAgc3RmZCAxMiwg MHgyYzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMl0KLSsgIHN0ZmQgMTMs IDB4MmQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTNdCi0rICBzdGZkIDE0 LCAweDJkOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE0XQotKyAgc3RmZCAx NSwgMHgyZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNV0KLSsgIHN0ZmQg MTYsIDB4MmU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTZdCi0rICBzdGZk IDE3LCAweDJmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE3XQotKyAgc3Rm ZCAxOCwgMHgyZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxOF0KLSsgIHN0 ZmQgMTksIDB4MzAwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTldCi0rICBz dGZkIDIwLCAweDMwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIwXQotKyAg c3RmZCAyMSwgMHgzMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMV0KLSsg IHN0ZmQgMjIsIDB4MzE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjJdCi0r ICBzdGZkIDIzLCAweDMyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIzXQot KyAgc3RmZCAyNCwgMHgzMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNF0K LSsgIHN0ZmQgMjUsIDB4MzMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjVd Ci0rICBzdGZkIDI2LCAweDMzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI2 XQotKyAgc3RmZCAyNywgMHgzNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sy N10KLSsgIHN0ZmQgMjgsIDB4MzQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MjhdCi0rICBzdGZkIDI5LCAweDM1MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzI5XQotKyAgc3RmZCAzMCwgMHgzNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1szMF0KLSsgIHN0ZmQgMzEsIDB4MzYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMzFdCi0rCi0rICAvLyBGUFNDUgotKyAgbWZmcyAwCi0rICBzdGZkIDAsIDB4MzY4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzJdCi0rCi0rICAvLyBTYXZlIFZNWCBWZWN0 b3IgcmVnaXN0ZXJzCi0rICAvLyBVcGRhdGUgcjQgdG8gY29udGFpbiB0aGUgYmFzZSBhZGRyZXNz IG9mIHZteF9yZXNlcnZlCi0rICBhZGRpIDQsIDMsIDB4Mzc4Ci0rICAvLyBFbnN1cmUgdGhhdCBp dCBpcyBxdWFkd29yZCBhbGlnbmVkCi0rICBhbmRpLiA1LCA0LCAweEYKLSsgIGJlcSAxZiAvLyBO byBhbGlnbm1lbnQgaXMgbmVjZXNzYXJ5Ci0rICAvLyBBZGRyZXNzIGlzIGRvdWJsZXdvcmQgYWxp Z25lZCBhbmQgbm90IHF1YWR3b3JkIGFsaWduZWQsIGFkZCA4Ci0rICBhZGRpIDQsIDQsIDgKLSsK LSsxOgotKyAgLy8gU3RvcmUgVk1YIHJlZ2lzdGVycyAwLTMxCi0rICAvLyByNCB3aWxsIGNvbnRh aW4gdGhlIGJhc2UgYWRkcmVzcwotKyAgLy8gcjUgd2lsbCBjb250YWluIHRoZSBpbmRleAotKyAg bGkgNSwgMAotKyAgc3R2eCAwLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEsIDQsIDUgICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMV0KLSsgIGFkZGkg NSwgNSwgMTYKLSsgIHN0dnggMiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyAyXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzLCA0LCA1ICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDNdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDQsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgNF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNSwgNCwgNSAg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA1XQotKyAgYWRk aSA1LCA1LCAxNgotKyAgc3R2eCA2LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDcsIDQsIDUg ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgN10KLSsgIGFk ZGkgNSwgNSwgMTYKLSsgIHN0dnggOCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyA4XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA5LCA0LCA1 ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDldCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDExLCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTFdCi0r ICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEz LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTNd Ci0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4 IDE1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MTVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBz dHZ4IDE3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMTddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE4LCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMThdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDE5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMTldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIwLCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjBdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDIxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMjFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIyLCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjJdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDIzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMjNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI0LCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjRdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDI1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMjVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI2LCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjZdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDI3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMjddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI4LCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjhdCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMwLCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzBdCi0r ICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBW U0NSCi0rICBtZnZzY3IgMAotKyAgc3R2eCAwLCA0LCA1Ci0rICBhZGRpIDUsIDUsIDE2Ci0rCi0r ICAvLyBWUlNBVkUKLSsgIG1mdnJzYXZlIDAKLSsgIHN0d3ggMCwgNCwgNQotKwotKyAgLy8gVXBk YXRlIGNvbnRleHQtPnVjX21jb250ZXh0LnZfcmVncyB0byBwb2ludCB0byB2bXhfcmVzZXJ2ZSAr IGFsaWdubWVudC4KLSsgIHN0ZCA0LCAweDM3MCgzKQotKwotKyAgLy8gWmVybyBvdXQgYWxsIHVu dXNlZCBmaWVsZHMKLSsgIGxpIDQsIDAKLSsgIHN0ZCA0LCAweGM4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnNpZ25hbAotKyAgc3RkIDQsIDB4ZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuaGFuZGxlcgotKyAgc3RkIDQsIDB4ZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQub2xk bWFzawotKwotKyAgYmxyCi0gI2VuZGlmICAvLyBfX2kzODZfXwotZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2Mg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90 ZXN0LmNjCi1pbmRleCBjZjIzYzJkZS4uNWYyNjRiYzkgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MKLSsr KyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRl eHRfdGVzdC5jYwotQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXN0Q2FwdHVyZUNvbnRleHQoKSB7 Ci0gICB1aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291bnRlckZyb21Db250ZXh0KGNvbnRleHRfMSk7 Ci0gCi0gI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgXAotLSAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKQotKyAg ICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9G QU1JTFkpCi0gICAvLyBTYW5pdGl6ZXJzIGNhbiBjYXVzZSBlbm91Z2ggY29kZSBibG9hdCB0aGF0 IHRoZSDigJxuZWFyYnnigJ0gY2hlY2sgd291bGQKLSAgIC8vIGxpa2VseSBmYWlsLgotICAgY29u c3QgdWludHB0cl90IGtSZWZlcmVuY2VQQyA9Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNj IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRf dGVzdF91dGlsX2xpbnV4LmNjCi1pbmRleCA5ZmM1ZGIyOC4uNWY2OWY4ZGMgMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0 X3Rlc3RfdXRpbF9saW51eC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv dXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLUBAIC0zNiw2ICsz Niw4IEBAIHZvaWQgU2FuaXR5Q2hlY2tDb250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNv bnRleHQpIHsKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LnJlZ3NbMF0sIEZyb21Q b2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzWzRd LCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOwotKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQu Z3BfcmVnc1szXSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSAjZW5k aWYKLSB9Ci0gCi1AQCAtNTAsNiArNTIsOCBAQCB1aW50cHRyX3QgUHJvZ3JhbUNvdW50ZXJGcm9t Q29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICByZXR1cm4gY29u dGV4dC51Y19tY29udGV4dC5wYzsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7Ci0rI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdz W1BUX05JUF07Ci0gI2VuZGlmCi0gfQotIAotQEAgLTY0LDYgKzY4LDggQEAgdWludHB0cl90IFN0 YWNrUG9pbnRlckZyb21Db250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsK LSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnNwOwotICNlbGlmIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5ncmVnc1syOV07 Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4 dC51Y19tY29udGV4dC5ncF9yZWdzWzFdOwotICNlbmRpZgotIH0KLSAKLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MgdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3QuY2MKLWlu ZGV4IDU4YmZhOGY4Li44ZmMzN2M0NiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYwotQEAgLTQ2LDEyICs0 NiwxMiBAQCBib29sIENhbkNhdXNlU2lnbmFsKGludCBzaWcpIHsKLSAgIHJldHVybiBzaWcgPT0g U0lHQUJSVCB8fAotICAgICAgICAgIHNpZyA9PSBTSUdBTFJNIHx8Ci0gICAgICAgICAgc2lnID09 IFNJR0JVUyB8fAotLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKLSsjaWYgIWRlZmluZWQo QVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotICAgICAgICAgIHNp ZyA9PSBTSUdGUEUgfHwKLS0jZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQotKyNl bmRpZiAgLy8gIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0KQotICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9D UFVfQVJNRUwpCi0gICAgICAgICAgc2lnID09IFNJR0lMTCB8fAotLSNlbmRpZiAgLy8gZGVmaW5l ZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMCi0rI2VuZGlm ICAvLyBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJN RUwpCi0gICAgICAgICAgc2lnID09IFNJR1BJUEUgfHwKLSAgICAgICAgICBzaWcgPT0gU0lHU0VH ViB8fAotICNpZiBkZWZpbmVkKE9TX01BQ09TWCkKLUBAIC0xMTcsOSArMTE3LDExIEBAIHZvaWQg Q2F1c2VTaWduYWwoaW50IHNpZykgewotICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0tI2lmICFk ZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQotKyNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYg IWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0gICAgIC8vIEFSTTY0IGhhcyBoYXJkd2FyZSBpbnRl Z2VyIGRpdmlzaW9uIGluc3RydWN0aW9ucyB0aGF0IGRvbuKAmXQgZ2VuZXJhdGUgYQotICAgICAv LyB0cmFwIGZvciBkaXZpZGUtYnktemVybywgc28gdGhpcyBkb2VzbuKAmXQgcHJvZHVjZSBTSUdG UEUuCi0rICAgIC8vCi0rICAgIC8vIFBQQzY0IGZpeGVkLXBvaW50IGRpdmlzaW9uIGJ5IHplcm8g YWxzbyBkb2Vzbid0IHByb2R1Y2UgYSBTSUdGUEUuCi0gICAgIGNhc2UgU0lHRlBFOiB7Ci0gICAg ICAgLy8gT3B0aW1pemF0aW9uIG1ha2VzIHRoaXMgdHJpY2t5LCBzbyBnZXQgemVybyBmcm9tIGEg c3lzdGVtIGNhbGwgbGlrZWx5Ci0gICAgICAgLy8gdG8gc3VjY2VlZCwgYW5kIHRyeSB0byBkbyBz b21ldGhpbmcgd2l0aCB0aGUgcmVzdWx0LgotQEAgLTEzNyw3ICsxMzksNyBAQCB2b2lkIENhdXNl U2lnbmFsKGludCBzaWcpIHsKLSAgICAgICBmc3RhdChxdW90aWVudCwgJnN0YXRfYnVmKTsKLSAg ICAgICBicmVhazsKLSAgICAgfQotLSNlbmRpZiAgLy8gQVJDSF9DUFVfQVJNNjQKLSsjZW5kaWYg IC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkK LSAKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BV X0FSTUVMKQotICAgICBjYXNlIFNJR0lMTDogewotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9kYXYx ZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgotaW5kZXggNzg4ZGM2Y2YuLjVm ZDdlOGZkIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24KLSsrKyBiL3Ro aXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCi1AQCAtMTgyLDYgKzE4Miw4IEBAIHN0YXRpY19saWJy YXJ5KCJkYXYxZF84Yml0IikgewotICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2Vz Ci0gICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLSAgICAgc291cmNlcyAr PSBhcm1fdGVtcGxhdGVfc291cmNlcwotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBj NjQiKSB7Ci0rICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxhdGVfc291cmNlcwotICAgfQotIAot ICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLUBAIC0yMTAsNiArMjEyLDggQEAgc3RhdGljX2xpYnJh cnkoImRhdjFkXzEwYml0IikgewotICAgICBzb3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2Vz Ci0gICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLSAgICAgc291cmNlcyAr PSBhcm1fdGVtcGxhdGVfc291cmNlcwotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBj NjQiKSB7Ci0rICAgIHNvdXJjZXMgKz0gcHBjNjRfdGVtcGxhdGVfc291cmNlcwotICAgfQotIAot ICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLUBAIC0yNTYsNiArMjYwLDIxIEBAIGlmIChjdXJyZW50 X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0IikgewotICAgICAgICI6ZGF2MWRf Y29uZmlnIiwKLSAgICAgXQotIAotKyAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotKyAgfQotK30g ZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgc3RhdGljX2xpYnJhcnkoImRh djFkX3BwYyIpIHsKLSsgICAgc291cmNlcyA9IFsKLSsgICAgICAibGliZGF2MWQvc3JjL3BwYy9j cHUuYyIsCi0rICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmgiLAotKyAgICBdCi0rCi0rICAg IGNvbmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y2hyb21pdW1fY29kZSIgXQot KyAgICBjb25maWdzICs9IFsKLSsgICAgICAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6bm9fY2hy b21pdW1fY29kZSIsCi0rICAgICAgIjpkYXYxZF9jb25maWciLAotKyAgICBdCi0rCi0gICAgIGNm bGFncyA9IGRhdjFkX2NvcHRzCi0gICB9Ci0gfQotQEAgLTI4NSw1ICszMDQsNyBAQCBzdGF0aWNf bGlicmFyeSgiZGF2MWQiKSB7Ci0gICAgIH0KLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0g ImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0IikgewotICAgICBkZXBzICs9IFsgIjpkYXYx ZF9hcm0iIF0KLSsgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgICBk ZXBzICs9IFsgIjpkYXYxZF9wcGMiIF0KLSAgIH0KLSB9Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2RhdjFkL2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaCB0aGlyZF9wYXJ0eS9kYXYxZC9jb25m aWcvbGludXgvcHBjNjQvY29uZmlnLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwMC4uZjZjYTU3ZjcKLS0tLSAvZGV2L251bGwKLSsrKyBiL3RoaXJkX3BhcnR5L2RhdjFkL2Nv bmZpZy9saW51eC9wcGM2NC9jb25maWcuaAotQEAgLTAsMCArMSwzNSBAQAotKy8qCi0rICogQXV0 b2dlbmVyYXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgotKyAqIERvIG5vdCBlZGl0LCB5 b3VyIGNoYW5nZXMgd2lsbCBiZSBsb3N0LgotKyAqLwotKwotKyNwcmFnbWEgb25jZQotKwotKyNk ZWZpbmUgQVJDSF9BQVJDSDY0IDAKLSsKLSsjZGVmaW5lIEFSQ0hfQVJNIDAKLSsKLSsjZGVmaW5l IEFSQ0hfUFBDNjRMRSAxCi0rCi0rI2RlZmluZSBBUkNIX1g4NiAwCi0rCi0rI2RlZmluZSBBUkNI X1g4Nl8zMiAwCi0rCi0rI2RlZmluZSBBUkNIX1g4Nl82NCAwCi0rCi0rI2RlZmluZSBDT05GSUdf MTZCUEMgMQotKwotKyNkZWZpbmUgQ09ORklHXzhCUEMgMQotKwotKyNkZWZpbmUgQ09ORklHX0xP RyAxCi0rCi0rI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCi0rCi0rI2RlZmluZSBIQVZFX0FTTSAx Ci0rCi0rI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCi0rCi0rI2RlZmluZSBIQVZFX1BPU0lYX01F TUFMSUdOIDEKLSsKLSsjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotKwotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQuZ25pIHRoaXJkX3BhcnR5L2RhdjFkL2RhdjFk X2dlbmVyYXRlZC5nbmkKLWluZGV4IDhiZWNhYzAyLi5kNWY0ZmNhYyAxMDA2NDQKLS0tLSBhL3Ro aXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVyYXRlZC5nbmkKLSsrKyBiL3RoaXJkX3BhcnR5L2Rh djFkL2RhdjFkX2dlbmVyYXRlZC5nbmkKLUBAIC03MSw2ICs3MSwxMSBAQCBhcm1fdGVtcGxhdGVf c291cmNlcyA9IFsKLSAgICJsaWJkYXYxZC9zcmMvYXJtL21jX2luaXRfdG1wbC5jIiwKLSBdCi0g Ci0rcHBjNjRfdGVtcGxhdGVfc291cmNlcyA9IFsKLSsgICJsaWJkYXYxZC9zcmMvcHBjL2NkZWZf aW5pdF90bXBsLmMiLAotKyAgImxpYmRhdjFkL3NyYy9wcGMvbG9vcHJlc3RvcmF0aW9uX2luaXRf dG1wbC5jIiwKLStdCi0rCi0gdGVtcGxhdGVfc291cmNlcyA9IFsKLSAgICJsaWJkYXYxZC9zcmMv Y2RlZl9hcHBseV90bXBsLmMiLAotICAgImxpYmRhdjFkL3NyYy9jZGVmX3RtcGwuYyIsCi1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weSB0aGlyZF9wYXJ0eS9k YXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKLWluZGV4IDlhYjVlMDBiLi5hZDNmZWZmZSAxMDA3NTUK LS0tLSBhL3RoaXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weQotKysrIGIvdGhpcmRf cGFydHkvZGF2MWQvZ2VuZXJhdGVfc291cmNlLnB5Ci1AQCAtNTAsNyArNTAsOCBAQCBkZWYgV3Jp dGVHbihmZCk6Ci0gICBXcml0ZUFycmF5KGZkLCAiYXJtMzJfYXNtX3NvdXJjZXMiLCBnbG9iLmds b2IoImxpYmRhdjFkL3NyYy9hcm0vMzIvKi5TIikpCi0gICBXcml0ZUFycmF5KGZkLCAiYXJtNjRf YXNtX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFkL3NyYy9hcm0vNjQvKi5TIikpCi0gICBX cml0ZUFycmF5KGZkLCAiYXJtX3RlbXBsYXRlX3NvdXJjZXMiLCBnbG9iLmdsb2IoImxpYmRhdjFk L3NyYy9hcm0vKl90bXBsLmMiKSkKLS0KLSsgIFdyaXRlQXJyYXkoZmQsICJwcGM2NF90ZW1wbGF0 ZV9zb3VyY2VzIiwgZ2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMvcHBjLypfdG1wbC5jIikpCi0rIAot ICAgdGVtcGxhdGVfc291cmNlcyA9IGdsb2IuZ2xvYigibGliZGF2MWQvc3JjLypfdG1wbC5jIikK LSAgIFdyaXRlQXJyYXkoZmQsICJ0ZW1wbGF0ZV9zb3VyY2VzIiwgdGVtcGxhdGVfc291cmNlcykK LSAKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5o IHRoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvdHlwZXMuaAotaW5kZXggMGI0YmQ3 MmYuLmEwY2FhNWU3IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3Jj L3BwYy90eXBlcy5oCi0rKysgYi90aGlyZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5 cGVzLmgKLUBAIC01MSw0ICs1MSwxOSBAQAotICNkZWZpbmUgdTE2bF90b19pMzIodikgKChpMzJ4 NCkgdmVjX21lcmdlbCgodTE2eDgpIHYsIHZlY19zcGxhdF91MTYoMCkpKQotICNkZWZpbmUgaTE2 bF90b19pMzIodikgKChpMzJ4NCkgdmVjX3VucGFja2woKGkxNng4KXYpKQotIAotKyNpZiBkZWZp bmVkKF9fY2xhbmdfXykKLSsjdW5kZWYgdmVjX3NwbGF0cwotKyNkZWZpbmUgdmVjX3NwbGF0cyhO KSAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgX0dlbmVyaWMoKE4pLCAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0rICAgICAgICB1bnNpZ25lZCBjaGFyOiAgICAgICgodTh4MTYpKE4pKSwg XAotKyAgICAgICAgc2lnbmVkIGNoYXI6ICAgICAgICAoKGk4eDE2KShOKSksIFwKLSsgICAgICAg IHVuc2lnbmVkIHNob3J0OiAgICAgKCh1MTZ4OCkoTikpLCBcCi0rICAgICAgICBzaWduZWQgc2hv cnQ6ICAgICAgICgoaTE2eDgpKE4pKSwgXAotKyAgICAgICAgdW5zaWduZWQgaW50OiAgICAgICAo KHUzMng0KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBpbnQ6ICAgICAgICAgKChpMzJ4NCkoTikp LCBcCi0rICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmc6ICgodTY0eDIpKE4pKSwgXAotKyAgICAg ICAgc2lnbmVkIGxvbmcgbG9uZzogICAoKGk2NHgyKShOKSkgIFwKLSsgICAgKQotKyNlbmRpZgot KwotICNlbmRpZiAvKiBEQVYxRF9TUkNfUFBDX1RZUEVTX0ggKi8KLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvbGlidnB4L0JVSUxELmduIHRoaXJkX3BhcnR5L2xpYnZweC9CVUlMRC5nbgotaW5kZXgg MzFhMjZlNWI0NC4uODRjMTViNjFiOCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2xpYnZweC9C VUlMRC5nbgotKysrIGIvdGhpcmRfcGFydHkvbGlidnB4L0JVSUxELmduCi1AQCAtMzgsNiArMzgs OCBAQCBpZiAoY3VycmVudF9jcHUgPT0gIng4NiIpIHsKLSAKLSBpZiAoaXNfbmFjbCkgewotICAg cGxhdGZvcm1faW5jbHVkZV9kaXIgPSAic291cmNlL2NvbmZpZy9uYWNsIgotK30gZWxzZSBpZiAo Y3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgcGxhdGZvcm1faW5jbHVkZV9kaXIgPSAic291 cmNlL2NvbmZpZy9saW51eC9nZW5lcmljIgotIH0gZWxzZSB7Ci0gICAjIFRoZSBtYWMgY29uZmln dXJhdGlvbnMgYXJlIGN1cnJlbnRseSBhIHJlbGljLiBUaGV5IHdlcmUgdXNlZnVsIHdoZW4KLSAg ICMgeDg2aW5jLmFzbSBkaWQgbm90IHdvcmsgZm9yIE1BQ0hfTyBidXQgbm93IHRoZSBidWlsZCBp cyBpZGVudGljYWwgdG8gdGhlCi1AQCAtMzM2LDYgKzMzNiw4IEBAIHN0YXRpY19saWJyYXJ5KCJs aWJ2cHgiKSB7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgc291cmNlcyA9IGxpYnZweF9zcmNzX2Fy bTY0Ci0gICAgIH0KLSsgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAg ICBzb3VyY2VzID0gbGlidnB4X3NyY3NfZ2VuZXJpYwotICAgfQotIAotICAgY29uZmlncyAtPSBb ICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2RlIiBdCi1AQCAtNDAxLDYgKzQw Myw4IEBAIHN0YXRpY19saWJyYXJ5KCJsaWJ2cDlyYyIpIHsKLSAgICAgfSBlbHNlIHsKLSAgICAg ICBzb3VyY2VzID0gbGlidnB4X3NyY3NfYXJtNjQKLSAgICAgfQotKyAgfSBlbHNlIGlmIChjdXJy ZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgIHNvdXJjZXMgPSBsaWJ2cHhfc3Jjc19nZW5lcmlj Ci0gICB9Ci0gICBzb3VyY2VzICs9IFsgIi8vdGhpcmRfcGFydHkvbGlidnB4L3NvdXJjZS9saWJ2 cHgvdnA5L3JhdGVjdHJsX3J0Yy5jYyIgXQotICAgc291cmNlcyArPSBbICIvL3RoaXJkX3BhcnR5 L2xpYnZweC9zb3VyY2UvbGlidnB4L3ZwOS9yYXRlY3RybF9ydGMuaCIgXQotZGlmZiAtLWdpdCB0 aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmggdGhpcmRfcGFydHkvbHNzL2xp bnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1pbmRleCBkMmJhZWU5ZC4uOTk1NWNlNDQgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLSsrKyBiL3RoaXJk X3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotQEAgLTM5MjIsNyArMzkyMiw3IEBA IHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKLSAgICAgICBMU1NfUkVHKDIsIGJ1Zik7Ci0gICAgICAg TFNTX0JPRFkodm9pZCosIG1tYXAyLCAiMCIoX19yMikpOwotICAgICB9Ci0tI2Vsc2UKLSsjZWxp ZiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAvKiBwcGM2NCBkb2Vzbid0IGhhdmUgbW1hcDIgKi8K LSAgICAgI2RlZmluZSBfX05SX19tbWFwMiBfX05SX21tYXAyCi0gICAgIExTU19JTkxJTkUgX3N5 c2NhbGw2KHZvaWQqLCBfbW1hcDIsICAgICAgICAgICAgdm9pZCosIHMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVfdCwgICAgICAgICAgICAgICAgICAgbCwgaW50LCAgICAgICAgICAg ICAgIHAsCi1AQCAtNDAzMyw3ICs0MDMzLDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewotICAg I2lmIGRlZmluZWQoX19pMzg2X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICBkZWZpbmVkKF9fQVJNX0FSQ0hfM19fKSB8fCBk ZWZpbmVkKF9fQVJNX0VBQklfXykgfHwgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAoZGVm aW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMikgfHwgICAgICAg ICAgICAgICAgICAgXAotLSAgICAgIGRlZmluZWQoX19QUENfXykgfHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgIChkZWZpbmVkKF9f UFBDX18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pKSB8fCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgKGRlZmluZWQoX19zMzkw X18pICYmICFkZWZpbmVkKF9fczM5MHhfXykpCi0gICAgIC8qIE9uIHRoZXNlIGFyY2hpdGVjdHVy ZXMsIGltcGxlbWVudCBtbWFwKCkgd2l0aCBtbWFwMigpLiAqLwotICAgICBMU1NfSU5MSU5FIHZv aWQqIExTU19OQU1FKG1tYXApKHZvaWQgKnMsIHNpemVfdCBsLCBpbnQgcCwgaW50IGYsIGludCBk LAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYyB0aGlyZF9wYXJ0eS9w ZmZmdC9zcmMvcGZmZnQuYwotaW5kZXggYmRhYzRkNzg0Li41MWUwZjJjYWMgMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotKysrIGIvdGhpcmRfcGFydHkvcGZmZnQv c3JjL3BmZmZ0LmMKLUBAIC0xMDAsNiArMTAwLDcgQEAKLSAgICBBbHRpdmVjIHN1cHBvcnQgbWFj cm9zIAotICovCi0gI2lmICFkZWZpbmVkKFBGRkZUX1NJTURfRElTQUJMRSkgJiYgKGRlZmluZWQo X19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pKQotKyNpbmNsdWRlIDxhbHRpdmVjLmg+Ci0g dHlwZWRlZiB2ZWN0b3IgZmxvYXQgdjRzZjsKLSAjICBkZWZpbmUgU0lNRF9TWiA0Ci0gIyAgZGVm aW5lIFZaRVJPKCkgKCh2ZWN0b3IgZmxvYXQpIHZlY19zcGxhdF91OCgwKSkKLWRpZmYgLS1naXQg dGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5nLmNwcCB0aGlyZF9wYXJ0eS9za2lh L3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCi1pbmRleCA4OGViMWM3ZC4uNGJlMzNmYTUgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCi0rKysgYi90 aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCi1AQCAtMjQwLDcgKzI0MCwx MiBAQCBTdHJpbmcgdG9fc3RyaW5nKGRvdWJsZSB2YWx1ZSkgewotICAgICBpZiAobmVlZHNEb3Ra ZXJvKSB7Ci0gICAgICAgICBidWZmZXIgPDwgIi4wIjsKLSAgICAgfQotLSAgICByZXR1cm4gU3Ry aW5nKGJ1ZmZlci5zdHIoKS5jX3N0cigpKTsKLSsKLSsgICAgc3RkOjpzdHJpbmcgcmV0KGJ1ZmZl ci5zdHIoKSk7Ci0rICAgIGlmIChzaWduYml0KHZhbHVlKSAmJiByZXRbMF0gPT0gJy4nKSB7Ci0r ICAgICAgICByZXRbMF0gPSAnLSc7Ci0rICAgIH0KLSsgICAgcmV0dXJuIFN0cmluZyhyZXQuY19z dHIoKSk7Ci0gfQotIAotIFNLU0xfSU5UIHN0b2koY29uc3QgU3RyaW5nJiBzKSB7Ci1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYyB0aGlyZF9w YXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLWluZGV4IDFiMmMyZWM3Li43 NTkzZGJhMSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9u L3NxbGl0ZTMuYwotKysrIGIvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24vc3Fs aXRlMy5jCi1AQCAtMTQ0MDAsNyArMTQ0MDAsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0 OwotICMgaWYgZGVmaW5lZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwg ZGVmaW5lZChfTV9JWDg2KSB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRl ZmluZWQoX01fQU1ENjQpICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194 ODYpICAgfHwgICAgXAotLSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJD SDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkKLSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8 fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAotKyAg ICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9M SVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAj IGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAotICAgICAg ICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jIHRoaXJk X3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKLWluZGV4IDE5Yzg3 Njg5Li5jN2FiMDM5ZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdh bWF0aW9uX2Rldi9zcWxpdGUzLmMKLSsrKyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdh bWF0aW9uX2Rldi9zcWxpdGUzLmMKLUBAIC0xNDQxMyw3ICsxNDQxMyw4IEBAIHR5cGVkZWYgSU5U MTZfVFlQRSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kz ODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX194 ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwg ICAgXAotICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAg fHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwg ZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQotKyAgICAgZGVmaW5l ZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02 NCkgfHwgICBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJf XyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5lIFNRTElURV9CWVRFT1JE RVIgICAgMTIzNAotICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5lZChfX3BwY19f KSB8fCBcCi0gICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVC X18pCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMg dGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYwotaW5kZXggZWZhZWY4MTMu LjRjZDU3ZDU1IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUv cnRyZWUuYwotKysrIGIvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYwot QEAgLTQzMiw3ICs0MzIsNyBAQCBzdHJ1Y3QgUnRyZWVNYXRjaEFyZyB7Ci0gI2lmIGRlZmluZWQo aTM4NikgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgfHwgZGVmaW5lZChfTV9JWDg2KSB8fCAg ICBcCi0gICAgIGRlZmluZWQoX194ODZfNjQpIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfTV9YNjQpICB8fCAgICBcCi0gICAgIGRlZmluZWQoX01fQU1ENjQpIHx8IGRlZmluZWQo X01fQVJNKSAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgIGRlZmluZWQoX19h cm1fXykKLSsgICAgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYm IChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjIGRlZmluZSBT UUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjZWxpZiBkZWZpbmVkKHNwYXJjKSAgICB8fCBkZWZp bmVkKF9fcHBjX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICA0MzIxCi1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oIHRoaXJkX3BhcnR5L3Nx bGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCi1pbmRleCAxMjJlMjZhZC4uZWMyMWRjYjUgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAotKysrIGIvdGhp cmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLUBAIC04NjgsNyArODY4LDggQEAg dHlwZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBk ZWZpbmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICAg ZGVmaW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChf TV9YNjQpICB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9B Uk0pICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAgIGRlZmluZWQoX19B Uk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCi0r ICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZp bmVkKF9NX0FSTTY0KSB8fCBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZ VEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5lIFNRTElU RV9CWVRFT1JERVIgICAgMTIzNAotICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5l ZChfX3BwY19fKSB8fCBcCi0gICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9f QUFSQ0g2NEVCX18pCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0 b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MgdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVz a3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYwotaW5kZXggZGQ5YWI0NTcuLmMwMDVkOTU5IDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9jYXB0dXJlL2Rp ZmZlcl9ibG9jay5jYwotKysrIGIvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvZGVza3RvcF9j YXB0dXJlL2RpZmZlcl9ibG9jay5jYwotQEAgLTMwLDExICszMCw3IEBAIGJvb2wgVmVjdG9yRGlm ZmVyZW5jZShjb25zdCB1aW50OF90KiBpbWFnZTEsIGNvbnN0IHVpbnQ4X3QqIGltYWdlMikgewot ICAgc3RhdGljIGJvb2wgKCpkaWZmX3Byb2MpKGNvbnN0IHVpbnQ4X3QqLCBjb25zdCB1aW50OF90 KikgPSBudWxscHRyOwotIAotICAgaWYgKCFkaWZmX3Byb2MpIHsKLS0jaWYgZGVmaW5lZChXRUJS VENfQVJDSF9BUk1fRkFNSUxZKSB8fCBkZWZpbmVkKFdFQlJUQ19BUkNIX01JUFNfRkFNSUxZKQot LSAgICAvLyBGb3IgQVJNIGFuZCBNSVBTIHByb2Nlc3NvcnMsIGFsd2F5cyB1c2UgQyB2ZXJzaW9u LgotLSAgICAvLyBUT0RPKGhjbGFtKTogSW1wbGVtZW50IGEgTkVPTiB2ZXJzaW9uLgotLSAgICBk aWZmX3Byb2MgPSAmVmVjdG9yRGlmZmVyZW5jZV9DOwotLSNlbHNlCi0rI2lmIGRlZmluZWQoV0VC UlRDX0FSQ0hfWDg2X0ZBTUlMWSkKLSAgICAgYm9vbCBoYXZlX3NzZTIgPSBXZWJSdGNfR2V0Q1BV SW5mbyhrU1NFMikgIT0gMDsKLSAgICAgLy8gRm9yIHg4NiBwcm9jZXNzb3JzLCBjaGVjayBpZiBT U0UyIGlzIHN1cHBvcnRlZC4KLSAgICAgaWYgKGhhdmVfc3NlMiAmJiBrQmxvY2tTaXplID09IDMy KSB7Ci1AQCAtNDQsNiArNDAsMTAgQEAgYm9vbCBWZWN0b3JEaWZmZXJlbmNlKGNvbnN0IHVpbnQ4 X3QqIGltYWdlMSwgY29uc3QgdWludDhfdCogaW1hZ2UyKSB7Ci0gICAgIH0gZWxzZSB7Ci0gICAg ICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKLSAgICAgfQotKyNlbHNlCi0rICAg IC8vIEZvciBvdGhlciBwcm9jZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVyc2lvbi4KLSsgICAgLy8g VE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lvbi4KLSsgICAgZGlmZl9wcm9jID0g JlZlY3RvckRpZmZlcmVuY2VfQzsKLSAjZW5kaWYKLSAgIH0KLSAKLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmggdGhpcmRfcGFydHkvd2VicnRjL3J0 Y19iYXNlL3N5c3RlbS9hcmNoLmgKLWluZGV4IGVkMjE2ZTY2Li4yNWQzNmMwNyAxMDA2NDQKLS0t LSBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi0rKysgYi90aGly ZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2FyY2guaAotQEAgLTUwLDYgKzUwLDE4IEBA Ci0gI2VsaWYgZGVmaW5lZChfX0VNU0NSSVBURU5fXykKLSAjZGVmaW5lIFdFQlJUQ19BUkNIXzMy X0JJVFMKLSAjZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KLSsjZWxpZiBkZWZpbmVk KF9fUFBDX18pCi0rI2RlZmluZSBXRUJSVENfQVJDSF9QUENfRkFNSUxZCi0rI2lmIF9fQllURV9P UkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fCi0rI2RlZmluZSBXRUJSVENfQVJDSF9M SVRUTEVfRU5ESUFOCi0rI2Vsc2UKLSsjZGVmaW5lIFdFQlJUQ19BUkNIX0JJR19FTkRJQU4KLSsj ZW5kaWYKLSsjaWYgZGVmaW5lZChfX0xQNjRfXykKLSsjZGVmaW5lIFdFQlJUQ19BUkNIXzY0X0JJ VFMKLSsjZWxzZQotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUwotKyNlbmRpZgotICNlbHNl Ci0gI2Vycm9yIFBsZWFzZSBhZGQgc3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gcnRj X2Jhc2Uvc3lzdGVtL2FyY2guaAotICNlbmRpZgotIGRpZmYgLS1naXQgdjgvQlVJTEQuZ24gdjgv QlVJTEQuZ24KLWluZGV4IDE2N2U2MzUwMy4uMTI1YzQ0NWVhIDEwMDY0NAotLS0tIGEvdjgvQlVJ TEQuZ24KLSsrKyBiL3Y4L0JVSUxELmduCi1AQCAtNjk2LDYgKzY5NiwxMiBAQCBjb25maWcoInRv b2xjaGFpbiIpIHsKLSAgICAgfQotICAgICBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImxpdHRsZSIp IHsKLSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19MRSIgXQotKyAgICAg ICAgY2ZsYWdzICs9IFsKLSsgICAgICAgICMgRW5hYmxlIHVzYWdlIG9mIEFsdGlWZWMsIFZTWCwg YW5kIG90aGVyIFBPV0VSOCBhbmQgaGlnaGVyIGZlYXR1cmVzCi0rICAgICAgICAiLW1jcHU9cG93 ZXI4IiwKLSsgICAgICAgICItbWFsdGl2ZWMiLAotKyAgICAgICAgIi1tdnN4IiwKLSsgICAgICBd Ci0gICAgIH0gZWxzZSBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImJpZyIpIHsKLSAgICAgICBkZWZp bmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19CRSIgXQotICAgICAgIGlmIChjdXJyZW50X29z ID09ICJhaXgiKSB7Ci1kaWZmIC0tZ2l0IHVpL2dsL2ZlYXR1cmVzLmduaSB1aS9nbC9mZWF0dXJl cy5nbmkKLWluZGV4IGNiMmM5ODY0OS4uNWUwOWJjMWY3IDEwMDY0NAotLS0tIGEvdWkvZ2wvZmVh dHVyZXMuZ25pCi0rKysgYi91aS9nbC9mZWF0dXJlcy5nbmkKLUBAIC0yNSw1ICsyNSw2IEBAIGRl Y2xhcmVfYXJncygpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpc19jaHJvbWVvcyB8fCBp c19mdWNoc2lhKSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgKHRhcmdldF9jcHUgPT0gIng4 NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIHRh cmdldF9jcHUgPT0gImFybSIgfHwgdGFyZ2V0X2NwdSA9PSAiYXJtNjQiIHx8Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAibWlwc2VsIiB8fCB0YXJnZXRfY3B1ID09ICJt aXBzNjRlbCIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAibWlwc2Vs IiB8fCB0YXJnZXRfY3B1ID09ICJtaXBzNjRlbCIgfHwKLSsgICAgICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfY3B1ID09ICJwcGM2NCIpCi0gfQotZGlmZiAtLWdpdCB2OC90ZXN0L0JVSUxELmdu IHY4L3Rlc3QvQlVJTEQuZ24KLWluZGV4IGY2ZDMwNTM3YS4uMjg3YjI3MDgwIDEwMDY0NAotLS0t IGEvdjgvdGVzdC9CVUlMRC5nbgotKysrIGIvdjgvdGVzdC9CVUlMRC5nbgotQEAgLTMxLDcgKzMx LDcgQEAgZ3JvdXAoImduX2FsbCIpIHsKLSAgICAgZGVwcyArPSBbCi0gICAgICAgImNjdGVzdDpj Y3Rlc3QiLAotICAgICAgICJjY3Rlc3Q6Z2VuZXJhdGUtYnl0ZWNvZGUtZXhwZWN0YXRpb25zIiwK LS0gICAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0rICAgICAgIyJ1bml0dGVzdHM6dW5pdHRl c3RzIiwKLSAgICAgXQotICAgfQotIH0KLUBAIC03Myw3ICs3Myw3IEBAIGdyb3VwKCJ2OF9ib3Rf ZGVmYXVsdCIpIHsKLSAgICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCi0gICAgICJtanN1bml0OnY4 X21qc3VuaXQiLAotICAgICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKLS0gICAgInVuaXR0ZXN0 czp1bml0dGVzdHMiLAotKyAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICAid2FzbS1h cGktdGVzdHM6d2FzbV9hcGlfdGVzdHMiLAotICAgICAid2FzbS1qczp2OF93YXNtX2pzIiwKLSAg ICAgIndhc20tc3BlYy10ZXN0czp2OF93YXNtX3NwZWNfdGVzdHMiLAotQEAgLTkzLDcgKzkzLDcg QEAgZ3JvdXAoInY4X2RlZmF1bHQiKSB7Ci0gICAgICJtZXNzYWdlOnY4X21lc3NhZ2UiLAotICAg ICAibWpzdW5pdDp2OF9tanN1bml0IiwKLSAgICAgIm1rZ3Jva2R1bXA6bWtncm9rZHVtcCIsCi0t ICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwK LSAgICAgIndhc20tYXBpLXRlc3RzOndhc21fYXBpX3Rlc3RzIiwKLSAgICAgIndhc20tanM6djhf d2FzbV9qcyIsCi0gICAgICJ3YXNtLXNwZWMtdGVzdHM6djhfd2FzbV9zcGVjX3Rlc3RzIiwKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXh4eC1w cGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0teHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGRmNDUzZjQ5MWQ4Yy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv ZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVy LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tIGEvdGhpcmRfcGFydHkv c3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL0JVSUxELmduCi0rKysgYi90aGlyZF9w YXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvQlVJTEQuZ24KLUBAIC01NzQs NiArNTc0LDcgQEAgc3dpZnRzaGFkZXJfbGx2bV9zb3VyY2Vfc2V0KCJzd2lmdHNoYWRlcgotICAg ICAibGx2bS9saWIvTUMvTUNBc21JbmZvQ09GRi5jcHAiLAotICAgICAibGx2bS9saWIvTUMvTUNB c21JbmZvRGFyd2luLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ0FzbUluZm9FTEYuY3BwIiwK LSsgICAgImxsdm0vbGliL01DL01DQXNtSW5mb1hDT0ZGLmNwcCIsCi0gICAgICJsbHZtL2xpYi9N Qy9NQ0FzbU1hY3JvLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ0FzbVN0cmVhbWVyLmNwcCIs Ci0gICAgICJsbHZtL2xpYi9NQy9NQ0Fzc2VtYmxlci5jcHAiLAotQEAgLTYyOSw2ICs2MzAsNyBA QCBzd2lmdHNoYWRlcl9sbHZtX3NvdXJjZV9zZXQoInN3aWZ0c2hhZGVyCi0gICAgICJsbHZtL2xp Yi9NQy9NQ1dpbkNPRkZTdHJlYW1lci5jcHAiLAotICAgICAibGx2bS9saWIvTUMvTUNXaW5FSC5j cHAiLAotICAgICAibGx2bS9saWIvTUMvTUNYQ09GRlN0cmVhbWVyLmNwcCIsCi0rICAgICJsbHZt L2xpYi9NQy9NQ1hDT0ZGT2JqZWN0VGFyZ2V0V3JpdGVyLmNwcCIsCi0gICAgICJsbHZtL2xpYi9N Qy9NYWNoT2JqZWN0V3JpdGVyLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9TdHJpbmdUYWJsZUJ1 aWxkZXIuY3BwIiwKLSAgICAgImxsdm0vbGliL01DL1N1YnRhcmdldEZlYXR1cmUuY3BwIiwKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUFkZC1h LXNjcmlwdC10by1saXN0LXBhdGNoLXRhcmdldHMucGF0Y2gucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uMTAvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10 YXJnZXRzLnBhdGNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTZkYmE5 ZGMzYmMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hl cy9lbGVjdHJvbi1BZGQtYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotRnJvbSBmZjQxMjJmMjM2YjcwYzI3MmM3 NDZkMGMzMzZjZGJkNTg4ZDc4Y2QxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRWx2 aXMgUHJhbnNrZXZpY2h1cyA8ZWx2aXNAbWFnaWMuaW8+Ci1EYXRlOiBUaHUsIDEyIERlYyAyMDE5 IDE2OjEyOjE4IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEFkZCBhIHNjcmlwdCB0byBsaXN0IHBh dGNoIHRhcmdldHMKLQotLS0tCi0gc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSB8IDIzICsr KysrKysrKysrKysrKysrKysrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKykK LSBjcmVhdGUgbW9kZSAxMDA3NTUgc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weQotCi1kaWZm IC0tZ2l0IGEvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSBiL3NjcmlwdC9saXN0X3BhdGNo X3RhcmdldHMucHkKLW5ldyBmaWxlIG1vZGUgMTAwNzU1Ci1pbmRleCAwMDAwMDAwMDAuLjU1MTcz YmFjOQotLS0tIC9kZXYvbnVsbAotKysrIGIvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weQot QEAgLTAsMCArMSwyMyBAQAotKyMhL3Vzci9iaW4vZW52IHB5dGhvbgotKwotK2ltcG9ydCBhcmdw YXJzZQotK2ltcG9ydCBqc29uCi0rCi0rCi0rZGVmIHBhcnNlX2FyZ3MoKToKLSsgIHBhcnNlciA9 IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdBcHBseSBFbGVjdHJvbiBwYXRj aGVzJykKLSsgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2NvbmZpZycsIG5hcmdzPScrJywKLSsgICAg ICAgICAgICAgICAgICAgICAgdHlwZT1hcmdwYXJzZS5GaWxlVHlwZSgncicpLAotKyAgICAgICAg ICAgICAgICAgICAgICBoZWxwPSdwYXRjaGVzXCcgY29uZmlnKHMpIGluIHRoZSBKU09OIGZvcm1h dCcpCi0rICByZXR1cm4gcGFyc2VyLnBhcnNlX2FyZ3MoKQotKwotKwotK2RlZiBtYWluKCk6Ci0r ICBjb25maWdzID0gcGFyc2VfYXJncygpLmNvbmZpZwotKyAgZm9yIGNvbmZpZ19qc29uIGluIGNv bmZpZ3M6Ci0rICAgIGZvciBwYXRjaF9kaXIsIHJlcG8gaW4ganNvbi5sb2FkKGNvbmZpZ19qc29u KS5pdGVyaXRlbXMoKToKLSsgICAgICBwcmludChyZXBvKQotKwotKwotK2lmIF9fbmFtZV9fID09 ICdfX21haW5fXyc6Ci0rICBtYWluKCkKLS0tIAotMi4yMy4wCi0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4 ZXMucGF0Y2gucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5OGJmYTliY2Iy Yi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2Vs ZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAs MCBAQAotZGlmZiAtLWdpdCBhL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbiBiL2J1aWxkL2FyZ3MvcmVs ZWFzZS5nbgotaW5kZXggZTUwMTdmNmUxLi41OTIwN2IzODkgMTAwNjQ0Ci0tLS0gYS9idWlsZC9h cmdzL3JlbGVhc2UuZ24KLSsrKyBiL2J1aWxkL2FyZ3MvcmVsZWFzZS5nbgotQEAgLTEsNiArMSw0 IEBACi0gaW1wb3J0KCJhbGwuZ24iKQotLWlzX2NvbXBvbmVudF9idWlsZCA9IGZhbHNlCi0taXNf b2ZmaWNpYWxfYnVpbGQgPSB0cnVlCi0gCi0gIyBUaGlzIG1heSBiZSBndWFyZGVkIGJlaGluZCBp c19jaHJvbWVfYnJhbmRlZCBhbG9uZ3NpZGUKLSAjIHByb3ByaWV0YXJ5X2NvZGVjcyBodHRwczov L3dlYnJ0Yy1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL3NyYy8rLzM2MzIxLAotQEAgLTgsOSAr NiwzIEBAIGlzX29mZmljaWFsX2J1aWxkID0gdHJ1ZQotICMgVGhlIGluaXRpYWxpemF0aW9uIG9m IHRoZSBkZWNvZGVyIGRlcGVuZHMgb24gd2hldGhlciBmZm1wZWcgaGFzCi0gIyBiZWVuIGJ1aWx0 IHdpdGggSC4yNjQgc3VwcG9ydC4KLSBydGNfdXNlX2gyNjQgPSBwcm9wcmlldGFyeV9jb2RlY3MK LS0KLS0jIEJ5IGRlZmF1bHQsIEVsZWN0cm9uIGJ1aWxkcyBmZm1wZWcgd2l0aCBwcm9wcmlldGFy eSBjb2RlY3MgZW5hYmxlZC4gSW4gb3JkZXIKLS0jIHRvIGZhY2lsaXRhdGUgdXNlcnMgd2hvIGRv bid0IHdhbnQgdG8gc2hpcCBwcm9wcmlldGFyeSBjb2RlY3MgaW4gZmZtcGVnLCBvcgotLSMgd2hv IGhhdmUgYW4gTEdQTCByZXF1aXJlbWVudCB0byBzaGlwIGZmbXBlZyBhcyBhIGR5bmFtaWNhbGx5 IGxpbmtlZCBsaWJyYXJ5LAotLSMgd2UgYnVpbGQgZmZtcGVnIGFzIGEgc2hhcmVkIGxpYnJhcnku Ci0taXNfY29tcG9uZW50X2ZmbXBlZyA9IHRydWUKLWRpZmYgLS1naXQgYS9idWlsZC9ucG0uZ25p IGIvYnVpbGQvbnBtLmduaQotaW5kZXggYTE5ODdkMDk1Li5mYjMzYTE0YzMgMTAwNjQ0Ci0tLS0g YS9idWlsZC9ucG0uZ25pCi0rKysgYi9idWlsZC9ucG0uZ25pCi1AQCAtMzUsNyArMzUsNiBAQCB0 ZW1wbGF0ZSgibnBtX2FjdGlvbiIpIHsKLSAgICAgaWYgKCFkZWZpbmVkKGRlcHMpKSB7Ci0gICAg ICAgZGVwcyA9IFtdCi0gICAgIH0KLS0gICAgZGVwcyArPSBbICI6bnBtX3ByZV9mbGlnaHRfIiAr IHRhcmdldF9uYW1lIF0KLSAKLSAgICAgc2NyaXB0ID0gIi8vZWxlY3Ryb24vYnVpbGQvbnBtLXJ1 bi5weSIKLSAgICAgYXJncyA9IFsKLWRpZmYgLS1naXQgYS9wYXRjaGVzL25vZGUvZml4X2FkZF9k ZWZhdWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9nbl9pbi5wYXRj aCBiL3BhdGNoZXMvbm9kZS9maXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFibGVfbHRvX2Fu ZF9idWlsZF92OF93aXRoX2duX2luLnBhdGNoCi1pbmRleCAwZGM5OTE2YmUuLjdlYWE0NmJmNSAx MDA2NDQKLS0tLSBhL3BhdGNoZXMvbm9kZS9maXhfYWRkX2RlZmF1bHRfdmFsdWVzX2Zvcl9lbmFi bGVfbHRvX2FuZF9idWlsZF92OF93aXRoX2duX2luLnBhdGNoCi0rKysgYi9wYXRjaGVzL25vZGUv Zml4X2FkZF9kZWZhdWx0X3ZhbHVlc19mb3JfZW5hYmxlX2x0b19hbmRfYnVpbGRfdjhfd2l0aF9n bl9pbi5wYXRjaAotQEAgLTMwLDcgKzMwLDcgQEAKLSArICAgICMgdGhlc2UgdmFsdWVzIGJlaW5n IGFjY3VyYXRlLgotICsgICAgJ2J1aWxkX3Y4X3dpdGhfZ24nOiAnZmFsc2UnLAotICsgICAgJ2Vu YWJsZV9sdG8lJzogJ2ZhbHNlJywKLS0rCi0rKyAgICAnb3BlbnNzbF9maXBzJzogJycsCi0gICAg ICAnY29uZGl0aW9ucyc6IFsKLSAgICAgICAgWyd0YXJnZXRfYXJjaD09ImFybTY0IicsIHsKLSAg ICAgICAgICAjIERpc2FibGVkIHBlbmRpbmcgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2Rl L2lzc3Vlcy8yMzkxMy4KLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3Bh dGNoZXMvZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2ggYi9zcmNw a2dzL2VsZWN0cm9uMTAvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1kb250LWFzc3VtZS1weXRob24t aXMtcHl0aG9uMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmIxMzQ3NDgw MjViLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3BhdGNoZXMv ZWxlY3Ryb24tZG9udC1hc3N1bWUtcHl0aG9uLWlzLXB5dGhvbjIucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxNyArMCwwIEBACi0tLS0gYS9idWlsZC96aXAucHkub3JpZwkyMDIwLTA0LTI3IDE3 OjU5OjUzLjQ5OTI4MTY2NyArMDIwMAotKysrIGIvYnVpbGQvemlwLnB5CTIwMjAtMDQtMjcgMTc6 NTk6NTcuNjU1ODM5MTQzICswMjAwCi1AQCAtMSw0ICsxLDQgQEAKLS0jIS91c3IvYmluL2VudiBw eXRob24KLSsjIS91c3IvYmluL2VudiBweXRob24yCi0gZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw cmludF9mdW5jdGlvbgotIGltcG9ydCBvcwotIGltcG9ydCBzdWJwcm9jZXNzCi0KLS0tLSBhL2J1 aWxkL25wbS1ydW4ucHkub3JpZwkyMDIwLTA0LTI3IDE3OjU5OjUwLjgyOTM1MTgwNyArMDIwMAot KysrIGIvYnVpbGQvbnBtLXJ1bi5weQkyMDIwLTA0LTI3IDE4OjAwOjAyLjcwMjM3MzI1NiArMDIw MAotQEAgLTEsNCArMSw0IEBACi0tIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0rIyEvdXNyL2Jpbi9l bnYgcHl0aG9uMgotIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLSBpbXBv cnQgb3MKLSBpbXBvcnQgc3VicHJvY2VzcwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEw L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWV4Y2x1ZGUtY29u dGVudC10ZXN0LXBhdGNoZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1 NjIyMzY0NDI3OC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9w YXRjaGVzL2VsZWN0cm9uLWV4Y2x1ZGUtY29udGVudC10ZXN0LXBhdGNoZXMucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0gYS9zY3JpcHQvYXBwbHlfYWxsX3BhdGNoZXMu cHkJMjAyMC0wOC0yMiAxNzo0Njo0MS43OTY3MDc1MDYgKzAyMDAKLSsrKyAtCTIwMjAtMDgtMjIg MTc6NDc6MDUuODg3ODEzNTEyICswMjAwCi1AQCAtMTQsNiArMTQsNyBAQAotICAgZm9yIHBhdGNo X2RpciwgcmVwbyBpbiBkaXJzLml0ZW1zKCk6Ci0gICAgIGdpdC5pbXBvcnRfcGF0Y2hlcyhyZXBv PXJlcG8sIHBhdGNoX2RhdGE9cGF0Y2hfZnJvbV9kaXIocGF0Y2hfZGlyKSwKLSAgICAgICB0aHJl ZXdheT10aHJlZXdheSBpcyBub3QgTm9uZSwKLSsgICAgICBleGNsdWRlPVsndGVzdC9tanN1bml0 LyoqJywgJ2NvbnRlbnQvdGVzdC8qKicsICd0ZXN0L2NjdGVzdC8qKicsICd0ZXN0L3VuaXR0ZXN0 cy8qKicsICd0aGlyZF9wYXJ0eS9ibGluay93ZWJfdGVzdHMvKionXSwKLSAgICAgICBjb21taXR0 ZXJfbmFtZT0iRWxlY3Ryb24gU2NyaXB0cyIsIGNvbW1pdHRlcl9lbWFpbD0ic2NyaXB0c0BlbGVj dHJvbiIpCi0gCi0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8t ZmlsZXMvYXVkaW9fbWFuYWdlcl9vcGVuYnNkLmNjIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVz L3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYwpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMmM3YWE4ZWZhNjZmLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVj dHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYworKysgL2Rl di9udWxsCkBAIC0xLDE0OCArMCwwIEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9t aXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2Ug Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBm b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0jaW5jbHVkZSAiYmFzZS9tZXRyaWNzL2hpc3Rv Z3JhbV9tYWNyb3MuaCIKLSNpbmNsdWRlICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgotCi0jaW5j bHVkZSAibWVkaWEvYXVkaW8vb3BlbmJzZC9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaCIKLQotI2lu Y2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNjcmlwdGlvbi5oIgotI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL2F1ZGlvX291dHB1dF9kaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSAibWVkaWEv YXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKLSNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9z bmRpb19vdXRwdXQuaCIKLSNpbmNsdWRlICJtZWRpYS9iYXNlL2xpbWl0cy5oIgotI2luY2x1ZGUg Im1lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaCIKLQotbmFtZXNwYWNlIG1lZGlhIHsKLQotLy8g TWF4aW11bSBudW1iZXIgb2Ygb3V0cHV0IHN0cmVhbXMgdGhhdCBjYW4gYmUgb3BlbiBzaW11bHRh bmVvdXNseS4KLXN0YXRpYyBjb25zdCBpbnQga01heE91dHB1dFN0cmVhbXMgPSA0OwotCi0vLyBE ZWZhdWx0IHNhbXBsZSByYXRlIGZvciBpbnB1dCBhbmQgb3V0cHV0IHN0cmVhbXMuCi1zdGF0aWMg Y29uc3QgaW50IGtEZWZhdWx0U2FtcGxlUmF0ZSA9IDQ4MDAwOwotCi12b2lkIEFkZERlZmF1bHRE ZXZpY2UoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7Ci0gIERDSEVDSyhkZXZpY2Vf bmFtZXMtPmVtcHR5KCkpOwotICBkZXZpY2VfbmFtZXMtPnB1c2hfZnJvbnQoQXVkaW9EZXZpY2VO YW1lOjpDcmVhdGVEZWZhdWx0KCkpOwotfQotCi1ib29sIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Okhh c0F1ZGlvT3V0cHV0RGV2aWNlcygpIHsKLSAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgQXVkaW9N YW5hZ2VyT3BlbkJTRDo6SGFzQXVkaW9JbnB1dERldmljZXMoKSB7Ci0gIHJldHVybiB0cnVlOwot fQotCi12b2lkIEF1ZGlvTWFuYWdlck9wZW5CU0Q6OkdldEF1ZGlvSW5wdXREZXZpY2VOYW1lcygK LSAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKLSAgRENIRUNLKGRldmljZV9u YW1lcy0+ZW1wdHkoKSk7Ci0gIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKLX0KLQot dm9pZCBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXRBdWRpb091dHB1dERldmljZU5hbWVzKAotICAg IEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgewotICBBZGREZWZhdWx0RGV2aWNlKGRl dmljZV9uYW1lcyk7Ci19Ci0KLWNvbnN0IGNoYXIqIEF1ZGlvTWFuYWdlck9wZW5CU0Q6OkdldE5h bWUoKSB7Ci0gIHJldHVybiAiU05ESU8iOwotfQotCi1BdWRpb1BhcmFtZXRlcnMgQXVkaW9NYW5h Z2VyT3BlbkJTRDo6R2V0SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAotICAgIGNvbnN0IHN0ZDo6c3Ry aW5nJiBkZXZpY2VfaWQpIHsKLSAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdElucHV0QnVmZmVy U2l6ZSA9IDEwMjQ7Ci0KLSAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6 ZSgpOwotICBpbnQgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplID8KLSAgICAgIHVzZXJf YnVmZmVyX3NpemUgOiBrRGVmYXVsdElucHV0QnVmZmVyU2l6ZTsKLQotICByZXR1cm4gQXVkaW9Q YXJhbWV0ZXJzKAotICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ks IENIQU5ORUxfTEFZT1VUX1NURVJFTywKLSAgICAgIGtEZWZhdWx0U2FtcGxlUmF0ZSwgYnVmZmVy X3NpemUpOwotfQotCi1BdWRpb01hbmFnZXJPcGVuQlNEOjpBdWRpb01hbmFnZXJPcGVuQlNEKHN0 ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0 b3J5KQotICAgIDogQXVkaW9NYW5hZ2VyQmFzZShzdGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpIHsKLSAgRExPRyhXQVJOSU5H KSA8PCAiQXVkaW9NYW5hZ2VyT3BlbkJTRCI7Ci0gIFNldE1heE91dHB1dFN0cmVhbXNBbGxvd2Vk KGtNYXhPdXRwdXRTdHJlYW1zKTsKLX0KLQotQXVkaW9NYW5hZ2VyT3BlbkJTRDo6fkF1ZGlvTWFu YWdlck9wZW5CU0QoKSB7Ci0gIFNodXRkb3duKCk7Ci19Ci0KLUF1ZGlvT3V0cHV0U3RyZWFtKiBB dWRpb01hbmFnZXJPcGVuQlNEOjpNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAotICAgIGNvbnN0IEF1 ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAotICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJh Y2spIHsKLSAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFy YW1zLmZvcm1hdCgpKTsKLSAgcmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKLX0KLQot QXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlck9wZW5CU0Q6Ok1ha2VMb3dMYXRlbmN5T3V0 cHV0U3RyZWFtKAotICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAotICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCi0gICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxs YmFjaykgewotICBETE9HX0lGKEVSUk9SLCAhZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3QgaW1w bGVtZW50ZWQhIjsKLSAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19M QVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOwotICByZXR1cm4gTWFrZU91dHB1dFN0cmVhbShwYXJh bXMpOwotfQotCi1BdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJPcGVuQlNEOjpNYWtlTGlu ZWFySW5wdXRTdHJlYW0oCi0gICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCi0gICAg Y29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKLSAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9n X2NhbGxiYWNrKSB7Ci0gIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5F QVIsIHBhcmFtcy5mb3JtYXQoKSk7Ci0gIHJldHVybiBNYWtlSW5wdXRTdHJlYW0ocGFyYW1zKTsK LX0KLQotQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6TWFrZUxvd0xhdGVu Y3lJbnB1dFN0cmVhbSgKLSAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKLSAgICBj b25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAotICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2df Y2FsbGJhY2spIHsKLSAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19M QVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOwotICByZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBhcmFt cyk7Ci19Ci0KLUF1ZGlvUGFyYW1ldGVycyBBdWRpb01hbmFnZXJPcGVuQlNEOjpHZXRQcmVmZXJy ZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAotICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRf ZGV2aWNlX2lkLAotICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSB7Ci0g IC8vIFRPRE8odG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2aWNlX2lkfC4KLSAgRExPR19JRihF UlJPUiwgIW91dHB1dF9kZXZpY2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOwot ICBzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZSA9IDIwNDg7Ci0KLSAg Q2hhbm5lbExheW91dCBjaGFubmVsX2xheW91dCA9IENIQU5ORUxfTEFZT1VUX1NURVJFTzsKLSAg aW50IHNhbXBsZV9yYXRlID0ga0RlZmF1bHRTYW1wbGVSYXRlOwotICBpbnQgYnVmZmVyX3NpemUg PSBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7Ci0gIGlmIChpbnB1dF9wYXJhbXMuSXNWYWxpZCgp KSB7Ci0gICAgc2FtcGxlX3JhdGUgPSBpbnB1dF9wYXJhbXMuc2FtcGxlX3JhdGUoKTsKLSAgICBj aGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFtcy5jaGFubmVsX2xheW91dCgpOwotICAgIGJ1ZmZl cl9zaXplID0gc3RkOjptaW4oYnVmZmVyX3NpemUsIGlucHV0X3BhcmFtcy5mcmFtZXNfcGVyX2J1 ZmZlcigpKTsKLSAgfQotCi0gIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZlclNp emUoKTsKLSAgaWYgKHVzZXJfYnVmZmVyX3NpemUpCi0gICAgYnVmZmVyX3NpemUgPSB1c2VyX2J1 ZmZlcl9zaXplOwotCi0gIHJldHVybiBBdWRpb1BhcmFtZXRlcnMoCi0gICAgICBBdWRpb1BhcmFt ZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgY2hhbm5lbF9sYXlvdXQsCi0gICAgICBzYW1w bGVfcmF0ZSwgYnVmZmVyX3NpemUpOwotfQotCi1BdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFn ZXJPcGVuQlNEOjpNYWtlSW5wdXRTdHJlYW0oCi0gICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBw YXJhbXMpIHsKLSAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZUlucHV0U3RyZWFtIjsKLSAgcmV0dXJu IG5ldyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0odGhpcywKLSAgICAgICAgICAgICBBdWRpb0Rldmlj ZURlc2NyaXB0aW9uOjprRGVmYXVsdERldmljZUlkLCBwYXJhbXMpOwotfQotCi1BdWRpb091dHB1 dFN0cmVhbSogQXVkaW9NYW5hZ2VyT3BlbkJTRDo6TWFrZU91dHB1dFN0cmVhbSgKLSAgICBjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykgewotICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlT3V0 cHV0U3RyZWFtIjsKLSAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKHBhcmFtcywg dGhpcyk7Ci19Ci0KLX0gIC8vIG5hbWVzcGFjZSBtZWRpYQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9l bGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5oIGIvc3Jj cGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5o CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Yzk5ZGI5NjZkNjUuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmlsZXMvYXVkaW9fbWFuYWdl cl9vcGVuYnNkLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vLyBDb3B5cmlnaHQg KGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCi0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0jaWZuZGVmIE1F RElBX0FVRElPX09QRU5CU0RfQVVESU9fTUFOQUdFUl9PUEVOQlNEX0hfCi0jZGVmaW5lIE1FRElB X0FVRElPX09QRU5CU0RfQVVESU9fTUFOQUdFUl9PUEVOQlNEX0hfCi0KLSNpbmNsdWRlIDxzZXQ+ Ci0KLSNpbmNsdWRlICJiYXNlL2NvbXBpbGVyX3NwZWNpZmljLmgiCi0jaW5jbHVkZSAiYmFzZS9t YWNyb3MuaCIKLSNpbmNsdWRlICJiYXNlL21lbW9yeS9yZWZfY291bnRlZC5oIgotI2luY2x1ZGUg ImJhc2UvdGhyZWFkaW5nL3RocmVhZC5oIgotI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21h bmFnZXJfYmFzZS5oIgotCi1uYW1lc3BhY2UgbWVkaWEgewotCi1jbGFzcyBNRURJQV9FWFBPUlQg QXVkaW9NYW5hZ2VyT3BlbkJTRCA6IHB1YmxpYyBBdWRpb01hbmFnZXJCYXNlIHsKLSBwdWJsaWM6 Ci0gIEF1ZGlvTWFuYWdlck9wZW5CU0Qoc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRp b190aHJlYWQsCi0gICAgICAgICAgICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBhdWRpb19sb2df ZmFjdG9yeSk7Ci0gIH5BdWRpb01hbmFnZXJPcGVuQlNEKCkgb3ZlcnJpZGU7Ci0KLSAgLy8gSW1w bGVtZW50YXRpb24gb2YgQXVkaW9NYW5hZ2VyLgotICBib29sIEhhc0F1ZGlvT3V0cHV0RGV2aWNl cygpIG92ZXJyaWRlOwotICBib29sIEhhc0F1ZGlvSW5wdXREZXZpY2VzKCkgb3ZlcnJpZGU7Ci0g IHZvaWQgR2V0QXVkaW9JbnB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9u YW1lcykgb3ZlcnJpZGU7Ci0gIHZvaWQgR2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcyhBdWRpb0Rl dmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIG92ZXJyaWRlOwotICBBdWRpb1BhcmFtZXRlcnMgR2V0 SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAotICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9p ZCkgb3ZlcnJpZGU7Ci0gIGNvbnN0IGNoYXIqIEdldE5hbWUoKSBvdmVycmlkZTsKLQotICAvLyBJ bXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXJCYXNlLgotICBBdWRpb091dHB1dFN0cmVhbSog TWFrZUxpbmVhck91dHB1dFN0cmVhbSgKLSAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFy YW1zLAotICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7Ci0g IEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKLSAgICAgIGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAotICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRl dmljZV9pZCwKLSAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRl OwotICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTGluZWFySW5wdXRTdHJlYW0oCi0gICAgICBjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZp Y2VfaWQsCi0gICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsK LSAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lJbnB1dFN0cmVhbSgKLSAgICAgIGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAotICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRl dmljZV9pZCwKLSAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRl OwotCi0gcHJvdGVjdGVkOgotICBBdWRpb1BhcmFtZXRlcnMgR2V0UHJlZmVycmVkT3V0cHV0U3Ry ZWFtUGFyYW1ldGVycygKLSAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lk LAotICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9wYXJhbXMpIG92ZXJyaWRlOwot Ci0gcHJpdmF0ZToKLSAgLy8gQ2FsbGVkIGJ5IE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0gYW5kIE1h a2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtLgotICBBdWRpb091dHB1dFN0cmVhbSogTWFrZU91dHB1 dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7Ci0gIEF1ZGlvSW5wdXRTdHJl YW0qIE1ha2VJbnB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7Ci0KLSAg RElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKEF1ZGlvTWFuYWdlck9wZW5CU0QpOwotfTsKLQotfSAg Ly8gbmFtZXNwYWNlIG1lZGlhCi0KLSNlbmRpZiAgLy8gTUVESUFfQVVESU9fT1BFTkJTRF9BVURJ T19NQU5BR0VSX09QRU5CU0RfSF8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxl cy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5jYyBiL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9z bmRpby1maWxlcy9zbmRpb19pbnB1dC5jYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg ZWY1NDM5YjQ5YTA3Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVz L3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmNjCisrKyAvZGV2L251bGwKQEAgLTEsMjAwICswLDAg QEAKLS8vIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJl c2VydmVkLgotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt c3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K LQotI2luY2x1ZGUgImJhc2UvYmluZC5oIgotI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgotI2lu Y2x1ZGUgImJhc2UvbWFjcm9zLmgiCi0jaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3Rh bXBfaGVscGVyLmgiCi0jaW5jbHVkZSAibWVkaWEvYXVkaW8vb3BlbmJzZC9hdWRpb19tYW5hZ2Vy X29wZW5ic2QuaCIKLSNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2VyLmgiCi0jaW5j bHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKLQotbmFtZXNwYWNlIG1lZGlh IHsKLQotc3RhdGljIGNvbnN0IFNhbXBsZUZvcm1hdCBrU2FtcGxlRm9ybWF0ID0ga1NhbXBsZUZv cm1hdFMxNjsKLQotdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNrKHZv aWQgKmFyZywgaW50IGRlbHRhKQotewotICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBz dGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qPihhcmcpOwotCi0gIHNlbGYtPmh3X2Rl bGF5ICs9IGRlbHRhOwotfQotCi12b2lkICpTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZEVu dHJ5KHZvaWQgKmFyZykgewotICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNf Y2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qPihhcmcpOwotCi0gIHNlbGYtPlRocmVhZExvb3Ao KTsKLSAgcmV0dXJuIE5VTEw7Ci19Ci0KLVNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U25kaW9BdWRp b0lucHV0U3RyZWFtKEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBB dWRpb1BhcmFtZXRlcnMmIHBhcmFtcykKLSAgICA6IG1hbmFnZXIobWFuYWdlciksCi0gICAgICBw YXJhbXMocGFyYW1zKSwKLSAgICAgIGF1ZGlvX2J1cyhBdWRpb0J1czo6Q3JlYXRlKHBhcmFtcykp LAotICAgICAgc3RhdGUoa0Nsb3NlZCkgewotfQotCi1TbmRpb0F1ZGlvSW5wdXRTdHJlYW06On5T bmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSB7Ci0gIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQotICAgIENs b3NlKCk7Ci19Ci0KLWJvb2wgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpPcGVuKCkgewotICBzdHJ1 Y3Qgc2lvX3BhciBwYXI7Ci0gIGludCBzaWc7Ci0KLSAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCi0g ICAgcmV0dXJuIGZhbHNlOwotCi0gIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0 ZXJzOjpBVURJT19QQ01fTElORUFSICYmCi0gICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9Q YXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1kpIHsKLSAgICBMT0coV0FSTklORykgPDwg IlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4iOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0g IHNpb19pbml0cGFyKCZwYXIpOwotICBwYXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOwot ICBwYXIucmNoYW4gPSBwYXJhbXMuY2hhbm5lbHMoKTsKLSAgcGFyLmJpdHMgPSBTYW1wbGVGb3Jt YXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOwotICBwYXIuYnBzID0gcGFyLmJpdHMg LyA4OwotICBwYXIuc2lnID0gc2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOwotICBwYXIubGUg PSBTSU9fTEVfTkFUSVZFOwotICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZm ZXIoKTsKLQotICBoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUkVDLCAwKTsKLQotICBp ZiAoaGRsID09IE5VTEwpIHsKLSAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlv IGRldmljZS4iOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIGlmICghc2lvX3NldHBhciho ZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsKLSAgICBMT0coRVJST1IpIDw8 ICJDb3VsZG4ndCBzZXQgYXVkaW8gcGFyYW1ldGVycy4iOwotICAgIGdvdG8gYmFkX2Nsb3NlOwot ICB9Ci0KLSAgaWYgKHBhci5yYXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0 ZSgpIHx8Ci0gICAgICBwYXIucmNoYW4gIT0gKHVuc2lnbmVkIGludClwYXJhbXMuY2hhbm5lbHMo KSB8fAotICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0VG9CaXRz UGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAotICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25l ZCBpbnQpc2lnIHx8Ci0gICAgICAocGFyLmJwcyA+IDEgJiYgcGFyLmxlICE9IFNJT19MRV9OQVRJ VkUpIHx8Ci0gICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7Ci0gICAgTE9HKEVSUk9S KSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOwotICAgIGdvdG8gYmFkX2Nsb3Nl OwotICB9Ci0gIHN0YXRlID0ga1N0b3BwZWQ7Ci0gIGJ1ZmZlciA9IG5ldyBjaGFyW2F1ZGlvX2J1 cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KV07Ci0g IHNpb19vbm1vdmUoaGRsLCAmT25Nb3ZlQ2FsbGJhY2ssIHRoaXMpOwotICByZXR1cm4gdHJ1ZTsK LWJhZF9jbG9zZToKLSAgc2lvX2Nsb3NlKGhkbCk7Ci0gIHJldHVybiBmYWxzZTsKLX0KLQotdm9p ZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2IpIHsK LQotICBTdGFydEFnYygpOwotCi0gIHN0YXRlID0ga1J1bm5pbmc7Ci0gIGh3X2RlbGF5ID0gMDsK LSAgY2FsbGJhY2sgPSBjYjsKLSAgc2lvX3N0YXJ0KGhkbCk7Ci0gIGlmIChwdGhyZWFkX2NyZWF0 ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnksIHRoaXMpICE9IDApIHsKLSAgICBMT0coRVJS T1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQgZm9yIHJlY29yZGluZy4i OwotICAgIHNpb19zdG9wKGhkbCk7Ci0gICAgc3RhdGUgPSBrU3RvcHBlZDsKLSAgfQotfQotCi12 b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RvcCgpIHsKLQotICBpZiAoc3RhdGUgPT0ga1N0 b3BwZWQpCi0gICAgcmV0dXJuOwotCi0gIHN0YXRlID0ga1N0b3BXYWl0OwotICBwdGhyZWFkX2pv aW4odGhyZWFkLCBOVUxMKTsKLSAgc2lvX3N0b3AoaGRsKTsKLSAgc3RhdGUgPSBrU3RvcHBlZDsK LQotICBTdG9wQWdjKCk7Ci19Ci0KLXZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpDbG9zZSgp IHsKLQotICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKLSAgICByZXR1cm47Ci0KLSAgaWYgKHN0YXRl ID09IGtSdW5uaW5nKQotICAgIFN0b3AoKTsKLQotICBzdGF0ZSA9IGtDbG9zZWQ7Ci0gIGRlbGV0 ZSBbXSBidWZmZXI7Ci0gIHNpb19jbG9zZShoZGwpOwotCi0gIG1hbmFnZXItPlJlbGVhc2VJbnB1 dFN0cmVhbSh0aGlzKTsKLX0KLQotZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6R2V0TWF4 Vm9sdW1lKCkgewotICAvLyBOb3Qgc3VwcG9ydGVkCi0gIHJldHVybiAwLjA7Ci19Ci0KLXZvaWQg U25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgewotICAvLyBO b3Qgc3VwcG9ydGVkLiBEbyBub3RoaW5nLgotfQotCi1kb3VibGUgU25kaW9BdWRpb0lucHV0U3Ry ZWFtOjpHZXRWb2x1bWUoKSB7Ci0gIC8vIE5vdCBzdXBwb3J0ZWQuCi0gIHJldHVybiAwLjA7Ci19 Ci0KLWJvb2wgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpJc011dGVkKCkgewotICAvLyBOb3Qgc3Vw cG9ydGVkLgotICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFt OjpTZXRPdXRwdXREZXZpY2VGb3JBZWMoCi0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9k ZXZpY2VfaWQpIHsKLSAgLy8gTm90IHN1cHBvcnRlZC4KLX0KLQotdm9pZCBTbmRpb0F1ZGlvSW5w dXRTdHJlYW06OlRocmVhZExvb3Aodm9pZCkgewotICBzaXplX3QgdG9kbywgbjsKLSAgY2hhciAq ZGF0YTsKLSAgdW5zaWduZWQgaW50IG5mcmFtZXM7Ci0gIGRvdWJsZSBub3JtYWxpemVkX3ZvbHVt ZSA9IDAuMDsKLQotICBuZnJhbWVzID0gYXVkaW9fYnVzLT5mcmFtZXMoKTsKLQotICB3aGlsZSAo c3RhdGUgPT0ga1J1bm5pbmcgJiYgIXNpb19lb2YoaGRsKSkgewotCi0gICAgR2V0QWdjVm9sdW1l KCZub3JtYWxpemVkX3ZvbHVtZSk7Ci0KLSAgICAvLyByZWFkIG9uZSBibG9jawotICAgIHRvZG8g PSBuZnJhbWVzICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7Ci0gICAg ZGF0YSA9IGJ1ZmZlcjsKLSAgICB3aGlsZSAodG9kbyA+IDApIHsKLSAgICAgIG4gPSBzaW9fcmVh ZChoZGwsIGRhdGEsIHRvZG8pOwotICAgICAgaWYgKG4gPT0gMCkKLSAgICAgICAgcmV0dXJuOwkv LyB1bnJlY292ZXJhYmxlIEkvTyBlcnJvcgotICAgICAgdG9kbyAtPSBuOwotICAgICAgZGF0YSAr PSBuOwotICAgIH0KLSAgICBod19kZWxheSAtPSBuZnJhbWVzOwotCi0gICAgLy8gY29udmVydCBm cmFtZXMgY291bnQgdG8gVGltZURlbHRhCi0gICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5 ID0gQXVkaW9UaW1lc3RhbXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKLSAgICAgIHBh cmFtcy5zYW1wbGVfcmF0ZSgpKTsKLQotICAgIC8vIHB1c2ggaW50byBidXMKLSAgICBhdWRpb19i dXMtPkZyb21JbnRlcmxlYXZlZChidWZmZXIsIG5mcmFtZXMsIFNhbXBsZUZvcm1hdFRvQnl0ZXNQ ZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpKTsKLQotICAgIC8vIGludm9rZSBjYWxsYmFjawotICAg IGNhbGxiYWNrLT5PbkRhdGEoYXVkaW9fYnVzLmdldCgpLCBiYXNlOjpUaW1lVGlja3M6Ok5vdygp IC0gZGVsYXksIDEuKTsKLSAgfQotfQotCi19ICAvLyBuYW1lc3BhY2UgbWVkaWEKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5oIGIv c3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX2lucHV0LmgKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4NjhlMDQ2OWRiNS4uMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19pbnB1dC5oCisrKyAv ZGV2L251bGwKQEAgLTEsOTEgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9taXVt IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3Vu ZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0jaWZuZGVmIE1FRElBX0FVRElPX1NORElPX1NORElP X0lOUFVUX0hfCi0jZGVmaW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCi0KLSNp bmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0jaW5jbHVkZSA8c25kaW8uaD4K LQotI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKLSNpbmNsdWRlICJiYXNlL21h Y3Jvcy5oIgotI2luY2x1ZGUgImJhc2UvbWVtb3J5L3dlYWtfcHRyLmgiCi0jaW5jbHVkZSAiYmFz ZS90aW1lL3RpbWUuaCIKLSNpbmNsdWRlICJtZWRpYS9hdWRpby9hZ2NfYXVkaW9fc3RyZWFtLmgi Ci0jaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9faW8uaCIKLSNpbmNsdWRlICJtZWRpYS9hdWRp by9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKLSNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlv X3BhcmFtZXRlcnMuaCIKLQotbmFtZXNwYWNlIG1lZGlhIHsKLQotY2xhc3MgQXVkaW9NYW5hZ2Vy QmFzZTsKLQotLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25k aW8oNykKLWNsYXNzIFNuZGlvQXVkaW9JbnB1dFN0cmVhbSA6IHB1YmxpYyBBZ2NBdWRpb1N0cmVh bTxBdWRpb0lucHV0U3RyZWFtPiB7Ci0gcHVibGljOgotICAvLyBQYXNzIHRoaXMgdG8gdGhlIGNv bnN0cnVjdG9yIGlmIHlvdSB3YW50IHRvIGF0dGVtcHQgYXV0by1zZWxlY3Rpb24KLSAgLy8gb2Yg dGhlIGF1ZGlvIHJlY29yZGluZyBkZXZpY2UuCi0gIHN0YXRpYyBjb25zdCBjaGFyIGtBdXRvU2Vs ZWN0RGV2aWNlW107Ci0KLSAgLy8gQ3JlYXRlIGEgUENNIE91dHB1dCBzdHJlYW0gZm9yIHRoZSBT TkRJTyBkZXZpY2UgaWRlbnRpZmllZCBieQotICAvLyB8ZGV2aWNlX25hbWV8LiBJZiB1bnN1cmUg b2Ygd2hhdCB0byB1c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVzZQotICAvLyB8a0F1dG9TZWxlY3RE ZXZpY2V8LgotICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0oQXVkaW9NYW5hZ2VyQmFzZSogYXVkaW9f bWFuYWdlciwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2Vf bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1z KTsKLQotICB+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3ZlcnJpZGU7Ci0KLSAgLy8gSW1wbGVt ZW50YXRpb24gb2YgQXVkaW9JbnB1dFN0cmVhbS4KLSAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7Ci0g IHZvaWQgU3RhcnQoQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7Ci0gIHZv aWQgU3RvcCgpIG92ZXJyaWRlOwotICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7Ci0gIGRvdWJsZSBH ZXRNYXhWb2x1bWUoKSBvdmVycmlkZTsKLSAgdm9pZCBTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkg b3ZlcnJpZGU7Ci0gIGRvdWJsZSBHZXRWb2x1bWUoKSBvdmVycmlkZTsKLSAgYm9vbCBJc011dGVk KCkgb3ZlcnJpZGU7Ci0gIHZvaWQgU2V0T3V0cHV0RGV2aWNlRm9yQWVjKGNvbnN0IHN0ZDo6c3Ry aW5nJiBvdXRwdXRfZGV2aWNlX2lkKSBvdmVycmlkZTsKLQotIHByaXZhdGU6Ci0KLSAgZW51bSBT dHJlYW1TdGF0ZSB7Ci0gICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHlldAot ICAgIGtTdG9wcGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVk IHlldAotICAgIGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcK LSAgICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0aGUgcmVh bC10aW1lIHRocmVhZCB0byBleGl0Ci0gIH07Ci0KLSAgLy8gQy1zdHlsZSBjYWxsLWJhY2tzCi0g IHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKLSAgc3Rh dGljIHZvaWQqIFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7Ci0KLSAgLy8gQ29udGludW91c2x5IG1v dmVzIGRhdGEgZnJvbSB0aGUgZGV2aWNlIHRvIHRoZSBjb25zdW1lcgotICB2b2lkIFRocmVhZExv b3AoKTsKLSAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5v dGlmaWVkIHdoZW4gd2UgY2xvc2UuCi0gIEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXI7Ci0gIC8v IFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQotICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOwotICAv LyBXZSBzdG9yZSBkYXRhIGhlcmUgZm9yIGNvbnN1bWVyCi0gIHN0ZDo6dW5pcXVlX3B0cjxBdWRp b0J1cz4gYXVkaW9fYnVzOwotICAvLyBDYWxsLWJhY2sgdGhhdCBjb25zdW1lcyByZWNvcmRlZCBk YXRhCi0gIEF1ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2s7ICAvLyBWYWxpZCBkdXJpbmcgYSBy ZWNvcmRpbmcgc2Vzc2lvbi4KLSAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKLSAgc3Ry dWN0IHNpb19oZGwqIGhkbDsKLSAgLy8gQ3VycmVudCBzdGF0ZSBvZiB0aGUgc3RyZWFtCi0gIGVu dW0gU3RyZWFtU3RhdGUgc3RhdGU7Ci0gIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcg VGhyZWFkTG9vcCgpCi0gIHB0aHJlYWRfdCB0aHJlYWQ7Ci0gIC8vIE51bWJlciBvZiBmcmFtZXMg YnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJlCi0gIGludCBod19kZWxheTsKLSAgLy8gVGVtcG9yYXJ5 IGJ1ZmZlciB3aGVyZSBkYXRhIGlzIHN0b3JlZCBzbmRpby1jb21wYXRpYmxlIGZvcm1hdAotICBj aGFyKiBidWZmZXI7Ci0KLSAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFNuZGlvQXVkaW9JbnB1 dFN0cmVhbSk7Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgbWVkaWEKLQotI2VuZGlmICAvLyBNRURJ QV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJv bjEwL2ZpbGVzL3NuZGlvLWZpbGVzL3NuZGlvX291dHB1dC5jYyBiL3NyY3BrZ3MvZWxlY3Ryb24x MC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuY2MKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGE2NzE5ZjlhYWM4ZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ry b24xMC9maWxlcy9zbmRpby1maWxlcy9zbmRpb19vdXRwdXQuY2MKKysrIC9kZXYvbnVsbApAQCAt MSwxODMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3Jz LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292 ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLy8gZm91bmQgaW4gdGhl IExJQ0VOU0UgZmlsZS4KLQotI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgotI2luY2x1ZGUgImJh c2UvdGltZS90aW1lLmgiCi0jaW5jbHVkZSAiYmFzZS90aW1lL2RlZmF1bHRfdGlja19jbG9jay5o IgotI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgotI2luY2x1ZGUg Im1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1wX2hlbHBlci5oIgotI2luY2x1ZGUgIm1lZGlhL2F1 ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgotCi1uYW1lc3BhY2UgbWVkaWEgewotCi1zdGF0aWMg Y29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2OwotCi12 b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50 IGRlbHRhKSB7Ci0gIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKLQotICBzZWxmLT5od19kZWxheSAtPSBkZWx0 YTsKLX0KLQotdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpPblZvbENhbGxiYWNrKHZvaWQg KmFyZywgdW5zaWduZWQgaW50IHZvbCkgewotICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxm ID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7Ci0KLSAgc2VsZi0+ dm9sID0gdm9sOwotfQotCi12b2lkICpTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpUaHJlYWRFbnRy eSh2b2lkICphcmcpIHsKLSAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19j YXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOwotCi0gIHNlbGYtPlRocmVhZExvb3Ao KTsKLSAgcmV0dXJuIE5VTEw7Ci19Ci0KLVNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlNuZGlvQXVk aW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJhc2UqIG1h bmFnZXIpCi0gICAgOiBtYW5hZ2VyKG1hbmFnZXIpLAotICAgICAgcGFyYW1zKHBhcmFtcyksCi0g ICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKLSAgICAgIHN0YXRlKGtD bG9zZWQpLAotICAgICAgbXV0ZXgoUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUikgewotfQotCi1T bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjp+U25kaW9BdWRpb091dHB1dFN0cmVhbSgpIHsKLSAgaWYg KHN0YXRlICE9IGtDbG9zZWQpCi0gICAgQ2xvc2UoKTsKLX0KLQotYm9vbCBTbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtOjpPcGVuKCkgewotICBzdHJ1Y3Qgc2lvX3BhciBwYXI7Ci0gIGludCBzaWc7Ci0K LSAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5F QVIgJiYKLSAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BD TV9MT1dfTEFURU5DWSkgewotICAgIExPRyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8g Zm9ybWF0LiI7Ci0gICAgcmV0dXJuIGZhbHNlOwotICB9Ci0gIHNpb19pbml0cGFyKCZwYXIpOwot ICBwYXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOwotICBwYXIucGNoYW4gPSBwYXJhbXMu Y2hhbm5lbHMoKTsKLSAgcGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtT YW1wbGVGb3JtYXQpOwotICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OwotICBwYXIuc2lnID0gc2ln ID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOwotICBwYXIubGUgPSBTSU9fTEVfTkFUSVZFOwotICBw YXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKLQotICBoZGwgPSBzaW9f b3BlbihTSU9fREVWQU5ZLCBTSU9fUExBWSwgMCk7Ci0gIGlmIChoZGwgPT0gTlVMTCkgewotICAg IExPRyhFUlJPUikgPDwgIkNvdWxkbid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7Ci0gICAgcmV0dXJu IGZhbHNlOwotICB9Ci0gIGlmICghc2lvX3NldHBhcihoZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFy KGhkbCwgJnBhcikpIHsKLSAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBzZXQgYXVkaW8gcGFy YW1ldGVycy4iOwotICAgIGdvdG8gYmFkX2Nsb3NlOwotICB9Ci0gIGlmIChwYXIucmF0ZSAgIT0g KHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUoKSB8fAotICAgICAgcGFyLnBjaGFuICE9 ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKLSAgICAgIHBhci5iaXRzICAhPSAo dW5zaWduZWQgaW50KVNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkg fHwKLSAgICAgIHBhci5zaWcgICAhPSAodW5zaWduZWQgaW50KXNpZyB8fAotICAgICAgKHBhci5i cHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAotICAgICAgKHBhci5iaXRzICE9 IHBhci5icHMgKiA4KSkgewotICAgIExPRyhFUlJPUikgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIHBh cmFtZXRlcnMuIjsKLSAgICBnb3RvIGJhZF9jbG9zZTsKLSAgfQotICBzdGF0ZSA9IGtTdG9wcGVk OwotICB2b2xwZW5kaW5nID0gMDsKLSAgdm9sID0gMDsKLSAgYnVmZmVyID0gbmV3IGNoYXJbYXVk aW9fYnVzLT5mcmFtZXMoKSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQp XTsKLSAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7Ci0gIHNpb19vbnZv bChoZGwsICZPblZvbENhbGxiYWNrLCB0aGlzKTsKLSAgcmV0dXJuIHRydWU7Ci0gYmFkX2Nsb3Nl OgotICBzaW9fY2xvc2UoaGRsKTsKLSAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW06OkNsb3NlKCkgewotICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKLSAgICBy ZXR1cm47Ci0gIGlmIChzdGF0ZSA9PSBrUnVubmluZykKLSAgICBTdG9wKCk7Ci0gIHN0YXRlID0g a0Nsb3NlZDsKLSAgZGVsZXRlIFtdIGJ1ZmZlcjsKLSAgc2lvX2Nsb3NlKGhkbCk7Ci0gIG1hbmFn ZXItPlJlbGVhc2VPdXRwdXRTdHJlYW0odGhpcyk7ICAvLyBDYWxscyB0aGUgZGVzdHJ1Y3Rvcgot fQotCi12b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0YXJ0KEF1ZGlvU291cmNlQ2FsbGJh Y2sqIGNhbGxiYWNrKSB7Ci0gIHN0YXRlID0ga1J1bm5pbmc7Ci0gIGh3X2RlbGF5ID0gMDsKLSAg c291cmNlID0gY2FsbGJhY2s7Ci0gIHNpb19zdGFydChoZGwpOwotICBpZiAocHRocmVhZF9jcmVh dGUoJnRocmVhZCwgTlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7Ci0gICAgTE9HKEVS Uk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRpbWUgdGhyZWFkLiI7Ci0gICAgc2lvX3N0 b3AoaGRsKTsKLSAgICBzdGF0ZSA9IGtTdG9wcGVkOwotICB9Ci19Ci0KLXZvaWQgU25kaW9BdWRp b091dHB1dFN0cmVhbTo6U3RvcCgpIHsKLSAgaWYgKHN0YXRlID09IGtTdG9wcGVkKQotICAgIHJl dHVybjsKLSAgc3RhdGUgPSBrU3RvcFdhaXQ7Ci0gIHB0aHJlYWRfam9pbih0aHJlYWQsIE5VTEwp OwotICBzaW9fc3RvcChoZGwpOwotICBzdGF0ZSA9IGtTdG9wcGVkOwotfQotCi12b2lkIFNuZGlv QXVkaW9PdXRwdXRTdHJlYW06OlNldFZvbHVtZShkb3VibGUgdikgewotICBwdGhyZWFkX211dGV4 X2xvY2soJm11dGV4KTsKLSAgdm9sID0gdiAqIFNJT19NQVhWT0w7Ci0gIHZvbHBlbmRpbmcgPSAx OwotICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOwotfQotCi12b2lkIFNuZGlvQXVkaW9P dXRwdXRTdHJlYW06OkdldFZvbHVtZShkb3VibGUqIHYpIHsKLSAgcHRocmVhZF9tdXRleF9sb2Nr KCZtdXRleCk7Ci0gICp2ID0gdm9sICogKDEuIC8gU0lPX01BWFZPTCk7Ci0gIHB0aHJlYWRfbXV0 ZXhfdW5sb2NrKCZtdXRleCk7Ci19Ci0KLS8vIFRoaXMgc3RyZWFtIGlzIGFsd2F5cyB1c2VkIHdp dGggc3ViIHNlY29uZCBidWZmZXIgc2l6ZXMsIHdoZXJlIGl0J3MKLS8vIHN1ZmZpY2llbnQgdG8g c2ltcGx5IGFsd2F5cyBmbHVzaCB1cG9uIFN0YXJ0KCkuCi12b2lkIFNuZGlvQXVkaW9PdXRwdXRT dHJlYW06OkZsdXNoKCkge30KLQotdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpUaHJlYWRM b29wKHZvaWQpIHsKLSAgaW50IGF2YWlsLCBjb3VudCwgcmVzdWx0OwotCi0gIHdoaWxlIChzdGF0 ZSA9PSBrUnVubmluZykgewotICAgIC8vIFVwZGF0ZSB2b2x1bWUgaWYgbmVlZGVkCi0gICAgcHRo cmVhZF9tdXRleF9sb2NrKCZtdXRleCk7Ci0gICAgaWYgKHZvbHBlbmRpbmcpIHsKLSAgICAgIHZv bHBlbmRpbmcgPSAwOwotICAgICAgc2lvX3NldHZvbChoZGwsIHZvbCk7Ci0gICAgfQotICAgIHB0 aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7Ci0KLSAgICAvLyBHZXQgZGF0YSB0byBwbGF5Ci0g ICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1lc3RhbXBIZWxwZXI6OkZy YW1lc1RvVGltZShod19kZWxheSwKLQlwYXJhbXMuc2FtcGxlX3JhdGUoKSk7Ci0gICAgY291bnQg PSBzb3VyY2UtPk9uTW9yZURhdGEoZGVsYXksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCksIDAsIGF1 ZGlvX2J1cy5nZXQoKSk7Ci0gICAgYXVkaW9fYnVzLT5Ub0ludGVybGVhdmVkKGNvdW50LCBTYW1w bGVGb3JtYXRUb0J5dGVzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSwgYnVmZmVyKTsKLSAgICBp ZiAoY291bnQgPT0gMCkgewotICAgICAgLy8gV2UgaGF2ZSB0byBzdWJtaXQgc29tZXRoaW5nIHRv IHRoZSBkZXZpY2UKLSAgICAgIGNvdW50ID0gYXVkaW9fYnVzLT5mcmFtZXMoKTsKLSAgICAgIG1l bXNldChidWZmZXIsIDAsIGNvdW50ICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZv cm1hdCkpOwotICAgICAgTE9HKFdBUk5JTkcpIDw8ICJObyBkYXRhIHRvIHBsYXksIHJ1bm5pbmcg ZW1wdHkgY3ljbGUuIjsKLSAgICB9Ci0KLSAgICAvLyBTdWJtaXQgZGF0YSB0byB0aGUgZGV2aWNl Ci0gICAgYXZhaWwgPSBjb3VudCAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3Jt YXQpOwotICAgIHJlc3VsdCA9IHNpb193cml0ZShoZGwsIGJ1ZmZlciwgYXZhaWwpOwotICAgIGlm IChyZXN1bHQgPT0gMCkgewotICAgICAgTE9HKFdBUk5JTkcpIDw8ICJBdWRpbyBkZXZpY2UgZGlz Y29ubmVjdGVkLiI7Ci0gICAgICBicmVhazsKLSAgICB9Ci0KLSAgICAvLyBVcGRhdGUgaGFyZHdh cmUgcG9pbnRlcgotICAgIGh3X2RlbGF5ICs9IGNvdW50OwotICB9Ci19Ci0KLX0gIC8vIG5hbWVz cGFjZSBtZWRpYQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZp bGVzL3NuZGlvX291dHB1dC5oIGIvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLWZpbGVz L3NuZGlvX291dHB1dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYWQyMjBjYTk2 ZTcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tZmls ZXMvc25kaW9fb3V0cHV0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0vLyBDb3B5 cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu Ci0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs aWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0jaWZu ZGVmIE1FRElBX0FVRElPX1NORElPX1NORElPX09VVFBVVF9IXwotI2RlZmluZSBNRURJQV9BVURJ T19TTkRJT19TTkRJT19PVVRQVVRfSF8KLQotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRl IDxzbmRpby5oPgotCi0jaW5jbHVkZSAiYmFzZS90aW1lL3RpY2tfY2xvY2suaCIKLSNpbmNsdWRl ICJiYXNlL3RpbWUvdGltZS5oIgotI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2lvLmgiCi0K LW5hbWVzcGFjZSBtZWRpYSB7Ci0KLWNsYXNzIEF1ZGlvTWFuYWdlckJhc2U7Ci0KLS8vIEltcGxl bWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCi1jbGFzcyBTbmRp b0F1ZGlvT3V0cHV0U3RyZWFtIDogcHVibGljIEF1ZGlvT3V0cHV0U3RyZWFtIHsKLSBwdWJsaWM6 Ci0gIC8vIFRoZSBtYW5hZ2VyIGlzIGNyZWF0aW5nIHRoaXMgb2JqZWN0Ci0gIFNuZGlvQXVkaW9P dXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcik7Ci0gIHZpcnR1YWwgflNuZGlv QXVkaW9PdXRwdXRTdHJlYW0oKTsKLQotICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1 dFN0cmVhbS4KLSAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7Ci0gIHZvaWQgQ2xvc2UoKSBvdmVycmlk ZTsKLSAgdm9pZCBTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7 Ci0gIHZvaWQgU3RvcCgpIG92ZXJyaWRlOwotICB2b2lkIFNldFZvbHVtZShkb3VibGUgdm9sdW1l KSBvdmVycmlkZTsKLSAgdm9pZCBHZXRWb2x1bWUoZG91YmxlKiB2b2x1bWUpIG92ZXJyaWRlOwot ICB2b2lkIEZsdXNoKCkgb3ZlcnJpZGU7Ci0KLSAgZnJpZW5kIHZvaWQgc25kaW9fb25tb3ZlKHZv aWQgKmFyZywgaW50IGRlbHRhKTsKLSAgZnJpZW5kIHZvaWQgc25kaW9fb252b2wodm9pZCAqYXJn LCB1bnNpZ25lZCBpbnQgdm9sKTsKLSAgZnJpZW5kIHZvaWQgKnNuZGlvX3RocmVhZHN0YXJ0KHZv aWQgKmFyZyk7Ci0KLSBwcml2YXRlOgotICBlbnVtIFN0cmVhbVN0YXRlIHsKLSAgICBrQ2xvc2Vk LCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0Ci0gICAga1N0b3BwZWQsICAgICAgICAgICAv LyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0Ci0gICAga1J1bm5pbmcsICAgICAg ICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWluZwotICAgIGtTdG9wV2FpdCAgICAgICAgICAg Ly8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4aXQKLSAg fTsKLQotICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKLSAgc3RhdGljIHZvaWQgT25Nb3ZlQ2FsbGJh Y2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOwotICBzdGF0aWMgdm9pZCBPblZvbENhbGxiYWNrKHZv aWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7Ci0gIHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRyeSh2 b2lkICphcmcpOwotCi0gIC8vIENvbnRpbnVvdXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIHByb2R1 Y2VyIHRvIHRoZSBkZXZpY2UKLSAgdm9pZCBUaHJlYWRMb29wKHZvaWQpOwotCi0gIC8vIE91ciBj cmVhdG9yLCB0aGUgYXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNs b3NlLgotICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOwotICAvLyBQYXJhbWV0ZXJzIG9mIHRo ZSBzb3VyY2UKLSAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKLSAgLy8gU291cmNlIHN0b3JlcyBk YXRhIGhlcmUKLSAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVzPiBhdWRpb19idXM7Ci0gIC8vIENh bGwtYmFjayB0aGF0IHByb2R1Y2VzIGRhdGEgdG8gcGxheQotICBBdWRpb1NvdXJjZUNhbGxiYWNr KiBzb3VyY2U7Ci0gIC8vIEhhbmRsZSBvZiB0aGUgYXVkaW8gZGV2aWNlCi0gIHN0cnVjdCBzaW9f aGRsKiBoZGw7Ci0gIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQotICBlbnVtIFN0cmVh bVN0YXRlIHN0YXRlOwotICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExv b3AoKQotICBwdGhyZWFkX3QgdGhyZWFkOwotICAvLyBQcm90ZWN0cyB2b2wsIHZvbHBlbmRpbmcg YW5kIGh3X2RlbGF5Ci0gIHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsKLSAgLy8gQ3VycmVudCB2b2x1 bWUgaW4gdGhlIDAuLlNJT19NQVhWT0wgcmFuZ2UKLSAgaW50IHZvbDsKLSAgLy8gU2V0IHRvIDEg aWYgdm9sdW1lcyBtdXN0IGJlIHJlZnJlc2hlZCBpbiB0aGUgcmVhbHRpbWUgdGhyZWFkCi0gIGlu dCB2b2xwZW5kaW5nOwotICAvLyBOdW1iZXIgb2YgZnJhbWVzIGJ1ZmZlcmVkIGluIHRoZSBoYXJk d2FyZQotICBpbnQgaHdfZGVsYXk7Ci0gIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBp cyBzdG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKLSAgY2hhciogYnVmZmVyOwotCi0gIERJ U0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKTsKLX07Ci0KLX0g IC8vIG5hbWVzcGFjZSBtZWRpYQotCi0jZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElPX1NORElP X09VVFBVVF9IXwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLXBh dGNoZXMvbWVkaWFfYXVkaW9fbGludXhfYXVkaW9fbWFuYWdlcl9saW51eC5jYy5wYXRjaCBiL3Ny Y3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1wYXRjaGVzL21lZGlhX2F1ZGlvX2xpbnV4X2F1 ZGlvX21hbmFnZXJfbGludXguY2MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGNmOGU4MWIxMWQ2Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxl cy9zbmRpby1wYXRjaGVzL21lZGlhX2F1ZGlvX2xpbnV4X2F1ZGlvX21hbmFnZXJfbGludXguY2Mu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvY2hyb21p dW0vbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyBiL2Nocm9taXVtL21l ZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKLWluZGV4IDVkNzAzNTQ5Mzcy Li45ZTYwYjQwYzc0OSAxMDA2NDQKLS0tLSBtZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2Vy X2xpbnV4LmNjCi0rKysgbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYwot QEAgLTIwLDYgKzIwLDEwIEBACi0gI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3B1bHNlL2F1ZGlvX21h bmFnZXJfcHVsc2UuaCIKLSAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvcHVsc2VfdXRpbC5o IgotICNlbmRpZgotKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykKLSsjaW5jbHVkZSA8c25kaW8uaD4K LSsjaW5jbHVkZSAibWVkaWEvYXVkaW8vb3BlbmJzZC9hdWRpb19tYW5hZ2VyX29wZW5ic2QuaCIK LSsjZW5kaWYKLSAKLSBuYW1lc3BhY2UgbWVkaWEgewotIAotQEAgLTI3LDcgKzMxLDggQEAgZW51 bSBMaW51eEF1ZGlvSU8gewotICAga1B1bHNlLAotICAga0Fsc2EsCi0gICBrQ3JhcywKLS0gIGtB dWRpb0lPTWF4ID0ga0NyYXMgIC8vIE11c3QgYWx3YXlzIGJlIGVxdWFsIHRvIGxhcmdlc3QgbG9n Z2VkIGVudHJ5LgotKyAga1NuZGlvLAotKyAga0F1ZGlvSU9NYXggPSBrU25kaW8gIC8vIE11c3Qg YWx3YXlzIGJlIGVxdWFsIHRvIGxhcmdlc3QgbG9nZ2VkIGVudHJ5LgotIH07Ci0gCi0gc3RkOjp1 bmlxdWVfcHRyPG1lZGlhOjpBdWRpb01hbmFnZXI+IENyZWF0ZUF1ZGlvTWFuYWdlcigKLUBAIC00 MSw2ICs0NiwxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRl QXVkaW9NYW5hZ2VyKAotICAgfQotICNlbmRpZgotIAotKyNpZiBkZWZpbmVkKFVTRV9TTkRJTykK LSsgIHN0cnVjdCBzaW9faGRsICogaGRsID0gTlVMTDsKLSsgIGlmICgoaGRsPXNpb19vcGVuKFNJ T19ERVZBTlksIFNJT19QTEFZLCAxKSkgIT0gTlVMTCkgewotKyAgICBzaW9fY2xvc2UoaGRsKTsK LSsgICAgVU1BX0hJU1RPR1JBTV9FTlVNRVJBVElPTigiTWVkaWEuTGludXhBdWRpb0lPIiwga1Nu ZGlvLCBrQXVkaW9JT01heCArMSk7Ci0rICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlv TWFuYWdlck9wZW5CU0Q+KHN0ZDo6bW92ZShhdWRpb190aHJlYWQpLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpOwotKyAg fQotKyAgRFZMT0coMSkgPDwgIlNuZGlvIGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIE9TIjsKLSsj ZW5kaWYKLSsKLSAjaWYgZGVmaW5lZChVU0VfUFVMU0VBVURJTykKLSAgIHBhX3RocmVhZGVkX21h aW5sb29wKiBwYV9tYWlubG9vcCA9IG51bGxwdHI7Ci0gICBwYV9jb250ZXh0KiBwYV9jb250ZXh0 ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1w YXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9CVUlMRC5nbi5wYXRjaCBiL3NyY3Br Z3MvZWxlY3Ryb24xMC9maWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9t ZWRpYV9CVUlMRC5nbi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM2MDQw MDI2Njg4Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlv LXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX0JVSUxELmduLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tIG1lZGlhL0JVSUxELmduCTIwMjAtMDMtMjQg MTA6MTY6MzAuMDAwMDAwMDAwICswMTAwCi0rKysgLQkyMDIwLTA0LTA2IDE0OjMyOjI3Ljk2MDgx NzUxMyArMDIwMAotQEAgLTY1LDYgKzY1LDkgQEAKLSAgIGlmICh1c2VfY3JhcykgewotICAgICBk ZWZpbmVzICs9IFsgIlVTRV9DUkFTIiBdCi0gICB9Ci0rICBpZiAodXNlX3NuZGlvKSB7Ci0rICAg IGRlZmluZXMgKz0gWyAiVVNFX1NORElPIiBdCi0rICB9Ci0gfQotIAotICMgSW50ZXJuYWwgZ3Jv dXBpbmcgb2YgdGhlIGNvbmZpZ3MgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgc3ViLWZvbGRlcnMgaGF2 aW5nIHRoZWlyCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tcGF0 Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tcGF0Y2hlcy9zcmNfM3JkcGFydHlfY2hyb21p dW1fbWVkaWFfYXVkaW9fQlVJTEQuZ24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGM4NTZkZTBiZjJlYy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZWxlY3Ryb24xMC9m aWxlcy9zbmRpby1wYXRjaGVzL3NyY18zcmRwYXJ0eV9jaHJvbWl1bV9tZWRpYV9hdWRpb19CVUlM RC5nbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLS0tLSBtZWRpYS9hdWRp by9CVUlMRC5nbgkyMDIwLTAzLTI0IDEwOjE2OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIC0JMjAy MC0wNC0wNiAxNDozMToyOC44NzE0NTAyMTcgKzAyMDAKLUBAIC0yMzIsOSArMjMyLDE5IEBACi0g ICAgIGRlcHMgKz0gWyAiLy9tZWRpYS9iYXNlL2FuZHJvaWQ6bWVkaWFfam5pX2hlYWRlcnMiIF0K LSAgIH0KLSAKLS0gIGlmIChpc19saW51eCkgewotKyAgaWYgKGlzX2xpbnV4KSB7Ci0gICAgIHNv dXJjZXMgKz0gWyAibGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyIgXQotICAgfQotKyAgaWYg KHVzZV9zbmRpbykgewotKyAgICBsaWJzICs9IFsgInNuZGlvIiBdCi0rICAgIHNvdXJjZXMgKz0g WwotKyAgICAgICJvcGVuYnNkL2F1ZGlvX21hbmFnZXJfb3BlbmJzZC5jYyIsCi0rICAgICAgInNu ZGlvL3NuZGlvX2lucHV0LmNjIiwKLSsgICAgICAic25kaW8vc25kaW9faW5wdXQuaCIsCi0rICAg ICAgInNuZGlvL3NuZGlvX291dHB1dC5jYyIsCi0rICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5o IgotKyAgIF0KLSsgfQotIAotICAgaWYgKHVzZV9hbHNhKSB7Ci0gICAgIGxpYnMgKz0gWyAiYXNv dW5kIiBdCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMTAvZmlsZXMvc25kaW8tcGF0Y2hl cy9zcmNfM3JkcGFydHlfY2hyb21pdW1fbWVkaWFfbWVkaWFfX29wdGlvbnMuZ25pLnBhdGNoIGIv c3JjcGtncy9lbGVjdHJvbjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9t aXVtX21lZGlhX21lZGlhX19vcHRpb25zLmduaS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMTQ4MDdkOGUxZDM2Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9lbGVjdHJv bjEwL2ZpbGVzL3NuZGlvLXBhdGNoZXMvc3JjXzNyZHBhcnR5X2Nocm9taXVtX21lZGlhX21lZGlh X19vcHRpb25zLmduaS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLSBt ZWRpYS9tZWRpYV9vcHRpb25zLmduaQkyMDIwLTAzLTI0IDEwOjE2OjMwLjAwMDAwMDAwMCArMDEw MAotKysrIC0JMjAyMC0wNC0wNiAxNDoyOToyMi45NTg2MzA3ODMgKzAyMDAKLUBAIC0xMTQsNiAr MTE0LDkgQEAKLSAgICMgRW5hYmxlcyBydW50aW1lIHNlbGVjdGlvbiBvZiBBTFNBIGxpYnJhcnkg Zm9yIGF1ZGlvLgotICAgdXNlX2Fsc2EgPSBmYWxzZQotIAotKyAgIyBFbmFibGVzIHJ1bnRpbWUg c2VsZWN0aW9uIG9mIHNuZGlvIGxpYnJhcnkgZm9yIGF1ZGlvLgotKyAgdXNlX3NuZGlvID0gZmFs c2UKLSsKLSAgICMgQWxzYSBzaG91bGQgYmUgdXNlZCBvbiBub24tQW5kcm9pZCwgbm9uLU1hYyBQ T1NJWCBzeXN0ZW1zLgotICAgIyBBbHNhIHNob3VsZCBiZSB1c2VkIG9uIGRlc2t0b3AgQ2hyb21l Y2FzdCBhbmQgYXVkaW8tb25seSBDaHJvbWVjYXN0IGJ1aWxkcy4KLSAgIGlmIChpc19wb3NpeCAm JiAhaXNfYW5kcm9pZCAmJiAhaXNfbWFjICYmCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u MTAvdGVtcGxhdGUgYi9zcmNwa2dzL2VsZWN0cm9uMTAvdGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDA1NTA2ZGRkY2IzNy4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv ZWxlY3Ryb24xMC90ZW1wbGF0ZQorKysgL2Rldi9udWxsCkBAIC0xLDM2MSArMCwwIEBACi0jIFRl bXBsYXRlIGZpbGUgZm9yICdlbGVjdHJvbjEwJwotcGtnbmFtZT1lbGVjdHJvbjEwCi12ZXJzaW9u PTEwLjQuNwotX25vZGV2ZXI9MTIuMTYuMwotX2Nocm9taXVtdmVyPTg1LjAuNDE4My4xMjEKLXJl dmlzaW9uPTIKLWFyY2hzPSJ4ODZfNjQqIGk2ODYqIGFhcmNoNjQqIgotYnVpbGRfd3Jrc3JjPSJz cmMiCi1jcmVhdGVfd3Jrc3JjPXllcwotaG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRfaWYgY2xhbmcg Y2xhbmcpIHB5dGhvbiBwa2djb25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRz Ci0gbGlid2VicC1kZXZlbCBmcmVldHlwZS1kZXZlbCBoYXJmYnV6ei1kZXZlbCBsaWJwbmctZGV2 ZWwgbnNzLWRldmVsIHdoaWNoIGdpdCBsaWJldmVudC1kZXZlbAotIHBjaXV0aWxzLWRldmVsIGxp YmF0b21pYy1kZXZlbCBmZm1wZWctZGV2ZWwgbGlieG1sMi1kZXZlbCBsaWJnbGliLWRldmVsIHlh cm4gb3BlbmpkayBsaWJ4c2x0LWRldmVsCi0gb3B1cy1kZXZlbCBsaWJYY3Vyc29yLWRldmVsIGxp Ylhjb21wb3NpdGUtZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwgbGliWFNjcm5T YXZlci1kZXZlbAotIGFsc2EtbGliLWRldmVsIHJlMi1kZXZlbCBzbmFwcHktZGV2ZWwgbWl0LWty YjUtZGV2ZWwgJCh2b3B0X2lmIHB1bHNlYXVkaW8gcHVsc2VhdWRpby1kZXZlbCkKLSAkKHZvcHRf aWYgc25kaW8gc25kaW8tZGV2ZWwpIgotbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCBndGsrLWRl dmVsIGd0ayszLWRldmVsIG5zcy1kZXZlbCBwY2l1dGlscy1kZXZlbAotIGxpYlhpLWRldmVsIGxp YmdjcnlwdC1kZXZlbCBsaWJnbm9tZS1rZXlyaW5nLWRldmVsIGN1cHMtZGV2ZWwgZWxmdXRpbHMt ZGV2ZWwKLSBsaWJYY29tcG9zaXRlLWRldmVsIHNwZWVjaC1kaXNwYXRjaGVyLWRldmVsIGxpYlhy YW5kci1kZXZlbCBtaXQta3JiNS1kZXZlbAotIGxpYlhTY3JuU2F2ZXItZGV2ZWwgYWxzYS1saWIt ZGV2ZWwgc25hcHB5LWRldmVsIGxpYmRybS1kZXZlbAotIGxpYnhtbDItZGV2ZWwgbGlieHNsdC1k ZXZlbCAkKHZvcHRfaWYgcHVsc2VhdWRpbyBwdWxzZWF1ZGlvLWRldmVsKSBsaWJleGlmLWRldmVs Ci0gbGliWGN1cnNvci1kZXZlbCBsaWJmbGFjLWRldmVsIHNwZWV4LWRldmVsIGxpYm10cC1kZXZl bCBsaWJ3ZWJwLWRldmVsCi0gbGlianBlZy10dXJiby1kZXZlbCBsaWJldmVudC1kZXZlbCBqc29u LWMtZGV2ZWwgaGFyZmJ1enotZGV2ZWwKLSBtaW5pemlwLWRldmVsIGpzb25jcHAtZGV2ZWwgemxp Yi1kZXZlbCBsaWJjYXAtZGV2ZWwgbGliWGRhbWFnZS1kZXZlbAotIHJlMi1kZXZlbCBmb250Y29u ZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsIG9wdXMtZGV2ZWwgbGliYXRvbWljLWRldmVsCi0gJCh2 b3B0X2lmIHNuZGlvIHNuZGlvLWRldmVsKSBmZm1wZWctZGV2ZWwgbGlidmEtZGV2ZWwgbGlidXYt ZGV2ZWwgYy1hcmVzLWRldmVsIGxpYm5vdGlmeS1kZXZlbCIKLXNob3J0X2Rlc2M9IkNyb3NzIHBs YXRmb3JtIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IGZyYW1ld29yayBiYXNlZCBvbiB3ZWIgdGVj aG5vbG9naWVzIgotbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKLWxpY2Vu c2U9IkJTRC0zLUNsYXVzZSIKLWhvbWVwYWdlPSJodHRwczovL2VsZWN0cm9uanMub3JnIgotZGlz dGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZWxlY3Ryb24vZWxlY3Ryb24vYXJjaGl2ZS92JHZl cnNpb24udGFyLmd6PmVsZWN0cm9uLSR7dmVyc2lvbn0udGFyLmd6Ci0gaHR0cHM6Ly9jb21tb25k YXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9mZmljaWFsL2Nocm9t aXVtLSRfY2hyb21pdW12ZXIudGFyLnh6Ci0gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2Rl L2FyY2hpdmUvdiRfbm9kZXZlci50YXIuZ3o+bm9kZS0kX25vZGV2ZXIudGFyLmd6IgotY2hlY2tz dW09ImQ3NWI3ODEwNzY1NmVmODU0Y2M5OWE5NjdiMjI1ZWViMWU1OTg5YzBhMTMwN2Q5ZWZhZDNm ODAzOWQzODdjZDgKLSBlMDE4NTQ3ZTU0NTY2NDEwZmIzNjVkOWYzZGFlMTAwMzdjMzBmY2E1ZGVi ZTZiYThiYWNlZWYzYWQzYjAzZDI4Ci0gZGNkMGExZTYxOWZmMzI2Mzk5Y2E4ZmQ4N2Y2MWMyNTVm NGQxZTliZmY0Nzg2MDA2NDk5M2YwMWU0ZmYzN2ZlMSIKLQotY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCi0JcHBjNjQqLW11c2wpIG1ha2VkZXBlbmRzKz0iIGxpYnVjb250ZXh0LWRldmVs IiA7OwotZXNhYwotCi1ub19nZW5lcmljX3BrZ2NvbmZpZ19saW5rPXllcwotbGliMzJkaXNhYmxl ZD15ZXMKLW5vcGllPXllcyAgIyBjb250YWlucyB0b29scyB0aGF0IGFyZSBub3QgUElFLCBlbmFi bGVzIFBJRSBpdHNlbGYKLQotYnVpbGRfb3B0aW9ucz0icHVsc2VhdWRpbyBzbmRpbyBjbGFuZyIK LWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0icHVsc2VhdWRpbyBjbGFuZyIKLQotaWYgWyAiJGJ1aWxk X29wdGlvbl9jbGFuZyIgXTsgdGhlbgotCW5vY3Jvc3M9Ik5vIHByb3BlciBzZXR1cCBmb3IgdXNp bmcgY2xhbmcgYXMgY3Jvc3MgY29tcGlsZXIgaW4gdm9pZCB5ZXQiCi1lbGlmIFsgIiR7WEJQU19U QVJHRVRfTUFDSElORSUlLW11c2x9IiA9ICJhYXJjaDY0IiBdOyB0aGVuCi0JYnJva2VuPSJGYWxs cyBhcGFydCBhdCBydW50aW1lIHdoZW4gY29tcGlsZWQgd2l0aCBnY2MiCi1maQotCi1fYnVpbGR0 eXBlPVJlbGVhc2UKLV9pc19kZWJ1Zz1mYWxzZQotCi1DRkxBR1M9Ii1Xbm8tdW5rbm93bi13YXJu aW5nLW9wdGlvbiAtZlBJQyIKLUNYWEZMQUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24g LWZQSUMiCi0KLV9hcHBseV9wYXRjaCgpIHsKLQlsb2NhbCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFz ZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFtZX1fZG9uZSIgXTsgdGhlbgotCQltc2df bm9ybWFsICIkcGtndmVyOiBwYXRjaGluZzogJHtwbmFtZX0uXG4iCi0JCXBhdGNoIC1OICRhcmdz IC1pICQyCi0JCXRvdWNoIC4ke3BuYW1lfV9kb25lCi0JZmkKLX0KLQotX2dldF9jaHJvbWl1bV9h cmNoKCkgewotCWNhc2UgIiQxIiBpbgotCQl4ODZfNjQqKSBlY2hvIHg2NCA7OwotCQlpNjg2Kikg ZWNobyB4ODYgOzsKLQkJYXJtKikgZWNobyBhcm0gOzsKLQkJYWFyY2g2NCopIGVjaG8gYXJtNjQg OzsKLQkJcHBjNjQqKSBlY2hvIHBwYzY0IDs7Ci0JCXBwYyopIGVjaG8gcHBjIDs7Ci0JCW1pcHNl bCopIGVjaG8gbWlwc2VsIDs7Ci0JCW1pcHMqKSBlY2hvIG1pcHMgOzsKLQkJKikgbXNnX2Vycm9y ICIkcGtndmVyOiBjYW5ub3QgYmUgY29tcGlsZWQgZm9yICR7WEJQU19UQVJHRVRfTUFDSElORX0u XG4iIDs7Ci0JZXNhYwotfQotCi1wb3N0X2V4dHJhY3QoKSB7Ci0JbG4gLXMgY2hyb21pdW0tJF9j aHJvbWl1bXZlciBzcmMKLQlta2RpciAtcCBzcmMvdGhpcmRfcGFydHkvCi0JbG4gLXMgLi4vLi4v bm9kZS0kX25vZGV2ZXIgc3JjL3RoaXJkX3BhcnR5L2VsZWN0cm9uX25vZGUKLQlsbiAtcyAuLi9l bGVjdHJvbi0ke3ZlcnNpb259IHNyYy9lbGVjdHJvbgotCi19Ci1wb3N0X3BhdGNoKCkgewotCWNk ICR3cmtzcmMKLQlmb3IgeCBpbiAkRklMRVNESVIvcGF0Y2hlcy8qOyBkbwotCQljYXNlICIke3gj IyovfSIgaW4KLQkJCWVsZWN0cm9uKi5wYXRjaCkKLQkJCQljZCBzcmMvZWxlY3Ryb24KLQkJCQlf YXBwbHlfcGF0Y2ggLXAxICIkeCIKLQkJCQljZCAiJHdya3NyYyI7OwotCQllc2FjCi0JZG9uZQot Ci0JIyBTaWdoLCBlbGVjdHJvbiB1c2VzIGdpdCBhbS4uLgotCWlmIFsgISAtZiAiLmVsZWN0cm9u X3BhdGNoZXNfZG9uZSIgXTsgdGhlbgotCXB5dGhvbjIgc3JjL2VsZWN0cm9uL3NjcmlwdC9saXN0 X3BhdGNoX3RhcmdldHMucHkgc3JjL2VsZWN0cm9uL3BhdGNoZXMvY29uZmlnLmpzb24gfCB3aGls ZSByZWFkIC1yIHJlcG9wYXRoOyBkbwotCQljZCAiJHdya3NyYyIvIiRyZXBvcGF0aCIKLQkJZ2l0 IGluaXQgLXEKLQkJZ2l0IGNvbmZpZyAiZ2MuYXV0byIgMAotCQlpZiBbICIkcmVwb3BhdGgiICE9 ICJzcmMiIF07IHRoZW4KLQkJCWVjaG8gIi8ke3JlcG9wYXRoI3NyYy99IiA+PiAiJHdya3NyYy8k YnVpbGRfd3Jrc3JjLy5naXRpZ25vcmUiCi0JCWZpCi0JCWdpdCBhZGQgLgotCQlnaXQgLWMgJ3Vz ZXIubmFtZT1FbGVjdHJvbiBidWlsZCcgLWMgJ3VzZXIuZW1haWw9ZWxlY3Ryb25AZWJ1aWxkJyBc Ci0JCQljb21taXQgLXEgLW0gIi4iIHx8IHRydWUKLQlkb25lCi0JY2QgJHdya3NyYwotCXB5dGhv bjIgc3JjL2VsZWN0cm9uL3NjcmlwdC9hcHBseV9hbGxfcGF0Y2hlcy5weSBzcmMvZWxlY3Ryb24v cGF0Y2hlcy9jb25maWcuanNvbgotCXRvdWNoIC5lbGVjdHJvbl9wYXRjaGVzX2RvbmUKLQlmaQot Ci0JZm9yIHggaW4gJEZJTEVTRElSL3BhdGNoZXMvKjsgZG8KLQkJY2FzZSAiJHt4IyMqL30iIGlu Ci0JCQljaHJvbWl1bSoucGF0Y2gpCi0JCQkJY2Qgc3JjCi0JCQkJX2FwcGx5X3BhdGNoIC1wMSAi JHgiCi0JCQkJY2QgIiR3cmtzcmMiOzsKLQkJZXNhYwotCWRvbmUKLQotCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCi0JZm9yIHggaW4gJEZJTEVTRElSL211c2wtcGF0 Y2hlcy8qOyBkbwotCQljYXNlICIke3gjIyovfSIgaW4KLQkJCWNocm9taXVtKi5wYXRjaCkKLQkJ CQljZCBzcmMKLQkJCQlfYXBwbHlfcGF0Y2ggLXAxICIkeCIKLQkJCQljZCAiJHdya3NyYyI7Owot CQkJZWxlY3Ryb24qLnBhdGNoKQotCQkJCWNkIHNyYy9lbGVjdHJvbgotCQkJCV9hcHBseV9wYXRj aCAtcDEgIiR4IgotCQkJCWNkICIkd3Jrc3JjIjs7Ci0JCWVzYWMKLQlkb25lCi0JZmkKLQlpZiBb ICIkYnVpbGRfb3B0aW9uX3NuZGlvIiBdOyB0aGVuCi0JCW1rZGlyIC1wICR7d3Jrc3JjfS8ke2J1 aWxkX3dya3NyY30vbWVkaWEvYXVkaW8ve3NuZGlvLG9wZW5ic2R9Ci0JCWNwICR7RklMRVNESVJ9 L3NuZGlvLWZpbGVzL3NuZGlvXypwdXQuKiBcCi0JCQkke3dya3NyY30vJHtidWlsZF93cmtzcmN9 L21lZGlhL2F1ZGlvL3NuZGlvCi0JCWNwICR7RklMRVNESVJ9L3NuZGlvLWZpbGVzL2F1ZGlvX21h bmFnZXJfb3BlbmJzZC4qIFwKLQkJCSR7d3Jrc3JjfS8ke2J1aWxkX3dya3NyY30vbWVkaWEvYXVk aW8vb3BlbmJzZAotCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL3NuZGlvLXBhdGNoZXMvKi5wYXRj aDsgZG8KLQkJCWNkIHNyYwotCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCi0JCQljZCAiJHdya3Ny YyIKLQkJZG9uZQotCWZpCi19Ci0KLXByZV9jb25maWd1cmUoKSB7Ci0JY2QgIiR3cmtzcmMvJGJ1 aWxkX3dya3NyYyIKLQotCSMgaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9hL2Nocm9taXVtLm9y Zy9kL3RvcGljL2Nocm9taXVtLXBhY2thZ2Vycy85SlgxTjJuZjRQVS9kaXNjdXNzaW9uCi0JdG91 Y2ggY2hyb21lL3Rlc3QvZGF0YS93ZWJ1aS9pMThuX3Byb2Nlc3NfY3NzX3Rlc3QuaHRtbAotCSMg VXNlIHRoZSBmaWxlIGF0IHJ1biB0aW1lIGluc3RlYWQgb2YgZWZmZWN0aXZlbHkgY29tcGlsaW5n IGl0IGluCi0Jc2VkICdzfC8vdGhpcmRfcGFydHkvdXNiX2lkcy91c2IuaWRzfC91c3Ivc2hhcmUv aHdkYXRhL3VzYi5pZHN8ZycgXAotCQktaSBzZXJ2aWNlcy9kZXZpY2UvcHVibGljL2NwcC91c2Iv QlVJTEQuZ24KLQotCW1rZGlyIC1wIHRoaXJkX3BhcnR5L25vZGUvbGludXgvbm9kZS1saW51eC14 NjQvYmluCi0JbG4gLXMgL3Vzci9iaW4vbm9kZSB0aGlyZF9wYXJ0eS9ub2RlL2xpbnV4L25vZGUt bGludXgteDY0L2Jpbi8KLQotCSMgcmV1c2FibGUgc3lzdGVtIGxpYnJhcnkgc2V0dGluZ3MKLQls b2NhbCB1c2Vfc3lzdGVtPSIKLQkJZmZtcGVnCi0JCWZsYWMKLQkJZm9udGNvbmZpZwotCQlmcmVl dHlwZQotCQloYXJmYnV6ei1uZwotCQlsaWJkcm0KLQkJbGliZXZlbnQKLQkJbGlianBlZwotCQls aWJwbmcKLQkJbGlid2VicAotCQlsaWJ4bWwKLQkJbGlieHNsdAotCQlvcHVzCi0JCXJlMgotCQlz bmFwcHkKLQkJIgotCWZvciBfbGliIGluICR1c2Vfc3lzdGVtIGxpYmpwZWdfdHVyYm87IGRvCi0J CW1zZ19ub3JtYWwgIlJlbW92aW5nIGJ1aWxkc2NyaXB0cyBmb3Igc3lzdGVtIHByb3ZpZGVkICRf bGliXG4iCi0JCWZpbmQgLXR5cGUgZiAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGliLyoiIFwKLQkJ CVwhIC1wYXRoICIqdGhpcmRfcGFydHkvJF9saWIvY2hyb21pdW0vKiIgXAotCQkJXCEgLXBhdGgg Iip0aGlyZF9wYXJ0eS8kX2xpYi9nb29nbGUvKiIgXAotCQkJXCEgLXBhdGggJy4vYmFzZS90aGly ZF9wYXJ0eS9pY3UvKicgXAotCQkJXCEgLXBhdGggJy4vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJk X3BhcnR5L2ZyZWV0eXBlL2luY2x1ZGUvcHN0YWJsZXMuaCcgXAotCQkJXCEgLXBhdGggJy4vdGhp cmRfcGFydHkvaGFyZmJ1enotbmcvdXRpbHMvaGJfc2NvcGVkLmgnIFwKLQkJCVwhIC1yZWdleCAn LipcLlwoZ25cfGduaVx8aXNvbGF0ZVx8cHlcKScgXAotCQkJLWRlbGV0ZQotCWRvbmUKLQotCi0J bXNnX25vcm1hbCAiUmVwbGFjaW5nIGduIGZpbGVzXG4iCi0JcHl0aG9uMiBidWlsZC9saW51eC91 bmJ1bmRsZS9yZXBsYWNlX2duX2ZpbGVzLnB5IC0tc3lzdGVtLWxpYnJhcmllcyBcCi0JCSR1c2Vf c3lzdGVtCi0JdGhpcmRfcGFydHkvbGliYWRkcmVzc2lucHV0L2Nocm9taXVtL3Rvb2xzL3VwZGF0 ZS1zdHJpbmdzLnB5Ci19Ci0KLWRvX2NvbmZpZ3VyZSgpIHsKLQlsb2NhbCB0YXJnZXRfYXJjaD0i JChfZ2V0X2Nocm9taXVtX2FyY2ggJHtYQlBTX1RBUkdFVF9NQUNISU5FfSkiCi0JbG9jYWwgaG9z dF9hcmNoPSIkKF9nZXRfY2hyb21pdW1fYXJjaCAke1hCUFNfTUFDSElORX0pIgotCSMgdGhlIGJ1 aWxkIHN5c3RlbSB3aWxsIHNldCBtYXJjaCBmb3IgdXNlLCBhZGRpbmcgaXQgdG8gY2ZsYWdzIHdp bGwgYnJlYWsgYnVpbGRzCi0JZXhwb3J0IENYWEZMQUdTPSQoIHNob3B0IC1zIGV4dGdsb2I7IGVj aG8gJHtDWFhGTEFHUy8tbWFyY2g9KihbXiBdKX0gKQotCWV4cG9ydCBDRkxBR1M9JCggc2hvcHQg LXMgZXh0Z2xvYjsgZWNobyAke0NGTEFHUy8tbWFyY2g9KihbXiBdKX0gKQotCWV4cG9ydCBDRkxB R1M9JHtDRkxBR1MvLWcvfQotCWV4cG9ydCBDWFhGTEFHUz0ke0NYWEZMQUdTLy1nL30KLQlsb2Nh bCBjb25mPSgpCi0JY2QgdGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZQotCWlmIFsgIiRDUk9TU19C VUlMRCIgXTsgdGhlbgotCQljb25mX2FyZ3M9IiAtLWRlc3QtY3B1PSR7dGFyZ2V0X2FyY2h9IC0t Y3Jvc3MtY29tcGlsaW5nIgotCWZpCi0JLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciBcCi0JCS0t c2hhcmVkLXpsaWIgXAotCQktLXNoYXJlZC1saWJ1diBcCi0JCS0tc2hhcmVkLW9wZW5zc2wgXAot CQktLXNoYXJlZC1jYXJlcyBcCi0JCS0tb3BlbnNzbC11c2UtZGVmLWNhLXN0b3JlIFwKLQkJLS13 aXRob3V0LW5wbSBcCi0JCS0td2l0aG91dC1kdHJhY2UgXAotCQktLXdpdGhvdXQtYnVuZGxlZC12 OCBcCi0JCSR7Y29uZl9hcmdzfQotCi0JY2QgIiR3cmtzcmMvJGJ1aWxkX3dya3NyYyIvZWxlY3Ry b24KLQl5YXJuIGluc3RhbGwKLQljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjIgotCi0JaWYgWyAi JGJ1aWxkX29wdGlvbl9jbGFuZyIgXTsgdGhlbgotCQlleHBvcnQgQ0M9Y2xhbmcKLQkJZXhwb3J0 IENYWD1jbGFuZysrCi0JCWV4cG9ydCBIT1NUX0NDPWNsYW5nCi0JCWV4cG9ydCBIT1NUX0NYWD1j bGFuZysrCi0JZWxzZQotCQlleHBvcnQgQ1hYRkxBR1M9IiRDWFhGTEFHUyAtZnBlcm1pc3NpdmUi Ci0JCWV4cG9ydCBCVUlMRF9DWFhGTEFHUz0iJEJVSUxEX0NYWEZMQUdTIC1mcGVybWlzc2l2ZSIK LQkJZXhwb3J0IEJVSUxEX0FSPSIkQVJfaG9zdCIKLQkJZXhwb3J0IEJVSUxEX05NPSIkTk1faG9z dCIKLQlmaQotCi0JIyBHb29nbGUgQVBJIGtleXMgKHNlZSBodHRwOi8vd3d3LmNocm9taXVtLm9y Zy9kZXZlbG9wZXJzL2hvdy10b3MvYXBpLWtleXMpCi0JIyBOb3RlOiBUaGVzZSBhcmUgZm9yIFZv aWQgTGludXggdXNlIE9OTFkuCi0JY29uZis9KAotCQknZ29vZ2xlX2FwaV9rZXk9IkFJemFTeUE5 Z1dhekthSGFOSVBQZzJock1qNl9aU0c4QUZtcTczOCInCi0JCSdnb29nbGVfZGVmYXVsdF9jbGll bnRfaWQ9IjEyNjY1OTE0OTQyMy1ob282aWNrYmszcDF1MnFqc2RzcDBkZGNpdXJmdmI0dC5hcHBz Lmdvb2dsZXVzZXJjb250ZW50LmNvbSInCi0JCSdnb29nbGVfZGVmYXVsdF9jbGllbnRfc2VjcmV0 PSJfb3pJeDJELURLbV9zZV8yTlB3VjRsNWIiJwotCSkKLQotCWNvbmYrPSgKLQkJJ2JsaW5rX3N5 bWJvbF9sZXZlbD0wJwotCQknY2xhbmdfdXNlX2Nocm9tZV9wbHVnaW5zPWZhbHNlJwotCQknY3Vz dG9tX3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6ZGVmYXVsdCIn Ci0JKQotCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQljb25mKz0oCi0JCQknaG9zdF90 b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlOmhvc3QiJwotCQkJJ3Y4 X3NuYXBzaG90X3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6aG9z dCInCi0JCQkiaG9zdF9wa2dfY29uZmlnPVwiJFBLR19DT05GSUdfRk9SX0JVSUxEXCIiCi0JCQki cGtnX2NvbmZpZz1cIiRQS0dfQ09ORklHXCIiCi0JCSkKLQllbHNlCi0JCWNvbmYrPSgKLQkJCSdo b3N0X3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6ZGVmYXVsdCIn Ci0JCQkndjhfc25hcHNob3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1 bmRsZTpkZWZhdWx0IicKLQkJKQotCWZpCi0JaWYgWyAiJGJ1aWxkX29wdGlvbl9zbmRpbyIgXTsg dGhlbgotCQljb25mKz0oCi0JCQkndXNlX3NuZGlvPXRydWUnCi0JCSkKLQlmaQotCWlmIFsgLW4g IiRYQlBTX0RFQlVHX1BLR1MiIF07IHRoZW4KLQkJY29uZis9KCdzeW1ib2xfbGV2ZWw9MScpCi0J ZWxzZQotCQljb25mKz0oJ3N5bWJvbF9sZXZlbD0wJykKLQlmaQotCWNvbmYrPSgKLQkJJ2VuYWJs ZV9oYW5nb3V0X3NlcnZpY2VzX2V4dGVuc2lvbj10cnVlJwotCQknZW5hYmxlX25hY2xfbm9uc2Zp PWZhbHNlJwotCQknZW5hYmxlX25hY2w9ZmFsc2UnCi0JCSdlbmFibGVfcHJlY29tcGlsZWRfaGVh ZGVycz1mYWxzZScKLQkJJ2ZhdGFsX2xpbmtlcl93YXJuaW5ncz1mYWxzZScKLQkJJ2ZmbXBlZ19i cmFuZGluZz0iQ2hyb21lIicKLQkJJ2ZpZWxkdHJpYWxfdGVzdGluZ19saWtlX29mZmljaWFsX2J1 aWxkPXRydWUnCi0JCSdnb2xkX3BhdGg9Ii91c3IvYmluL2xkLmdvbGQiJwotCQknaWN1X3VzZV9k YXRhX2ZpbGU9dHJ1ZScKLQkJImlzX2NsYW5nPSQodm9wdF9pZiBjbGFuZyB0cnVlIGZhbHNlKSIK LQkJJ2lzX2NvbXBvbmVudF9idWlsZD1mYWxzZScKLQkJImlzX2RlYnVnPSRfaXNfZGVidWciCi0J CSdpc19kZXNrdG9wX2xpbnV4PXRydWUnCi0JCSdwcm9wcmlldGFyeV9jb2RlY3M9dHJ1ZScKLQkJ J3RyZWF0X3dhcm5pbmdzX2FzX2Vycm9ycz1mYWxzZScKLQkJJ3VzZV9hbGxvY2F0b3Jfc2hpbT1m YWxzZScKLQkJJ3VzZV9hbGxvY2F0b3I9Im5vbmUiJwotCQkndXNlX2N1cHM9dHJ1ZScKLQkJJ3Vz ZV9jdXN0b21fbGliY3h4PWZhbHNlJwotCQkndXNlX2dub21lX2tleXJpbmc9ZmFsc2UnCi0JCSd1 c2VfZ29sZD1mYWxzZScKLQkJJ3VzZV9sbGQ9ZmFsc2UnCi0JCSJ1c2VfcHVsc2VhdWRpbz0kKHZv cHRfaWYgcHVsc2VhdWRpbyAndHJ1ZScgJ2ZhbHNlJykiCi0JCSd1c2Vfc3lzcm9vdD1mYWxzZScK LQkJJ3VzZV9zeXN0ZW1faGFyZmJ1eno9dHJ1ZScKLQkJInRhcmdldF9jcHU9XCIkdGFyZ2V0X2Fy Y2hcIiIKLQkJImhvc3RfY3B1PVwiJGhvc3RfYXJjaFwiIgotCQknaW1wb3J0KCIvL2VsZWN0cm9u L2J1aWxkL2FyZ3MvcmVsZWFzZS5nbiIpJwotCSkKLQotCW1zZ19ub3JtYWwgIkJvb3RzdHJhcHBp bmcgR05cbiIKLQlDQz0iJHtDQ19GT1JfQlVJTEQ6LSRDQ30iIENYWD0iJHtDWFhfRk9SX0JVSUxE Oi0kQ1hYfSIgTEQ9IiR7TERfRk9SX0JVSUxEOi0kTER9IiBcCi0JQ0ZMQUdTPSIke0NGTEFHU19G T1JfQlVJTEQ6LSRDRkxBR1N9IiBDWFhGTEFHUz0iJHtDWFhGTEFHU19GT1JfQlVJTEQ6LSRDWFhG TEFHU30iIFwKLQlMREZMQUdTPSIke1hCUFNfTERGTEFHU30iIFwKLQkJcHl0aG9uMiB0b29scy9n bi9ib290c3RyYXAvYm9vdHN0cmFwLnB5IC1zIC12IC0tc2tpcC1nZW5lcmF0ZS1idWlsZGZpbGVz Ci0KLQltc2dfbm9ybWFsICJDb25maWd1cmluZyBidWlsZFxuIgotCW91dC9SZWxlYXNlL2duIGdl biBvdXQvJF9idWlsZHR5cGUgLS1hcmdzPSIke2NvbmZbKl19IgotfQotCi1kb19idWlsZCgpIHsK LQlleHBvcnQgQ1hYRkxBR1M9JCggc2hvcHQgLXMgZXh0Z2xvYjsgZWNobyAke0NYWEZMQUdTLy1t YXJjaD0qKFteIF0pfSApCi0JZXhwb3J0IENGTEFHUz0kKCBzaG9wdCAtcyBleHRnbG9iOyBlY2hv ICR7Q0ZMQUdTLy1tYXJjaD0qKFteIF0pfSApCi0JZXhwb3J0IENGTEFHUz0ke0NGTEFHUy8tZy99 Ci0JZXhwb3J0IENYWEZMQUdTPSR7Q1hYRkxBR1MvLWcvfQotCWlmIFsgIiRidWlsZF9vcHRpb25f Y2xhbmciIF07IHRoZW4KLQkJZXhwb3J0IENDPWNsYW5nCi0JCWV4cG9ydCBDWFg9Y2xhbmcrKwot CQlleHBvcnQgSE9TVF9DQz1jbGFuZwotCQlleHBvcnQgSE9TVF9DWFg9Y2xhbmcrKwotCWVsc2UK LQkJZXhwb3J0IEJVSUxEX0NYWEZMQUdTPSIkQlVJTERfQ1hYRkxBR1MgLWZwZXJtaXNzaXZlIgot CQlleHBvcnQgQ1hYRkxBR1M9IiRDWFhGTEFHUyAtZnBlcm1pc3NpdmUiCi0JCWV4cG9ydCBCVUlM RF9BUj0iJEFSX2hvc3QiCi0JCWV4cG9ydCBCVUlMRF9OTT0iJE5NX2hvc3QiCi0JZmkKLQltc2df bm9ybWFsICJOaW5qYSB0dXJ0bGVzIEdPIVxuIgotCW5pbmphICR7bWFrZWpvYnN9IC1DIG91dC8k X2J1aWxkdHlwZSBlbGVjdHJvbiB0aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlOmhlYWRlcnMKLQkj IGZpbmlzaCByZXN0IG9mIHRoZSBidWlsZAotCXN0cmlwIC1zIG91dC8kX2J1aWxkdHlwZS9lbGVj dHJvbgotCW5pbmphICR7bWFrZWpvYnN9IC1DIG91dC8kX2J1aWxkdHlwZSBlbGVjdHJvbl9kaXN0 X3ppcAotfQotCi1kb19pbnN0YWxsKCkgewotCXZta2RpciAvdXNyL2xpYi8kcGtnbmFtZQotCXZt a2RpciAvdXNyL2luY2x1ZGUvJHBrZ25hbWUKLQlic2R0YXIgLXhmIG91dC8kX2J1aWxkdHlwZS9k aXN0LnppcCAtQyAiJERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZSIKLQotCWNobW9kIHUrcyAiJERF U1RESVIvdXNyL2xpYi8kcGtnbmFtZS9jaHJvbWUtc2FuZGJveCIKLQotCWNwIG91dC8kX2J1aWxk dHlwZS9nZW4vbm9kZV9oZWFkZXJzLnRhci5neiAiJERFU1RESVIiL3Vzci9pbmNsdWRlLyRwa2du YW1lCi0KLQl2bGljZW5zZSAke3dya3NyY30vc3JjL0xJQ0VOU0UgY2hyb21pdW0uTElDRU5TRQot CXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvZWxlY3Ryb24vTElDRU5TRSBlbGVjdHJvbi5MSUNFTlNF Ci0JdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy90aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlL0xJQ0VO U0Ugbm9kZS5MSUNFTlNFCi0KLQl2bWtkaXIgL3Vzci9iaW4KLQlsbiAtcyAuLi9saWIvJHBrZ25h bWUvZWxlY3Ryb24gIiRERVNURElSIi91c3IvYmluLyRwa2duYW1lCi19CmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uMTAvdXBkYXRlIGIvc3JjcGtncy9lbGVjdHJvbjEwL3VwZGF0ZQpkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FmOGU1OGI1MzU4Li4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9lbGVjdHJvbjEwL3VwZGF0ZQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBA QAotc2l0ZT1odHRwczovL3d3dy5lbGVjdHJvbmpzLm9yZy9yZWxlYXNlcy9zdGFibGU/dmVyc2lv bj0ke3ZlcnNpb24lJS4qfQotcGF0dGVybj0ndGFnL3ZcS1tcZFwuXSsoPz0iKScKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcmVtb3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmVtb3ZlZC1w YWNrYWdlcy90ZW1wbGF0ZQppbmRleCBmOGNiMzNlZjQwOTguLjIyZjBmMTNiMDYzNCAxMDA2NDQK LS0tIGEvc3JjcGtncy9yZW1vdmVkLXBhY2thZ2VzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcmVt b3ZlZC1wYWNrYWdlcy90ZW1wbGF0ZQpAQCAtNzIsNiArNzIsNyBAQCByZXBsYWNlcz0iCiAgZWxh c3RpY3NlYXJjaDw9NS4xLjJfMgogIGVsZWN0cm9uNzw9Ny4zLjNfMQogIGVsZWN0cm9uOTw9OS40 LjFfMQorIGVsZWN0cm9uMTA8PTEwLjQuN18yCiAgZW1hY3MtZ3RrMjw9MjcuMl8xCiAgZW52ZW50 b3I8PTEuMC4wXzIKICBlcHN0b3BkZjw9Mi4yN18zCg== --===============6035160080327959494==--