From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=ALL_TRUSTED,DKIM_ADSP_NXDOMAIN, NO_DNS_FOR_FROM,URIBL_SBL_A autolearn=no autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id E8FFB30D79 for ; Fri, 1 Nov 2024 12:36:56 +0100 (CET) Content-Type: multipart/mixed; boundary="===============7367620413388938952==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_vscode=3A_update_to_1=2E94=2E2?= To: ml@inbox.vuxu.org From: atk Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 01 Nov 2024 12:36:56 +0100 List-Id: Message-Id: <20241101113656.E8FFB30D79@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============7367620413388938952== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYXRrIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9hdGsvdm9p ZC1wYWNrYWdlcyB2c2NvZGUtMS45Mi4yCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC81MTkwOQoKdnNjb2RlOiB1cGRhdGUgdG8gMS45NC4yCjwhLS0gVW5j b21tZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90 IGFwcGxpY2FibGUgLS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0 aGUgY2hhbmdlcyBpbiB0aGlzIFBSOiAqKmJyaWVmbHkqKg0KDQo8IS0tDQojIyMjIE5ldyBwYWNr YWdlDQotIFRoaXMgbmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtwYWNrYWdlIHJlcXVpcmVt ZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21h c3Rlci9DT05UUklCVVRJTkcubWQjcGFja2FnZS1yZXF1aXJlbWVudHMpOiAqKllFUyoqfCoqTk8q Kg0KLS0+DQoNCjwhLS0gTm90ZTogSWYgdGhlIGJ1aWxkIGlzIGxpa2VseSB0byB0YWtlIG1vcmUg dGhhbiAyIGhvdXJzLCBwbGVhc2UgYWRkIGNpIHNraXAgdGFnIGFzIGRlc2NyaWJlZCBpbg0KaHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05U UklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbg0KYW5kIHRlc3QgYXQgbGVhc3Qgb25l IG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxk Lg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4NCi0t Pg0KPCEtLQ0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQotIEkgYnVpbHQgdGhpcyBQUiBsb2Nh bGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCAoQVJDSC1MSUJDKQ0KLSBJIGJ1aWx0IHRo aXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJr IGNyb3NzYnVpbGRzKToNCiAgLSBhYXJjaDY0LW11c2wNCiAgLSBhcm12N2wNCiAgLSBhcm12Nmwt bXVzbA0KLS0+DQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC81MTkwOS5wYXRjaCBpcyBhdHRhY2hlZA== --===============7367620413388938952== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-vscode-1.92.2-51909.patch" RnJvbSBmMjk4YmQyMmQyYmQwMmRmZmJhMTliYmJhOWU5NTczNGMxOWZkYmZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFN1biwg MjcgT2N0IDIwMjQgMjM6MjU6MDggKzAxMDAKU3ViamVjdDogW1BBVENIIDEvMl0gTmV3IHBhY2th Z2U6IGVsZWN0cm9uMzMtMzMuMC4yCgotLS0KIHNyY3BrZ3MvZWxlY3Ryb24zMy1kZXZlbCAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVtLWxpYmMr Ky1tdXNsLnBhdGNoICAgfCAgMTIgKwogLi4uL2Nocm9taXVtLW11c2wtbm8tbWFsbGluZm8ucGF0 Y2ggICAgICAgICAgIHwgMTA2ICsrKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNh bmRib3gucGF0Y2ggIHwgMTI2ICsrKwogLi4uL2Nocm9taXVtLW11c2wtdGlkLWNhY2hpbmcucGF0 Y2ggICAgICAgICAgIHwgIDg2ICsrCiAuLi4vY2hyb21pdW0tbm8tcmVzLW5pbml0LW5jbG9zZS5w YXRjaCAgICAgICAgfCAgMzMgKwogLi4uL2Nocm9taXVtLW5vLXNhbmRib3gtc2V0dGxzLnBhdGNo ICAgICAgICAgIHwgIDE0ICsKIC4uLi9jaHJvbWl1bS1hbmdsZS13YXlsYW5kLWluY2x1ZGUucGF0 Y2ggICAgICB8ICAzOSArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1icm93c2VyLXNpemVfdC5wYXRj aCAgICAgfCAgMTAgKwogLi4uL3BhdGNoZXMvY2hyb21pdW0tYnVpbGQtc3VwcG9ydC1tdXNsLnBh dGNoIHwgIDc4ICsrCiAuLi5taXVtLWNocm9taXVtLTExNS1jb21waWxlci1Ta0NvbG9yNGYucGF0 Y2ggfCAgMjcgKwogLi4uY2hyb21pdW0tY2hyb21pdW0tMTE3LXN0cmluZy1jb252ZXJ0LnBhdGNo IHwgIDIxICsKIC4uLi9jaHJvbWl1bS1jaHJvbWl1bS0xMTktYXNzZXJ0LnBhdGNoICAgICAgICB8 ICAxMiArCiAuLi5yb21pdW0tY2hyb21pdW0tMTE5LWZpeC1hYXJjaDY0LW11c2wucGF0Y2ggfCAg MTEgKwogLi4uY2hyb21pdW0tY2hyb21pdW0tMTIxLXJ1c3QtY2xhbmdfbGliLnBhdGNoIHwgIDIy ICsKIC4uLm0tMTIxLXJ1c3Qtd2l0aG91dC1wcm9maWxlcl9idWlsdGlucy5wYXRjaCB8ICAxMCAr CiAuLi51bS0xMjQtaXd5dS1zeXMtc2VsZWN0LWRhd24tdGVybWluYWwucGF0Y2ggfCAgMjQgKwog Li4uaHJvbWl1bS0xMjUtZGlzYWJsZS1GRm1wZWdBbGxvd0xpc3RzLnBhdGNoIHwgIDEyICsKIC4u LjI2LXNwbGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludC5wYXRjaCB8ICAyOCArCiAuLi4t Y2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2ggfCAgMTUgKwogLi4uL2No cm9taXVtLWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggICAgIHwgIDIxICsKIC4uLi9maWxl cy9wYXRjaGVzL2Nocm9taXVtLWNyb3NzLWJ1aWxkLnBhdGNoICB8ICA1NCArKwogLi4uL3BhdGNo ZXMvY2hyb21pdW0tZmMtY2FjaGUtdmVyc2lvbi5wYXRjaCAgIHwgIDEzICsKIC4uLngtYWFyY2g2 NC1tdXNsLW1lbW9yeS10YWdnaW5nLW1hY3Jvcy5wYXRjaCB8ICAyOSArCiAuLi5yb21pdW0tZml4 LWFyZ3VtZW50X3NwZWMtaXNuYW4taXNpbmYucGF0Y2ggfCAgMTEgKwogLi4uL2Nocm9taXVtLWZp eC1jb25zdGV4cHItbmFycm93aW5nLnBhdGNoICAgIHwgIDIxICsKIC4uLi9jaHJvbWl1bS1maXgt bGliYy12ZXJzaW9uLWluY2x1ZGUucGF0Y2ggICB8ICAxNSArCiAuLi5maXgtbWlzc2luZy1URU1Q X0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0Y2ggfCAgMjEgKwogLi4uaXVtLWZpeC1taXNzaW5nLWNz dGRpbnQtaW5jbHVkZS1tdXNsLnBhdGNoIHwgIDEwICsKIC4uLnVtLWZpeC1tdXNsLW1pc3Npbmct dW5pc3RkX2gtaW5jbHVkZS5wYXRjaCB8ICAxMCArCiAuLi5taXVtLWZpeC1wZXJmZXR0by1HZXRU aHJlYWROYW1lLW11c2wucGF0Y2ggfCAgMjIgKwogLi4uaXVtLWZpeC1zd2lmdHNoYWRlci1sbHZt LW11c2wtY29uZmlnLnBhdGNoIHwgICAwCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJj X21hbGxvYy5wYXRjaCAgfCAgMzQgKwogLi4uL3BhdGNoZXMvY2hyb21pdW0tbXVzbC1uby1leGVj aW5mby5wYXRjaCAgIHwgIDY4ICsrCiAuLi4vY2hyb21pdW0tbXVzbC1wYXJ0aXRpb24tYXRmb3Jr LnBhdGNoICAgICAgfCAgMTEgKwogLi4uLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3 YWl0LnBhdGNoIHwgIDI0ICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLW5vLWdldGNvbnRleHQucGF0 Y2ggICAgICB8ICAyNyArCiAuLi4vY2hyb21pdW0tcmVlbmFibGUtbGludXgtaTY4Ni1idWlsZHMu cGF0Y2ggfCAgMTkgKwogLi4uL2Nocm9taXVtLXJlbW92ZS1zeXMtY2RlZnMtaW5jbHVkZXMucGF0 Y2ggIHwgIDM5ICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRj aCB8ICAxMCArCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zbmRpby5wYXRjaCAgICAgICAg fCA4NzUgKysrKysrKysrKysrKysrKysrCiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zeXN0 eXBlcy5wYXRjaCAgICAgfCAgMTEgKwogLi4uL2Nocm9taXVtLXVuYnVuZGxlZC1jcm9zcy10b29s Y2hhaW4ucGF0Y2ggIHwgIDEyICsKIC4uLnR0cy1pcy1XZWFrRml4ZWRBcnJheS1ub3QtTGlzdC1z by11cy5wYXRjaCB8ICAyNyArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBh dGNoICAgICAgfCAgMTAgKwogLi4uL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gu cGF0Y2ggIHwgIDEyICsKIC4uLmxlY3Ryb24tZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5w YXRjaCB8ICAxMCArCiAuLi4vcGF0Y2hlcy9lbGVjdHJvbi1uby1uZWVkLWZvci1odXNreS5wYXRj aCAgfCAgMTAgKwogc3JjcGtncy9lbGVjdHJvbjMzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAg IHwgNDk5ICsrKysrKysrKysKIHNyY3BrZ3MvZWxlY3Ryb24zMy91cGRhdGUgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArCiA1MCBmaWxlcyBjaGFuZ2VkLCAyNjE0IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2VsZWN0cm9uMzMtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLWxpYmMr Ky1tdXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVz L211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1t dXNsLXNhbmRib3gucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtdGlkLWNhY2hpbmcucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW5vLXJlcy1uaW5pdC1uY2xvc2UucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2VsZWN0cm9uMzMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW5vLXNhbmRib3gtc2V0dGxz LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tYW5nbGUtd2F5bGFuZC1pbmNsdWRlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYnJvd3Nlci1zaXpl X3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1idWlsZC1zdXBwb3J0LW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS0xMTUt Y29tcGlsZXItU2tDb2xvcjRmLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW0tMTE3LXN0cmluZy1jb252ZXJ0 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tY2hyb21pdW0tMTE5LWFzc2VydC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtLTExOS1m aXgtYWFyY2g2NC1tdXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW0tMTIxLXJ1c3QtY2xhbmdfbGliLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tY2hyb21pdW0tMTIxLXJ1c3Qtd2l0aG91dC1wcm9maWxlcl9idWlsdGlucy5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2No cm9taXVtLWNocm9taXVtLTEyNC1pd3l1LXN5cy1zZWxlY3QtZGF3bi10ZXJtaW5hbC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLWNocm9taXVtLTEyNS1kaXNhYmxlLUZGbXBlZ0FsbG93TGlzdHMucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJv bWl1bS0xMjYtc3BsaXQtdGhyZXNob2xkLWZvci1yZWctd2l0aC1oaW50LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hy b21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS1zeXN0 ZW0tbm9kZWpzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tY3Jvc3MtYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1mYy1jYWNoZS12ZXJz aW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tZml4LWFhcmNoNjQtbXVzbC1tZW1vcnktdGFnZ2luZy1tYWNyb3MucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1maXgtYXJndW1lbnRfc3BlYy1pc25hbi1pc2luZi5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1jb25z dGV4cHItbmFycm93aW5nLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LWxpYmMtdmVyc2lvbi1pbmNsdWRlLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tZml4LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JFVFJZLW1hY3JvLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4 LW1pc3NpbmctY3N0ZGludC1pbmNsdWRlLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtbXVzbC1taXNzaW5n LXVuaXN0ZF9oLWluY2x1ZGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtcGVyZmV0dG8tR2V0VGhyZWFkTmFtZS1t dXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tZml4LXN3aWZ0c2hhZGVyLWxsdm0tbXVzbC1jb25maWcucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1 bS1saWJjX21hbGxvYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24z My9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW11c2wtbm8tZXhlY2luZm8ucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tdXNs LXBhcnRpdGlvbi1hdGZvcmsucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNv bnRfdGltZWR3YWl0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMz L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbm8tZ2V0Y29udGV4dC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXJlZW5hYmxl LWxpbnV4LWk2ODYtYnVpbGRzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tcmVtb3ZlLXN5cy1jZGVmcy1pbmNsdWRlcy5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVz L2Nocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNuZGlvLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t c3lzdHlwZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t d2FzbV9jYW5vbmljYWxfcnR0cy1pcy1XZWFrRml4ZWRBcnJheS1ub3QtTGlzdC1zby11cy5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2No cm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Vs ZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2VsZWN0 cm9uLWV4Y2x1ZGUtY29udGVudC10ZXN0LXBhdGNoZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1uby1uZWVkLWZvci1o dXNreS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy90ZW1wbGF0 ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24zMy91cGRhdGUKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMzMtZGV2ZWwgYi9zcmNwa2dzL2VsZWN0cm9uMzMtZGV2ZWwK bmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjcxNTk0YmQzMzNkNDdm Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjMzLWRldmVsCkBAIC0wLDAgKzEg QEAKK2VsZWN0cm9uMzMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLWxpYmMrKy1tdXNs LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1s aWJjKystbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw MC4uYjkwYTU0ZGFhOGI0OWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMv ZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLWxpYmMrKy1tdXNsLnBhdGNoCkBAIC0wLDAgKzEs MTIgQEAKK1NvdXJjZTogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy90cmVlL2Nv bW11bml0eS9jaHJvbWl1bS95ZXMtbXVzbC5wYXRjaAorLS0tIC4vYnVpbGR0b29scy90aGlyZF9w YXJ0eS9saWJjKysvX19jb25maWdfc2l0ZS5vcmlnCisrKysgLi9idWlsZHRvb2xzL3RoaXJkX3Bh cnR5L2xpYmMrKy9fX2NvbmZpZ19zaXRlCitAQCAtMTgsNyArMTgsNyBAQAorIC8qICN1bmRlZiBf TElCQ1BQX0FCSV9GT1JDRV9NSUNST1NPRlQgKi8KKyAvKiAjdW5kZWYgX0xJQkNQUF9IQVNfTk9f VEhSRUFEUyAqLworIC8qICN1bmRlZiBfTElCQ1BQX0hBU19OT19NT05PVE9OSUNfQ0xPQ0sgKi8K Ky0vKiAjdW5kZWYgX0xJQkNQUF9IQVNfTVVTTF9MSUJDICovCisrI2RlZmluZSBfTElCQ1BQX0hB U19NVVNMX0xJQkMgMQorIC8qICN1bmRlZiBfTElCQ1BQX0hBU19USFJFQURfQVBJX1BUSFJFQUQg Ki8KKyAvKiAjdW5kZWYgX0xJQkNQUF9IQVNfVEhSRUFEX0FQSV9FWFRFUk5BTCAqLworIC8qICN1 bmRlZiBfTElCQ1BQX0hBU19USFJFQURfQVBJX1dJTjMyICovCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uMzMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtbm8tbWFsbGluZm8u cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11 c2wtbm8tbWFsbGluZm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMDAuLjIyNWZkMGQzNWE2OGIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJv bjMzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoCkBA IC0wLDAgKzEsMTA2IEBACittdXNsIGRvZXMgbm90IGltcGxlbWVudCBtYWxsaW5mbygpL21hbGxp bmZvMigpCisob3IgcmF0aGVyLCBtYWxsb2MtbmcsIG11c2wncyBhbGxvY2F0b3IsIGRvZXNuJ3Qp CisKK2ZvciBzb21lIHJlYXNvbiBvbmx5IG91dHNpZGUgb2YgeDg2XzY0IEhBVkVfTUFMTElORk8g Z2V0cyB3ZWlyZGx5IHNldCBieSBzb21ldGhpbmcKKy0tCistLS0gYS9iYXNlL2FsbG9jYXRvci9w YXJ0aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2Mvc2hpbS9hbGxvY2F0b3Jfc2hp bV9kZWZhdWx0X2Rpc3BhdGNoX3RvX3BhcnRpdGlvbl9hbGxvYy5jYworKysrIGIvYmFzZS9hbGxv Y2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3NoaW0vYWxsb2Nh dG9yX3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90b19wYXJ0aXRpb25fYWxsb2MuY2MKK0BAIC02NDYs NyArNjQ1LDcgQEAgU0hJTV9BTFdBWVNfRVhQT1JUIGludCBtYWxsb3B0KGludCBjbWQsIGludCB2 YWx1ZSkgX19USFJPVyB7CisgCisgI2VuZGlmICAvLyAhUEFfQlVJTERGTEFHKElTX0FQUExFKSAm JiAhUEFfQlVJTERGTEFHKElTX0FORFJPSUQpCisgCistI2lmIFBBX0JVSUxERkxBRyhJU19MSU5V WCkgfHwgUEFfQlVJTERGTEFHKElTX0NIUk9NRU9TKQorKyNpZiAwCisgU0hJTV9BTFdBWVNfRVhQ T1JUIHN0cnVjdCBtYWxsaW5mbyBtYWxsaW5mbyh2b2lkKSBfX1RIUk9XIHsKKyAgIHBhcnRpdGlv bl9hbGxvYzo6U2ltcGxlUGFydGl0aW9uU3RhdHNEdW1wZXIgYWxsb2NhdG9yX2R1bXBlcjsKKyAg IEFsbG9jYXRvcigpLT5EdW1wU3RhdHMoIm1hbGxvYyIsIHRydWUsICZhbGxvY2F0b3JfZHVtcGVy KTsKKy0tLSBhL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKKysrKyBiL2Jh c2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKK0BAIC0xMDYsNyArMTA3LDggQEAg dm9pZCBJbmNyZWFzZUZkTGltaXRUbyh1bnNpZ25lZCBpbnQgbWF4X2Rlc2NyaXB0b3JzKSB7Cisg CisgI2VuZGlmICAvLyAhQlVJTERGTEFHKElTX0ZVQ0hTSUEpCisgCistI2lmIEJVSUxERkxBRyhJ U19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9J RCkKKysjaWYgKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBC VUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IFwKKysgICAgQlVJTERGTEFHKElTX0FORFJPSUQpCisg bmFtZXNwYWNlIHsKKyAKKyBzaXplX3QgR2V0TWFsbG9jVXNhZ2VNYWxsaW5mbygpIHsKK0BAIC0x MzIsNyArMTM0LDggQEAgc2l6ZV90IFByb2Nlc3NNZXRyaWNzOjpHZXRNYWxsb2NVc2FnZSgpIHsK KyAgIG1hbGxvY19zdGF0aXN0aWNzX3Qgc3RhdHMgPSB7MH07CisgICBtYWxsb2Nfem9uZV9zdGF0 aXN0aWNzKG51bGxwdHIsICZzdGF0cyk7CisgICByZXR1cm4gc3RhdHMuc2l6ZV9pbl91c2U7Cist I2VsaWYgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJV SUxERkxBRyhJU19BTkRST0lEKQorKyNlbGlmIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRlZmlu ZWQoX19HTElCQ19fKSkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TKSB8fCBcCisrICAgIEJVSUxE RkxBRyhJU19BTkRST0lEKQorICAgcmV0dXJuIEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKTsKKyAj ZWxpZiBCVUlMREZMQUcoSVNfRlVDSFNJQSkKKyAgIC8vIFRPRE8oZnVjaHNpYSk6IE5vdCBjdXJy ZW50bHkgZXhwb3NlZC4gaHR0cHM6Ly9jcmJ1Zy5jb20vNzM1MDg3LgorZGlmZiAtLWdpdCBhL2Jh c2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MgYi9iYXNlL3RyYWNlX2V2ZW50 L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCitpbmRleCBlMzdmYzY5YzAwLi4zOTRmNWRmZGJiIDEw MDY0NAorLS0tIGEvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworKysr IGIvYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworQEAgLTE4OSw3ICsx ODgsNiBAQCB2b2lkIFJlcG9ydE1hbGxpbmZvU3RhdHMoUHJvY2Vzc01lbW9yeUR1bXAqIHBtZCwK KyAjZGVmaW5lIE1BTExJTkZPMl9GT1VORF9JTl9MSUJDCisgICBzdHJ1Y3QgbWFsbGluZm8yIGlu Zm8gPSBtYWxsaW5mbzIoKTsKKyAjZW5kaWYKKy0jZW5kaWYgIC8vIGRlZmluZWQoX19HTElCQ19f KSAmJiBkZWZpbmVkKF9fR0xJQkNfUFJFUkVRKQorICNpZiAhZGVmaW5lZChNQUxMSU5GTzJfRk9V TkRfSU5fTElCQykKKyAgIHN0cnVjdCBtYWxsaW5mbyBpbmZvID0gbWFsbGluZm8oKTsKKyAjZW5k aWYKK0BAIC0yMTEsNiArMjA5LDcgQEAgdm9pZCBSZXBvcnRNYWxsaW5mb1N0YXRzKFByb2Nlc3NN ZW1vcnlEdW1wKiBwbWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5QWxs b2NhdG9yRHVtcDo6a1VuaXRzQnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dG90YWxfYWxsb2NhdGVkX3NpemUpOworICAgfQorKyNlbmRpZiAgLy8gZGVmaW5lZChfX0dMSUJD X18pICYmIGRlZmluZWQoX19HTElCQ19QUkVSRVEpCisgfQorICNlbmRpZgorIAorQEAgLTM2OCw3 ICszNjcsNyBAQCBib29sIE1hbGxvY0R1bXBQcm92aWRlcjo6T25NZW1vcnlEdW1wKGNvbnN0IE1l bW9yeUR1bXBBcmdzJiBhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICZhbGxvY2F0ZWRfb2Jq ZWN0c19jb3VudCk7CisgI2VsaWYgQlVJTERGTEFHKElTX0ZVQ0hTSUEpCisgLy8gVE9ETyhmdWNo c2lhKTogUG9ydCwgc2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjU5Mi4KKy0jZWxzZQorKyNlbGlm IGRlZmluZWQoX19HTElCQ19fKQorICAgUmVwb3J0TWFsbGluZm9TdGF0cygvKnBtZD0qL251bGxw dHIsICZ0b3RhbF92aXJ0dWFsX3NpemUsICZyZXNpZGVudF9zaXplLAorICAgICAgICAgICAgICAg ICAgICAgICAmYWxsb2NhdGVkX29iamVjdHNfc2l6ZSwgJmFsbG9jYXRlZF9vYmplY3RzX2NvdW50 KTsKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZs b3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2MgYi90aGlyZF9wYXJ0eS90ZmxpdGUvc3Jj L3RlbnNvcmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2MKK2luZGV4IDlhNDQyOGVj NDUuLjA3ZGVmZDVkZWQgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNv cmZsb3cvbGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2MKKysrKyBiL3RoaXJkX3BhcnR5L3Rm bGl0ZS9zcmMvdGVuc29yZmxvdy9saXRlL3Byb2ZpbGluZy9tZW1vcnlfaW5mby5jYworQEAgLTQz LDcgKzQzLDcgQEAgTWVtb3J5VXNhZ2UgR2V0TWVtb3J5VXNhZ2UoKSB7CisgICBpZiAoZ2V0cnVz YWdlKFJVU0FHRV9TRUxGLCAmcmVzKSA9PSAwKSB7CisgICAgIHJlc3VsdC5tZW1fZm9vdHByaW50 X2tiID0gcmVzLnJ1X21heHJzczsKKyAgIH0KKy0jaWYgZGVmaW5lZChfX05PX01BTExJTkZPX18p CisrI2lmIDEKKyAgIHJlc3VsdC50b3RhbF9hbGxvY2F0ZWRfYnl0ZXMgPSAtMTsKKyAgIHJlc3Vs dC5pbl91c2VfYWxsb2NhdGVkX2J5dGVzID0gLTE7CisgI2VsaWYgZGVmaW5lZChfX0dMSUJDX18p ICYmIF9fR0xJQkNfTUlOT1JfXyA+PSAzMworLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIv dGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcv Y29uZmlnLmgKKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0t c3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitAQCAtMTMz LDcgKzEzMyw2IEBACisgLyogI3VuZGVmIEhBVkVfTUFMTENUTCAqLworIAorIC8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSBgbWFsbGluZm8nIGZ1bmN0aW9uLiAqLworLSNkZWZpbmUgSEFW RV9NQUxMSU5GTyAxCisgCisgLyogU29tZSBwcm9qZWN0cyB1c2luZyBTd2lmdFNoYWRlciBieXBh c3MgY21ha2UgKGVnIENocm9taXVtIHZpYSBnbikgKi8KKyAvKiBzbyB3ZSBuZWVkIHRvIGNoZWNr IGdsaWJjIHZlcnNpb24gZm9yIHRoZSBuZXcgQVBJIHRvIGJlIHNhZmUgKi8KKy0tLSBhL3RoaXJk X3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9sbHZtL2xpYi9TdXBwb3J0 L1VuaXgvUHJvY2Vzcy5pbmMKKysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3Bh cnR5L2xsdm0tMTAuMC9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvUHJvY2Vzcy5pbmMKK0BAIC04Mywx MSArODMsMTEgQEAgRXhwZWN0ZWQ8dW5zaWduZWQ+IFByb2Nlc3M6OmdldFBhZ2VTaXplKCkgewor IH0KKyAKKyBzaXplX3QgUHJvY2Vzczo6R2V0TWFsbG9jVXNhZ2UoKSB7CistI2lmIGRlZmluZWQo SEFWRV9NQUxMSU5GTzIpCisrI2lmIDAKKyAgIHN0cnVjdCBtYWxsaW5mbzIgbWk7CisgICBtaSA9 IDo6bWFsbGluZm8yKCk7CisgICByZXR1cm4gbWkudW9yZGJsa3M7CistI2VsaWYgZGVmaW5lZChI QVZFX01BTExJTkZPKQorKyNlbGlmIDAKKyAgIHN0cnVjdCBtYWxsaW5mbyBtaTsKKyAgIG1pID0g OjptYWxsaW5mbygpOworICAgcmV0dXJuIG1pLnVvcmRibGtzOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjMzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wt c2FuZGJveC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4u N2Q4ODZjZWMyZWRiOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmls ZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaApAQCAtMCwwICsxLDEy NiBAQAorU291cmNlOiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL3RyZWUvY29t bXVuaXR5L2Nocm9taXVtL211c2wtc2FuZGJveC5wYXRjaAorbXVzbCB1c2VzIGRpZmZlcmVudCBz eXNjYWxscyBmcm9tIGdsaWJjIGZvciBzb21lIGZ1bmN0aW9ucywgc28gdGhlIHNhbmRib3ggaGFz Cit0byBhY2NvdW50IGZvciB0aGF0CistLQorZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjIC4vc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmlj dGlvbnMuY2MKK2luZGV4IGZmNWExYzAuLmRhNTZiOWIgMTAwNjQ0CistLS0gYS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5j YworKysrIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1l dGVyc19yZXN0cmljdGlvbnMuY2MKK0BAIC0xMzksMjEgKzEzOSwxMSBAQCBuYW1lc3BhY2Ugc2Fu ZGJveCB7CisgLy8gcHJlc2VudCAoYXMgaW4gbmV3ZXIgdmVyc2lvbnMgb2YgcG9zaXhfc3Bhd24p LgorIFJlc3VsdEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVJNRm9yaygpIHsKKyAg IGNvbnN0IEFyZzx1bnNpZ25lZCBsb25nPiBmbGFncygwKTsKKy0KKy0gIC8vIFRPRE8obWRlbXBz a3kpOiBFeHRlbmQgRFNMIHRvIHN1cHBvcnQgKGZsYWdzICYgfm1hc2sxKSA9PSBtYXNrMi4KKy0g IGNvbnN0IHVpbnQ2NF90IGtBbmRyb2lkQ2xvbmVNYXNrID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8 IENMT05FX0ZJTEVTIHwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xP TkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCB8CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENMT05FX1NZU1ZTRU07CistICBjb25zdCB1aW50NjRfdCBrT2Jzb2xldGVBbmRy b2lkQ2xvbmVNYXNrID0ga0FuZHJvaWRDbG9uZU1hc2sgfCBDTE9ORV9ERVRBQ0hFRDsKKy0KKy0g IGNvbnN0IHVpbnQ2NF90IGtHbGliY1B0aHJlYWRGbGFncyA9CistICAgICAgQ0xPTkVfVk0gfCBD TE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCB8Cist ICAgICAgQ0xPTkVfU1lTVlNFTSB8IENMT05FX1NFVFRMUyB8IENMT05FX1BBUkVOVF9TRVRUSUQg fCBDTE9ORV9DSElMRF9DTEVBUlRJRDsKKy0gIGNvbnN0IEJvb2xFeHByIGdsaWJjX3Rlc3QgPSBm bGFncyA9PSBrR2xpYmNQdGhyZWFkRmxhZ3M7CistCistICBjb25zdCBCb29sRXhwciBhbmRyb2lk X3Rlc3QgPQorLSAgICAgIEFueU9mKGZsYWdzID09IGtBbmRyb2lkQ2xvbmVNYXNrLCBmbGFncyA9 PSBrT2Jzb2xldGVBbmRyb2lkQ2xvbmVNYXNrLAorLSAgICAgICAgICAgIGZsYWdzID09IGtHbGli Y1B0aHJlYWRGbGFncyk7CisrICBjb25zdCBpbnQgcmVxdWlyZWQgPSBDTE9ORV9WTSB8IENMT05F X0ZTIHwgQ0xPTkVfRklMRVMgfCBDTE9ORV9TSUdIQU5EIHwKKysgICAgICAgICAgICAgICAgICAg ICAgIENMT05FX1RIUkVBRCB8IENMT05FX1NZU1ZTRU07CisrICBjb25zdCBpbnQgc2FmZSA9IENM T05FX1NFVFRMUyB8IENMT05FX1BBUkVOVF9TRVRUSUQgfCBDTE9ORV9DSElMRF9DTEVBUlRJRCB8 CisrICAgICAgICAgICAgICAgICAgIENMT05FX0RFVEFDSEVEOworKyAgY29uc3QgQm9vbEV4cHIg dGhyZWFkX2Nsb25lX29rID0gKGZsYWdzJn5zYWZlKT09cmVxdWlyZWQ7CisgCisgICAvLyBUaGUg Zm9sbG93aW5nIHR3byBmbGFncyBhcmUgdGhlIHR3byBpbXBvcnRhbnQgZmxhZ3MgaW4gYW55IHZm b3JrLWVtdWxhdGluZworICAgLy8gY2xvbmUgY2FsbC4gRVBFUk0gYW55IGNsb25lIGNhbGwgdGhh dCBjb250YWlucyBib3RoIG9mIHRoZW0uCitAQCAtMTYzLDcgKzE1Myw3IEBAIFJlc3VsdEV4cHIg UmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVJNRm9yaygpIHsKKyAgICAgICBBbnlPZigoZmxh Z3MgJiAoQ0xPTkVfVk0gfCBDTE9ORV9USFJFQUQpKSA9PSAwLAorICAgICAgICAgICAgIChmbGFn cyAmIGtJbXBvcnRhbnRDbG9uZVZmb3JrRmxhZ3MpID09IGtJbXBvcnRhbnRDbG9uZVZmb3JrRmxh Z3MpOworIAorLSAgcmV0dXJuIElmKElzQW5kcm9pZCgpID8gYW5kcm9pZF90ZXN0IDogZ2xpYmNf dGVzdCwgQWxsb3coKSkKKysgIHJldHVybiBJZih0aHJlYWRfY2xvbmVfb2ssIEFsbG93KCkpCisg ICAgICAgLkVsc2VJZihpc19mb3JrX29yX2Nsb25lX3Zmb3JrLCBFcnJvcihFUEVSTSkpCisgICAg ICAgLkVsc2UoQ3Jhc2hTSUdTWVNDbG9uZSgpKTsKKyB9CitkaWZmIC0tZ2l0IGEvc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYyAuL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKK2luZGV4IGQ5ZDE4ODIuLjA1Njc1 NTcgMTAwNjQ0CistLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2Fs bF9zZXRzLmNjCisrKysgLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2Fs bF9zZXRzLmNjCitAQCAtMzkyLDYgKzM5Miw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dl ZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7CisgI2lmIGRlZmluZWQoX19pMzg2X18p CisgICAgIGNhc2UgX19OUl93YWl0cGlkOgorICNlbmRpZgorKyAgICBjYXNlIF9fTlJfc2V0X3Rp ZF9hZGRyZXNzOgorICAgICAgIHJldHVybiB0cnVlOworICAgICBjYXNlIF9fTlJfY2xvbmU6ICAv LyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQuCisgICAgIGNhc2UgX19OUl9zZXRuczog IC8vIFByaXZpbGVnZWQuCitAQCAtNDA0LDcgKzQwNSw2IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7CisgI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKyAgICAg Y2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToKKyAjZW5kaWYKKy0gICAgY2FzZSBfX05SX3NldF90 aWRfYWRkcmVzczoKKyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6CisgI2lmICFkZWZpbmVkKF9fbWlw c19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKyAgICAgY2FzZSBfX05SX3Zmb3JrOgorQEAg LTU1MCw2ICs1NTAsOCBAQAorICAgICBjYXNlIF9fTlJfbXVubG9jazoKKyAgICAgY2FzZSBfX05S X211bm1hcDoKKyAgICAgY2FzZSBfX05SX21zZWFsOgorKyAgICBjYXNlIF9fTlJfbXJlbWFwOgor KyAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2Fz ZSBfX05SX21hZHZpc2U6CisgICAgIGNhc2UgX19OUl9taW5jb3JlOgorQEAgLTUzMSw3ICs1MzMs NiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBY2Nlc3MoaW50IHN5 c25vKSB7CisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNlbmRpZgorICAgICBjYXNlIF9f TlJfbXByb3RlY3Q6CistICAgIGNhc2UgX19OUl9tcmVtYXA6CisgICAgIGNhc2UgX19OUl9tc3lu YzoKKyAgICAgY2FzZSBfX05SX211bmxvY2thbGw6CisgICAgIGNhc2UgX19OUl9yZWFkYWhlYWQ6 CitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxs cy5oIC4vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCitpbmRl eCAyYjc4YTBjLi5iNmZlZGI1IDEwMDY0NAorLS0tIGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9saW51eF9zeXNjYWxscy5oCisrKysgYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L2xpbnV4X3N5c2NhbGxzLmgKK0BAIC0xMCw2ICsxMCw3IEBACisgI2RlZmluZSBTQU5EQk9YX0xJ TlVYX1NZU1RFTV9IRUFERVJTX0xJTlVYX1NZU0NBTExTX0hfCisgCisgI2luY2x1ZGUgImJ1aWxk L2J1aWxkX2NvbmZpZy5oIgorKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorIAorICNpZiBkZWZp bmVkKF9feDg2XzY0X18pCisgI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv eDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgiCistLS0gYS9zYW5kYm94L3BvbGljeS9saW51eC9icGZf cmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCisrKysgYi9zYW5kYm94L3BvbGljeS9saW51eC9icGZf cmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCitAQCAtOTQsNiArOTQsMTAgQEAKKyAgICAgY2FzZSBf X05SX3B3cml0ZTY0OgorKyAgICBjYXNlIF9fTlJfcHdyaXRldjI6CisgICAgIGNhc2UgX19OUl9z Y2hlZF9nZXRfcHJpb3JpdHlfbWF4OgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5 X21pbjoKKysgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorKyAgICBjYXNlIF9fTlJfc2No ZWRfZ2V0c2NoZWR1bGVyOgorKyAgICBjYXNlIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyOgorICAg ICBjYXNlIF9fTlJfc3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3RpbWVzOgorICAgICBjYXNlIF9f TlJfdW5hbWU6CistLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxp bmVfcG9saWN5LmNjCisrKysgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFz ZWxpbmVfcG9saWN5LmNjCitAQCAtMjI1LDEwICsyMjUsMTUgQEAKKyAgIGlmIChzeXNubyA9PSBf X05SX2dldHByaW9yaXR5IHx8IHN5c25vID09X19OUl9zZXRwcmlvcml0eSkKKyAgICAgcmV0dXJu IFJlc3RyaWN0R2V0U2V0cHJpb3JpdHkoY3VycmVudF9waWQpOworIAorKyAgLy8gWFhYOiBoYWNr cyBmb3IgbXVzbCBzYW5kYm94LCBjYWxscyBuZWVkZWQ/CisrICBpZiAoc3lzbm8gPT0gX19OUl9z Y2hlZF9nZXRwYXJhbSB8fCBzeXNubyA9PSBfX05SX3NjaGVkX2dldHNjaGVkdWxlciB8fAorKyAg ICAgIHN5c25vID09IF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyKSB7CisrICAgIHJldHVybiBBbGxv dygpOworKyAgfQorKworICAgLy8gVGhlIHNjaGVkdWxpbmcgc3lzY2FsbHMgYXJlIHVzZWQgaW4g dGhyZWFkaW5nIGxpYnJhcmllcyBhbmQgYWxzbyBoZWF2aWx5IGluCisgICAvLyBhYnNlaWwuIFNl ZSBmb3IgZXhhbXBsZSBodHRwczovL2NyYnVnLmNvbS8xMzcwMzk0LgorLSAgaWYgKHN5c25vID09 IF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHkgfHwgc3lzbm8gPT0gX19OUl9zY2hlZF9nZXRwYXJhbSB8 fAorLSAgICAgIHN5c25vID09IF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyIHx8IHN5c25vID09IF9f TlJfc2NoZWRfc2V0c2NoZWR1bGVyKSB7CisrICBpZiAoc3lzbm8gPT0gX19OUl9zY2hlZF9nZXRh ZmZpbml0eSkgeworICAgICByZXR1cm4gUmVzdHJpY3RTY2hlZFRhcmdldChjdXJyZW50X3BpZCwg c3lzbm8pOworICAgfQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL211 c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXRpZC1jYWNoaW5nLnBhdGNoIGIvc3JjcGtncy9lbGVj dHJvbjMzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXRpZC1jYWNoaW5nLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi41MmJiZTc3NWFkMmE5 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9tdXNsLXBhdGNo ZXMvY2hyb21pdW0tbXVzbC10aWQtY2FjaGluZy5wYXRjaApAQCAtMCwwICsxLDg2IEBACitTb3Vy Y2U6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvcGxhaW4vY29tbXVuaXR5L2No cm9taXVtL211c2wtdGlkLWNhY2hpbmcucGF0Y2gKK3RoZSBzYW5kYm94IGNhY2hpbmcgb2YgdGhy ZWFkIGlkJ3Mgb25seSB3b3JrcyB3aXRoIGdsaWJjCitzZWU6IGh0dHBzOi8vZ2l0bGFiLmFscGlu ZWxpbnV4Lm9yZy9hbHBpbmUvYXBvcnRzLy0vbWVyZ2VfcmVxdWVzdHMvMzIzNTYKK3NlZTogaHR0 cHM6Ly9naXRsYWIuYWxwaW5lbGludXgub3JnL2FscGluZS9hcG9ydHMvLS9pc3N1ZXMvMTM1NzkK Ky0tCistLS0gYS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL25hbWVzcGFjZV9zYW5kYm94LmNjCisr KysgYi9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL25hbWVzcGFjZV9zYW5kYm94LmNjCitAQCAtMjA5 LDYgKzIwOSw3MCBAQAorICAgcmV0dXJuIGJhc2U6OkxhdW5jaFByb2Nlc3MoYXJndiwgbGF1bmNo X29wdGlvbnNfY29weSk7CisgfQorIAorKyNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pCisrI2RlZmluZSBUTFNfQUJPVkVf VFAKKysjZW5kaWYKKysKKytzdHJ1Y3QgbXVzbF9wdGhyZWFkCisreworKyAgLyogUGFydCAxIC0t IHRoZXNlIGZpZWxkcyBtYXkgYmUgZXh0ZXJuYWwgb3IKKysgICogaW50ZXJuYWwgKGFjY2Vzc2Vk IHZpYSBhc20pIEFCSS4gRG8gbm90IGNoYW5nZS4gKi8KKysgIHN0cnVjdCBwdGhyZWFkICpzZWxm OworKyNpZm5kZWYgVExTX0FCT1ZFX1RQCisrICB1aW50cHRyX3QgKmR0djsKKysjZW5kaWYKKysg IHN0cnVjdCBwdGhyZWFkICpwcmV2LCAqbmV4dDsgLyogbm9uLUFCSSAqLworKyAgdWludHB0cl90 IHN5c2luZm87CisrI2lmbmRlZiBUTFNfQUJPVkVfVFAKKysjaWZkZWYgQ0FOQVJZX1BBRAorKyAg dWludHB0cl90IGNhbmFyeV9wYWQ7CisrI2VuZGlmCisrICB1aW50cHRyX3QgY2FuYXJ5OworKyNl bmRpZgorKworKy8qIFBhcnQgMiAtLSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLCBub24tQUJJLiAq LworKyAgaW50IHRpZDsKKysgIGludCBlcnJub192YWw7CisrICB2b2xhdGlsZSBpbnQgZGV0YWNo X3N0YXRlOworKyAgdm9sYXRpbGUgaW50IGNhbmNlbDsKKysgIHZvbGF0aWxlIHVuc2lnbmVkIGNo YXIgY2FuY2VsZGlzYWJsZSwgY2FuY2VsYXN5bmM7CisrICB1bnNpZ25lZCBjaGFyIHRzZF91c2Vk OjE7CisrICB1bnNpZ25lZCBjaGFyIGRsZXJyb3JfZmxhZzoxOworKyAgdW5zaWduZWQgY2hhciAq bWFwX2Jhc2U7CisrICBzaXplX3QgbWFwX3NpemU7CisrICB2b2lkICpzdGFjazsKKysgIHNpemVf dCBzdGFja19zaXplOworKyAgc2l6ZV90IGd1YXJkX3NpemU7CisrICB2b2lkICpyZXN1bHQ7Cisr ICBzdHJ1Y3QgX19wdGNiICpjYW5jZWxidWY7CisrICB2b2lkICoqdHNkOworKyAgc3RydWN0IHsK KysgICAgdm9sYXRpbGUgdm9pZCAqdm9sYXRpbGUgaGVhZDsKKysgICAgbG9uZyBvZmY7CisrICAg IHZvbGF0aWxlIHZvaWQgKnZvbGF0aWxlIHBlbmRpbmc7CisrICB9IHJvYnVzdF9saXN0OworKyAg aW50IGhfZXJybm9fdmFsOworKyAgdm9sYXRpbGUgaW50IHRpbWVyX2lkOworKyAgbG9jYWxlX3Qg bG9jYWxlOworKyAgdm9sYXRpbGUgaW50IGtpbGxsb2NrWzFdOworKyAgY2hhciAqZGxlcnJvcl9i dWY7CisrICB2b2lkICpzdGRpb19sb2NrczsKKysKKysgIC8qIFBhcnQgMyAtLSB0aGUgcG9zaXRp b25zIG9mIHRoZXNlIGZpZWxkcyByZWxhdGl2ZSB0bworKyAgKiB0aGUgZW5kIG9mIHRoZSBzdHJ1 Y3R1cmUgaXMgZXh0ZXJuYWwgYW5kIGludGVybmFsIEFCSS4gKi8KKysjaWZkZWYgVExTX0FCT1ZF X1RQCisrICB1aW50cHRyX3QgY2FuYXJ5OworKyAgdWludHB0cl90ICpkdHY7CisrI2VuZGlmCisr fTsKKysKKyt2b2lkIE1heWJlVXBkYXRlTXVzbFRpZENhY2hlKCkKKyt7CisrICBwaWRfdCByZWFs X3RpZCA9IHN5c19nZXR0aWQoKTsKKysgIHBpZF90KiBjYWNoZWRfdGlkX2xvY2F0aW9uID0gJnJl aW50ZXJwcmV0X2Nhc3Q8c3RydWN0IG11c2xfcHRocmVhZCo+KHB0aHJlYWRfc2VsZigpKS0+dGlk OworKyAgKmNhY2hlZF90aWRfbG9jYXRpb24gPSByZWFsX3RpZDsKKyt9CisrCisgLy8gc3RhdGlj CisgcGlkX3QgTmFtZXNwYWNlU2FuZGJveDo6Rm9ya0luTmV3UGlkTmFtZXNwYWNlKGJvb2wgZHJv cF9jYXBhYmlsaXRpZXNfaW5fY2hpbGQpIHsKKyAgIGNvbnN0IHBpZF90IHBpZCA9CitAQCAtMjI2 LDYgKzI5MCw3IEBACisgI2lmIGRlZmluZWQoTElCQ19HTElCQykKKyAgICAgTWF5YmVVcGRhdGVH bGliY1RpZENhY2hlKCk7CisgI2VuZGlmCisrICAgIE1heWJlVXBkYXRlTXVzbFRpZENhY2hlKCk7 CisgICAgIHJldHVybiAwOworICAgfQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMz L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1uby1yZXMtbmluaXQtbmNsb3NlLnBhdGNoIGIv c3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1uby1yZXMtbmlu aXQtbmNsb3NlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw Li42ODg0MDM5ZWZiODg0YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9m aWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbm8tcmVzLW5pbml0LW5jbG9zZS5wYXRjaApAQCAt MCwwICsxLDMzIEBACitTb3VyY2U6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMv cGxhaW4vY29tbXVuaXR5L2Nocm9taXVtL25vLXJlcy1uaW5pdC1uY2xvc2UucGF0Y2gKK3NpbWls YXIgdG8gZG5zLXJlc29sdmVyLnBhdGNoLCBtdXNsIGRvZXNuJ3QgaGF2ZSByZXNfbmluaXQgYW5k IHNvIG9uCistLQorLS0tIGEvbmV0L2Rucy9wdWJsaWMvc2NvcGVkX3Jlc19zdGF0ZS5jYworKysr IGIvbmV0L2Rucy9wdWJsaWMvc2NvcGVkX3Jlc19zdGF0ZS5jYworQEAgLTEzLDcgKzEzLDcgQEAK KyBuYW1lc3BhY2UgbmV0IHsKKyAKKyBTY29wZWRSZXNTdGF0ZTo6U2NvcGVkUmVzU3RhdGUoKSB7 CistI2lmIEJVSUxERkxBRyhJU19PUEVOQlNEKSB8fCBCVUlMREZMQUcoSVNfRlVDSFNJQSkKKysj aWYgQlVJTERGTEFHKElTX09QRU5CU0QpIHx8IEJVSUxERkxBRyhJU19GVUNIU0lBKSB8fCBkZWZp bmVkKF9HTlVfU09VUkNFKQorICAgLy8gTm90ZTogcmVzX25pbml0IGluIGdsaWJjIGFsd2F5cyBy ZXR1cm5zIDAgYW5kIHNldHMgUkVTX0lOSVQuCisgICAvLyByZXNfaW5pdCBiZWhhdmVzIHRoZSBz YW1lIHdheS4KKyAgIG1lbXNldCgmX3JlcywgMCwgc2l6ZW9mKF9yZXMpKTsKK0BAIC0yNSwxNiAr MjUsOCBAQAorIH0KKyAKKyBTY29wZWRSZXNTdGF0ZTo6flNjb3BlZFJlc1N0YXRlKCkgeworLSNp ZiAhQlVJTERGTEFHKElTX09QRU5CU0QpICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkKKy0KKy0g IC8vIFByZWZlciByZXNfbmRlc3Ryb3kgd2hlcmUgYXZhaWxhYmxlLgorLSNpZiBCVUlMREZMQUco SVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNEKQorLSAgcmVzX25kZXN0cm95KCZyZXNf KTsKKy0jZWxzZQorLSAgcmVzX25jbG9zZSgmcmVzXyk7CistI2VuZGlmICAvLyBCVUlMREZMQUco SVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNEKQorLQorLSNlbmRpZiAgLy8gIUJVSUxE RkxBRyhJU19PUEVOQlNEKSAmJiAhQlVJTERGTEFHKElTX0ZVQ0hTSUEpCisrICAvLyBtdXNsIHJl c19pbml0KCkgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZworKyAgLy8gbm8gZGVzdHJ1Y3Rp b24gaXMgbmVjZXNzYXJ5IGFzIG5vIG1lbW9yeSBoYXMgYmVlbiBhbGxvY2F0ZWQKKyB9CisgCisg Ym9vbCBTY29wZWRSZXNTdGF0ZTo6SXNWYWxpZCgpIGNvbnN0IHsKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb24zMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbm8tc2FuZGJveC1zZXR0 bHMucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVt LW5vLXNhbmRib3gtc2V0dGxzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAwLi4wMmIzYjRjNDljODE3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb24zMy9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbm8tc2FuZGJveC1zZXR0bHMucGF0 Y2gKQEAgLTAsMCArMSwxNCBAQAordGhpcyBvcHRpbWlzYXRpb24gb2YgQ0xPTkVfU0VUVExTIGlz IG5vdCB2YWxpZCB1c2VkIGxpa2UgdGhpcywgYW5kIGZ1dHVyZSBtdXNsCitjbG9uZSgzKSB3aWxs IEVJTlZBTCBvbiB0aGlzIHVzZQorLS0KKy0tLSBhL3NhbmRib3gvbGludXgvc2VydmljZXMvY3Jl ZGVudGlhbHMuY2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MK K0BAIC04OSw3ICs4OSw3IEBACisgCisgICBpbnQgY2xvbmVfZmxhZ3MgPSBDTE9ORV9GUyB8IExJ TlVYX1NJR0NITEQ7CisgICB2b2lkKiB0bHMgPSBudWxscHRyOworLSNpZiAoZGVmaW5lZChBUkNI X0NQVV9YODZfNjQpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkpICYmIFwKKysjaWYg MCAmJiAoZGVmaW5lZChBUkNIX0NQVV9YODZfNjQpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZB TUlMWSkpICYmIFwKKyAgICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikKKyAgIC8vIFVzZSBD TE9ORV9WTSB8IENMT05FX1ZGT1JLIGFzIGFuIG9wdGltaXphdGlvbiB0byBhdm9pZCBjb3B5aW5n IHBhZ2UgdGFibGVzLgorICAgLy8gU2luY2UgY2xvbmUgd3JpdGVzIHRvIHRoZSBuZXcgY2hpbGQn cyBUTFMgYmVmb3JlIHJldHVybmluZywgd2UgbXVzdCBzZXQgYQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYW5nbGUtd2F5bGFuZC1pbmNsdWRl LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYW5nbGUt d2F5bGFuZC1pbmNsdWRlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMDAwLi42NTc3MGI5NDM5YzU5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWFuZ2xlLXdheWxhbmQtaW5jbHVkZS5wYXRjaApA QCAtMCwwICsxLDM5IEBACitQYXRjaC1Tb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcmNobGlu dXgvc3ZudG9naXQtcGFja2FnZXMvYmxvYi9hMzUzODMzYTVhNzMxYWJmYWE0NjViNjU4ZjYxODk0 YTUxNmFhNDliL3RydW5rL2FuZ2xlLXdheWxhbmQtaW5jbHVkZS1wcm90b2NvbC5wYXRjaAorZGlm ZiAtdXByIHRoaXJkX3BhcnR5L2FuZ2xlLm9yaWcvQlVJTEQuZ24gdGhpcmRfcGFydHkvYW5nbGUv QlVJTEQuZ24KKy0tLSBhL3RoaXJkX3BhcnR5L2FuZ2xlLm9yaWcvQlVJTEQuZ24JMjAyMi0wOC0x NyAxOTozODoxMS4wMDAwMDAwMDAgKzAwMDAKKysrKyBiL3RoaXJkX3BhcnR5L2FuZ2xlL0JVSUxE LmduCTIwMjItMDgtMTggMTE6MDQ6MDkuMDYxNzUxMTExICswMDAwCitAQCAtNDg5LDYgKzQ4OSwx MiBAQCBjb25maWcoImFuZ2xlX3Z1bGthbl93YXlsYW5kX2NvbmZpZyIpIHsKKyAgIGlmIChhbmds ZV9lbmFibGVfdnVsa2FuICYmIGFuZ2xlX3VzZV93YXlsYW5kICYmCisgICAgICAgZGVmaW5lZCh2 dWxrYW5fd2F5bGFuZF9pbmNsdWRlX2RpcnMpKSB7CisgICAgIGluY2x1ZGVfZGlycyA9IHZ1bGth bl93YXlsYW5kX2luY2x1ZGVfZGlycworKyAgfSBlbHNlIGlmIChhbmdsZV9lbmFibGVfdnVsa2Fu ICYmIGFuZ2xlX3VzZV93YXlsYW5kKSB7CisrICAgIGluY2x1ZGVfZGlycyA9IFsKKysgICAgICAi JHdheWxhbmRfZ25fZGlyL3NyYy9zcmMiLAorKyAgICAgICIkd2F5bGFuZF9nbl9kaXIvaW5jbHVk ZS9zcmMiLAorKyAgICAgICIkd2F5bGFuZF9nbl9kaXIvaW5jbHVkZS9wcm90b2NvbCIsCisrICAg IF0KKyAgIH0KKyB9CisgCitAQCAtMTA3Myw2ICsxMDc5LDcgQEAgaWYgKGFuZ2xlX3VzZV93YXls YW5kKSB7CisgICAgIGluY2x1ZGVfZGlycyA9IFsKKyAgICAgICAiJHdheWxhbmRfZGlyL2VnbCIs CisgICAgICAgIiR3YXlsYW5kX2Rpci9zcmMiLAorKyAgICAgICIkd2F5bGFuZF9nbl9kaXIvaW5j bHVkZS9wcm90b2NvbCIsCisgICAgIF0KKyAgIH0KKyAKK2RpZmYgLXVwciB0aGlyZF9wYXJ0eS9h bmdsZS5vcmlnL3NyYy90aGlyZF9wYXJ0eS92b2xrL0JVSUxELmduIHRoaXJkX3BhcnR5L2FuZ2xl L3NyYy90aGlyZF9wYXJ0eS92b2xrL0JVSUxELmduCistLS0gYS90aGlyZF9wYXJ0eS9hbmdsZS5v cmlnL3NyYy90aGlyZF9wYXJ0eS92b2xrL0JVSUxELmduCTIwMjItMDgtMTcgMTk6Mzg6MTIuMDAw MDAwMDAwICswMDAwCisrKysgYi90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvdGhpcmRfcGFydHkvdm9s ay9CVUlMRC5nbgkyMDIyLTA4LTE4IDExOjA0OjM2LjQ5OTgyODAwNiArMDAwMAorQEAgLTIxLDYg KzIxLDkgQEAgc291cmNlX3NldCgidm9sayIpIHsKKyAgIGNvbmZpZ3MgKz0gWyAiJGFuZ2xlX3Jv b3Q6YW5nbGVfbm9fY2ZpX2ljYWxsIiBdCisgICBwdWJsaWNfZGVwcyA9IFsgIiRhbmdsZV92dWxr YW5faGVhZGVyc19kaXI6dnVsa2FuX2hlYWRlcnMiIF0KKyAgIGlmIChhbmdsZV91c2Vfd2F5bGFu ZCkgeworLSAgICBpbmNsdWRlX2RpcnMgPSBbICIkd2F5bGFuZF9kaXIvc3JjIiBdCisrICAgIGlu Y2x1ZGVfZGlycyA9IFsKKysgICAgICAiJHdheWxhbmRfZGlyL3NyYyIsCisrICAgICAgIiR3YXls YW5kX2duX2Rpci9pbmNsdWRlL3Byb3RvY29sIiwKKysgICAgXQorICAgfQorIH0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWJyb3dzZXItc2l6 ZV90LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYnJv d3Nlci1zaXplX3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MDAuLjM2YWYwZWM2YzRhN2ZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjMz L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYnJvd3Nlci1zaXplX3QucGF0Y2gKQEAgLTAsMCArMSwx MCBAQAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91bmQvbnRwX2JhY2tncm91 bmRzLmgJMjAyMC0wOC0xMCAyMDozOToyMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL2Nocm9tZS9i cm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oCTIwMjAtMDktMDQgMTM6 NDg6MjIuNjQwMDIzMjU2ICswMjAwCitAQCAtNiw2ICs2LDcgQEAKKyAjZGVmaW5lIENIUk9NRV9C Uk9XU0VSX1NFQVJDSF9CQUNLR1JPVU5EX05UUF9CQUNLR1JPVU5EU19IXworIAorICNpbmNsdWRl IDxhcnJheT4KKysjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAKKyBjbGFzcyBHVVJMOworIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYnVpbGQtc3Vw cG9ydC1tdXNsLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tYnVpbGQtc3VwcG9ydC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAwLi4xZTViMGI4YWZhZTAyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWJ1aWxkLXN1cHBvcnQtbXVzbC5wYXRj aApAQCAtMCwwICsxLDc4IEBACistLS0gYS9idWlsZC90b29sY2hhaW4vdG9vbGNoYWluLmduaQor KysrIGIvYnVpbGQvdG9vbGNoYWluL3Rvb2xjaGFpbi5nbmkKK0BAIC01MSw2ICs1MSwxMCBAQAor ICAgfQorIH0KKyAKKytkZWNsYXJlX2FyZ3MoKSB7CisrICBpc19tdXNsID0gZmFsc2UKKyt9Cisr CisgIyBFeHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJ5IGZpbGVzIChpbmNsdWRpbmcgbGVhZGlu ZyBkb3QpLgorIGlmIChpc19hcHBsZSkgeworICAgc2hsaWJfZXh0ZW5zaW9uID0gIi5keWxpYiIK Ky0tLSBhL2J1aWxkL2NvbmZpZy9ydXN0LmduaQorKysrIGIvYnVpbGQvY29uZmlnL3J1c3QuZ25p CitAQCAtMTg1LDExICsxODUsMjMgQEAKKyBydXN0X2FiaV90YXJnZXQgPSAiIgorIGlmIChpc19s aW51eCB8fCBpc19jaHJvbWVvcykgeworICAgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsK Ky0gICAgcnVzdF9hYmlfdGFyZ2V0ID0gImFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUiCisrICAg IGlmIChpc19tdXNsKSB7CisrICAgICAgcnVzdF9hYmlfdGFyZ2V0ID0gImFhcmNoNjQtdW5rbm93 bi1saW51eC1tdXNsIgorKyAgICB9IGVsc2UgeworKyAgICAgIHJ1c3RfYWJpX3RhcmdldCA9ICJh YXJjaDY0LXVua25vd24tbGludXgtZ251IgorKyAgICB9CisgICB9IGVsc2UgaWYgKGN1cnJlbnRf Y3B1ID09ICJ4ODYiKSB7CistICAgIHJ1c3RfYWJpX3RhcmdldCA9ICJpNjg2LXVua25vd24tbGlu dXgtZ251IgorKyAgICBpZiAoaXNfbXVzbCkgeworKyAgICAgIHJ1c3RfYWJpX3RhcmdldCA9ICJp Njg2LXVua25vd24tbGludXgtbXVzbCIKKysgICAgfSBlbHNlIHsKKysgICAgICBydXN0X2FiaV90 YXJnZXQgPSAiaTY4Ni11bmtub3duLWxpbnV4LWdudSIKKysgICAgfQorICAgfSBlbHNlIGlmIChj dXJyZW50X2NwdSA9PSAieDY0IikgeworLSAgICBydXN0X2FiaV90YXJnZXQgPSAieDg2XzY0LXVu a25vd24tbGludXgtZ251IgorKyAgICBpZiAoaXNfbXVzbCkgeworKyAgICAgIHJ1c3RfYWJpX3Rh cmdldCA9ICJ4ODZfNjQtdW5rbm93bi1saW51eC1tdXNsIgorKyAgICB9IGVsc2UgeworKyAgICAg IHJ1c3RfYWJpX3RhcmdldCA9ICJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUiCisrICAgIH0KKyAg IH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybSIpIHsKKyAgICAgaWYgKGFybV9mbG9hdF9h YmkgPT0gImhhcmQiKSB7CisgICAgICAgZmxvYXRfc3VmZml4ID0gImhmIgorQEAgLTE5OCwxNSAr MjEwLDMxIEBACisgICAgIH0KKyAgICAgaWYgKGFybV9hcmNoID09ICJhcm12Ny1hIiB8fCBhcm1f YXJjaCA9PSAiYXJtdjciKSB7CisgICAgICAgIyBObyB3YXkgdG8gaW5mb3JtIFJ1c3QgYWJvdXQg dGhlIC1hIHN1ZmZpeC4KKy0gICAgICBydXN0X2FiaV90YXJnZXQgPSAiYXJtdjctdW5rbm93bi1s aW51eC1nbnVlYWJpIiArIGZsb2F0X3N1ZmZpeAorKyAgICAgIGlmIChpc19tdXNsKSB7CisrICAg ICAgICBydXN0X2FiaV90YXJnZXQgPSAiYXJtdjctdW5rbm93bi1saW51eC1tdXNsZWFiaSIgKyBm bG9hdF9zdWZmaXgKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgcnVzdF9hYmlfdGFyZ2V0ID0g ImFybXY3LXVua25vd24tbGludXgtZ251ZWFiaSIgKyBmbG9hdF9zdWZmaXgKKysgICAgICB9Cisg ICAgIH0gZWxzZSB7CistICAgICAgcnVzdF9hYmlfdGFyZ2V0ID0gImFybS11bmtub3duLWxpbnV4 LWdudWVhYmkiICsgZmxvYXRfc3VmZml4CisrICAgICAgaWYgKGlzX211c2wpIHsKKysgICAgICAg IHJ1c3RfYWJpX3RhcmdldCA9ICJhcm0tdW5rbm93bi1saW51eC1tdXNsZWFiaSIgKyBmbG9hdF9z dWZmaXgKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgcnVzdF9hYmlfdGFyZ2V0ID0gImFybS11 bmtub3duLWxpbnV4LWdudWVhYmkiICsgZmxvYXRfc3VmZml4CisrICAgICAgfQorICAgICB9Cisg ICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJyaXNjdjY0IikgeworLSAgICBydXN0X2FiaV90 YXJnZXQgPSAicmlzY3Y2NGdjLXVua25vd24tbGludXgtZ251IgorKyAgICBpZiAoaXNfbXVzbCkg eworKyAgICAgIHJ1c3RfYWJpX3RhcmdldCA9ICJyaXNjdjY0Z2MtdW5rbm93bi1saW51eC1tdXNs IgorKyAgICB9IGVsc2UgeworKyAgICAgIHJ1c3RfYWJpX3RhcmdldCA9ICJyaXNjdjY0Z2MtdW5r bm93bi1saW51eC1nbnUiCisrICAgIH0KKyAgIH0gZWxzZSB7CisgICAgICMgQmVzdCBndWVzcyBm b3Igb3RoZXIgZnV0dXJlIHBsYXRmb3Jtcy4KKy0gICAgcnVzdF9hYmlfdGFyZ2V0ID0gY3VycmVu dF9jcHUgKyAiLXVua25vd24tbGludXgtZ251IgorKyAgICBpZiAoaXNfbXVzbCkgeworKyAgICAg IHJ1c3RfYWJpX3RhcmdldCA9IGN1cnJlbnRfY3B1ICsgIi11bmtub3duLWxpbnV4LW11c2wiCisr ICAgIH0gZWxzZSB7CisrICAgICAgcnVzdF9hYmlfdGFyZ2V0ID0gY3VycmVudF9jcHUgKyAiLXVu a25vd24tbGludXgtZ251IgorKyAgICB9CisgICB9CisgfSBlbHNlIGlmIChpc19hbmRyb2lkKSB7 CisgICBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL2FuZHJvaWQvYWJpLmduaSIpCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS0xMTUt Y29tcGlsZXItU2tDb2xvcjRmLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tY2hyb21pdW0tMTE1LWNvbXBpbGVyLVNrQ29sb3I0Zi5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uZmZhMGU3ZWQxMDhjOTQKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1j aHJvbWl1bS0xMTUtY29tcGlsZXItU2tDb2xvcjRmLnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKK1Bh dGNoLVNvdXJjZTogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9jaHJvbWl1bS9i bG9iLzFmOGZkODQ2ZDJjYzcyYzkwYzczYzk4Njc2MTlmMGRhNDNiOWM4MTYvZi9jaHJvbWl1bS0x MTUtY29tcGlsZXItU2tDb2xvcjRmLnBhdGNoCitkaWZmIC11cCBjaHJvbWl1bS0xMTUuMC41Nzkw LjQwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMvY2FudmFzL2NhbnZhczJkL2Nh bnZhc19zdHlsZS5jYy5tZSBjaHJvbWl1bS0xMTUuMC41NzkwLjQwL3RoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL21vZHVsZXMvY2FudmFzL2NhbnZhczJkL2NhbnZhc19zdHlsZS5jYworLS0tIGNo cm9taXVtLTExNS4wLjU3OTAuNDAvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9j YW52YXMvY2FudmFzMmQvY2FudmFzX3N0eWxlLmNjLm1lCTIwMjMtMDYtMjQgMTA6Mzg6MTEuMDEx NTExNDYzICswMjAwCisrKysgY2hyb21pdW0tMTE1LjAuNTc5MC40MC90aGlyZF9wYXJ0eS9ibGlu ay9yZW5kZXJlci9tb2R1bGVzL2NhbnZhcy9jYW52YXMyZC9jYW52YXNfc3R5bGUuY2MJMjAyMy0w Ni0yNCAxMzowNzozNS44NjUzNzU4ODQgKzAyMDAKK0BAIC04NCw2ICs4NCw3IEBAIENhbnZhc1N0 eWxlOjpDYW52YXNTdHlsZShjb25zdCBDYW52YXNTdHkKKyAKKyB2b2lkIENhbnZhc1N0eWxlOjpB cHBseVRvRmxhZ3MoY2M6OlBhaW50RmxhZ3MmIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmbG9hdCBnbG9iYWxfYWxwaGEpIGNvbnN0IHsKKysgIFNrQ29sb3I0ZiBjdXN0 b21fY29sb3IgPSBTa0NvbG9yNGZ7MC4wZiwgMC4wZiwgMC4wZiwgZ2xvYmFsX2FscGhhfTsKKyAg IHN3aXRjaCAodHlwZV8pIHsKKyAgICAgY2FzZSBrQ29sb3I6CisgICAgICAgQXBwbHlDb2xvclRv RmxhZ3MoZmxhZ3MsIGdsb2JhbF9hbHBoYSk7CitAQCAtOTEsMTIgKzkyLDEyIEBAIHZvaWQgQ2Fu dmFzU3R5bGU6OkFwcGx5VG9GbGFncyhjYzo6UGFpbnQKKyAgICAgY2FzZSBrR3JhZGllbnQ6Cisg ICAgICAgR2V0Q2FudmFzR3JhZGllbnQoKS0+R2V0R3JhZGllbnQoKS0+QXBwbHlUb0ZsYWdzKGZs YWdzLCBTa01hdHJpeDo6SSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJbWFnZURyYXdPcHRpb25zKCkpOworLSAgICAgIGZsYWdzLnNl dENvbG9yKFNrQ29sb3I0ZigwLjBmLCAwLjBmLCAwLjBmLCBnbG9iYWxfYWxwaGEpKTsKKysgICAg ICBmbGFncy5zZXRDb2xvcihjdXN0b21fY29sb3IpOworICAgICAgIGJyZWFrOworICAgICBjYXNl IGtJbWFnZVBhdHRlcm46CisgICAgICAgR2V0Q2FudmFzUGF0dGVybigpLT5HZXRQYXR0ZXJuKCkt PkFwcGx5VG9GbGFncygKKyAgICAgICAgICAgZmxhZ3MsIEFmZmluZVRyYW5zZm9ybVRvU2tNYXRy aXgoR2V0Q2FudmFzUGF0dGVybigpLT5HZXRUcmFuc2Zvcm0oKSkpOworLSAgICAgIGZsYWdzLnNl dENvbG9yKFNrQ29sb3I0ZigwLjBmLCAwLjBmLCAwLjBmLCBnbG9iYWxfYWxwaGEpKTsKKysgICAg ICBmbGFncy5zZXRDb2xvcihjdXN0b21fY29sb3IpOworICAgICAgIGJyZWFrOworICAgICBkZWZh dWx0OgorICAgICAgIE5PVFJFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24z My9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtLTExNy1zdHJpbmctY29udmVydC5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtLTEx Ny1zdHJpbmctY29udmVydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMC4uY2I0OGU0YjIxYTYxN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS0xMTctc3RyaW5nLWNvbnZlcnQu cGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9u ZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MubWUgY2hyb21pdW0tMTE3LjAuNTkzOC42Mi9u ZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MKK2RpZmYgLXVwIGNocm9taXVtLTExNy4wLjU5 MzguNjIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmgubWUgY2hyb21pdW0tMTE3LjAuNTkz OC42Mi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuaAorLS0tIGNocm9taXVtLTExNy4wLjU5 MzguNjIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmgubWUJMjAyMy0wOS0xNCAxNToyMToy NC42MzI5NjUwMDQgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL25ldC9kbnMvaG9z dF9yZXNvbHZlcl9jYWNoZS5oCTIwMjMtMDktMTUgMDk6MTU6NDguNTExMzAwODQ1ICswMjAwCitA QCAtMTQzLDEyICsxNDMsMTQgQEAgY2xhc3MgTkVUX0VYUE9SVCBIb3N0UmVzb2x2ZXJDYWNoZSBm aW5hbAorICAgICB9CisgCisgICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBLZXkmIGxocywgY29u c3QgS2V5UmVmJiByaHMpIGNvbnN0IHsKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyByaHNfZG9t YWluX25hbWV7cmhzLmRvbWFpbl9uYW1lfTsKKyAgICAgICByZXR1cm4gc3RkOjp0aWUobGhzLmRv bWFpbl9uYW1lLCBsaHMubmV0d29ya19hbm9ueW1pemF0aW9uX2tleSkgPAorLSAgICAgICAgICAg ICBzdGQ6OnRpZShyaHMuZG9tYWluX25hbWUsICpyaHMubmV0d29ya19hbm9ueW1pemF0aW9uX2tl eSk7CisrICAgICAgICAgICAgIHN0ZDo6dGllKHJoc19kb21haW5fbmFtZSwgKnJocy5uZXR3b3Jr X2Fub255bWl6YXRpb25fa2V5KTsKKyAgICAgfQorIAorICAgICBib29sIG9wZXJhdG9yKCkoY29u c3QgS2V5UmVmJiBsaHMsIGNvbnN0IEtleSYgcmhzKSBjb25zdCB7CistICAgICAgcmV0dXJuIHN0 ZDo6dGllKGxocy5kb21haW5fbmFtZSwgKmxocy5uZXR3b3JrX2Fub255bWl6YXRpb25fa2V5KSA8 CisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbGhzX2RvbWFpbl9uYW1le2xocy5kb21haW5fbmFt ZX07CisrICAgICAgcmV0dXJuIHN0ZDo6dGllKGxoc19kb21haW5fbmFtZSwgKmxocy5uZXR3b3Jr X2Fub255bWl6YXRpb25fa2V5KSA8CisgICAgICAgICAgICAgIHN0ZDo6dGllKHJocy5kb21haW5f bmFtZSwgcmhzLm5ldHdvcmtfYW5vbnltaXphdGlvbl9rZXkpOworICAgICB9CisgICB9OwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21p dW0tMTE5LWFzc2VydC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2No cm9taXVtLWNocm9taXVtLTExOS1hc3NlcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMDAuLjZjNTAyZjEzYTU5NTU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW0tMTE5LWFzc2Vy dC5wYXRjaApAQCAtMCwwICsxLDEyIEBACitkaWZmIC11cCBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5 L3Y4L3NyYy9iYXNlL3NtYWxsLXZlY3Rvci5oLnRoYW4gY2hyb21pdW0tMTE5LjAuNjA0NS41OS92 OC9zcmMvYmFzZS9zbWFsbC12ZWN0b3IuaAorLS0tIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdjgv c3JjL2Jhc2Uvc21hbGwtdmVjdG9yLmgudGhhbgkyMDIzLTExLTAxIDE2OjEzOjEyLjY0NTMwMTM0 NSArMDEwMAorKysrIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdjgvc3JjL2Jhc2Uvc21hbGwtdmVj dG9yLmgJMjAyMy0xMS0wMSAxNjoxMzoyOS42NjA2MTAxODIgKzAxMDAKK0BAIC0yMiw3ICsyMiw3 IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3Qga1NpemUsIHR5cGUKKyBjbGFzcyBTbWFs bFZlY3RvciB7CisgICAvLyBDdXJyZW50bHkgb25seSBzdXBwb3J0IHRyaXZpYWxseSBjb3B5YWJs ZSBhbmQgdHJpdmlhbGx5IGRlc3RydWN0aWJsZSBkYXRhCisgICAvLyB0eXBlcywgYXMgaXQgdXNl cyBtZW1jcHkgdG8gY29weSBlbGVtZW50cyBhbmQgbmV2ZXIgY2FsbHMgZGVzdHJ1Y3RvcnMuCist ICBBU1NFUlRfVFJJVklBTExZX0NPUFlBQkxFKFQpOworKyAgLy9BU1NFUlRfVFJJVklBTExZX0NP UFlBQkxFKFQpOworICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGli bGU8VD46OnZhbHVlKTsKKyAKKyAgcHVibGljOgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJv bjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW0tMTE5LWZpeC1hYXJjaDY0LW11c2wu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1 bS0xMTktZml4LWFhcmNoNjQtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwMC4uY2JiMmVjMTRjOTBmYjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS0xMTktZml4LWFhcmNo NjQtbXVzbC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS92OC9zcmMvYmFzZS9jcHUuY2MK KysrKyBiL3Y4L3NyYy9iYXNlL2NwdS5jYworQEAgLTE0LDcgKzE0LDcgQEAKKyAjaWYgVjhfT1Nf TElOVVgKKyAjaW5jbHVkZSA8bGludXgvYXV4dmVjLmg+ICAvLyBBVF9IV0NBUAorICNlbmRpZgor LSNpZiBWOF9HTElCQ19QUkVSRVEoMiwgMTYpIHx8IFY4X09TX0FORFJPSUQKKysjaWYgVjhfT1Nf TElOVVggfHwgVjhfT1NfQU5EUk9JRAorICNpbmNsdWRlIDxzeXMvYXV4di5oPiAgLy8gZ2V0YXV4 dmFsKCkKKyAjZW5kaWYKKyAjaWYgVjhfT1NfUU5YCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS0xMjEtcnVzdC1jbGFuZ19saWIu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1 bS0xMjEtcnVzdC1jbGFuZ19saWIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMDAuLjQwMTRmOWE4Mjc2NDgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW0tMTIxLXJ1c3QtY2xhbmdf bGliLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKKy0tLSBhL2J1aWxkL2NvbmZpZy9jbGFuZy9CVUlM RC5nbgorKysrIGIvYnVpbGQvY29uZmlnL2NsYW5nL0JVSUxELmduCitAQCAtMTI4LDE0ICsxMjgs MTUgQEAKKyAgICAgICB9IGVsc2UgaWYgKGlzX2FwcGxlKSB7CisgICAgICAgICBfZGlyID0gImRh cndpbiIKKyAgICAgICB9IGVsc2UgaWYgKGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zKSB7CisrICAg ICAgICBfZGlyID0gImxpbnV4IgorICAgICAgICAgaWYgKGN1cnJlbnRfY3B1ID09ICJ4NjQiKSB7 CistICAgICAgICAgIF9kaXIgPSAieDg2XzY0LXVua25vd24tbGludXgtZ251IgorKyAgICAgICAg ICBfc3VmZml4ID0gIi14ODZfNjQiCisgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09 ICJ4ODYiKSB7CistICAgICAgICAgIF9kaXIgPSAiaTM4Ni11bmtub3duLWxpbnV4LWdudSIKKysg ICAgICAgICAgX3N1ZmZpeCA9ICItaTM4NiIKKyAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudF9j cHUgPT0gImFybSIpIHsKKy0gICAgICAgICAgX2RpciA9ICJhcm12Ny11bmtub3duLWxpbnV4LWdu dWVhYmloZiIKKysgICAgICAgICAgX3N1ZmZpeCA9ICItYXJtaGYiCisgICAgICAgICB9IGVsc2Ug aWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKKy0gICAgICAgICAgX2RpciA9ICJhYXJjaDY0 LXVua25vd24tbGludXgtZ251IgorKyAgICAgICAgICBfc3VmZml4ID0gIi1hYXJjaDY0IgorICAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgYXNzZXJ0KGZhbHNlKSAgIyBVbmhhbmRsZWQgY3B1 IHR5cGUKKyAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9w YXRjaGVzL2Nocm9taXVtLWNocm9taXVtLTEyMS1ydXN0LXdpdGhvdXQtcHJvZmlsZXJfYnVpbHRp bnMucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJv bWl1bS0xMjEtcnVzdC13aXRob3V0LXByb2ZpbGVyX2J1aWx0aW5zLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi4yNWMzNDIyOTgyOTMzZQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9t aXVtLTEyMS1ydXN0LXdpdGhvdXQtcHJvZmlsZXJfYnVpbHRpbnMucGF0Y2gKQEAgLTAsMCArMSwx MCBAQAorLS0tIGEvYnVpbGQvcnVzdC9zdGQvQlVJTEQuZ24KKysrKyBiL2J1aWxkL3J1c3Qvc3Rk L0JVSUxELmduCitAQCAtMTAwLDcgKzEwMCw2IEBACisgICAjIGRvbid0IG5lZWQgdG8gcGFzcyB0 byB0aGUgQysrIGxpbmtlciBiZWNhdXNlIHRoZXkncmUgdXNlZCBmb3Igc3BlY2lhbGl6ZWQKKyAg ICMgcHVycG9zZXMuCisgICBza2lwX3N0ZGxpYl9maWxlcyA9IFsKKy0gICAgInByb2ZpbGVyX2J1 aWx0aW5zIiwKKyAgICAgInJ1c3RjX3N0ZF93b3Jrc3BhY2VfYWxsb2MiLAorICAgICAicnVzdGNf c3RkX3dvcmtzcGFjZV9jb3JlIiwKKyAgICAgInJ1c3RjX3N0ZF93b3Jrc3BhY2Vfc3RkIiwKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9t aXVtLTEyNC1pd3l1LXN5cy1zZWxlY3QtZGF3bi10ZXJtaW5hbC5wYXRjaCBiL3NyY3BrZ3MvZWxl Y3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNocm9taXVtLTEyNC1pd3l1LXN5cy1zZWxl Y3QtZGF3bi10ZXJtaW5hbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMC4uY2M3Mjk5YWFmZmZjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS0xMjQtaXd5dS1zeXMtc2VsZWN0 LWRhd24tdGVybWluYWwucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorRnJvbSBjZjk5M2Y1NmNlNjk5 Y2EwZWQ2NmNhNWE2Yjg4ZmU3YjMxYzAzYTc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogImxhdXJlbiBuLiBsaWJlcmRhIiA8bGF1cmVuQHNlbGZpc2VrYWkucm9ja3M+CitEYXRlOiBG cmksIDUgQXByIDIwMjQgMDY6MDg6MjEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gaXd5dTogc3lz L3NlbGVjdC5oIGluIHRlcm1pbmFsIHV0aWxzCisKK3JlcXVpcmVkIGZvciBmZF9zZXQuIGZpeGVz IGJ1aWxkaW5nIG9uIG11c2wgbGliYworCitDaGFuZ2UtSWQ6IEk1YzAzZDU4YzgzMzdjMWFmODcx MDI0YTQzNmIwOTExN2FkOTIwNmQ0CistLS0KKyBzcmMvdGludC91dGlscy9zeXN0ZW0vdGVybWlu YWxfcG9zaXguY2MgfCAxICsKKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2Rhd24vc3JjL3RpbnQvdXRpbHMvc3lzdGVtL3Rlcm1pbmFs X3Bvc2l4LmNjIGIvdGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC91dGlscy9zeXN0ZW0vdGVybWlu YWxfcG9zaXguY2MKK2luZGV4IGU4MjA3NzQyNDQuLmE5N2VhYjdkYjggMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9kYXduL3NyYy90aW50L3V0aWxzL3N5c3RlbS90ZXJtaW5hbF9wb3NpeC5jYwor KysrIGIvdGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC91dGlscy9zeXN0ZW0vdGVybWluYWxfcG9z aXguY2MKK0BAIC0yNyw2ICsyNyw3IEBACisgCisgLy8gR0VOX0JVSUxEOkNPTkRJVElPTih0aW50 X2J1aWxkX2lzX2xpbnV4IHx8IHRpbnRfYnVpbGRfaXNfbWFjKQorIAorKyNpbmNsdWRlIDxzeXMv c2VsZWN0Lmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorICNpbmNsdWRlIDx0ZXJtaW9zLmg+ CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1j aHJvbWl1bS0xMjUtZGlzYWJsZS1GRm1wZWdBbGxvd0xpc3RzLnBhdGNoIGIvc3JjcGtncy9lbGVj dHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hyb21pdW0tMTI1LWRpc2FibGUtRkZtcGVn QWxsb3dMaXN0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw MC4uZTAzNjg4Y2RjYmIwZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS0xMjUtZGlzYWJsZS1GRm1wZWdBbGxvd0xp c3RzLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKK2RpZmYgLXVwIGNocm9taXVtLTEyNS4wLjY0MjIu NDEvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5jYy5kaXNhYmxlLUZGbXBlZ0FsbG93TGlzdHMg Y2hyb21pdW0tMTI1LjAuNjQyMi40MS9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjCistLS0g Y2hyb21pdW0tMTI1LjAuNjQyMi40MS9tZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmNjLmRpc2Fi bGUtRkZtcGVnQWxsb3dMaXN0cwkyMDI0LTA1LTEyIDIxOjI4OjQzLjY5NDAyNzM5NiArMDIwMAor KysrIGNocm9taXVtLTEyNS4wLjY0MjIuNDEvbWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5jYwky MDI0LTA1LTEyIDIxOjMyOjQ4LjE1NTA2MzYyMyArMDIwMAorQEAgLTE3NTMsNyArMTc1Myw3IEBA IEJBU0VfRkVBVFVSRShrVXNlV2luZG93Qm91bmRzRm9yUGlwLAorIC8vIEVuYWJsZXMgRkZtcGVn IGFsbG93IGxpc3RzIGZvciBzdXBwb3J0ZWQgY29kZWNzIC8gY29udGFpbmVycy4KKyBCQVNFX0ZF QVRVUkUoa0ZGbXBlZ0FsbG93TGlzdHMsCisgICAgICAgICAgICAgICJGRm1wZWdBbGxvd0xpc3Rz IiwKKy0gICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9FTkFCTEVEX0JZX0RFRkFVTFQpOworKyAg ICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0RJU0FCTEVEX0JZX0RFRkFVTFQpOworIAorICNpZiBC VUlMREZMQUcoSVNfV0lOKQorIC8vIEVuYWJsZXMgYXVkaW8gb2ZmbG9hZCB3aGVuIHN1cHBvcnRl ZCBieSBlbmRwb2ludHMuCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS0xMjYtc3BsaXQtdGhyZXNob2xkLWZvci1yZWctd2l0aC1o aW50LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY2hy b21pdW0tMTI2LXNwbGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uNGFlMWYyOWE4NjdiZDEKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1j aHJvbWl1bS0xMjYtc3BsaXQtdGhyZXNob2xkLWZvci1yZWctd2l0aC1oaW50LnBhdGNoCkBAIC0w LDAgKzEsMjggQEAKK2RpZmYgLXVwIGNocm9taXVtLTEyNi4wLjY0NzguMjYvYnVpbGQvY29uZmln L2NvbXBpbGVyL0JVSUxELmduLm1lIGNocm9taXVtLTEyNi4wLjY0NzguMjYvYnVpbGQvY29uZmln L2NvbXBpbGVyL0JVSUxELmduCistLS0gY2hyb21pdW0tMTI2LjAuNjQ3OC4yNi9idWlsZC9jb25m aWcvY29tcGlsZXIvQlVJTEQuZ24ubWUJMjAyNC0wNi0wMiAxNDowMjo1Mi41MTY2MDI1NzQgKzAy MDAKKysrKyBjaHJvbWl1bS0xMjYuMC42NDc4LjI2L2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlM RC5nbgkyMDI0LTA2LTAyIDE0OjE3OjI0LjUyNzUwMzU0MCArMDIwMAorQEAgLTU3NSwyNCArNTc1 LDYgQEAgY29uZmlnKCJjb21waWxlciIpIHsKKyAgICAgICB9CisgICAgIH0KKyAKKy0gICAgIyBU T0RPKGNyYnVnLmNvbS80MDI4MzU5OCk6IFRoaXMgY2F1c2VzIGJpbmFyeSBzaXplIGdyb3d0aCBh bmQgcG90ZW50aWFsbHkKKy0gICAgIyBvdGhlciBwcm9ibGVtcy4KKy0gICAgIyBUT0RPKGNyYnVn LmNvbS80MDI4NDkyNSk6IFRoaXMgaXNuJ3Qgc3VwcG9ydGVkIGJ5IENyb25ldCdzIG1haW5saW5l IGxsdm0gdmVyc2lvbi4KKy0gICAgaWYgKGRlZmF1bHRfdG9vbGNoYWluICE9ICIvL2J1aWxkL3Rv b2xjaGFpbi9jcm9zOnRhcmdldCIgJiYKKy0gICAgICAgICFsbHZtX2FuZHJvaWRfbWFpbmxpbmUp IHsKKy0gICAgICBjZmxhZ3MgKz0gWworLSAgICAgICAgIi1tbGx2bSIsCistICAgICAgICAiLXNw bGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludD0wIiwKKy0gICAgICBdCistICAgICAgaWYg KHVzZV90aGluX2x0byAmJiBpc19hX3RhcmdldF90b29sY2hhaW4pIHsKKy0gICAgICAgIGlmIChp c193aW4pIHsKKy0gICAgICAgICAgbGRmbGFncyArPSBbICItbWxsdm06LXNwbGl0LXRocmVzaG9s ZC1mb3ItcmVnLXdpdGgtaGludD0wIiBdCistICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICBs ZGZsYWdzICs9IFsgIi1XbCwtbWxsdm0sLXNwbGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGlu dD0wIiBdCistICAgICAgICB9CistICAgICAgfQorLSAgICB9CistCisgICAgICMgVE9ETyhjcmJ1 Zy5jb20vNDAxOTIyODcpOiBJbnZlc3RpZ2F0ZSB3aHkvaWYgdGhpcyBzaG91bGQgYmUgbmVlZGVk LgorICAgICBpZiAoaXNfd2luKSB7CisgICAgICAgY2ZsYWdzICs9IFsgIi9jbGFuZzotZmZwLWNv bnRyYWN0PW9mZiIgXQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS1yZXZlcnQt ZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwMC4uMTE3YTUwZjhlNGY2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Vs ZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1z eXN0ZW0tamF2YS5wYXRjaApAQCAtMCwwICsxLDE1IEBACitUaGlzIHdhcyBkcm9wcGVkIGZvciBz b21lIHJlYXNvbiBpbiA2OTUxYzM3Y2VjZDA1OTc5YjIzMmEzOWU1YzEwZTYzNDZhMGY3NGVmCist LS0gYS90aGlyZF9wYXJ0eS9jbG9zdXJlX2NvbXBpbGVyL2NvbXBpbGVyLnB5CTIwMjEtMDUtMjAg MDQ6MTc6NTMuMDAwMDAwMDAwICswMjAwCisrKysgYi90aGlyZF9wYXJ0eS9jbG9zdXJlX2NvbXBp bGVyL2NvbXBpbGVyLnB5CTIwMjEtMDUtMjAgMDQ6MTc6NTMuMDAwMDAwMDAwICswMjAwCitAQCAt MTMsOCArMTMsOSBAQAorIAorIAorIF9DVVJSRU5UX0RJUiA9IG9zLnBhdGguam9pbihvcy5wYXRo LmRpcm5hbWUoX19maWxlX18pKQorLV9KQVZBX1BBVEggPSBvcy5wYXRoLmpvaW4oX0NVUlJFTlRf RElSLCAiLi4iLCAiamRrIiwgImN1cnJlbnQiLCAiYmluIiwgImphdmEiKQorLWFzc2VydCBvcy5w YXRoLmlzZmlsZShfSkFWQV9QQVRIKSwgImphdmEgb25seSBhbGxvd2VkIGluIGFuZHJvaWQgYnVp bGRzIgorK19KQVZBX0JJTiA9ICJqYXZhIgorK19KREtfUEFUSCA9IG9zLnBhdGguam9pbihfQ1VS UkVOVF9ESVIsICIuLiIsICJqZGsiLCAiY3VycmVudCIsICJiaW4iLCAiamF2YSIpCisrX0pBVkFf UEFUSCA9IF9KREtfUEFUSCBpZiBvcy5wYXRoLmlzZmlsZShfSkRLX1BBVEgpIGVsc2UgX0pBVkFf QklOCisgCisgY2xhc3MgQ29tcGlsZXIob2JqZWN0KToKKyAgICIiIlJ1bnMgdGhlIENsb3N1cmUg Y29tcGlsZXIgb24gZ2l2ZW4gc291cmNlIGZpbGVzIHRvIHR5cGVjaGVjayB0aGVtCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS1z eXN0ZW0tbm9kZWpzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwMC4uNzhjM2U5NjVjMTY0MjcKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jaHJvbWl1bS1zeXN0ZW0t bm9kZWpzLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSBhL3RoaXJkX3BhcnR5L25vZGUvbm9k ZS5weQorKysrIGIvdGhpcmRfcGFydHkvbm9kZS9ub2RlLnB5CitAQCAtMTEsMTcgKzExLDcgQEAK KyAKKyAKKyBkZWYgR2V0QmluYXJ5UGF0aCgpOgorLSAgaWYgcGxhdGZvcm0ubWFjaGluZSgpID09 ICdhcm02NCc6CistICAgIGRhcndpbl9wYXRoID0gJ21hY19hcm02NCcKKy0gICAgZGFyd2luX25h bWUgPSAnbm9kZS1kYXJ3aW4tYXJtNjQnCistICBlbHNlOgorLSAgICBkYXJ3aW5fcGF0aCA9ICdt YWMnCistICAgIGRhcndpbl9uYW1lID0gJ25vZGUtZGFyd2luLXg2NCcKKy0gIHJldHVybiBvc19w YXRoLmpvaW4ob3NfcGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgKnsKKy0gICAgJ0Rhcndpbic6IChk YXJ3aW5fcGF0aCwgZGFyd2luX25hbWUsICdiaW4nLCAnbm9kZScpLAorLSAgICAnTGludXgnOiAo J2xpbnV4JywgJ25vZGUtbGludXgteDY0JywgJ2JpbicsICdub2RlJyksCistICAgICdXaW5kb3dz JzogKCd3aW4nLCAnbm9kZS5leGUnKSwKKy0gIH1bcGxhdGZvcm0uc3lzdGVtKCldKQorKyAgICBy ZXR1cm4gIi91c3IvYmluL25vZGUiCisgCisgCisgZGVmIFJ1bk5vZGUoY21kX3BhcnRzLCBzdGRv dXQ9Tm9uZSk6CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRj aGVzL2Nocm9taXVtLWNyb3NzLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAwLi41OWUxYmZmNjFmM2NlNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWNyb3NzLWJ1aWxkLnBhdGNoCkBA IC0wLDAgKzEsNTQgQEAKKy0tLSBhL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbi5vcmln CisrKysgYi9idWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24KK0BAIC05MTcsOCArOTE3LDEz IEBACisgICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IikgeworICAgICAgIGlm IChpc19jbGFuZyAmJiAhaXNfYW5kcm9pZCAmJiAhaXNfbmFjbCAmJiAhaXNfZnVjaHNpYSAmJgor ICAgICAgICAgICAhKGlzX2Nocm9tZW9zX2xhY3JvcyAmJiBpc19jaHJvbWVvc19kZXZpY2UpKSB7 CistICAgICAgICBjZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUiIF0KKy0g ICAgICAgIGxkZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUiIF0KKysgICAg ICAgIGlmIChpc19tdXNsKSB7CisrICAgICAgICAgIGNmbGFncyArPSBbICItLXRhcmdldD1hYXJj aDY0LWxpbnV4LW11c2wiIF0KKysgICAgICAgICAgbGRmbGFncyArPSBbICItLXRhcmdldD1hYXJj aDY0LWxpbnV4LW11c2wiIF0KKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgIGNmbGFncyAr PSBbICItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSIgXQorKyAgICAgICAgICBsZGZsYWdzICs9 IFsgIi0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IiBdCisrICAgICAgICB9CisgICAgICAgfQor ICAgICAgIGlmIChpc19hbmRyb2lkKSB7CisgICAgICAgICAjIE91dGxpbmUgYXRvbWljcyBjcmFz aCBvbiBFeHlub3MgOTgxMC4gaHR0cDovL2NyYnVnLmNvbS8xMjcyNzk1CistLS0gYS9idWlsZC90 b29sY2hhaW4vbGludXgvdW5idW5kbGUvQlVJTEQuZ24ub3JpZworKysrIGIvYnVpbGQvdG9vbGNo YWluL2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCitAQCAtMzksMyArMzksMjIgQEAKKyAgICAgY3Vy cmVudF9vcyA9IGhvc3Rfb3MKKyAgIH0KKyB9CisrCisrZ2NjX3Rvb2xjaGFpbigidjhfc25hcHNo b3RfY3Jvc3MiKSB7CisrICBjYyA9IGdldGVudigiQlVJTERfQ0MiKQorKyAgY3h4ID0gZ2V0ZW52 KCJCVUlMRF9DWFgiKQorKyAgYXIgPSBnZXRlbnYoIkJVSUxEX0FSIikKKysgIG5tID0gZ2V0ZW52 KCJCVUlMRF9OTSIpCisrICBsZCA9IGN4eAorKworKyAgZXh0cmFfY2ZsYWdzID0gZ2V0ZW52KCJC VUlMRF9DRkxBR1MiKQorKyAgZXh0cmFfY3BwZmxhZ3MgPSBnZXRlbnYoIkJVSUxEX0NQUEZMQUdT IikKKysgIGV4dHJhX2N4eGZsYWdzID0gZ2V0ZW52KCJCVUlMRF9DWFhGTEFHUyIpCisrICBleHRy YV9sZGZsYWdzID0gZ2V0ZW52KCJCVUlMRF9MREZMQUdTIikKKysKKysgIHRvb2xjaGFpbl9hcmdz ID0geworKyAgICBjdXJyZW50X2NwdSA9IGhvc3RfY3B1CisrICAgIGN1cnJlbnRfb3MgPSBob3N0 X29zCisrICAgIHY4X2N1cnJlbnRfY3B1ID0gdGFyZ2V0X2NwdQorKyAgfQorK30KKy0tLSBhL2J1 aWxkL2NvbmZpZy9saW51eC9wa2dfY29uZmlnLmduaS5vcmlnCisrKysgYi9idWlsZC9jb25maWcv bGludXgvcGtnX2NvbmZpZy5nbmkKK0BAIC05MSw3ICs5MSw3IEBACisgICBhc3NlcnQoZGVmaW5l ZChpbnZva2VyLnBhY2thZ2VzKSwKKyAgICAgICAgICAiVmFyaWFibGUgfHBhY2thZ2VzfCBtdXN0 IGJlIGRlZmluZWQgdG8gYmUgYSBsaXN0IGluIHBrZ19jb25maWcuIikKKyAgIGNvbmZpZyh0YXJn ZXRfbmFtZSkgeworLSAgICBpZiAoaG9zdF90b29sY2hhaW4gPT0gY3VycmVudF90b29sY2hhaW4p IHsKKysgICAgaWYgKGN1cnJlbnRfY3B1ICE9IHRhcmdldF9jcHUpIHsKKyAgICAgICBhcmdzID0g Y29tbW9uX3BrZ19jb25maWdfYXJncyArIGhvc3RfcGtnX2NvbmZpZ19hcmdzICsgaW52b2tlci5w YWNrYWdlcworICAgICB9IGVsc2UgeworICAgICAgIGFyZ3MgPSBjb21tb25fcGtnX2NvbmZpZ19h cmdzICsgcGtnX2NvbmZpZ19hcmdzICsgaW52b2tlci5wYWNrYWdlcwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZmMtY2FjaGUtdmVyc2lvbi5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZjLWNhY2hl LXZlcnNpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAu LjNiNzY4OTc4YTQzZDZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjMzL2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tZmMtY2FjaGUtdmVyc2lvbi5wYXRjaApAQCAtMCwwICsxLDEz IEBACitpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgdGhlIHZlcnNpb24sIHVzZSB0aGUgZGVmaW5lZCBt YWNyby4KKy0tCistLS0gYS90aGlyZF9wYXJ0eS90ZXN0X2ZvbnRzL2ZvbnRjb25maWcvZ2VuZXJh dGVfZm9udGNvbmZpZ19jYWNoZXMuY2MKKysrKyBiL3RoaXJkX3BhcnR5L3Rlc3RfZm9udHMvZm9u dGNvbmZpZy9nZW5lcmF0ZV9mb250Y29uZmlnX2NhY2hlcy5jYworQEAgLTU2LDcgKzU2LDcgQEAK KyAgIEZjRmluaSgpOworIAorICAgLy8gQ2hlY2sgZXhpc3RlbmNlIG9mIGludGVuZGVkIGZvbnRj b25maWcgY2FjaGUgZmlsZS4KKy0gIGF1dG8gY2FjaGUgPSBmb250Y29uZmlnX2NhY2hlcyArICIv IiArIGtDYWNoZUtleSArICItbGU2NC5jYWNoZS05IjsKKysgIGF1dG8gY2FjaGUgPSBmb250Y29u ZmlnX2NhY2hlcyArICIvIiArIGtDYWNoZUtleSArICItbGU2NC5jYWNoZS0iICsgRkNfQ0FDSEVf VkVSU0lPTjsKKyAgIGJvb2wgY2FjaGVfZXhpc3RzID0gYWNjZXNzKGNhY2hlLmNfc3RyKCksIEZf T0spID09IDA7CisgICByZXR1cm4gIWNhY2hlX2V4aXN0czsKKyB9CmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtYWFyY2g2NC1tdXNsLW1l bW9yeS10YWdnaW5nLW1hY3Jvcy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRj aGVzL2Nocm9taXVtLWZpeC1hYXJjaDY0LW11c2wtbWVtb3J5LXRhZ2dpbmctbWFjcm9zLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi5iM2RkMmMzM2YwZjIx OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2No cm9taXVtLWZpeC1hYXJjaDY0LW11c2wtbWVtb3J5LXRhZ2dpbmctbWFjcm9zLnBhdGNoCkBAIC0w LDAgKzEsMjkgQEAKKy0tLSBhL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3Jj L3BhcnRpdGlvbl9hbGxvYy90YWdnaW5nLmNjCisrKysgYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRp b25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2MvdGFnZ2luZy5jYworQEAgLTI4LDEzICsy OCwyNSBAQAorICNlbmRpZgorICNlbmRpZgorIAorLSNpZm5kZWYgSEFTX1BSX01URV9NQUNST1MK KysjaWZuZGVmIFBSX01URV9UQ0ZfU0hJRlQKKyAjZGVmaW5lIFBSX01URV9UQ0ZfU0hJRlQgMQor KyNlbmRpZgorKyNpZm5kZWYgUFJfTVRFX1RDRl9OT05FCisgI2RlZmluZSBQUl9NVEVfVENGX05P TkUgKDBVTCA8PCBQUl9NVEVfVENGX1NISUZUKQorKyNlbmRpZgorKyNpZm5kZWYgUFJfTVRFX1RD Rl9TWU5DCisgI2RlZmluZSBQUl9NVEVfVENGX1NZTkMgKDFVTCA8PCBQUl9NVEVfVENGX1NISUZU KQorKyNlbmRpZgorKyNpZm5kZWYgUFJfTVRFX1RDRl9BU1lOQworICNkZWZpbmUgUFJfTVRFX1RD Rl9BU1lOQyAoMlVMIDw8IFBSX01URV9UQ0ZfU0hJRlQpCisrI2VuZGlmCisrI2lmbmRlZiBQUl9N VEVfVENGX01BU0sKKyAjZGVmaW5lIFBSX01URV9UQ0ZfTUFTSyAoM1VMIDw8IFBSX01URV9UQ0Zf U0hJRlQpCisrI2VuZGlmCisrI2lmbmRlZiBQUl9NVEVfVEFHX1NISUZUCisgI2RlZmluZSBQUl9N VEVfVEFHX1NISUZUIDMKKysjZW5kaWYKKysjaWZuZGVmIFBSX01URV9UQUdfTUFTSworICNkZWZp bmUgUFJfTVRFX1RBR19NQVNLICgweGZmZmZVTCA8PCBQUl9NVEVfVEFHX1NISUZUKQorICNlbmRp ZgorICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tZml4LWFyZ3VtZW50X3NwZWMtaXNuYW4taXNpbmYucGF0Y2ggYi9zcmNwa2dzL2Vs ZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtYXJndW1lbnRfc3BlYy1pc25hbi1p c2luZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uODM3 YTAzMTJkY2JjYTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1maXgtYXJndW1lbnRfc3BlYy1pc25hbi1pc2luZi5wYXRjaApAQCAt MCwwICsxLDExIEBACistLS0gYS9leHRlbnNpb25zL3JlbmRlcmVyL2JpbmRpbmdzL2FyZ3VtZW50 X3NwZWMuY2MKKysrKyBiL2V4dGVuc2lvbnMvcmVuZGVyZXIvYmluZGluZ3MvYXJndW1lbnRfc3Bl Yy5jYworQEAgLTIsNiArMiw4IEBACisgLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292 ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIC8vIGZvdW5kIGluIHRo ZSBMSUNFTlNFIGZpbGUuCisgCisrI2luY2x1ZGUgPGNtYXRoPgorKworICNpbmNsdWRlICJleHRl bnNpb25zL3JlbmRlcmVyL2JpbmRpbmdzL2FyZ3VtZW50X3NwZWMuaCIKKyAKKyAjaW5jbHVkZSAi YmFzZS9jaGVjay5oIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tZml4LWNvbnN0ZXhwci1uYXJyb3dpbmcucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uNTcwY2E2ZTY5YTgw NTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaApAQCAtMCwwICsxLDIxIEBACist LS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9tZWRpYS93ZWJfbWVkaWFf cGxheWVyX2ltcGwuY2Mub3JpZworKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxh dGZvcm0vbWVkaWEvd2ViX21lZGlhX3BsYXllcl9pbXBsLmNjCitAQCAtMzg4MSwxNSArMzg4MSwx NSBAQAorICAgICBjb25zdCBUJi4uLiB2YWx1ZXMpIHsKKyAgIHN0ZDo6c3RyaW5nIHN0cmtleSA9 IHN0ZDo6c3RyaW5nKGtleSk7CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga0VuY3J5cHRl ZCkgeworKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtFbmNyeXB0ZWQgIT0gMCkgeworICAgICBp ZiAoaXNfZW5jcnlwdGVkXykKKyAgICAgICBVbWFGdW5jdGlvbihzdHJrZXkgKyAiLkVNRSIsIHZh bHVlcy4uLik7CisgICB9CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1RvdGFsKQorKyAg aWYgY29uc3RleHByIChGbGFncyAmIGtUb3RhbCAhPSAwKQorICAgICBVbWFGdW5jdGlvbihzdHJr ZXkgKyAiLkFsbCIsIHZhbHVlcy4uLik7CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1Bs YXliYWNrVHlwZSkgeworKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtQbGF5YmFja1R5cGUgIT0g MCkgeworICAgICBhdXRvIGRlbXV4ZXJfdHlwZSA9IEdldERlbXV4ZXJUeXBlKCk7CisgICAgIGlm ICghZGVtdXhlcl90eXBlLmhhc192YWx1ZSgpKQorICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1saWJjLXZlcnNp b24taW5jbHVkZS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLWZpeC1saWJjLXZlcnNpb24taW5jbHVkZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwMC4uZDk0ZGNmNmRlYWM1NmUKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtbGliYy12ZXJzaW9u LWluY2x1ZGUucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvbWV0 cmljcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3MuY2MKKysrKyBiL2No cm9tZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0c19tZXRy aWNzLmNjCitAQCAtNjEsOCArNjEsMTEgQEAKKyAKKyAvLyBUT0RPKGNyYnVnLmNvbS8xMDUyMzk3 KTogUmV2aXNpdCB0aGUgbWFjcm8gZXhwcmVzc2lvbiBvbmNlIGJ1aWxkIGZsYWcgc3dpdGNoCisg Ly8gb2YgbGFjcm9zLWNocm9tZSBpcyBjb21wbGV0ZS4KKy0jaWYgZGVmaW5lZChfX0dMSUJDX18p ICYmIChCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPU19MQUNST1Mp KQorKyNpZiBCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPU19MQUNS T1MpCisrCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxnbnUvbGliYy12ZXJz aW9uLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgImJhc2UvbGludXhfdXRpbC5oIgorICNpbmNs dWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3NwbGl0LmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Vs ZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtbWlzc2luZy1URU1QX0ZBSUxVUkVf UkVUUlktbWFjcm8ucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS1maXgtbWlzc2luZy1URU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmI1NjcxN2I5Y2UzMmVkCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4 LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JFVFJZLW1hY3JvLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAK K1RoaXMgbWFjcm8gaXMgZGVmaW5lZCBpbiBnbGliYywgYnV0IG5vdCBtdXNsLgorCistLS0gYS9z YW5kYm94L2xpbnV4L3N1aWQvcHJvY2Vzc191dGlsLmgub3JpZworKysrIGIvc2FuZGJveC9saW51 eC9zdWlkL3Byb2Nlc3NfdXRpbC5oCitAQCAtMTEsNiArMTEsMTYgQEAKKyAjaW5jbHVkZSA8c3Rk aW50Lmg+CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorIAorKy8vIFNvbWUgYWRkaXRpb25hbCBm dW5jdGlvbnMKKysjaWYgIWRlZmluZWQoVEVNUF9GQUlMVVJFX1JFVFJZKQorKyMgZGVmaW5lIFRF TVBfRkFJTFVSRV9SRVRSWShleHByZXNzaW9uKSBcCisrCShfX2V4dGVuc2lvbl9fCQkJXAorKwkg KHsgbG9uZyBpbnQgX19yZXN1bHQ7CQlcCisrCSAgZG8gX19yZXN1bHQgPSAobG9uZyBpbnQpIChl eHByZXNzaW9uKTsgXAorKwkgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYgZXJybm8gPT0gRUlO VFIpOyBcCisrCSAgX19yZXN1bHQ7IH0pKQorKyNlbmRpZgorKworIC8vIFRoaXMgYWRqdXN0cyAv cHJvYy9wcm9jZXNzL29vbV9zY29yZV9hZGogc28gdGhlIExpbnV4IE9PTSBraWxsZXIKKyAvLyB3 aWxsIHByZWZlciBjZXJ0YWluIHByb2Nlc3MgdHlwZXMgb3ZlciBvdGhlcnMuIFRoZSByYW5nZSBm b3IgdGhlCisgLy8gYWRqdXN0bWVudCBpcyBbLTEwMDAsIDEwMDBdLCB3aXRoIFswLCAxMDAwXSBi ZWluZyB1c2VyIGFjY2Vzc2libGUuCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMzMvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtbWlzc2luZy1jc3RkaW50LWluY2x1ZGUtbXVzbC5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1taXNzaW5n LWNzdGRpbnQtaW5jbHVkZS1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAwLi42Y2EyODk3ZjNkZDI5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1taXNzaW5nLWNzdGRpbnQtaW5j bHVkZS1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL25ldC90aGlyZF9wYXJ0eS9x dWljaGUvc3JjL3F1aWNoZS9odHRwMi9hZGFwdGVyL3dpbmRvd19tYW5hZ2VyLmgKKysrKyBiL25l dC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1aWNoZS9odHRwMi9hZGFwdGVyL3dpbmRvd19tYW5h Z2VyLmgKK0BAIC0zLDYgKzMsNyBAQAorIAorICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAKKysjaW5j bHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyAKKyAjaW5jbHVkZSAicXVp Y2hlL2NvbW1vbi9wbGF0Zm9ybS9hcGkvcXVpY2hlX2V4cG9ydC5oIgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LW11c2wtbWlzc2luZy11 bmlzdGRfaC1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tZml4LW11c2wtbWlzc2luZy11bmlzdGRfaC1pbmNsdWRlLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi5lMTRkMDA5YTllMGJhNwotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZp eC1tdXNsLW1pc3NpbmctdW5pc3RkX2gtaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDEwIEBACist LS0gYS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmgKKysrKyBiL3NhbmRib3gv bGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuaAorQEAgLTEzLDYgKzEzLDcgQEAKKyAKKyAjaW5j bHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx2ZWN0b3I+CisrI2luY2x1ZGUgPHVuaXN0ZC5oPgor IAorICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2NhcGFiaWxpdHkuaCIK KyAjaW5jbHVkZSAic2FuZGJveC9zYW5kYm94X2V4cG9ydC5oIgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LXBlcmZldHRvLUdldFRocmVh ZE5hbWUtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLWZpeC1wZXJmZXR0by1HZXRUaHJlYWROYW1lLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjQwMTRkMWVlNWU2OTEzCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LXBlcmZl dHRvLUdldFRocmVhZE5hbWUtbXVzbC5wYXRjaApAQCAtMCwwICsxLDIyIEBACistLS0gYS90aGly ZF9wYXJ0eS9wZXJmZXR0by9pbmNsdWRlL3BlcmZldHRvL2V4dC9iYXNlL3RocmVhZF91dGlscy5o CisrKysgYi90aGlyZF9wYXJ0eS9wZXJmZXR0by9pbmNsdWRlL3BlcmZldHRvL2V4dC9iYXNlL3Ro cmVhZF91dGlscy5oCitAQCAtMzAsNyArMzAsOCBAQAorICNpbmNsdWRlIDxhbGdvcml0aG0+Cisg I2VuZGlmCisgCistI2lmIFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19PU19BTkRST0lEKQor KyNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkgfHwgXAorKyAgICAo UEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJD X18pKQorICNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KKyAjZW5kaWYKKyAKK0BAIC01OCw3ICs1OSw4 IEBACisgCisgaW5saW5lIGJvb2wgR2V0VGhyZWFkTmFtZShzdGQ6OnN0cmluZyYgb3V0X3Jlc3Vs dCkgeworICAgY2hhciBidWZbMTZdID0ge307CistI2lmIFBFUkZFVFRPX0JVSUxERkxBRyhQRVJG RVRUT19PU19BTkRST0lEKQorKyNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5E Uk9JRCkgfHwgXAorKyAgICAoUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0xJTlVYKSAm JiAhZGVmaW5lZChfX0dMSUJDX18pKQorICAgaWYgKHByY3RsKFBSX0dFVF9OQU1FLCBidWYpICE9 IDApCisgICAgIHJldHVybiBmYWxzZTsKKyAjZWxzZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LXN3aWZ0c2hhZGVyLWxsdm0tbXVzbC1j b25maWcucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1m aXgtc3dpZnRzaGFkZXItbGx2bS1tdXNsLWNvbmZpZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDYKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoIGIv c3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbGliY19tYWxsb2MucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjQxNGYyODc2NWQ2 OWM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tbGliY19tYWxsb2MucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAorLS0tIGEvYmFzZS9w cm9jZXNzL21lbW9yeV9saW51eC5jYworKysrIGIvYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5j YworQEAgLTE4LDYgKzE4LDEzIEBACisgI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVhZF9y ZXN0cmljdGlvbnMuaCIKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisgCisrI2lm IGRlZmluZWQoTElCQ19HTElCQykKKytleHRlcm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19saWJj X21hbGxvYyhzaXplX3Qgc2l6ZSk7CisrZXh0ZXJuIHZvaWQgKl9fbGliY19mcmVlKHZvaWQgKnB0 cik7CisrfQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBuYW1lc3BhY2Ugewor QEAgLTExMSw3ICsxMTgsNyBAQAorICNlbGlmIGRlZmluZWQoTUVNT1JZX1RPT0xfUkVQTEFDRVNf QUxMT0NBVE9SKSB8fCAhZGVmaW5lZChMSUJDX0dMSUJDKQorICAgKnJlc3VsdCA9IG1hbGxvYyhz aXplKTsKKyAjZWxpZiBkZWZpbmVkKExJQkNfR0xJQkMpCistICAqcmVzdWx0ID0gX19saWJjX21h bGxvYyhzaXplKTsKKysgICpyZXN1bHQgPSA6Ol9fbGliY19tYWxsb2Moc2l6ZSk7CisgI2VuZGlm CisgICByZXR1cm4gKnJlc3VsdCAhPSBudWxscHRyOworIH0KK0BAIC0xMjIsNyArMTI5LDcgQEAK KyAjZWxpZiBkZWZpbmVkKE1FTU9SWV9UT09MX1JFUExBQ0VTX0FMTE9DQVRPUikgfHwgIWRlZmlu ZWQoTElCQ19HTElCQykKKyAgIGZyZWUocHRyKTsKKyAjZWxpZiBkZWZpbmVkKExJQkNfR0xJQkMp CistICBfX2xpYmNfZnJlZShwdHIpOworKyAgOjpfX2xpYmNfZnJlZShwdHIpOworICNlbmRpZgor IH0KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLW11c2wtbm8tZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwLi4xMjA2NGJhZDBhMzFiZgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW11c2wtbm8tZXhlY2lu Zm8ucGF0Y2gKQEAgLTAsMCArMSw2OCBAQAorbXVzbCBkb2VzIG5vdCBoYXZlIGV4ZWNpbmZvLmgs IGFuZCBoZW5jZSBubyBpbXBsZW1lbnRhdGlvbiBvZgorLiBiYWNrdHJhY2UoKQorLiBiYWNrdHJh Y2Vfc3ltYm9scygpCitmb3IgZGlzY3Vzc2lvbiBhYm91dCB0aGlzLCBzZWUgaHR0cHM6Ly93d3cu b3BlbndhbGwuY29tL2xpc3RzL211c2wvMjAyMS8wNy8xNi8xCistLQorLS0tIGEvdjgvc3JjL2Nv ZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmNjCisrKysgYi92OC9zcmMvY29kZWdlbi9l eHRlcm5hbC1yZWZlcmVuY2UtdGFibGUuY2MKK0BAIC0xMSw3ICsxMSw5IEBACisKKyAjaWYgZGVm aW5lZChERUJVRykgJiYgZGVmaW5lZChWOF9PU19MSU5VWCkgJiYgIWRlZmluZWQoVjhfT1NfQU5E Uk9JRCkKKyAjZGVmaW5lIFNZTUJPTElaRV9GVU5DVElPTgorKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykKKyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKysjZW5kaWYKKworICNpbmNsdWRlIDx2ZWN0b3I+ CisKK0BAIC05Niw3ICs5OCw3IEBACisgfQorCisgY29uc3QgY2hhciogRXh0ZXJuYWxSZWZlcmVu Y2VUYWJsZTo6UmVzb2x2ZVN5bWJvbCh2b2lkKiBhZGRyZXNzKSB7CistI2lmZGVmIFNZTUJPTEla RV9GVU5DVElPTgorKyNpZiBkZWZpbmVkKFNZTUJPTElaRV9GVU5DVElPTikgJiYgZGVmaW5lZChf X0dMSUJDX18pCisgICBjaGFyKiogbmFtZXMgPSBiYWNrdHJhY2Vfc3ltYm9scygmYWRkcmVzcywg MSk7CisgICBjb25zdCBjaGFyKiBuYW1lID0gbmFtZXNbMF07CisgICAvLyBUaGUgYXJyYXkgb2Yg bmFtZXMgaXMgbWFsbG9jJ2VkLiBIb3dldmVyLCBlYWNoIG5hbWUgc3RyaW5nIGlzIHN0YXRpYwor LS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2J1 aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgKKysrKyBiL3RoaXJkX3BhcnR5 L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9idWlsZC9MaW51eC9pbmNsdWRl L2xsdm0vQ29uZmlnL2NvbmZpZy5oCitAQCAtNTgsNyArNTgsNyBAQAorICNkZWZpbmUgSEFWRV9F UlJOT19IIDEKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGV4ZWNpbmZvLmg+ IGhlYWRlciBmaWxlLiAqLworLSNkZWZpbmUgSEFWRV9FWEVDSU5GT19IIDEKKysvKiAjZGVmaW5l IEhBVkVfRVhFQ0lORk9fSCAxICovCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxmY250bC5oPiBoZWFkZXIgZmlsZS4gKi8KKyAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCistLS0g YS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCisrKysgYi9iYXNlL2RlYnVnL3N0YWNrX3RyYWNl LmNjCitAQCAtMzExLDcgKzMxMSw3IEBACisgCisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9T dHJpbmdXaXRoUHJlZml4KGNzdHJpbmdfdmlldyBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBz dGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFk ZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQor ICAgT3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KCZzdHJlYW0sIHByZWZpeF9zdHJpbmcpOworICNl bmRpZgorICAgcmV0dXJuIHN0cmVhbS5zdHIoKTsKK0BAIC0zMzUsNyArMzM1LDcgQEAKKyB9Cisg Cisgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFN0YWNr VHJhY2UmIHMpIHsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK KysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBzLk91dHB1dFRv U3RyZWFtKCZvcyk7CisgI2Vsc2UKKyAgIG9zIDw8ICJTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVh bSBub3QgaW1wbGVtZW50ZWQuIjsKKy0tLSBhL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfdW5pdHRl c3QuY2MKKysrKyBiL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfdW5pdHRlc3QuY2MKK0BAIC0zMyw3 ICszMyw3IEBACisgdHlwZWRlZiB0ZXN0aW5nOjpUZXN0IFN0YWNrVHJhY2VUZXN0OworICNlbmRp ZgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiAh ZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKSAmJiBkZWZpbmVkKF9fR0xJQkNf XykKKyAvLyBTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbSgpIGlzIG5vdCBpbXBsZW1lbnRlZCB1 bmRlciB1Y2xpYmMsIG5vciBBSVguCisgLy8gU2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjcyOAor IApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t bXVzbC1wYXJ0aXRpb24tYXRmb3JrLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tbXVzbC1wYXJ0aXRpb24tYXRmb3JrLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi41OThlZmUyNDc2MjYzYwotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW11c2wtcGFy dGl0aW9uLWF0Zm9yay5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9iYXNlL2FsbG9jYXRv ci9wYXJ0aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2MvcGFydGl0aW9uX3Jvb3Qu Y2MKKysrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlv bl9hbGxvYy9wYXJ0aXRpb25fcm9vdC5jYworQEAgLTIzOSw3ICsyMzksNyBAQAorICAgaWYgKCFn X2dsb2JhbF9pbml0X2NhbGxlZC5jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyhleHBlY3RlZCwgdHJ1 ZSkpCisgICAgIHJldHVybjsKKyAKKy0jaWYgUEFfQlVJTERGTEFHKElTX0xJTlVYKSB8fCBQQV9C VUlMREZMQUcoSVNfQ0hST01FT1MpCisrI2lmIChQQV9CVUlMREZMQUcoSVNfTElOVVgpICYmIGRl ZmluZWQoX19HTElCQ19fKSkgfHwgUEFfQlVJTERGTEFHKElTX0NIUk9NRU9TKQorICAgLy8gV2hl biBmb3JrKCkgaXMgY2FsbGVkLCBvbmx5IHRoZSBjdXJyZW50IHRocmVhZCBjb250aW51ZXMgdG8g ZXhlY3V0ZSBpbiB0aGUKKyAgIC8vIGNoaWxkIHByb2Nlc3MuIElmIHRoZSBsb2NrIGlzIGhlbGQs IGJ1dCAqbm90KiBieSB0aGlzIHRocmVhZCB3aGVuIGZvcmsoKSBpcworICAgLy8gY2FsbGVkLCB3 ZSBoYXZlIGEgZGVhZGxvY2suCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0 LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbXVzbC12 OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uNTZhNGFkMWM4MDdlNTUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXY4LW1v bm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK1Vz ZSBtb25vdG9uaWMgY2xvY2sgZm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQgd2l0aCBtdXNsIHRv by4KKworZGlmZiAtLWdpdCBhL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRpdGlvbi12YXJpYWJs ZS5jYyBiL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRpdGlvbi12YXJpYWJsZS5jYworaW5kZXgg NWVhNzA4My4uYzEzMDI3ZSAxMDA2NDQKKy0tLSBhL3Y4L3NyYy9iYXNlL3BsYXRmb3JtL2NvbmRp dGlvbi12YXJpYWJsZS5jYworKysrIGIvdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZh cmlhYmxlLmNjCitAQCAtMTYsNyArMTYsNyBAQCBuYW1lc3BhY2UgYmFzZSB7CisgCisgQ29uZGl0 aW9uVmFyaWFibGU6OkNvbmRpdGlvblZhcmlhYmxlKCkgeworICNpZiAoVjhfT1NfRlJFRUJTRCB8 fCBWOF9PU19ORVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8fCBcCistICAgICAoVjhfT1NfTElOVVgg JiYgVjhfTElCQ19HTElCQykpCisrICAgICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZyZWUvTmV0 L09wZW5CU0QgYW5kIExpbnV4IHdpdGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGltZQorICAg Ly8gc291cmNlIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBtb25vdG9u aWMgY2xvY2suCisgICBwdGhyZWFkX2NvbmRhdHRyX3QgYXR0cjsKK0BAIC05Miw3ICs5Miw3IEBA IGJvb2wgQ29uZGl0aW9uVmFyaWFibGU6OldhaXRGb3IoTXV0ZXgqIG11dGV4LCBjb25zdCBUaW1l RGVsdGEmIHJlbF90aW1lKSB7CisgICAgICAgJm5hdGl2ZV9oYW5kbGVfLCAmbXV0ZXgtPm5hdGl2 ZV9oYW5kbGUoKSwgJnRzKTsKKyAjZWxzZQorICNpZiAoVjhfT1NfRlJFRUJTRCB8fCBWOF9PU19O RVRCU0QgfHwgVjhfT1NfT1BFTkJTRCB8fCBcCistICAgICAoVjhfT1NfTElOVVggJiYgVjhfTElC Q19HTElCQykpCisrICAgICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZyZWUvTmV0L09wZW5CU0Qg YW5kIExpbnV4IHdpdGggZ2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGltZQorICAgLy8gc291cmNl IGZvciBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBtb25vdG9uaWMgY2xvY2su CisgICByZXN1bHQgPSBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnRzKTsKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW5vLWdldGNv bnRleHQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1u by1nZXRjb250ZXh0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MDAwLi5mOWJjMmUwMmQyNDU2MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24z My9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW5vLWdldGNvbnRleHQucGF0Y2gKQEAgLTAsMCArMSwy NyBAQAorLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCTIwMTUtMTItMDYgMDk6NTk6NTUuNTU0NTM2 NjQ2ICswMTAwCisrKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MJMjAxNS0xMi0wNiAxMDowMToxNi44 MTgyMzgwMzUgKzAxMDAKK0BAIC00NzcsNyArNDc3LDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVy OjpTaW11bGF0ZVNpZ25hbERlbAorICAgc2lnaW5mby5zaV9jb2RlID0gU0lfVVNFUjsKKyAgIHNp Z2luZm8uc2lfcGlkID0gZ2V0cGlkKCk7CisgICB1Y29udGV4dF90IGNvbnRleHQ7CisrI2lmIGRl ZmluZWQoX19HTElCQ19fKQorICAgZ2V0Y29udGV4dCgmY29udGV4dCk7CisrI2VuZGlmCisgICBy ZXR1cm4gSGFuZGxlU2lnbmFsKHNpZywgJnNpZ2luZm8sICZjb250ZXh0KTsKKyB9CisgCitAQCAt NjQ3LDkgKzY0OSwxNCBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7 CisgICBzeXNfcHJjdGwoUFJfU0VUX0RVTVBBQkxFLCAxLCAwLCAwLCAwKTsKKyAKKyAgIENyYXNo Q29udGV4dCBjb250ZXh0OworKworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGludCBnZXRj b250ZXh0X3Jlc3VsdCA9IGdldGNvbnRleHQoJmNvbnRleHQuY29udGV4dCk7CisgICBpZiAoZ2V0 Y29udGV4dF9yZXN1bHQpCisgICAgIHJldHVybiBmYWxzZTsKKysjZWxzZQorKyAgcmV0dXJuIGZh bHNlOworKyNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgLy8gSW4gQ1BVRmls bEZyb21VQ29udGV4dCBpbiBtaW5pZHVtcHdyaXRlci5jYyB0aGUgc3RhY2sgcG9pbnRlciBpcyBy ZXRyaWV2ZWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2No cm9taXVtLXJlZW5hYmxlLWxpbnV4LWk2ODYtYnVpbGRzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJv bjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tcmVlbmFibGUtbGludXgtaTY4Ni1idWlsZHMucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmIxODcxOGU0MzY0 OTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tcmVlbmFibGUtbGludXgtaTY4Ni1idWlsZHMucGF0Y2gKQEAgLTAsMCArMSwxOSBA QAorLS0tIGEvQlVJTEQuZ24ub3JpZworKysrIGIvQlVJTEQuZ24KK0BAIC0xNjE2LDE2ICsxNjE2 LDYgQEAKKyAgIH0KKyB9CisgCistIyBUT0RPKGNhc3Nldyk6IEFkZCBtb3JlIE9TJ3MgdGhhdCBk b24ndCBzdXBwb3J0IHg4Ni4KKy1pc192YWxpZF94ODZfdGFyZ2V0ID0KKy0gICAgdGFyZ2V0X29z ICE9ICJpb3MiICYmIHRhcmdldF9vcyAhPSAibWFjIiAmJgorLSAgICAodGFyZ2V0X29zICE9ICJs aW51eCIgfHwgdXNlX2xpYmZ1enplciB8fCAhYnVpbGRfd2l0aF9jaHJvbWl1bSkKKy0KKy0jIE5v dGU6IHY4X3RhcmdldF9jcHUgPT0gYXJtIGFsbG93cyB1c2luZyB0aGUgVjggYXJtIHNpbXVsYXRv ciBvbiB4ODYgZm9yIGZ1enppbmcuCistYXNzZXJ0KAorLSAgICBpc192YWxpZF94ODZfdGFyZ2V0 IHx8IHRhcmdldF9jcHUgIT0gIng4NiIgfHwgdjhfdGFyZ2V0X2NwdSA9PSAiYXJtIiwKKy0gICAg Iid0YXJnZXRfY3B1PXg4NicgaXMgbm90IHN1cHBvcnRlZCBmb3IgJ3RhcmdldF9vcz0kdGFyZ2V0 X29zJy4gQ29uc2lkZXIgb21pdHRpbmcgJ3RhcmdldF9jcHUnIChkZWZhdWx0KSBvciB1c2luZyAn dGFyZ2V0X2NwdT14NjQnIGluc3RlYWQuIikKKy0KKyBncm91cCgiY2hyb21pdW1fYnVpbGRlcl9w ZXJmIikgeworICAgdGVzdG9ubHkgPSB0cnVlCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1yZW1vdmUtc3lzLWNkZWZzLWluY2x1ZGVzLnBh dGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tcmVtb3ZlLXN5 cy1jZGVmcy1pbmNsdWRlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMC4uMDAzNDQwNzNmNDYxM2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uMzMvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1yZW1vdmUtc3lzLWNkZWZzLWluY2x1ZGVzLnBh dGNoCkBAIC0wLDAgKzEsMzkgQEAKKy0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKKysrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKK0BAIC0xNyw4ICsxNyw2IEBACisgCisg I2luY2x1ZGVfbmV4dCA8c3lzL3B0cmFjZS5oPgorIAorLSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4K Ky0KKyAvLyBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0y MjQzMworICNpZiAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKSAmJiAhZGVmaW5lZChQ VF9HRVRfVEhSRUFEX0FSRUEpICYmIFwKKyAgICAgZGVmaW5lZChfX0dMSUJDX18pCistLS0gYS90 aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCisrKysgYi90aGlyZF9w YXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5oCitAQCAtMTksMTIgKzE5LDEzIEBA CisgI2lmbmRlZiBfX1NZU19DT1JFX1NZTkNfSAorICNkZWZpbmUgX19TWVNfQ09SRV9TWU5DX0gK KyAKKy0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisgI2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNp bmNsdWRlIDxsaW51eC90eXBlcy5oPgorIAorLV9fQkVHSU5fREVDTFMKKysjaWZkZWYgX19jcGx1 c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYKKyAKKyBzdHJ1Y3Qgc3luY19sZWdhY3lfbWVy Z2VfZGF0YSB7CisgIGludDMyX3QgZmQyOworQEAgLTE1OCw2ICsxNTksOCBAQAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3luY19wdF9pbmZvICppdHIpOworIHZv aWQgc3luY19mZW5jZV9pbmZvX2ZyZWUoc3RydWN0IHN5bmNfZmVuY2VfaW5mb19kYXRhICppbmZv KTsKKyAKKy1fX0VORF9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWYKKyAK KyAjZW5kaWYgLyogX19TWVNfQ09SRV9TWU5DX0ggKi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxl Y3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaCBi L3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNhbmRib3gtbWVtYmFy cmllci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uNTVl ZjI1MTYxOTRhMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKQEAgLTAsMCArMSwxMCBA QAorLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YworKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YworQEAgLTM3MCw2ICszNzAsNyBAQAorICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9f TlJfZXhpdDoKKyAgICAgY2FzZSBfX05SX2V4aXRfZ3JvdXA6CisrICAgIGNhc2UgX19OUl9tZW1i YXJyaWVyOgorICAgICBjYXNlIF9fTlJfd2FpdDQ6CisgICAgIGNhc2UgX19OUl93YWl0aWQ6Cisg I2lmIGRlZmluZWQoX19pMzg2X18pCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMzMvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS1zbmRpby5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxl cy9wYXRjaGVzL2Nocm9taXVtLXNuZGlvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAwLi5jYzRlODU4ZDJhYmRjMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNuZGlvLnBhdGNoCkBAIC0wLDAg KzEsODc1IEBACitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL0JV SUxELmduIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9CVUlMRC5nbgorLS0tIGNocm9taXVt LTEyOS4wLjY2NjguNTgvbWVkaWEvQlVJTEQuZ24JMjAyNC0wOS0xOCAwMDowMDoxMi4zMTkyMzAw MDAgKzAyMDAKKysrKyAtCTIwMjQtMDktMTkgMTk6NDQ6MDYuNDg2NDM4MTg1ICswMjAwCitAQCAt NjYsNiArNjYsNyBAQAorICAgICAiVVNFX0NIUk9NRU9TX1BST1RFQ1RFRF9NRURJQT0kdXNlX2No cm9tZW9zX3Byb3RlY3RlZF9tZWRpYSIsCisgICAgICJVU0VfQ1JBUz0kdXNlX2NyYXMiLAorICAg ICAiVVNFX1BST1BSSUVUQVJZX0NPREVDUz0kcHJvcHJpZXRhcnlfY29kZWNzIiwKKysgICAgIlVT RV9TTkRJTz0kdXNlX3NuZGlvIiwKKyAgIF0KKyAKKyAgIGlmIChlbmFibGVfbGlicmFyeV9jZG1z KSB7CitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL0JV SUxELmduIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9CVUlMRC5nbgorLS0tIGEv bWVkaWEvYXVkaW8vQlVJTEQuZ24JMjAyMC0wNi0wMyAyMDozOTozNy4wMDAwMDAwMDAgKzAyMDAK KysrKyBiL21lZGlhL2F1ZGlvL0JVSUxELmduCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5 ICswMjAwCitAQCAtMjM2LDYgKzIzNiwxNyBAQAorICAgICBzb3VyY2VzICs9IFsgImxpbnV4L2F1 ZGlvX21hbmFnZXJfbGludXguY2MiIF0KKyAgIH0KKyAKKysgIGlmICh1c2Vfc25kaW8pIHsKKysg ICAgbGlicyArPSBbICJzbmRpbyIgXQorKyAgICBzb3VyY2VzICs9IFsKKysgICAgICAic25kaW8v YXVkaW9fbWFuYWdlcl9zbmRpby5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmNjIiwK KysgICAgICAic25kaW8vc25kaW9faW5wdXQuaCIsCisrICAgICAgInNuZGlvL3NuZGlvX291dHB1 dC5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5oIgorKyAgICBdCisrICB9CisrCisg ICBpZiAodXNlX2Fsc2EpIHsKKyAgICAgbGlicyArPSBbICJhc291bmQiIF0KKyAgICAgc291cmNl cyArPSBbCitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlv L2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MgY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlh L2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKKy0tLSBhL21lZGlhL2F1ZGlvL2xp bnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MJMjAyMC0wNi0wMyAyMDozOTozNy4wMDAwMDAwMDAg KzAyMDAKKysrKyBiL21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MJMjAy MC0wNi0xMyAxODowOTo0My42MjMzMzMxNjcgKzAyMDAKK0BAIC0xOSw2ICsxOSwxMSBAQAorICNp bmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9hdWRpb19tYW5hZ2VyX3B1bHNlLmgiCisgI2luY2x1 ZGUgIm1lZGlhL2F1ZGlvL3B1bHNlL3B1bHNlX3V0aWwuaCIKKyAjZW5kaWYKKysjaWYgZGVmaW5l ZChVU0VfU05ESU8pCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJf c25kaW8uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysj aW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrI2VuZGlmCisgCisg bmFtZXNwYWNlIG1lZGlhIHsKKyAKKyBzdGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdl cj4gQ3JlYXRlQXVkaW9NYW5hZ2VyKAorQEAgLTM5LDYgKzQ1LDE2IEBACisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KTsKKyAg IH0KKyAKKysjaWYgZGVmaW5lZChVU0VfU05ESU8pCisrICBzdHJ1Y3Qgc2lvX2hkbCAqaGRsID0g c2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1BMQVksIDApOworKyAgaWYgKGhkbCAhPSBOVUxMKSB7 CisrICAgIHNpb19jbG9zZShoZGwpOworKyAgICBVTUFfSElTVE9HUkFNX0VOVU1FUkFUSU9OKCJN ZWRpYS5MaW51eEF1ZGlvSU8iLCBrU25kaW8sIGtBdWRpb0lPTWF4ICsgMSk7CisrICAgIHJldHVy biBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvTWFuYWdlclNuZGlvPihzdGQ6Om1vdmUoYXVkaW9fdGhy ZWFkKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGF1ZGlvX2xvZ19mYWN0b3J5KTsKKysgIH0KKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChVU0Vf Q1JBUykKKyAgIGlmIChiYXNlOjpDb21tYW5kTGluZTo6Rm9yQ3VycmVudFByb2Nlc3MoKS0+SGFz U3dpdGNoKHN3aXRjaGVzOjprVXNlQ3JhcykpIHsKKyAgICAgVU1BX0hJU1RPR1JBTV9FTlVNRVJB VElPTigiTWVkaWEuTGludXhBdWRpb0lPIiwga0NyYXMsIGtBdWRpb0lPTWF4ICsgMSk7CitkaWZm IC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlv X21hbmFnZXJfc25kaW8uY2MgY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL3NuZGlv L2F1ZGlvX21hbmFnZXJfc25kaW8uY2MKKy0tLSBhL21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21h bmFnZXJfc25kaW8uY2MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBi L21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uY2MJMjAyMC0wNi0xMyAxNzoz MjoyOC41MTEzOTU5NjkgKzAyMDAKK0BAIC0wLDAgKzEsMTQ4IEBACisrLy8gQ29weXJpZ2h0IChj KSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVz ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2Ug dGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpbmNsdWRl ICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrCisrI2luY2x1ZGUg ImJhc2UvbWV0cmljcy9oaXN0b2dyYW1fbWFjcm9zLmgiCisrI2luY2x1ZGUgImJhc2UvbWVtb3J5 L3B0cl91dGlsLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNjcmlw dGlvbi5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19vdXRwdXRfZGlzcGF0Y2hlci5o IgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorKyNpbmNsdWRl ICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFz ZS9saW1pdHMuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5oIgorKwor K25hbWVzcGFjZSBtZWRpYSB7CisrCisrCisrLy8gTWF4aW11bSBudW1iZXIgb2Ygb3V0cHV0IHN0 cmVhbXMgdGhhdCBjYW4gYmUgb3BlbiBzaW11bHRhbmVvdXNseS4KKytzdGF0aWMgY29uc3QgaW50 IGtNYXhPdXRwdXRTdHJlYW1zID0gNDsKKysKKysvLyBEZWZhdWx0IHNhbXBsZSByYXRlIGZvciBp bnB1dCBhbmQgb3V0cHV0IHN0cmVhbXMuCisrc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdFNhbXBs ZVJhdGUgPSA0ODAwMDsKKysKKyt2b2lkIEFkZERlZmF1bHREZXZpY2UoQXVkaW9EZXZpY2VOYW1l cyogZGV2aWNlX25hbWVzKSB7CisrICBEQ0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0eSgpKTsKKysg IGRldmljZV9uYW1lcy0+cHVzaF9mcm9udChBdWRpb0RldmljZU5hbWU6OkNyZWF0ZURlZmF1bHQo KSk7CisrfQorKworK2Jvb2wgQXVkaW9NYW5hZ2VyU25kaW86Okhhc0F1ZGlvT3V0cHV0RGV2aWNl cygpIHsKKysgIHJldHVybiB0cnVlOworK30KKysKKytib29sIEF1ZGlvTWFuYWdlclNuZGlvOjpI YXNBdWRpb0lucHV0RGV2aWNlcygpIHsKKysgIHJldHVybiB0cnVlOworK30KKysKKyt2b2lkIEF1 ZGlvTWFuYWdlclNuZGlvOjpHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoCisrICAgIEF1ZGlvRGV2 aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgRENIRUNLKGRldmljZV9uYW1lcy0+ZW1wdHko KSk7CisrICBBZGREZWZhdWx0RGV2aWNlKGRldmljZV9uYW1lcyk7CisrfQorKworK3ZvaWQgQXVk aW9NYW5hZ2VyU25kaW86OkdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoCisrICAgIEF1ZGlvRGV2 aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgQWRkRGVmYXVsdERldmljZShkZXZpY2VfbmFt ZXMpOworK30KKysKKytjb25zdCBjaGFyKiBBdWRpb01hbmFnZXJTbmRpbzo6R2V0TmFtZSgpIHsK KysgIHJldHVybiAiU05ESU8iOworK30KKysKKytBdWRpb1BhcmFtZXRlcnMgQXVkaW9NYW5hZ2Vy U25kaW86OkdldElucHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcm IGRldmljZV9pZCkgeworKyAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdElucHV0QnVmZmVyU2l6 ZSA9IDEwMjQ7CisrCisrICBpbnQgdXNlcl9idWZmZXJfc2l6ZSA9IEdldFVzZXJCdWZmZXJTaXpl KCk7CisrICBpbnQgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplID8KKysgICAgICB1c2Vy X2J1ZmZlcl9zaXplIDoga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemU7CisrCisrICByZXR1cm4gQXVk aW9QYXJhbWV0ZXJzKAorKyAgICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRF TkNZLCBDSEFOTkVMX0xBWU9VVF9TVEVSRU8sCisrICAgICAga0RlZmF1bHRTYW1wbGVSYXRlLCBi dWZmZXJfc2l6ZSk7CisrfQorKworK0F1ZGlvTWFuYWdlclNuZGlvOjpBdWRpb01hbmFnZXJTbmRp byhzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVhZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSogYXVkaW9fbG9n X2ZhY3RvcnkpCisrICAgIDogQXVkaW9NYW5hZ2VyQmFzZShzdGQ6Om1vdmUoYXVkaW9fdGhyZWFk KSwKKysgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KSB7CisrICBETE9H KFdBUk5JTkcpIDw8ICJBdWRpb01hbmFnZXJTbmRpbyI7CisrICBTZXRNYXhPdXRwdXRTdHJlYW1z QWxsb3dlZChrTWF4T3V0cHV0U3RyZWFtcyk7CisrfQorKworK0F1ZGlvTWFuYWdlclNuZGlvOjp+ QXVkaW9NYW5hZ2VyU25kaW8oKSB7CisrICBTaHV0ZG93bigpOworK30KKysKKytBdWRpb091dHB1 dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMaW5lYXJPdXRwdXRTdHJlYW0oCisrICAg IGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYg bG9nX2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01f TElORUFSLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFy YW1zKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtl TG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJh bXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExvZ0Nh bGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERMT0dfSUYoRVJST1IsICFkZXZpY2VfaWQuZW1w dHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVy czo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1h a2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9N YW5hZ2VyU25kaW86Ok1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJh bWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAg IGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShBdWRpb1Bh cmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIsIHBhcmFtcy5mb3JtYXQoKSk7CisrICByZXR1cm4g TWFrZUlucHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlv TWFuYWdlclNuZGlvOjpNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRp b1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwK KysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNLX0VRKEF1 ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOwor KyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb1BhcmFtZXRl cnMgQXVkaW9NYW5hZ2VyU25kaW86OkdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBhcmFtZXRlcnMo CisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkLAorKyAgICBjb25zdCBB dWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgeworKyAgLy8gVE9ETyh0b21taSk6IFN1cHBv cnQgfG91dHB1dF9kZXZpY2VfaWR8LgorKyAgRExPR19JRihFUlJPUiwgIW91dHB1dF9kZXZpY2Vf aWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworKyAgc3RhdGljIGNvbnN0IGludCBr RGVmYXVsdE91dHB1dEJ1ZmZlclNpemUgPSAyMDQ4OworKworKyAgQ2hhbm5lbExheW91dCBjaGFu bmVsX2xheW91dCA9IENIQU5ORUxfTEFZT1VUX1NURVJFTzsKKysgIGludCBzYW1wbGVfcmF0ZSA9 IGtEZWZhdWx0U2FtcGxlUmF0ZTsKKysgIGludCBidWZmZXJfc2l6ZSA9IGtEZWZhdWx0T3V0cHV0 QnVmZmVyU2l6ZTsKKysgIGlmIChpbnB1dF9wYXJhbXMuSXNWYWxpZCgpKSB7CisrICAgIHNhbXBs ZV9yYXRlID0gaW5wdXRfcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICAgIGNoYW5uZWxfbGF5b3V0 ID0gaW5wdXRfcGFyYW1zLmNoYW5uZWxfbGF5b3V0KCk7CisrICAgIGJ1ZmZlcl9zaXplID0gc3Rk OjptaW4oYnVmZmVyX3NpemUsIGlucHV0X3BhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpKTsKKysg IH0KKysKKysgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZlclNpemUoKTsKKysg IGlmICh1c2VyX2J1ZmZlcl9zaXplKQorKyAgICBidWZmZXJfc2l6ZSA9IHVzZXJfYnVmZmVyX3Np emU7CisrCisrICByZXR1cm4gQXVkaW9QYXJhbWV0ZXJzKAorKyAgICAgIEF1ZGlvUGFyYW1ldGVy czo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBjaGFubmVsX2xheW91dCwKKysgICAgICBzYW1wbGVf cmF0ZSwgYnVmZmVyX3NpemUpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFn ZXJTbmRpbzo6TWFrZUlucHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcykgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZUlucHV0U3RyZWFtIjsKKysgIHJldHVy biBuZXcgU25kaW9BdWRpb0lucHV0U3RyZWFtKHRoaXMsCisrICAgICAgICAgICAgIEF1ZGlvRGV2 aWNlRGVzY3JpcHRpb246OmtEZWZhdWx0RGV2aWNlSWQsIHBhcmFtcyk7CisrfQorKworK0F1ZGlv T3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZU91dHB1dFN0cmVhbSgKKysgICAg Y29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERMT0coV0FSTklORykgPDwgIk1h a2VPdXRwdXRTdHJlYW0iOworKyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKHBh cmFtcywgdGhpcyk7CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorZGlmZiAtTmF1ciBj aHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2Vy X3NuZGlvLmggY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21h bmFnZXJfc25kaW8uaAorLS0tIGEvbWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRp by5oCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgYi9tZWRpYS9hdWRp by9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgJMjAyMC0wNi0xMyAxNzozMjoyOC41MTEzOTU5 NjkgKzAyMDAKK0BAIC0wLDAgKzEsNjUgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENo cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291 cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor Ky8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9BVURJT19T TkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19B VURJT19NQU5BR0VSX1NORElPX0hfCisrCisrI2luY2x1ZGUgPHNldD4KKysKKysjaW5jbHVkZSAi YmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNp bmNsdWRlICJiYXNlL21lbW9yeS9yZWZfY291bnRlZC5oIgorKyNpbmNsdWRlICJiYXNlL3RocmVh ZGluZy90aHJlYWQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlcl9iYXNl LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBNRURJQV9FWFBPUlQgQXVkaW9N YW5hZ2VyU25kaW8gOiBwdWJsaWMgQXVkaW9NYW5hZ2VyQmFzZSB7CisrIHB1YmxpYzoKKysgIEF1 ZGlvTWFuYWdlclNuZGlvKHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFk LAorKyAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5 KTsKKysgIH5BdWRpb01hbmFnZXJTbmRpbygpIG92ZXJyaWRlOworKworKyAgLy8gSW1wbGVtZW50 YXRpb24gb2YgQXVkaW9NYW5hZ2VyLgorKyAgYm9vbCBIYXNBdWRpb091dHB1dERldmljZXMoKSBv dmVycmlkZTsKKysgIGJvb2wgSGFzQXVkaW9JbnB1dERldmljZXMoKSBvdmVycmlkZTsKKysgIHZv aWQgR2V0QXVkaW9JbnB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1l cykgb3ZlcnJpZGU7CisrICB2b2lkIEdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZp Y2VOYW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsKKysgIEF1ZGlvUGFyYW1ldGVycyBHZXRJ bnB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9p ZCkgb3ZlcnJpZGU7CisrICBjb25zdCBjaGFyKiBHZXROYW1lKCkgb3ZlcnJpZGU7CisrCisrICAv LyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXJCYXNlLgorKyAgQXVkaW9PdXRwdXRTdHJl YW0qIE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJp ZGU7CisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0oCisr ICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpz dHJpbmcmIGRldmljZV9pZCwKKysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNr KSBvdmVycmlkZTsKKysgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VMaW5lYXJJbnB1dFN0cmVhbSgK KysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6 OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJh Y2spIG92ZXJyaWRlOworKyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lJbnB1dFN0 cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25z dCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2df Y2FsbGJhY2spIG92ZXJyaWRlOworKworKyBwcm90ZWN0ZWQ6CisrICBBdWRpb1BhcmFtZXRlcnMg R2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgICBjb25zdCBzdGQ6OnN0 cmluZyYgb3V0cHV0X2RldmljZV9pZCwKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIGlu cHV0X3BhcmFtcykgb3ZlcnJpZGU7CisrCisrIHByaXZhdGU6CisrICAvLyBDYWxsZWQgYnkgTWFr ZUxpbmVhck91dHB1dFN0cmVhbSBhbmQgTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0uCisrICBB dWRpb091dHB1dFN0cmVhbSogTWFrZU91dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMm IHBhcmFtcyk7CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlSW5wdXRTdHJlYW0oY29uc3QgQXVk aW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworKworKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKEF1 ZGlvTWFuYWdlclNuZGlvKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNl bmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19IXworZGlmZiAt TmF1ciBjaHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19p bnB1dC5jYyBjaHJvbWl1bS04My4wLjQxMDMuOTcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5w dXQuY2MKKy0tLSBhL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgYi9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19p bnB1dC5jYwkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSwy MDAgQEAKKysvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh IEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0Ug ZmlsZS4KKysKKysjaW5jbHVkZSAiYmFzZS9iaW5kLmgiCisrI2luY2x1ZGUgImJhc2UvbG9nZ2lu Zy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1 ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vYXVk aW9fbWFuYWdlcl9zbmRpby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2Vy LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisrCisrbmFt ZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3Jt YXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpP bk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkKKyt7CisrICBTbmRpb0F1ZGlvSW5w dXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qPihhcmcp OworKworKyAgc2VsZi0+aHdfZGVsYXkgKz0gZGVsdGE7CisrfQorKworK3ZvaWQgKlNuZGlvQXVk aW9JbnB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7CisrICBTbmRpb0F1ZGlvSW5w dXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qPihhcmcp OworKworKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK1Nu ZGlvQXVkaW9JbnB1dFN0cmVhbTo6U25kaW9BdWRpb0lucHV0U3RyZWFtKEF1ZGlvTWFuYWdlckJh c2UqIG1hbmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKQor KyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAgICAgcGFyYW1zKHBhcmFtcyksCisrICAgICAg YXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisrICAgICAgc3RhdGUoa0Nsb3Nl ZCkgeworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06On5TbmRpb0F1ZGlvSW5wdXRTdHJl YW0oKSB7CisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAgQ2xvc2UoKTsKKyt9CisrCisr Ym9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9wZW4oKSB7CisrICBzdHJ1Y3Qgc2lvX3BhciBw YXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAgIHJldHVy biBmYWxzZTsKKysKKysgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpB VURJT19QQ01fTElORUFSICYmCisrICAgICAgcGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1l dGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisrICAgIExPRyhXQVJOSU5HKSA8PCAiVW5z dXBwb3J0ZWQgYXVkaW8gZm9ybWF0LiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysg IHNpb19pbml0cGFyKCZwYXIpOworKyAgcGFyLnJhdGUgPSBwYXJhbXMuc2FtcGxlX3JhdGUoKTsK KysgIHBhci5yY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworKyAgcGFyLmJpdHMgPSBTYW1wbGVG b3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOworKyAgcGFyLmJwcyA9IHBhci5i aXRzIC8gODsKKysgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7CisrICBw YXIubGUgPSBTSU9fTEVfTkFUSVZFOworKyAgcGFyLmFwcGJ1ZnN6ID0gcGFyYW1zLmZyYW1lc19w ZXJfYnVmZmVyKCk7CisrCisrICBoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9fUkVDLCAw KTsKKysKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4n dCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBp ZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBhcihoZGwsICZwYXIpKSB7Cisr ICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAg IGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKworKyAgaWYgKHBhci5yYXRlICAhPSAodW5zaWduZWQg aW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFyLnJjaGFuICE9ICh1bnNpZ25l ZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIuYml0cyAgIT0gKHVuc2lnbmVk IGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpIHx8CisrICAg ICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisrICAgICAgKHBhci5icHMgPiAx ICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAgIChwYXIuYml0cyAhPSBwYXIu YnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1l dGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysgIHN0YXRlID0ga1N0b3BwZWQ7 CisrICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdldEJ5 dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVD YWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4gdHJ1ZTsKKytiYWRfY2xvc2U6CisrICBzaW9fY2xv c2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRT dHJlYW06OlN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2IpIHsKKysKKysgIFN0YXJ0QWdjKCk7 CisrCisrICBzdGF0ZSA9IGtSdW5uaW5nOworKyAgaHdfZGVsYXkgPSAwOworKyAgY2FsbGJhY2sg PSBjYjsKKysgIHNpb19zdGFydChoZGwpOworKyAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQs IE5VTEwsICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgeworKyAgICBMT0coRVJST1IpIDw8ICJG YWlsZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQgZm9yIHJlY29yZGluZy4iOworKyAgICBz aW9fc3RvcChoZGwpOworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30KKysKKyt2b2lk IFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RvcCgpIHsKKysKKysgIGlmIChzdGF0ZSA9PSBrU3Rv cHBlZCkKKysgICAgcmV0dXJuOworKworKyAgc3RhdGUgPSBrU3RvcFdhaXQ7CisrICBwdGhyZWFk X2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7CisrICBzdGF0ZSA9IGtTdG9w cGVkOworKworKyAgU3RvcEFnYygpOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVh bTo6Q2xvc2UoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuOwor KworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorKyAgICBTdG9wKCk7CisrCisrICBzdGF0ZSA9 IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVyOworKyAgc2lvX2Nsb3NlKGhkbCk7CisrCisr ICBtYW5hZ2VyLT5SZWxlYXNlSW5wdXRTdHJlYW0odGhpcyk7CisrfQorKworK2RvdWJsZSBTbmRp b0F1ZGlvSW5wdXRTdHJlYW06OkdldE1heFZvbHVtZSgpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQK KysgIHJldHVybiAwLjA7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRW b2x1bWUoZG91YmxlIHZvbHVtZSkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4gRG8gbm90aGluZy4K Kyt9CisrCisrZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6R2V0Vm9sdW1lKCkgeworKyAg Ly8gTm90IHN1cHBvcnRlZC4KKysgIHJldHVybiAwLjA7CisrfQorKworK2Jvb2wgU25kaW9BdWRp b0lucHV0U3RyZWFtOjpJc011dGVkKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4KKysgIHJldHVy biBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNldE91dHB1dERl dmljZUZvckFlYygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIHsK KysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFt OjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIHNpemVfdCB0b2RvLCBuOworKyAgY2hhciAqZGF0YTsK KysgIHVuc2lnbmVkIGludCBuZnJhbWVzOworKyAgZG91YmxlIG5vcm1hbGl6ZWRfdm9sdW1lID0g MC4wOworKworKyAgbmZyYW1lcyA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisrCisrICB3aGlsZSAo c3RhdGUgPT0ga1J1bm5pbmcgJiYgIXNpb19lb2YoaGRsKSkgeworKworKyAgICBHZXRBZ2NWb2x1 bWUoJm5vcm1hbGl6ZWRfdm9sdW1lKTsKKysKKysgICAgLy8gcmVhZCBvbmUgYmxvY2sKKysgICAg dG9kbyA9IG5mcmFtZXMgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsK KysgICAgZGF0YSA9IGJ1ZmZlcjsKKysgICAgd2hpbGUgKHRvZG8gPiAwKSB7CisrICAgICAgbiA9 IHNpb19yZWFkKGhkbCwgZGF0YSwgdG9kbyk7CisrICAgICAgaWYgKG4gPT0gMCkKKysgICAgICAg IHJldHVybjsJLy8gdW5yZWNvdmVyYWJsZSBJL08gZXJyb3IKKysgICAgICB0b2RvIC09IG47Cisr ICAgICAgZGF0YSArPSBuOworKyAgICB9CisrICAgIGh3X2RlbGF5IC09IG5mcmFtZXM7CisrCisr ICAgIC8vIGNvbnZlcnQgZnJhbWVzIGNvdW50IHRvIFRpbWVEZWx0YQorKyAgICBjb25zdCBiYXNl OjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9UaW1lKGh3 X2RlbGF5LAorKyAgICAgIHBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKysKKysgICAgLy8gcHVzaCBp bnRvIGJ1cworKyAgICBhdWRpb19idXMtPkZyb21JbnRlcmxlYXZlZDxTaWduZWRJbnQxNlNhbXBs ZVR5cGVUcmFpdHM+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50MTZfdCo+KGJ1ZmZlciksIG5mcmFtZXMp OworKworKyAgICAvLyBpbnZva2UgY2FsbGJhY2sKKysgICAgY2FsbGJhY2stPk9uRGF0YShhdWRp b19idXMuZ2V0KCksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCkgLSBkZWxheSwgMS4pOworKyAgfQor K30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40 MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCBjaHJvbWl1bS04My4w LjQxMDMuOTcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaAorLS0tIGEvbWVkaWEvYXVk aW8vc25kaW8vc25kaW9faW5wdXQuaAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIGIvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaAkyMDIwLTA2LTEzIDE3OjMy OjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSw5MSBAQAorKy8vIENvcHlyaWdodCAyMDEz IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0 aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj YW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFf QVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX1NO RElPX0lOUFVUX0hfCisrCisrI2luY2x1ZGUgPHN0ZGludC5oPgorKyNpbmNsdWRlIDxzdHJpbmc+ CisrI2luY2x1ZGUgPHNuZGlvLmg+CisrCisrI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lm aWMuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFzZS9tZW1vcnkv d2Vha19wdHIuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysjaW5jbHVkZSAibWVk aWEvYXVkaW8vYWdjX2F1ZGlvX3N0cmVhbS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRp b19pby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24u aCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb19wYXJhbWV0ZXJzLmgiCisrCisrbmFtZXNw YWNlIG1lZGlhIHsKKysKKytjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworKworKy8vIEltcGxlbWVu dGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCisrY2xhc3MgU25kaW9B dWRpb0lucHV0U3RyZWFtIDogcHVibGljIEFnY0F1ZGlvU3RyZWFtPEF1ZGlvSW5wdXRTdHJlYW0+ IHsKKysgcHVibGljOgorKyAgLy8gUGFzcyB0aGlzIHRvIHRoZSBjb25zdHJ1Y3RvciBpZiB5b3Ug d2FudCB0byBhdHRlbXB0IGF1dG8tc2VsZWN0aW9uCisrICAvLyBvZiB0aGUgYXVkaW8gcmVjb3Jk aW5nIGRldmljZS4KKysgIHN0YXRpYyBjb25zdCBjaGFyIGtBdXRvU2VsZWN0RGV2aWNlW107Cisr CisrICAvLyBDcmVhdGUgYSBQQ00gT3V0cHV0IHN0cmVhbSBmb3IgdGhlIFNORElPIGRldmljZSBp ZGVudGlmaWVkIGJ5CisrICAvLyB8ZGV2aWNlX25hbWV8LiBJZiB1bnN1cmUgb2Ygd2hhdCB0byB1 c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVzZQorKyAgLy8gfGtBdXRvU2VsZWN0RGV2aWNlfC4KKysg IFNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBhdWRpb19tYW5hZ2VyLAor KyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFtZSwKKysg ICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7CisrCisr ICB+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRh dGlvbiBvZiBBdWRpb0lucHV0U3RyZWFtLgorKyAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7CisrICB2 b2lkIFN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2spIG92ZXJyaWRlOworKyAgdm9p ZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7CisrICBkb3VibGUg R2V0TWF4Vm9sdW1lKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldFZvbHVtZShkb3VibGUgdm9sdW1l KSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRWb2x1bWUoKSBvdmVycmlkZTsKKysgIGJvb2wgSXNN dXRlZCgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRPdXRwdXREZXZpY2VGb3JBZWMoY29uc3Qgc3Rk OjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIG92ZXJyaWRlOworKworKyBwcml2YXRlOgorKwor KyAgZW51bSBTdHJlYW1TdGF0ZSB7CisrICAgIGtDbG9zZWQsICAgICAgICAgICAgLy8gTm90IG9w ZW5lZCB5ZXQKKysgICAga1N0b3BwZWQsICAgICAgICAgICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQg bm90IHN0YXJ0ZWQgeWV0CisrICAgIGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRlZCwgZGV2 aWNlIHBsYXlpbmcKKysgICAga1N0b3BXYWl0ICAgICAgICAgICAvLyBTdG9wcGluZywgd2FpdGlu ZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8gZXhpdAorKyAgfTsKKysKKysgIC8vIEMtc3R5 bGUgY2FsbC1iYWNrcworKyAgc3RhdGljIHZvaWQgT25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBp bnQgZGVsdGEpOworKyAgc3RhdGljIHZvaWQqIFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7CisrCisr ICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9tIHRoZSBkZXZpY2UgdG8gdGhlIGNvbnN1 bWVyCisrICB2b2lkIFRocmVhZExvb3AoKTsKKysgIC8vIE91ciBjcmVhdG9yLCB0aGUgYXVkaW8g bWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNsb3NlLgorKyAgQXVkaW9NYW5h Z2VyQmFzZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQorKyAgQXVk aW9QYXJhbWV0ZXJzIHBhcmFtczsKKysgIC8vIFdlIHN0b3JlIGRhdGEgaGVyZSBmb3IgY29uc3Vt ZXIKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8gQ2FsbC1i YWNrIHRoYXQgY29uc3VtZXMgcmVjb3JkZWQgZGF0YQorKyAgQXVkaW9JbnB1dENhbGxiYWNrKiBj YWxsYmFjazsgIC8vIFZhbGlkIGR1cmluZyBhIHJlY29yZGluZyBzZXNzaW9uLgorKyAgLy8gSGFu ZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVjdCBzaW9faGRsKiBoZGw7CisrICAvLyBD dXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVudW0gU3RyZWFtU3RhdGUgc3RhdGU7Cisr ICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExvb3AoKQorKyAgcHRocmVh ZF90IHRocmVhZDsKKysgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQgaW4gdGhlIGhhcmR3 YXJlCisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEg aXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisrICBjaGFyKiBidWZmZXI7CisrCisr ICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb0lucHV0U3RyZWFtKTsKKyt9Owor KworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05E SU9fU05ESU9fSU5QVVRfSF8KK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcv bWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNjIGNocm9taXVtLTgzLjAuNDEwMy45Ny9t ZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuY2MKKy0tLSBhL21lZGlhL2F1ZGlvL3NuZGlv L3NuZGlvX291dHB1dC5jYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysr IGIvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNjCTIwMjAtMDYtMTMgMTc6MzI6Mjgu NTExMzk1OTY5ICswMjAwCitAQCAtMCwwICsxLDE4MyBAQAorKy8vIENvcHlyaWdodCAoYykgMjAx MiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2Yg dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQg Y2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAiYmFz ZS9sb2dnaW5nLmgiCisrI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisrI2luY2x1ZGUgImJh c2UvdGltZS9kZWZhdWx0X3RpY2tfY2xvY2suaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVk aW9fbWFuYWdlcl9iYXNlLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGltZXN0YW1w X2hlbHBlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaCIK KysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK3N0YXRpYyBjb25zdCBTYW1wbGVGb3JtYXQga1Nh bXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkgeworKyAgU25kaW9B dWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJl YW0qPihhcmcpOworKworKyAgc2VsZi0+aHdfZGVsYXkgLT0gZGVsdGE7CisrfQorKworK3ZvaWQg U25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVuc2lnbmVk IGludCB2b2wpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2Fz dDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPnZvbCA9IHZvbDsK Kyt9CisrCisrdm9pZCAqU25kaW9BdWRpb091dHB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAq YXJnKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25k aW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5UaHJlYWRMb29wKCk7Cisr ICByZXR1cm4gTlVMTDsKKyt9CisrCisrU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U25kaW9BdWRp b091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJhc2UqIG1h bmFnZXIpCisrICAgIDogbWFuYWdlcihtYW5hZ2VyKSwKKysgICAgICBwYXJhbXMocGFyYW1zKSwK KysgICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKysgICAgICBzdGF0 ZShrQ2xvc2VkKSwKKysgICAgICBtdXRleChQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSKSB7Cisr fQorKworK1NuZGlvQXVkaW9PdXRwdXRTdHJlYW06On5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKCkg eworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAgIENsb3NlKCk7CisrfQorKworK2Jvb2wg U25kaW9BdWRpb091dHB1dFN0cmVhbTo6T3BlbigpIHsKKysgIHN0cnVjdCBzaW9fcGFyIHBhcjsK KysgIGludCBzaWc7CisrCisrICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVy czo6QVVESU9fUENNX0xJTkVBUiAmJgorKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1Bh cmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSkgeworKyAgICBMT0coV0FSTklORykgPDwg IlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9Cisr ICBzaW9faW5pdHBhcigmcGFyKTsKKysgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7 CisrICBwYXIucGNoYW4gPSBwYXJhbXMuY2hhbm5lbHMoKTsKKysgIHBhci5iaXRzID0gU2FtcGxl Rm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KTsKKysgIHBhci5icHMgPSBwYXIu Yml0cyAvIDg7CisrICBwYXIuc2lnID0gc2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOworKyAg cGFyLmxlID0gU0lPX0xFX05BVElWRTsKKysgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNf cGVyX2J1ZmZlcigpOworKworKyAgaGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1BMQVks IDApOworKyAgaWYgKGhkbCA9PSBOVUxMKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0 IG9wZW4gYXVkaW8gZGV2aWNlLiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysgIGlmICgh c2lvX3NldHBhcihoZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsKKysgICAg TE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290 byBiYWRfY2xvc2U7CisrICB9CisrICBpZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBpbnQpcGFy YW1zLnNhbXBsZV9yYXRlKCkgfHwKKysgICAgICBwYXIucGNoYW4gIT0gKHVuc2lnbmVkIGludClw YXJhbXMuY2hhbm5lbHMoKSB8fAorKyAgICAgIHBhci5iaXRzICAhPSAodW5zaWduZWQgaW50KVNh bXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkgfHwKKysgICAgICBwYXIu c2lnICAgIT0gKHVuc2lnbmVkIGludClzaWcgfHwKKysgICAgICAocGFyLmJwcyA+IDEgJiYgcGFy LmxlICE9IFNJT19MRV9OQVRJVkUpIHx8CisrICAgICAgKHBhci5iaXRzICE9IHBhci5icHMgKiA4 KSkgeworKyAgICBMT0coRVJST1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBwYXJhbWV0ZXJzLiI7 CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysgIHZv bHBlbmRpbmcgPSAwOworKyAgdm9sID0gMDsKKysgIGJ1ZmZlciA9IG5ldyBjaGFyW2F1ZGlvX2J1 cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KV07Cisr ICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsKKysgIHNpb19vbnZvbCho ZGwsICZPblZvbENhbGxiYWNrLCB0aGlzKTsKKysgIHJldHVybiB0cnVlOworKyBiYWRfY2xvc2U6 CisrICBzaW9fY2xvc2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRp b0F1ZGlvT3V0cHV0U3RyZWFtOjpDbG9zZSgpIHsKKysgIGlmIChzdGF0ZSA9PSBrQ2xvc2VkKQor KyAgICByZXR1cm47CisrICBpZiAoc3RhdGUgPT0ga1J1bm5pbmcpCisrICAgIFN0b3AoKTsKKysg IHN0YXRlID0ga0Nsb3NlZDsKKysgIGRlbGV0ZSBbXSBidWZmZXI7CisrICBzaW9fY2xvc2UoaGRs KTsKKysgIG1hbmFnZXItPlJlbGVhc2VPdXRwdXRTdHJlYW0odGhpcyk7ICAvLyBDYWxscyB0aGUg ZGVzdHJ1Y3RvcgorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0YXJ0KEF1 ZGlvU291cmNlQ2FsbGJhY2sqIGNhbGxiYWNrKSB7CisrICBzdGF0ZSA9IGtSdW5uaW5nOworKyAg aHdfZGVsYXkgPSAwOworKyAgc291cmNlID0gY2FsbGJhY2s7CisrICBzaW9fc3RhcnQoaGRsKTsK KysgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnksIHRoaXMp ICE9IDApIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRpbWUg dGhyZWFkLiI7CisrICAgIHNpb19zdG9wKGhkbCk7CisrICAgIHN0YXRlID0ga1N0b3BwZWQ7Cisr ICB9CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U3RvcCgpIHsKKysgIGlm IChzdGF0ZSA9PSBrU3RvcHBlZCkKKysgICAgcmV0dXJuOworKyAgc3RhdGUgPSBrU3RvcFdhaXQ7 CisrICBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7CisrICBz dGF0ZSA9IGtTdG9wcGVkOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlNl dFZvbHVtZShkb3VibGUgdikgeworKyAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisrICB2 b2wgPSB2ICogU0lPX01BWFZPTDsKKysgIHZvbHBlbmRpbmcgPSAxOworKyAgcHRocmVhZF9tdXRl eF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpH ZXRWb2x1bWUoZG91YmxlKiB2KSB7CisrICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKysg ICp2ID0gdm9sICogKDEuIC8gU0lPX01BWFZPTCk7CisrICBwdGhyZWFkX211dGV4X3VubG9jaygm bXV0ZXgpOworK30KKysKKysvLyBUaGlzIHN0cmVhbSBpcyBhbHdheXMgdXNlZCB3aXRoIHN1YiBz ZWNvbmQgYnVmZmVyIHNpemVzLCB3aGVyZSBpdCdzCisrLy8gc3VmZmljaWVudCB0byBzaW1wbHkg YWx3YXlzIGZsdXNoIHVwb24gU3RhcnQoKS4KKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06 OkZsdXNoKCkge30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZExvb3Ao dm9pZCkgeworKyAgaW50IGF2YWlsLCBjb3VudCwgcmVzdWx0OworKworKyAgd2hpbGUgKHN0YXRl ID09IGtSdW5uaW5nKSB7CisrICAgIC8vIFVwZGF0ZSB2b2x1bWUgaWYgbmVlZGVkCisrICAgIHB0 aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgICBpZiAodm9scGVuZGluZykgeworKyAgICAg IHZvbHBlbmRpbmcgPSAwOworKyAgICAgIHNpb19zZXR2b2woaGRsLCB2b2wpOworKyAgICB9Cisr ICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrCisrICAgIC8vIEdldCBkYXRhIHRv IHBsYXkKKysgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1lc3RhbXBI ZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKKysJcGFyYW1zLnNhbXBsZV9yYXRlKCkpOwor KyAgICBjb3VudCA9IHNvdXJjZS0+T25Nb3JlRGF0YShkZWxheSwgYmFzZTo6VGltZVRpY2tzOjpO b3coKSwgMCwgYXVkaW9fYnVzLmdldCgpKTsKKysgICAgYXVkaW9fYnVzLT5Ub0ludGVybGVhdmVk PFNpZ25lZEludDE2U2FtcGxlVHlwZVRyYWl0cz4oY291bnQsIHJlaW50ZXJwcmV0X2Nhc3Q8aW50 MTZfdCo+KGJ1ZmZlcikpOworKyAgICBpZiAoY291bnQgPT0gMCkgeworKyAgICAgIC8vIFdlIGhh dmUgdG8gc3VibWl0IHNvbWV0aGluZyB0byB0aGUgZGV2aWNlCisrICAgICAgY291bnQgPSBhdWRp b19idXMtPmZyYW1lcygpOworKyAgICAgIG1lbXNldChidWZmZXIsIDAsIGNvdW50ICogcGFyYW1z LkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCkpOworKyAgICAgIExPRyhXQVJOSU5HKSA8 PCAiTm8gZGF0YSB0byBwbGF5LCBydW5uaW5nIGVtcHR5IGN5Y2xlLiI7CisrICAgIH0KKysKKysg ICAgLy8gU3VibWl0IGRhdGEgdG8gdGhlIGRldmljZQorKyAgICBhdmFpbCA9IGNvdW50ICogcGFy YW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisrICAgIHJlc3VsdCA9IHNpb193 cml0ZShoZGwsIGJ1ZmZlciwgYXZhaWwpOworKyAgICBpZiAocmVzdWx0ID09IDApIHsKKysgICAg ICBMT0coV0FSTklORykgPDwgIkF1ZGlvIGRldmljZSBkaXNjb25uZWN0ZWQuIjsKKysgICAgICBi cmVhazsKKysgICAgfQorKworKyAgICAvLyBVcGRhdGUgaGFyZHdhcmUgcG9pbnRlcgorKyAgICBo d19kZWxheSArPSBjb3VudDsKKysgIH0KKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCitk aWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL3NuZGlvL3Nu ZGlvX291dHB1dC5oIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9zbmRp b19vdXRwdXQuaAorLS0tIGEvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBiL21lZGlhL2F1ZGlvL3NuZGlvL3Nu ZGlvX291dHB1dC5oCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5ICswMjAwCitAQCAtMCww ICsxLDg2IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBB bGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUg TElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVU X0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKysKKysjaW5j bHVkZSA8cHRocmVhZC5oPgorKyNpbmNsdWRlIDxzbmRpby5oPgorKworKyNpbmNsdWRlICJiYXNl L3RpbWUvdGlja19jbG9jay5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNs dWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisr Y2xhc3MgQXVkaW9NYW5hZ2VyQmFzZTsKKysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091 dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorK2NsYXNzIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0g OiBwdWJsaWMgQXVkaW9PdXRwdXRTdHJlYW0geworKyBwdWJsaWM6CisrICAvLyBUaGUgbWFuYWdl ciBpcyBjcmVhdGluZyB0aGlzIG9iamVjdAorKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbShjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgQXVk aW9NYW5hZ2VyQmFzZSogbWFuYWdlcik7CisrICB2aXJ0dWFsIH5TbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtKCk7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbS4KKysg IGJvb2wgT3BlbigpIG92ZXJyaWRlOworKyAgdm9pZCBDbG9zZSgpIG92ZXJyaWRlOworKyAgdm9p ZCBTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7CisrICB2b2lk IFN0b3AoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJy aWRlOworKyAgdm9pZCBHZXRWb2x1bWUoZG91YmxlKiB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9p ZCBGbHVzaCgpIG92ZXJyaWRlOworKworKyAgZnJpZW5kIHZvaWQgc25kaW9fb25tb3ZlKHZvaWQg KmFyZywgaW50IGRlbHRhKTsKKysgIGZyaWVuZCB2b2lkIHNuZGlvX29udm9sKHZvaWQgKmFyZywg dW5zaWduZWQgaW50IHZvbCk7CisrICBmcmllbmQgdm9pZCAqc25kaW9fdGhyZWFkc3RhcnQodm9p ZCAqYXJnKTsKKysKKysgcHJpdmF0ZToKKysgIGVudW0gU3RyZWFtU3RhdGUgeworKyAgICBrQ2xv c2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisrICAgIGtTdG9wcGVkLCAgICAgICAg ICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorKyAgICBrUnVubmluZywg ICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisrICAgIGtTdG9wV2FpdCAgICAg ICAgICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4 aXQKKysgIH07CisrCisrICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKysgIHN0YXRpYyB2b2lkIE9u TW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIHN0YXRpYyB2b2lkIE9uVm9s Q2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKysgIHN0YXRpYyB2b2lkKiBU aHJlYWRFbnRyeSh2b2lkICphcmcpOworKworKyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRhdGEg ZnJvbSB0aGUgcHJvZHVjZXIgdG8gdGhlIGRldmljZQorKyAgdm9pZCBUaHJlYWRMb29wKHZvaWQp OworKworKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5v dGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworKyAg Ly8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisrICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOwor KyAgLy8gU291cmNlIHN0b3JlcyBkYXRhIGhlcmUKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1 cz4gYXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgcHJvZHVjZXMgZGF0YSB0byBwbGF5 CisrICBBdWRpb1NvdXJjZUNhbGxiYWNrKiBzb3VyY2U7CisrICAvLyBIYW5kbGUgb2YgdGhlIGF1 ZGlvIGRldmljZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQgc3RhdGUg b2YgdGhlIHN0cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhpZ2ggcHJp b3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhyZWFkOwor KyAgLy8gUHJvdGVjdHMgdm9sLCB2b2xwZW5kaW5nIGFuZCBod19kZWxheQorKyAgcHRocmVhZF9t dXRleF90IG11dGV4OworKyAgLy8gQ3VycmVudCB2b2x1bWUgaW4gdGhlIDAuLlNJT19NQVhWT0wg cmFuZ2UKKysgIGludCB2b2w7CisrICAvLyBTZXQgdG8gMSBpZiB2b2x1bWVzIG11c3QgYmUgcmVm cmVzaGVkIGluIHRoZSByZWFsdGltZSB0aHJlYWQKKysgIGludCB2b2xwZW5kaW5nOworKyAgLy8g TnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGludCBod19kZWxh eTsKKysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQgc25kaW8tY29t cGF0aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5E X0FTU0lHTihTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFj ZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hf CitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL21lZGlhX29wdGlv bnMuZ25pIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9tZWRpYV9vcHRpb25zLmduaQorLS0t IGEvbWVkaWEvbWVkaWFfb3B0aW9ucy5nbmkKKysrKyBiL21lZGlhL21lZGlhX29wdGlvbnMuZ25p CitAQCAtMTU4LDYgKzE1OCw5IEBACisgICAjIEVuYWJsZXMgcnVudGltZSBzZWxlY3Rpb24gb2Yg QUxTQSBsaWJyYXJ5IGZvciBhdWRpby4KKyAgIHVzZV9hbHNhID0gZmFsc2UKKyAKKysgICMgRW5h YmxlIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIHNuZGlvKDcpCisrICB1c2Vfc25kaW8gPSBmYWxzZQor KworICAgIyBBbHNhIHNob3VsZCBiZSB1c2VkIG9uIGFsbCBub24tQW5kcm9pZCwgbm9uLU1hYyBQ T1NJWCBzeXN0ZW1zIC0gd2l0aCB0aGUKKyAgICMgZXhjZXB0aW9uIG9mIENhc3RPUyBkZXNrdG9w IGJ1aWxkcy4KKyAgICMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRj aGVzL2Nocm9taXVtLXN5c3R5cGVzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tc3lzdHlwZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMDAuLjFjY2ViYmQyZjJiMzE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc3lzdHlwZXMucGF0Y2gKQEAgLTAs MCArMSwxMSBAQAorLS0tIGEvYmFzZS90aGlyZF9wYXJ0eS9zeW1ib2xpemUvc3ltYm9saXplLmgK KysrKyBiL2Jhc2UvdGhpcmRfcGFydHkvc3ltYm9saXplL3N5bWJvbGl6ZS5oCitAQCAtNTgsNiAr NTgsOCBAQAorICNpbmNsdWRlICJjb25maWcuaCIKKyAjaW5jbHVkZSAiZ2xvZy9sb2dnaW5nLmgi CisgCisrI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorKworICNpZmRlZiBIQVZFX1NZTUJPTElaRQor IAorICNpZiBkZWZpbmVkKF9fRUxGX18pICAvLyBkZWZpbmVkIGJ5IGdjYwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdW5idW5kbGVkLWNyb3Nz LXRvb2xjaGFpbi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLXVuYnVuZGxlZC1jcm9zcy10b29sY2hhaW4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAuLmMzZjIyOTRhYzRiMmNiCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdW5idW5kbGVkLWNyb3Nz LXRvb2xjaGFpbi5wYXRjaApAQCAtMCwwICsxLDEyIEBACistLS0gYS9idWlsZC90b29sY2hhaW4v bGludXgvdW5idW5kbGUvQlVJTEQuZ24ub3JpZworKysrIGIvYnVpbGQvdG9vbGNoYWluL2xpbnV4 L3VuYnVuZGxlL0JVSUxELmduCitAQCAtMzUsNyArMzUsNyBAQAorICAgZXh0cmFfbGRmbGFncyA9 IGdldGVudigiQlVJTERfTERGTEFHUyIpCisgCisgICB0b29sY2hhaW5fYXJncyA9IHsKKy0gICAg Y3VycmVudF9jcHUgPSBjdXJyZW50X2NwdQorLSAgICBjdXJyZW50X29zID0gY3VycmVudF9vcwor KyAgICBjdXJyZW50X2NwdSA9IGhvc3RfY3B1CisrICAgIGN1cnJlbnRfb3MgPSBob3N0X29zCisg ICB9CisgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0td2FzbV9jYW5vbmljYWxfcnR0cy1pcy1XZWFrRml4ZWRBcnJheS1ub3QtTGlzdC1zby11 cy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXdhc21f Y2Fub25pY2FsX3J0dHMtaXMtV2Vha0ZpeGVkQXJyYXktbm90LUxpc3Qtc28tdXMucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjBiMzgwYTNmMmExZmNiCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0td2FzbV9jYW5vbmljYWxfcnR0cy1pcy1XZWFrRml4ZWRBcnJheS1ub3QtTGlzdC1zby11cy5w YXRjaApAQCAtMCwwICsxLDI3IEBACitGcm9tIDBlYjI2ZTYyM2E3MzgyZTFjNmQzYjVjZTMzZjdh MzA0MzcxNDE0Y2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKb2huIDxtZUBqb2hu bnluYXRvci5kZXY+CitEYXRlOiBUdWUsIDE1IE9jdCAyMDI0IDIyOjA0OjA1ICswMjAwCitTdWJq ZWN0OiBbUEFUQ0hdIHdhc21fY2Fub25pY2FsX3J0dHMoKSBpcyBXZWFrRml4ZWRBcnJheSBub3Qg TGlzdCwgc28gdXNlCisgbG93ZXJjYXNlIGdldAorCistLS0KKyB2OC9zcmMvd2FzbS9pbnRlcnBy ZXRlci93YXNtLWludGVycHJldGVyLXJ1bnRpbWUuY2MgfCAyICstCisgMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS92OC9zcmMvd2Fz bS9pbnRlcnByZXRlci93YXNtLWludGVycHJldGVyLXJ1bnRpbWUuY2MgYi92OC9zcmMvd2FzbS9p bnRlcnByZXRlci93YXNtLWludGVycHJldGVyLXJ1bnRpbWUuY2MKK2luZGV4IGRhOWQ3MDEuLjg0 YWRkZGYgMTAwNjQ0CistLS0gYS92OC9zcmMvd2FzbS9pbnRlcnByZXRlci93YXNtLWludGVycHJl dGVyLXJ1bnRpbWUuY2MKKysrKyBiL3Y4L3NyYy93YXNtL2ludGVycHJldGVyL3dhc20taW50ZXJw cmV0ZXItcnVudGltZS5jYworQEAgLTE4NjgsNyArMTg2OCw3IEBAIGJvb2wgV2FzbUludGVycHJl dGVyUnVudGltZTo6Q2hlY2tJbmRpcmVjdENhbGxTaWduYXR1cmUoCisgCisgICAgICAgVGFnZ2Vk PE1hcD4gcnR0ID0gVGFnZ2VkPE1hcD46OmNhc3QoaXNvbGF0ZV8tPmhlYXAoKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPndhc21fY2Fub25pY2FsX3J0 dHMoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPkdl dChyZWFsX3NpZ19pZCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLkdldEhlYXBPYmplY3QoKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0+Z2V0KHJlYWxfc2lnX2lkKQorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAuR2V0SGVhcE9iamVjdEFzc3VtZVdlYWsoKSk7Cisg ICAgICAgSGFuZGxlPE1hcD4gZm9ybWFsX3J0dCA9IFJ0dENhbm9uKHNpZ19pbmRleCk7CisgICAg ICAgcmV0dXJuIFN1YnR5cGVDaGVjayhydHQsICpmb3JtYWxfcnR0LCBzaWdfaW5kZXgpOworLS0g CisyLjQ3LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9w YXRjaGVzL2Nocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAuLmRkNDZmZTE0Y2QyYjFjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0td2VicnRjLXNpemVfdC5w YXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9h dWRpb19wcm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9kZXRlY3Rvci5oCTIwMjAtMDgtMTAgMjA6 NDI6MjkuMDAwMDAwMDAwICswMjAwCisrKysgYi90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9h dWRpb19wcm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9kZXRlY3Rvci5oCTIwMjAtMDktMDQgMTI6 NDc6MDcuMDE0ODMzNjMzICswMjAwCitAQCAtMTIsNiArMTIsNyBAQAorICNkZWZpbmUgTU9EVUxF U19BVURJT19QUk9DRVNTSU5HX0FFQzNfQ0xPQ0tEUklGVF9ERVRFQ1RPUl9IXworIAorICNpbmNs dWRlIDxhcnJheT4KKysjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAKKyBuYW1lc3BhY2Ugd2VicnRjIHsK KyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2VsZWN0cm9u LUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNo ZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0Y2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAuLmE5OGVlMDIwZDM0YWI4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQnVpbGQtZml4ZXMucGF0 Y2gucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAtLWdpdCBhL2J1aWxkL25wbS5nbmkgYi9i dWlsZC9ucG0uZ25pCitpbmRleCBhMTk4N2QwOTUuLmZiMzNhMTRjMyAxMDA2NDQKKy0tLSBhL2J1 aWxkL25wbS5nbmkKKysrKyBiL2J1aWxkL25wbS5nbmkKK0BAIC0zNSw3ICszNSw2IEBAIHRlbXBs YXRlKCJucG1fYWN0aW9uIikgeworICAgICBpZiAoIWRlZmluZWQoZGVwcykpIHsKKyAgICAgICBk ZXBzID0gW10KKyAgICAgfQorLSAgICBkZXBzICs9IFsgIjpucG1fcHJlX2ZsaWdodF8iICsgdGFy Z2V0X25hbWUgXQorIAorICAgICBzY3JpcHQgPSAiLy9lbGVjdHJvbi9idWlsZC9ucG0tcnVuLnB5 IgorICAgICBhcmdzID0gWwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3Bh dGNoZXMvZWxlY3Ryb24tZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5wYXRjaCBiL3NyY3Br Z3MvZWxlY3Ryb24zMy9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLWV4Y2x1ZGUtY29udGVudC10ZXN0 LXBhdGNoZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAu LjFlMGYyMGUwYjBmMjFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjMzL2Zp bGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5wYXRjaApA QCAtMCwwICsxLDEwIEBACistLS0gZWxlY3Ryb24vc2NyaXB0L2FwcGx5X2FsbF9wYXRjaGVzLnB5 CTIwMjQtMDItMTQgMTk6MzU6MjYuMDAwMDAwMDAwICswMTAwCisrKysgLQkyMDI0LTAyLTE5IDEy OjU4OjM3LjgxODA3NTUyMiArMDEwMAorQEAgLTIyLDYgKzIyLDcgQEAKKyAgICAgcGF0Y2hfZGF0 YT1wYXRjaF9mcm9tX2RpcihwYXRjaF9kaXIpLAorICAgICByZXBvPXJlcG8sCisgICAgIHRocmVl d2F5PVRIUkVFV0FZLAorKyAgICBleGNsdWRlPVsndGhpcmRfcGFydHkvYmxpbmsvdG9vbHMvKion LCAndGVzdC9tanN1bml0LyoqJywgJ2NvbnRlbnQvdGVzdC8qKicsICd0ZXN0L2NjdGVzdC8qKics ICd0ZXN0L3VuaXQgIHRlc3RzLyoqJywgJ3RoaXJkX3BhcnR5L2JsaW5rL3dlYl90ZXN0cy8qKics ICcuZ2l0aWdub3JlJ10sCisgICApCisgCisgZGVmIGFwcGx5X2NvbmZpZyhjb25maWcpOgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjMzL2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tbm8tbmVl ZC1mb3ItaHVza3kucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9lbGVj dHJvbi1uby1uZWVkLWZvci1odXNreS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwMC4uMGIwNzQyNTRjNDNjYTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uMzMvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1uby1uZWVkLWZvci1odXNreS5wYXRj aApAQCAtMCwwICsxLDEwIEBACistLS0gYS9wYWNrYWdlLmpzb24JMjAyMi0wNy0wNiAxNzozMTo1 MC4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMjItMDctMDggMjM6MDQ6NDMuNjU0ODEyOTU3ICsw MjAwCitAQCAtOTgsNyArOTgsNiBAQAorICAgICAicHJlY29tbWl0IjogImxpbnQtc3RhZ2VkIiwK KyAgICAgInByZWluc3RhbGwiOiAibm9kZSAtZSAncHJvY2Vzcy5leGl0KDApJyIsCisgICAgICJw cmVwYWNrIjogImNoZWNrLWZvci1sZWFrcyIsCistICAgICJwcmVwYXJlIjogImh1c2t5IGluc3Rh bGwiLAorICAgICAicmVwbCI6ICJub2RlIC4vc2NyaXB0L3N0YXJ0LmpzIC0taW50ZXJhY3RpdmUi LAorICAgICAic3RhcnQiOiAibm9kZSAuL3NjcmlwdC9zdGFydC5qcyIsCisgICAgICJ0ZXN0Ijog Im5vZGUgLi9zY3JpcHQvc3BlYy1ydW5uZXIuanMiLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjMzL3RlbXBsYXRlIGIvc3JjcGtncy9lbGVjdHJvbjMzL3RlbXBsYXRlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi4xYjA4YmJlOGVjYWY1MQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24zMy90ZW1wbGF0ZQpAQCAtMCwwICsxLDQ5OSBAQAor IyBUZW1wbGF0ZSBmaWxlIGZvciAnZWxlY3Ryb24zMycKK3BrZ25hbWU9ZWxlY3Ryb24zMwordmVy c2lvbj0zMy4wLjIKK3JldmlzaW9uPTEKK19ub2RldmVyPTIwLjE4LjAKK19jaHJvbWl1bXZlcj0x MzAuMC42NzIzLjU5CithcmNocz0ieDg2XzY0KiBhYXJjaDY0KiIKK2NyZWF0ZV93cmtzcmM9eWVz CitidWlsZF93cmtzcmM9InNyYyIKK2hvc3RtYWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNsYW5nICJj bGFuZzE4IGxsZDE4IGxsdm0xOCBjb21waWxlci1ydCIpCisgcGtnLWNvbmZpZyBwZXJsIGdwZXJm IGJpc29uIG5pbmphIG5vZGVqcyBod2lkcyB3aGljaCBnaXQgeWFybiBqcQorIHB5dGhvbjMgbGli ZXBveHktZGV2ZWwgbGliZXZlbnQtZGV2ZWwgbGliZ2xpYi1kZXZlbCBydXN0IHJ1c3QtYmluZGdl biIKK21ha2VkZXBlbmRzPSJsaWJwbmctZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0 aWxzLWRldmVsCisgbGliWGktZGV2ZWwgbGliZ2NyeXB0LWRldmVsIGxpYmdub21lLWtleXJpbmct ZGV2ZWwgY3Vwcy1kZXZlbCBlbGZ1dGlscy1kZXZlbAorIGxpYlhjb21wb3NpdGUtZGV2ZWwgc3Bl ZWNoLWRpc3BhdGNoZXItZGV2ZWwgbGliWHJhbmRyLWRldmVsIG1pdC1rcmI1LWRldmVsCisgbGli WFNjcm5TYXZlci1kZXZlbCBhbHNhLWxpYi1kZXZlbCBsaWJkcm0tZGV2ZWwKKyBsaWJ4bWwyLWRl dmVsIGxpYnhzbHQtZGV2ZWwgJCh2b3B0X2lmIHB1bHNlYXVkaW8gcHVsc2VhdWRpby1kZXZlbCkg bGliZXhpZi1kZXZlbAorIGxpYlhjdXJzb3ItZGV2ZWwgbGliZmxhYy1kZXZlbCBzcGVleC1kZXZl bCBsaWJtdHAtZGV2ZWwgbGlid2VicC1kZXZlbAorIGxpYmpwZWctdHVyYm8tZGV2ZWwgbGliZXZl bnQtZGV2ZWwganNvbi1jLWRldmVsIG1pbml6aXAtZGV2ZWwganNvbmNwcC1kZXZlbAorIHpsaWIt ZGV2ZWwgbGliY2FwLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwgZm9udGNvbmZpZy1kZXZlbCBmcmVl dHlwZS1kZXZlbCBvcHVzLWRldmVsIGxpYmZmaS1kZXZlbAorICQodm9wdF9pZiBzbmRpbyBzbmRp by1kZXZlbCkgbGlidmEtZGV2ZWwgbGlidXYtZGV2ZWwgYy1hcmVzLWRldmVsIGxpYm5vdGlmeS1k ZXZlbAorICQodm9wdF9pZiBwaXBld2lyZSBwaXBld2lyZS1kZXZlbCkgd2F5bGFuZC1kZXZlbCBs aWJjdXJsLWRldmVsIGxpYnhzaG1mZW5jZS1kZXZlbCIKK3Nob3J0X2Rlc2M9IkNyb3NzIHBsYXRm b3JtIGFwcGxpY2F0aW9uIGZyYW1ld29yayBiYXNlZCBvbiB3ZWIgdGVjaG5vbG9naWVzIgorbWFp bnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKK2xpY2Vuc2U9IkJTRC0zLUNsYXVz ZSIKK2hvbWVwYWdlPSJodHRwczovL2VsZWN0cm9uanMub3JnIgorZGlzdGZpbGVzPSJodHRwczov L2dpdGh1Yi5jb20vZWxlY3Ryb24vZWxlY3Ryb24vYXJjaGl2ZS92JHZlcnNpb24udGFyLmd6PmVs ZWN0cm9uLSR7dmVyc2lvbn0udGFyLmd6CisgaHR0cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29n bGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9mZmljaWFsL2Nocm9taXVtLSRfY2hyb21pdW12 ZXIudGFyLnh6CisgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2FyY2hpdmUvdiRfbm9k ZXZlci50YXIuZ3o+bm9kZS0kX25vZGV2ZXIudGFyLmd6IgorY2hlY2tzdW09ImM2ZDNiZTE2OTk4 ZWUxZjkyMDIwMDc4ZTM5ZGQ1YzdlYTk4YTEyMjJkMmY2ODkxOWI1MzNlZjdmNTA3NTIxZmEKKyA5 MDQwMWJlOGFkY2Q2ZjU4MGRiNWM3MWVhODY1Yzk3ZGIwZTcxOWJhNDFmNDA2ZjU4NjlmYzdmNDRi ZDIwZTRmCisgNjUxYmI4MmY2YWYxODA4NDA3MDg5MzU1OTY0Mzc1OTE2NWNlMDUwYjU4MzlmODMw ZDRjYzA5ODEzMGQzYWQ4OSIKKworCitpZiBbICIkWEJQU19MSUJDIiA9IG11c2wgXTsgdGhlbgor CWhvc3RtYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitmaQorCitpZiBbICIkWEJQ U19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIG11c2wtbGVn YWN5LWNvbXBhdCIKK2ZpCisKK25vX2dlbmVyaWNfcGtnY29uZmlnX2xpbms9eWVzCitsaWIzMmRp c2FibGVkPXllcworCitidWlsZF9vcHRpb25zPSJjbGFuZyBsaWJjeHggZGVidWcgdmFhcGkgcHVs c2VhdWRpbyBzbmRpbyBwaXBld2lyZSBkcnVtYnJha2UiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImNsYW5nIGxpYmN4eCB2YWFwaSBwdWxzZWF1ZGlvIHBpcGV3aXJlIgorZGVzY19vcHRpb25fY2xh bmc9IlVzZSBjbGFuZyB0byBidWlsZCIKK2Rlc2Nfb3B0aW9uX2xpYmN4eD0iVXNlIGJ1bmRsZWQg bGliYysrIgorZGVzY19vcHRpb25fZGVidWc9IkJ1aWxkIHdpdGggZGVidWcgc3ltYm9scyIKK2Rl c2Nfb3B0aW9uX3BpcGV3aXJlPSJFbmFibGUgc3VwcG9ydCBmb3Igc2NyZWVuIHNoYXJpbmcgZm9y IFdlYlJUQyB2aWEgUGlwZVdpcmUiCitkZXNjX29wdGlvbl9kcnVtYnJha2U9IldlYkFzc2VtYmx5 IEludGVycHJldGVyIgorCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRl cGVuZHMrPSIgbGliWDExLWRldmVsIGxpYnhjYi1kZXZlbCBwY2l1dGlscy1kZXZlbCBsaWJYZXh0 LWRldmVsIGxpYmdsdm5kLWRldmVsCisJIGxpYmpwZWctdHVyYm8tZGV2ZWwgbGliWGktZGV2ZWwg bnNzLWRldmVsIGxpYnBuZy1kZXZlbCBsaWJ3ZWJwLWRldmVsCisJIGxpYnhtbDItZGV2ZWwgJCh2 b3B0X2lmIHB1bHNlYXVkaW8gcHVsc2VhdWRpby1kZXZlbCkgbGlieHNsdC1kZXZlbCBsaWJ4a2Jj b21tb24tZGV2ZWwKKwkgJCh2b3B0X2lmIHBpcGV3aXJlIHBpcGV3aXJlLWRldmVsKSBvcHVzLWRl dmVsIHBhbmdvLWRldmVsIGxpYnZhLWRldmVsCisJIGxpYmN1cmwtZGV2ZWwgbGliWHJhbmRyLWRl dmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgY3Vwcy1kZXZlbAorCSBtaXQta3JiNS1kZXZlbCBhbHNh LWxpYi1kZXZlbCBsaWJYZGFtYWdlLWRldmVsIGxpYmVwb3h5LWRldmVsIGxpYmV2ZGV2LWRldmVs CisJIGxpYmF2aWYtZGV2ZWwgbGliYW9tLWRldmVsIGxpYmRhdjFkLWRldmVsIGxpYmZsYWMtZGV2 ZWwKKwkgbGliZHJtLWRldmVsIGxpYmdibS1kZXZlbCIKK2ZpCisKK2lmIFsgISAiJFhCUFNfV09S RFNJWkUiID0gIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgXTsgdGhlbgorCWJyb2tlbj0iY2hyb21p dW0gKHY4KSBjYW4gb25seSBiZSBjcm9zcyBjb21waWxlZCBpZiB3b3JkIHNpemUgbWF0Y2hlcyIK K2ZpCisKK2lmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWNhc2UgIiR7WEJQU19UQVJHRVRf TUFDSElORX0iIGluCisJCSNhYXJjaDY0KikgOzsKKwkJKikgbm9jcm9zcz0iY2hyb21pdW0gY2Fu IG5vdCBiZSBjcm9zcyBjb21waWxlZCBmb3IgdGhpcyBhcmNoaXRlY3R1cmUiIDs7CisJZXNhYwor ZmkKKworX2J1aWxkdHlwZT1SZWxlYXNlCisKK19zZXR1cF9jbGFuZygpIHsKKwlleHBvcnQgQ0M9 Y2xhbmcKKwlleHBvcnQgQ1hYPWNsYW5nKysKKwlleHBvcnQgQVI9bGx2bS1hcgorCWV4cG9ydCBO TT1sbHZtLW5tCisJZXhwb3J0IENGTEFHUz0iLVduby11bmtub3duLXdhcm5pbmctb3B0aW9uIC1m ZGVidWctcHJlZml4LW1hcD0kd3Jrc3JjPS4iCisJZXhwb3J0IENYWEZMQUdTPSItV25vLXVua25v d24td2FybmluZy1vcHRpb24gLWZkZWJ1Zy1wcmVmaXgtbWFwPSR3cmtzcmM9LiIKKwlleHBvcnQg TERGTEFHUz0iIgorCWV4cG9ydCBCVUlMRF9DQz1jbGFuZworCWV4cG9ydCBCVUlMRF9DWFg9Y2xh bmcrKworCWV4cG9ydCBCVUlMRF9BUj1sbHZtLWFyCisJZXhwb3J0IEJVSUxEX05NPWxsdm0tbm0K KwlleHBvcnQgQlVJTERfQ0ZMQUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24iCisJZXhw b3J0IEJVSUxEX0NYWEZMQUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24iCisJaWYgW1sg LW4gIiRDUk9TU19CVUlMRCIgXV07IHRoZW4KKwkJQ0ZMQUdTKz0iIC0tc3lzcm9vdD0ke1hCUFNf Q1JPU1NfQkFTRX0iCisJCUNYWEZMQUdTKz0iIC0tc3lzcm9vdD0ke1hCUFNfQ1JPU1NfQkFTRX0i CisJCUxERkxBR1MrPSIgLS1zeXNyb290PSR7WEJQU19DUk9TU19CQVNFfSIKKwkJaWYgW1sgLXog IiRidWlsZF9vcHRpb25fbGliY3h4IiBdXTsgdGhlbgorCQkJbG9jYWwgZ2NjX3ZlcnNpb249JChn Y2MgLWR1bXB2ZXJzaW9uKQorCQkJbG9jYWwgY2xhbmdfdmVyc2lvbj0kKGNsYW5nIC1kdW1wdmVy c2lvbikKKwkJCUNGTEFHUys9IiAtLWdjYy10b29sY2hhaW49L3VzciIKKwkJCUNGTEFHUys9IiAt bm9zdGRpbmMiCisJCQlDRkxBR1MrPSIgLWlzeXN0ZW0gJHtYQlBTX0NST1NTX0JBU0V9L3Vzci9p bmNsdWRlIgorCQkJQ0ZMQUdTKz0iIC1pc3lzdGVtIC91c3IvbGliL2NsYW5nLyR7Y2xhbmdfdmVy c2lvbn0vaW5jbHVkZSIKKwkJCUNYWEZMQUdTKz0iIC0tZ2NjLXRvb2xjaGFpbj0vdXNyIgorCQkJ Q1hYRkxBR1MrPSIgLW5vc3RkaW5jKysiCisJCQlDWFhGTEFHUys9IiAtaXN5c3RlbSAke1hCUFNf Q1JPU1NfQkFTRX0vdXNyL2luY2x1ZGUvYysrLyR7Z2NjX3ZlcnNpb24lLip9IgorCQkJQ1hYRkxB R1MrPSIgLWlzeXN0ZW0gJHtYQlBTX0NST1NTX0JBU0V9L3Vzci9pbmNsdWRlL2MrKy8ke2djY192 ZXJzaW9uJS4qfS8ke1hCUFNfQ1JPU1NfVFJJUExFVH0iCisJCQlDWFhGTEFHUys9IiAtaXN5c3Rl bSAke1hCUFNfQ1JPU1NfQkFTRX0vdXNyL2luY2x1ZGUvYysrLyR7Z2NjX3ZlcnNpb24lLip9L2Jh Y2t3YXJkIgorCQkJQ1hYRkxBR1MrPSIgLW5vc3RkaW5jIgorCQkJQ1hYRkxBR1MrPSIgLWlzeXN0 ZW0gJHtYQlBTX0NST1NTX0JBU0V9L3Vzci9pbmNsdWRlIgorCQkJQ1hYRkxBR1MrPSIgLWlzeXN0 ZW0gL3Vzci9saWIvY2xhbmcvJHtjbGFuZ192ZXJzaW9ufS9pbmNsdWRlIgorCQkJTERGTEFHUys9 IiAtLWdjYy10b29sY2hhaW49L3VzciIKKwkJZmkKKwlmaQorfQorCitfc2V0dXBfdG9vbGNoYWlu KCkgeworCWlmIFsgIiRidWlsZF9vcHRpb25fY2xhbmciIF07IHRoZW4KKwkJX3NldHVwX2NsYW5n CisJZmkKK30KKworX2FwcGx5X3BhdGNoKCkgeworCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChi YXNlbmFtZSAkMikiCisKKwlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCisJCWlm IFsgLWYgIiR7Mn0uYXJncyIgXTsgdGhlbgorCQkJYXJncz0kKDwiJHsyfS5hcmdzIikKKwkJZmkK KwkJbXNnX25vcm1hbCAiJHBrZ3ZlcjogcGF0Y2hpbmc6ICR7cG5hbWV9LlxuIgorCQlwYXRjaCAt TiAkYXJncyAtaSAkMgorCQl0b3VjaCAuJHtwbmFtZX1fZG9uZQorCWZpCit9CisKK19naXRfYW0o KSB7CisJbG9jYWwgcG5hbWU9IiQoYmFzZW5hbWUgJDEpIgorCisJaWYgWyAhIC1mICIuJHtwbmFt ZX1fZG9uZSIgXTsgdGhlbgorCQltc2dfbm9ybWFsICIkcGtndmVyOiBwYXRjaGluZzogJHtwbmFt ZX0uXG4iCisJCWdpdCAtYyAndXNlci5uYW1lPUVsZWN0cm9uIGJ1aWxkJyAtYyAndXNlci5lbWFp bD1lbGVjdHJvbkBlYnVpbGQnIFwKKwkJCWFtIC0tZXhjbHVkZSAidGhpcmRfcGFydHkvYmxpbmsv dG9vbHMvKioiIFwKKwkJCS0tZXhjbHVkZSAidGVzdC9tanN1bml0LyoqIiAtLWV4Y2x1ZGUgImNv bnRlbnQvdGVzdC8qKiIgXAorCQkJLS1leGNsdWRlICJ0ZXN0L2NjdGVzdC8qKiIgLS1leGNsdWRl ICJ0ZXN0L3VuaXR0ZXN0cy8qKiIgXAorCQkJLS1leGNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay93 ZWJfdGVzdHMvKioiIFwKKwkJCS0tZXhjbHVkZSAiY2hyb21lL3Rlc3QvKioiIFwKKwkJCSQxCisJ CXRvdWNoIC4ke3BuYW1lfV9kb25lCisJZmkKK30KKworCitfZ2V0X2Nocm9taXVtX2FyY2goKSB7 CisJY2FzZSAiJDEiIGluCisJCXg4Nl82NCopIGVjaG8geDY0IDs7CisJCWk2ODYqKSBlY2hvIHg4 NiA7OworCQlhcm0qKSBlY2hvIGFybSA7OworCQlhYXJjaDY0KikgZWNobyBhcm02NCA7OworCQlw cGM2NCopIGVjaG8gcHBjNjQgOzsKKwkJcHBjKikgZWNobyBwcGMgOzsKKwkJbWlwc2VsKikgZWNo byBtaXBzZWwgOzsKKwkJbWlwcyopIGVjaG8gbWlwcyA7OworCQkqKSBtc2dfZXJyb3IgIiRwa2d2 ZXI6IGNhbm5vdCBiZSBjb21waWxlZCBmb3IgJHtYQlBTX1RBUkdFVF9NQUNISU5FfS5cbiIgOzsK Kwllc2FjCit9CisKK3Bvc3RfZXh0cmFjdCgpIHsKKwltdiBjaHJvbWl1bS0ke19jaHJvbWl1bXZl cn0gc3JjCisJbWtkaXIgLXAgc3JjL3RoaXJkX3BhcnR5LworCW12IG5vZGUtJF9ub2RldmVyIHNy Yy90aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlCisJbXYgZWxlY3Ryb24tJHt2ZXJzaW9ufSBzcmMv ZWxlY3Ryb24KK30KKworX2dpdF9pbml0KCkgeworCXJlcG9wYXRoPSIkMSIKKwljZCAiJHdya3Ny YyIvIiRyZXBvcGF0aCIKKwlnaXQgaW5pdCAtcQorCWdpdCBjb25maWcgImdjLmF1dG8iIDAKKwlp ZiBbICIkcmVwb3BhdGgiICE9ICJzcmMiIF07IHRoZW4KKwkJZWNobyAiLyR7cmVwb3BhdGgjc3Jj L30iID4+ICIkd3Jrc3JjLyRidWlsZF93cmtzcmMvLmdpdGlnbm9yZSIKKwlmaQorCWdpdCBhZGQg LgorCWdpdCAtYyAndXNlci5uYW1lPUVsZWN0cm9uIGJ1aWxkJyAtYyAndXNlci5lbWFpbD1lbGVj dHJvbkBlYnVpbGQnIFwKKwkJY29tbWl0IC1xIC1tICIuIiB8fCB0cnVlCisKK30KKworcG9zdF9w YXRjaCgpIHsKKwljZCAkd3Jrc3JjCisJZm9yIHggaW4gJEZJTEVTRElSL3BhdGNoZXMvKi5wYXRj aDsgZG8KKwkJY2FzZSAiJHt4IyMqL30iIGluCisJCQllbGVjdHJvbioucGF0Y2gpCisJCQkJY2Qg c3JjL2VsZWN0cm9uCisJCQkJX2FwcGx5X3BhdGNoIC1wMSAiJHgiCisJCQkJY2QgIiR3cmtzcmMi OzsKKwkJZXNhYworCWRvbmUKKworCSMgU2lnaCwgZWxlY3Ryb24gdXNlcyBnaXQgYW0uLi4KKwlp ZiBbICEgLWYgIi5lbGVjdHJvbl9wYXRjaGVzX2RvbmUiIF07IHRoZW4KKwltdiBzcmMvZWxlY3Ry b24vcGF0Y2hlcy9jb25maWcuanNvbiBjb25maWcuanNvbi5vbGQKKwlqcSAnbWFwKHNlbGVjdCgu cGF0Y2hfZGlyIHwgSU4oInNyYy9lbGVjdHJvbi9wYXRjaGVzL01hbnRsZSIsICJzcmMvZWxlY3Ry b24vcGF0Y2hlcy9SZWFjdGl2ZU9iakMiLAorCSJzcmMvZWxlY3Ryb24vcGF0Y2hlcy9zcXVpcnJl bC5tYWMiLCAic3JjL2VsZWN0cm9uL3BhdGNoZXMvbmFuIikgfCBub3QpKScgXAorCQljb25maWcu anNvbi5vbGQgPiBzcmMvZWxlY3Ryb24vcGF0Y2hlcy9jb25maWcuanNvbgorCisJanEgLXIgJy5b XS5yZXBvICB8IHNlbGVjdCguICE9ICJzcmMvdGhpcmRfcGFydHkvZW5nZmxvdy1yZWNsaWVudC1j b25maWdzIiknIFwKKwkJc3JjL2VsZWN0cm9uL3BhdGNoZXMvY29uZmlnLmpzb24gfCB3aGlsZSBy ZWFkIC1yIHJlcG9wYXRoOyBkbworCQlfZ2l0X2luaXQgJHJlcG9wYXRoCisJZG9uZQorCV9naXRf aW5pdCBzcmMvZWxlY3Ryb24KKwljZCAkd3Jrc3JjCisKKwlmb3IgeCBpbiAkRklMRVNESVIvY2hy b21pdW0tdXBzdHJlYW0tcGF0Y2hlcy8qLnBhdGNoOyBkbworCQlbIC1mICR4IF0gfHwgY29udGlu dWUKKwkJY2Qgc3JjCisJCV9naXRfYW0gIiR4IgorCQljZCAiJHdya3NyYyIKKwlkb25lCisKKwlw eXRob24zIHNyYy9lbGVjdHJvbi9zY3JpcHQvYXBwbHlfYWxsX3BhdGNoZXMucHkgc3JjL2VsZWN0 cm9uL3BhdGNoZXMvY29uZmlnLmpzb24KKwl0b3VjaCAuZWxlY3Ryb25fcGF0Y2hlc19kb25lCisJ ZmkKKworCWZvciB4IGluICRGSUxFU0RJUi9wYXRjaGVzLyo7IGRvCisJCWNhc2UgIiR7eCMjKi99 IiBpbgorCQkJY2hyb21pdW0qLnBhdGNoKQorCQkJCWNkIHNyYworCQkJCV9hcHBseV9wYXRjaCAt cDEgIiR4IgorCQkJCWNkICIkd3Jrc3JjIjs7CisJCWVzYWMKKwlkb25lCisKKwlpZiBbICIkWEJQ U19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCWZvciB4IGluICRGSUxFU0RJUi9tdXNs LXBhdGNoZXMvKjsgZG8KKwkJY2FzZSAiJHt4IyMqL30iIGluCisJCQljaHJvbWl1bSoucGF0Y2gp CisJCQkJY2Qgc3JjCisJCQkJX2FwcGx5X3BhdGNoIC1wMSAiJHgiCisJCQkJY2QgIiR3cmtzcmMi OzsKKwkJCWVsZWN0cm9uKi5wYXRjaCkKKwkJCQljZCBzcmMvZWxlY3Ryb24KKwkJCQlfYXBwbHlf cGF0Y2ggLXAxICIkeCIKKwkJCQljZCAiJHdya3NyYyI7OworCQllc2FjCisJZG9uZQorCWZpCisJ aWYgWyAiJGJ1aWxkX29wdGlvbl9zbmRpbyIgXTsgdGhlbgorCQlta2RpciAtcCAke3dya3NyY30v JHtidWlsZF93cmtzcmN9L21lZGlhL2F1ZGlvL3tzbmRpbyxvcGVuYnNkfQorCQljcCAke0ZJTEVT RElSfS9zbmRpby1maWxlcy9zbmRpb18qcHV0LiogXAorCQkJJHt3cmtzcmN9LyR7YnVpbGRfd3Jr c3JjfS9tZWRpYS9hdWRpby9zbmRpbworCQljcCAke0ZJTEVTRElSfS9zbmRpby1maWxlcy9hdWRp b19tYW5hZ2VyX29wZW5ic2QuKiBcCisJCQkke3dya3NyY30vJHtidWlsZF93cmtzcmN9L21lZGlh L2F1ZGlvL29wZW5ic2QKKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9zbmRpby1wYXRjaGVzLyou cGF0Y2g7IGRvCisJCQljZCBzcmMKKwkJCV9hcHBseV9wYXRjaCAtcDAgIiRmIgorCQkJY2QgIiR3 cmtzcmMiCisJCWRvbmUKKwlmaQorCXZzZWQgLWkgJ3MvT0ZGSUNJQUxfQlVJTEQvR09PR0xFX0NI Uk9NRV9CVUlMRC8nIFwKKwkJc3JjL3Rvb2xzL2dlbmVyYXRlX3NoaW1faGVhZGVycy9nZW5lcmF0 ZV9zaGltX2hlYWRlcnMucHkKK30KKworcHJlX2NvbmZpZ3VyZSgpIHsKKwljZCAiJHdya3NyYy8k YnVpbGRfd3Jrc3JjIgorCisJIyBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2EvY2hyb21pdW0u b3JnL2QvdG9waWMvY2hyb21pdW0tcGFja2FnZXJzLzlKWDFOMm5mNFBVL2Rpc2N1c3Npb24KKwl0 b3VjaCBjaHJvbWUvdGVzdC9kYXRhL3dlYnVpL2kxOG5fcHJvY2Vzc19jc3NfdGVzdC5odG1sCisJ IyBVc2UgdGhlIGZpbGUgYXQgcnVuIHRpbWUgaW5zdGVhZCBvZiBlZmZlY3RpdmVseSBjb21waWxp bmcgaXQgaW4KKwlzZWQgJ3N8Ly90aGlyZF9wYXJ0eS91c2JfaWRzL3VzYi5pZHN8L3Vzci9zaGFy ZS9od2RhdGEvdXNiLmlkc3xnJyBcCisJCS1pIHNlcnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL3Vz Yi9CVUlMRC5nbgorCisJbWtkaXIgLXAgdGhpcmRfcGFydHkvbm9kZS9saW51eC9ub2RlLWxpbnV4 LXg2NC9iaW4KKwlsbiAtc2YgL3Vzci9iaW4vbm9kZSB0aGlyZF9wYXJ0eS9ub2RlL2xpbnV4L25v ZGUtbGludXgteDY0L2Jpbi8KKwlybSAtZiB0aGlyZF9wYXJ0eS9kZXZ0b29scy1mcm9udGVuZC9z cmMvdGhpcmRfcGFydHkvZXNidWlsZC9lc2J1aWxkCisKKwkjIGNvbXBpbGUgZ24gZWFybHksIHNv IGl0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIGduaSBzdHVmZgorCW1zZ19ub3JtYWwgIkJvb3Rz dHJhcHBpbmcgR05cbiIKKwlDQz0iY2xhbmciIENYWD0iJHtDWFhfRk9SX0JVSUxEOi0kQ1hYfSIg TEQ9IiR7TERfRk9SX0JVSUxEOi0kTER9IiBcCisJQ0ZMQUdTPSIke0NGTEFHU19GT1JfQlVJTEQ6 LSRDRkxBR1N9IC1Xbm8tZXJyb3I9cmVkdW5kYW50LW1vdmUiIFwKKwlDWFhGTEFHUz0iJHtDWFhG TEFHU19GT1JfQlVJTEQ6LSRDWFhGTEFHU30gLVduby1lcnJvcj1yZWR1bmRhbnQtbW92ZSIgXAor CUxERkxBR1M9IiR7WEJQU19MREZMQUdTfSIgXAorCQlweXRob24zIHRvb2xzL2duL2Jvb3RzdHJh cC9ib290c3RyYXAucHkgLXMgLXYgLS1za2lwLWdlbmVyYXRlLWJ1aWxkZmlsZXMKKworCSMgcmV1 c2FibGUgc3lzdGVtIGxpYnJhcnkgc2V0dGluZ3MKKwkjIGxpYmN4eAorCSMgc25hcHB5IFN5c3Rl bSBzbmFwcHkgaXMgbGlua2VkIGFnYWluc3QgbGlic3RkYysrIGFuZCBub3QgQ1IgbGliY3h4CisJ IyBmZm1wZWcKKwlsb2NhbCB1c2Vfc3lzdGVtPSIKKwkJZmxhYworCQlmb250Y29uZmlnCisJCWZy ZWV0eXBlCisJCWxpYmRybQorCQlsaWJldmVudAorCQlsaWJqcGVnCisJCWxpYnBuZworCQlsaWJ3 ZWJwCisJCWxpYnhtbAorCQlsaWJ4c2x0CisJCW9wdXMKKwkJIgorCWZvciBfbGliIGluICR1c2Vf c3lzdGVtIGxpYmpwZWdfdHVyYm87IGRvCisJCW1zZ19ub3JtYWwgIlJlbW92aW5nIGJ1aWxkc2Ny aXB0cyBmb3Igc3lzdGVtIHByb3ZpZGVkICRfbGliXG4iCisJCWZpbmQgLXR5cGUgZiAtcGF0aCAi KnRoaXJkX3BhcnR5LyRfbGliLyoiIFwKKwkJCVwhIC1wYXRoICIqdGhpcmRfcGFydHkvJF9saWIv Y2hyb21pdW0vKiIgXAorCQkJXCEgLXBhdGggIip0aGlyZF9wYXJ0eS8kX2xpYi9nb29nbGUvKiIg XAorCQkJXCEgLXBhdGggJy4vYmFzZS90aGlyZF9wYXJ0eS9pY3UvKicgXAorCQkJXCEgLXBhdGgg Jy4vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2ZyZWV0eXBlL2luY2x1ZGUvcHN0YWJs ZXMuaCcgXAorCQkJXCEgLXJlZ2V4ICcuKlwuXChnblx8Z25pXHxpc29sYXRlXHxweVwpJyBcCisJ CQktZGVsZXRlCisJZG9uZQorCisKKwltc2dfbm9ybWFsICJSZXBsYWNpbmcgZ24gZmlsZXNcbiIK KwlweXRob24zIGJ1aWxkL2xpbnV4L3VuYnVuZGxlL3JlcGxhY2VfZ25fZmlsZXMucHkgXAorCQkt LXN5c3RlbS1saWJyYXJpZXMgJHVzZV9zeXN0ZW0KKwl0aGlyZF9wYXJ0eS9saWJhZGRyZXNzaW5w dXQvY2hyb21pdW0vdG9vbHMvdXBkYXRlLXN0cmluZ3MucHkKKworCSMgU2F0aXNmeSBzb21lIHNj cmlwdHMgdGhhdCB1c2UgZ2l0IGRlc2NyaWJlIHRvIGZpZ3VyZSBvdXQgdGhlIGVsZWN0cm9uIHZl cnNpb24KKwljZCAke3dya3NyY30vc3JjL2VsZWN0cm9uCisJZ2l0IHRhZyAtZiAidiR7dmVyc2lv bn0iCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlsb2NhbCB0YXJnZXRfYXJjaD0iJChfZ2V0X2No cm9taXVtX2FyY2ggJHtYQlBTX1RBUkdFVF9NQUNISU5FfSkiCisJbG9jYWwgaG9zdF9hcmNoPSIk KF9nZXRfY2hyb21pdW1fYXJjaCAke1hCUFNfTUFDSElORX0pIgorCWxvY2FsIGNvbmY9KCkKKwlj ZCB0aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVu CisJCWNvbmZfYXJncz0iIC0tZGVzdC1jcHU9JHt0YXJnZXRfYXJjaH0gLS1jcm9zcy1jb21waWxp bmciCisJZmkKKwkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIFwKKwkJLS1zaGFyZWQtemxpYiBc CisJCS0tc2hhcmVkLWxpYnV2IFwKKwkJLS1zaGFyZWQtb3BlbnNzbCBcCisJCS0tc2hhcmVkLWNh cmVzIFwKKwkJLS1vcGVuc3NsLXVzZS1kZWYtY2Etc3RvcmUgXAorCQktLXdpdGhvdXQtbnBtIFwK KwkJLS13aXRob3V0LWJ1bmRsZWQtdjggXAorCQkke2NvbmZfYXJnc30KKworCWNkICIkd3Jrc3Jj LyRidWlsZF93cmtzcmMiL2VsZWN0cm9uCisJeWFybiBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxl CisJY2QgIiR3cmtzcmMvJGJ1aWxkX3dya3NyYyIKKworCWxvY2FsIGNsYW5nX3ZlcnNpb249IiQo Y2xhbmcgLWR1bXB2ZXJzaW9uKSIKKwljb25mKz0oCisJCSdpbXBvcnQoIi8vZWxlY3Ryb24vYnVp bGQvYXJncy9yZWxlYXNlLmduIiknCisJCSJvdmVycmlkZV9lbGVjdHJvbl92ZXJzaW9uPVwiJHt2 ZXJzaW9ufVwiIgorCSkKKwljb25mKz0oCisJCSdlbmFibGVfbmFjbD1mYWxzZScKKworCQkndXNl X3N5c3Jvb3Q9ZmFsc2UnCisKKwkJJ2hvc3RfcGtnX2NvbmZpZz0iL3Vzci9iaW4vcGtnLWNvbmZp ZyInCisKKwkJImlzX2NsYW5nPSQodm9wdF9pZiBjbGFuZyB0cnVlIGZhbHNlKSIKKwkJInVzZV9s bGQ9JCh2b3B0X2lmIGNsYW5nIHRydWUgZmFsc2UpIgorCQknY2xhbmdfdXNlX2Nocm9tZV9wbHVn aW5zPWZhbHNlJworCQknY2xhbmdfYmFzZV9wYXRoPSIvdXNyIicKKwkJImNsYW5nX3ZlcnNpb249 XCIke2NsYW5nX3ZlcnNpb24lJS4qfVwiIgorCisJCSJ1c2VfY3VzdG9tX2xpYmN4eD0kKHZvcHRf aWYgbGliY3h4IHRydWUgZmFsc2UpIiAjIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJv amVjdC9pc3N1ZXMvNjE3MDUKKwkJJ2VuYWJsZV9ydXN0PXRydWUnCisJCSdydXN0X3N5c3Jvb3Rf YWJzb2x1dGU9Ii91c3IiJworCQkncnVzdF9iaW5kZ2VuX3Jvb3Q9Ii91c3IiJworCQkicnVzdGNf dmVyc2lvbj1cIiQocnVzdGMgLS12ZXJzaW9uKVwiIgorCisJCSMgaXNfZGVidWcgbWFrZXMgdGhl IGJ1aWxkIGEgZGVidWcgYnVpbGQsIGNoYW5nZXMgc29tZSB0aGluZ3MuCisJCSMgbWlnaHQgYmUg dXNlZnVsIGZvciByZWFsIGRlYnVnZ2luZyB2cyBqdXN0IGRlYnVnIHN5bWJvbHMuCisJCSJpc19k ZWJ1Zz1mYWxzZSIKKwkJImJsaW5rX3N5bWJvbF9sZXZlbD0kKHZvcHRfaWYgZGVidWcgMiAwKSIK KwkJInN5bWJvbF9sZXZlbD0kKHZvcHRfaWYgZGVidWcgMiAwKSIKKworCQknaWN1X3VzZV9kYXRh X2ZpbGU9dHJ1ZScKKworCQknZW5hYmxlX3dpZGV2aW5lPWZhbHNlJworCQknZW5hYmxlX2hhbmdv dXRfc2VydmljZXNfZXh0ZW5zaW9uPXRydWUnCisKKwkJJ3VzZV9zeXN0ZW1faGFyZmJ1eno9ZmFs c2UnCisJCSd1c2Vfc3lzdGVtX2xpYmZmaT10cnVlJworCisJCSd1c2VfcXQ9ZmFsc2UnCisKKwkJ J3VzZV9jdXBzPXRydWUnCisKKwkJInVzZV92YWFwaT0kKHZvcHRfaWYgdmFhcGkgdHJ1ZSBmYWxz ZSkiCisKKwkJInVzZV9wdWxzZWF1ZGlvPSQodm9wdF9pZiBwdWxzZWF1ZGlvIHRydWUgZmFsc2Up IgorCQkibGlua19wdWxzZWF1ZGlvPSQodm9wdF9pZiBwdWxzZWF1ZGlvIHRydWUgZmFsc2UpIgor CisJCSJydGNfdXNlX3BpcGV3aXJlPSQodm9wdF9pZiBwaXBld2lyZSB0cnVlIGZhbHNlKSIKKwor CQkidXNlX3NuZGlvPSQodm9wdF9pZiBzbmRpbyB0cnVlIGZhbHNlKSIKKworCQkidjhfZW5hYmxl X2RydW1icmFrZT0kKHZvcHRfaWYgZHJ1bWJyYWtlIHRydWUgZmFsc2UpIgorCisJCSMgQWx3YXlz IHN1cHBvcnQgcHJvcHJpZXRhcnkgY29kZWNzLgorCQkjIEVuYWJsZSBILjI2NCBzdXBwb3J0IGlu IGJ1bmRsZWQgZmZtcGVnLgorCQkncHJvcHJpZXRhcnlfY29kZWNzPXRydWUnCisJCSdmZm1wZWdf YnJhbmRpbmc9IkNocm9tZSInCisJCSdpc19jb21wb25lbnRfZmZtcGVnPWZhbHNlJworCisJCSMg TWFrZSBzdXJlIHRoYXQgLVdlcnJvciBkb2Vzbid0IGdldCBhZGRlZCB0byBDRkxBR1MgYnkgdGhl IGJ1aWxkIHN5c3RlbS4KKwkJIyBEZXBlbmRpbmcgb24gR0NDIHZlcnNpb24gdGhlIHdhcm5pbmdz IGFyZSBkaWZmZXJlbnQgYW5kIHdlIGRvbid0IHdhbnQKKwkJIyB0aGUgYnVpbGQgdG8gZmFpbCBi ZWNhdXNlIG9mIHRoYXQuCisJCSd0cmVhdF93YXJuaW5nc19hc19lcnJvcnM9ZmFsc2UnCisJCSdm YXRhbF9saW5rZXJfd2FybmluZ3M9ZmFsc2UnCisKKwkJIyBTYXZlIHNwYWNlIGJ5IHJlbW92aW5n IERMT0cgYW5kIERDSEVDSyBtZXNzYWdlcyAoYWJvdXQgNiUgcmVkdWN0aW9uKS4KKwkJIyAnbG9n Z2luZ19saWtlX29mZmljaWFsX2J1aWxkPXRydWUnCisJCSdkaXNhYmxlX2ZpZWxkdHJpYWxfdGVz dGluZ19jb25maWc9dHJ1ZScKKworCQknaXNfb2ZmaWNpYWxfYnVpbGQ9dHJ1ZScKKworCQkjIHNl Z2ZhdWx0cyB3aXRoIGxsdm0tMTIuMC4xCisJCSdpc19jZmk9ZmFsc2UnCisJCSd1c2VfdGhpbl9s dG89ZmFsc2UnCisJCSd1c2VfY2ZpX2ljYWxsPWZhbHNlJworCQknY2hyb21lX3Bnb19waGFzZT0w JworCSkKKworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWNv bmYrPSggJ2lzX211c2w9dHJ1ZScgKQorCWZpCisKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRo ZW4KKwkJY29uZis9KAorCQkJJ2N1c3RvbV90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xp bnV4L3VuYnVuZGxlOmRlZmF1bHQiJworCQkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xj aGFpbi9saW51eC91bmJ1bmRsZTpob3N0IicKKwkJCSd2OF9zbmFwc2hvdF90b29sY2hhaW49Ii8v YnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlOnY4X3NuYXBzaG90X2Nyb3NzIicKKwkJKQor CWVsc2UKKwkJY29uZis9KAorCQkJJ2N1c3RvbV90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWlu L2xpbnV4L3VuYnVuZGxlOmRlZmF1bHQiJworCQkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rv b2xjaGFpbi9saW51eC91bmJ1bmRsZTpkZWZhdWx0IicKKwkJKQorCWZpCisKKwljb25mKz0oCisJ CSJ0YXJnZXRfY3B1PVwiJHRhcmdldF9hcmNoXCIiCisJCSJob3N0X2NwdT1cIiRob3N0X2FyY2hc IiIKKwkpCisKKwlfc2V0dXBfdG9vbGNoYWluCisJbXNnX25vcm1hbCAiQ29uZmlndXJpbmcgYnVp bGRcbiIKKwlvdXQvJF9idWlsZHR5cGUvZ24gZ2VuIG91dC8kX2J1aWxkdHlwZSAtLWFyZ3M9IiR7 Y29uZlsqXX0iCit9CisKK2RvX2J1aWxkKCkgeworCSMgWFhYOiBuZWVkIGZvciBlcnJvcjogdGhl IG9wdGlvbiBgWmAgaXMgb25seSBhY2NlcHRlZCBvbiB0aGUgbmlnaHRseSBjb21waWxlcgorCWV4 cG9ydCBSVVNUQ19CT09UU1RSQVA9MQorCWV4cG9ydCBDQ0FDSEVfU0xPUFBJTkVTUz1pbmNsdWRl X2ZpbGVfbXRpbWUKKworCV9zZXR1cF90b29sY2hhaW4KKwltc2dfbm9ybWFsICJOaW5qYSB0dXJ0 bGVzIEdPIVxuIgorCW5pbmphICR7bWFrZWpvYnN9IC1DIG91dC8kX2J1aWxkdHlwZSBjaHJvbWl1 bV9saWNlbnNlcyBjb3B5X25vZGVfaGVhZGVycyB2ZXJzaW9uIGVsZWN0cm9uCit9CisKK2RvX2lu c3RhbGwoKSB7CisJdm1rZGlyIC91c3IvbGliLyRwa2duYW1lCisJdm1rZGlyIC91c3IvaW5jbHVk ZS8kcGtnbmFtZQorCisJZm9yIGYgaW4gb3V0LyRfYnVpbGR0eXBlLyouYmluIG91dC8kX2J1aWxk dHlwZS8qLnBhayBvdXQvJF9idWlsZHR5cGUvaWN1ZHRsLmRhdDsgZG8KKwkJdmluc3RhbGwgJGYg MDY0NCB1c3IvbGliLyRwa2duYW1lCisJZG9uZQorCXZpbnN0YWxsIG91dC8kX2J1aWxkdHlwZS9y ZXNvdXJjZXMvZGVmYXVsdF9hcHAuYXNhciAwNjQ0IHVzci9saWIvJHBrZ25hbWUvcmVzb3VyY2Vz CisKKworCXZjb3B5IG91dC8kX2J1aWxkdHlwZS9sb2NhbGVzIHVzci9saWIvJHBrZ25hbWUKKwly bSAtdiAke0RFU1RESVJ9L3Vzci9saWIvJHBrZ25hbWUvbG9jYWxlcy8qLnBhay5pbmZvCisKKwl2 aW5zdGFsbCBvdXQvJF9idWlsZHR5cGUvZWxlY3Ryb24gMDc1NSB1c3IvbGliLyRwa2duYW1lCisJ dmluc3RhbGwgb3V0LyRfYnVpbGR0eXBlL2Nocm9tZV9jcmFzaHBhZF9oYW5kbGVyIDA3NTUgdXNy L2xpYi8kcGtnbmFtZQorCXZpbnN0YWxsIG91dC8kX2J1aWxkdHlwZS9saWJFR0wuc28gMDc1NSB1 c3IvbGliLyRwa2duYW1lCisJdmluc3RhbGwgb3V0LyRfYnVpbGR0eXBlL2xpYkdMRVN2Mi5zbyAw NzU1IHVzci9saWIvJHBrZ25hbWUKKwl2aW5zdGFsbCBvdXQvJF9idWlsZHR5cGUvbGlidnVsa2Fu LnNvLjEgMDc1NSB1c3IvbGliLyRwa2duYW1lCisJdmluc3RhbGwgb3V0LyRfYnVpbGR0eXBlL2xp YnZrX3N3aWZ0c2hhZGVyLnNvIDA3NTUgdXNyL2xpYi8kcGtnbmFtZQorCXZpbnN0YWxsIG91dC8k X2J1aWxkdHlwZS92a19zd2lmdHNoYWRlcl9pY2QuanNvbiAwNjQ0IHVzci9saWIvJHBrZ25hbWUK Kwl2aW5zdGFsbCBvdXQvJF9idWlsZHR5cGUvdmVyc2lvbiAwNjQ0IHVzci9saWIvJHBrZ25hbWUK Kwl2aW5zdGFsbCBvdXQvJF9idWlsZHR5cGUvTElDRU5TRVMuY2hyb21pdW0uaHRtbCAwNjQ0IHVz ci9saWIvJHBrZ25hbWUKKworCXZjb3B5IG91dC8kX2J1aWxkdHlwZS9nZW4vbm9kZV9oZWFkZXJz IHVzci9pbmNsdWRlLyRwa2duYW1lCisJbG4gLXN2IC91c3IvaW5jbHVkZS8kcGtnbmFtZS9ub2Rl X2hlYWRlcnMvaW5jbHVkZS9ub2RlICR7REVTVERJUn0vdXNyL2luY2x1ZGUvJHBrZ25hbWUvbm9k ZQorCisJdmxpY2Vuc2UgJHt3cmtzcmN9L3NyYy9MSUNFTlNFIGNocm9taXVtLkxJQ0VOU0UKKwl2 bGljZW5zZSAke3dya3NyY30vc3JjL2VsZWN0cm9uL0xJQ0VOU0UgZWxlY3Ryb24uTElDRU5TRQor CXZsaWNlbnNlICR7d3Jrc3JjfS9zcmMvdGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZS9MSUNFTlNF IG5vZGUuTElDRU5TRQorCisJdm1rZGlyIC91c3IvYmluCisJbG4gLXMgLi4vbGliLyRwa2duYW1l L2VsZWN0cm9uICIkREVTVERJUiIvdXNyL2Jpbi8kcGtnbmFtZQorfQorCitlbGVjdHJvbjMzLWRl dmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFs bCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Vs ZWN0cm9uMzMvdXBkYXRlIGIvc3JjcGtncy9lbGVjdHJvbjMzL3VwZGF0ZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uM2FmOGU1OGI1MzU4MGQKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMzMvdXBkYXRlCkBAIC0wLDAgKzEsMiBAQAorc2l0ZT1o dHRwczovL3d3dy5lbGVjdHJvbmpzLm9yZy9yZWxlYXNlcy9zdGFibGU/dmVyc2lvbj0ke3ZlcnNp b24lJS4qfQorcGF0dGVybj0ndGFnL3ZcS1tcZFwuXSsoPz0iKScKCkZyb20gZTEyYmYzN2I2YzJi MjdkYTc2NWVkN2E3NzQ1YmQ0MTNiYTE1OTQ2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQWxleCBMb2hyIDxhbGV4dGhrbG9zc0B3ZWIuZGU+CkRhdGU6IE1vbiwgMTkgQXVnIDIwMjQg MTI6NDE6MjMgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvMl0gdnNjb2RlOiB1cGRhdGUgdG8gMS45 NS4wCgordXBkYXRlIHRvIGVsZWN0cm9uMzMKLS0tCiAuLi4vcGF0Y2hlcy9kaXNhYmxlLWNyYXNo LXJlcG9ydGVyLnBhdGNoICAgICAgfCAyNSArKy0tLS0tLQogc3JjcGtncy92c2NvZGUvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgIHwgNTggKysrKysrKysrKysrLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3ZzY29kZS9wYXRjaGVzL2Rpc2FibGUtY3Jhc2gtcmVwb3J0ZXIucGF0Y2ggYi9z cmNwa2dzL3ZzY29kZS9wYXRjaGVzL2Rpc2FibGUtY3Jhc2gtcmVwb3J0ZXIucGF0Y2gKaW5kZXgg NTc5MDAxZDc0ODUxMjUuLjBiMzAwY2VmODM4NWQyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZzY29k ZS9wYXRjaGVzL2Rpc2FibGUtY3Jhc2gtcmVwb3J0ZXIucGF0Y2gKKysrIGIvc3JjcGtncy92c2Nv ZGUvcGF0Y2hlcy9kaXNhYmxlLWNyYXNoLXJlcG9ydGVyLnBhdGNoCkBAIC0xLDIzICsxLDggQEAK LUZyb20gYWZhMjA2ZGM0NjYwNjZjM2QyNzNkZmM4NzkxMDM3MDA1MDViM2Q3YiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IEpvc2h1YSBTdHJvYmwgPGpvc2h1YUBzdHJlYW1iaXRzLmlv PgotRGF0ZTogU3VuLCAyMiBBdWcgMjAyMSAxNDowMjowNSArMDMwMAotU3ViamVjdDogW1BBVENI IDEvMV0gRGlzYWJsZSBjcmFzaCByZXBvcnRlciBzaW5jZSBNaWNyb3NvZnQgcmVmdXNlcyB0byBm aXgKLSB0aGlzIHVwc3RyZWFtLgotCi1VbmZvcnR1bmF0ZWx5IGEgUFIgc3VibWl0dGVkIGJ5IGEg dGhpcmQtcGFydHkgd2FzIHJlamVjdGVkIGJ5IE1pY3Jvc29mdCwgd2hpY2ggd291bGQgY2hhbmdl IHRoZSBkZWZhdWx0IGZvciBjcmFzaCByZXBvcnRpbmcgZnJvbSB0cnVlIHRvIGZhbHNlIGFuZCBt b3ZlIHRoZSB0ZWxlbWV0cnkgY29uZmlndXJhdGlvbiB0byBlbnN1cmUgY3Jhc2ggcmVwb3J0aW5n IHdhcyBub3QgYmVpbmcgZm9yY2VkIG9uLCBwbGFjZWQgaW4gdGhlIGFyZ3YuanNvbiwgYW5kIGNh dXNlIGEgY3Jhc2ggd2hlbiBpbXByb3Blcmx5IHNldC4KLQotU28sIGRpc2FibGUgaXQgZW50aXJl bHkuIE5vIGNvb2tpZXMgZm9yIHlvdSwgVmlzdWFsIFN0dWRpbyBDb2RlIHRlYW0uCi0tLS0KLSBz cmMvYm9vdHN0cmFwLWZvcmsuanMgICAgICAgICAgICB8ICAzIC0tLQotIHNyYy9tYWluLmpzICAg ICAgICAgICAgICAgICAgICAgIHwgMTYgLS0tLS0tLS0tLS0tLS0tLQotIHNyYy92cy9jb2RlL2Vs ZWN0cm9uLW1haW4vYXBwLnRzIHwgIDIgKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAyMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9tYWluLmpzIGIvc3JjL21h aW4uanMKLWluZGV4IGY3ZTZlNDlhOTY3Li44ODUxM2FmNmRlYyAxMDA2NDQKLS0tLSBhL3NyYy9t YWluLmpzCi0rKysgYi9zcmMvbWFpbi5qcwotQEAgLTQ2LDIxICs0Niw2IEBAIGNvbnN0IGFyZ3ZD b25maWcgPSBjb25maWd1cmVDb21tYW5kbGluZVN3aXRjaGVzU3luYyhhcmdzKTsKK2RpZmYgLS1n aXQgYS9zcmMvbWFpbi50cyBiL3NyYy9tYWluLnRzCitpbmRleCBmZjlhNWU4OTI5Ni4uODA1YmVl ODcxY2QgMTAwNjQ0CistLS0gYS9zcmMvbWFpbi50cworKysrIGIvc3JjL21haW4udHMKK0BAIC03 MiwyMSArNzIsNiBAQCBjb25zdCBjb2RlQ2FjaGVQYXRoID0gZ2V0Q29kZUNhY2hlUGF0aCgpOwog IC8vIERpc2FibGUgZGVmYXVsdCBtZW51IChodHRwczovL2dpdGh1Yi5jb20vZWxlY3Ryb24vZWxl Y3Ryb24vaXNzdWVzLzM1NTEyKQogIE1lbnUuc2V0QXBwbGljYXRpb25NZW51KG51bGwpOwogIApk aWZmIC0tZ2l0IGEvc3JjcGtncy92c2NvZGUvdGVtcGxhdGUgYi9zcmNwa2dzL3ZzY29kZS90ZW1w bGF0ZQppbmRleCA1N2ViNjgwM2E4ZTYwNC4uNDY0MDlhMjQ0NjA5OTIgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvdnNjb2RlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdnNjb2RlL3RlbXBsYXRlCkBAIC0x LDE4ICsxLDE4IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd2c2NvZGUnCiBwa2duYW1lPXZzY29k ZQotdmVyc2lvbj0xLjkxLjEKK3ZlcnNpb249MS45NS4wCiByZXZpc2lvbj0xCi1fZWxlY3Ryb252 ZXI9MjQuMy4wCi1fbnBtdmVyPTguNi4wCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcHl0 aG9uMyBweXRob24zLXNldHVwdG9vbHMgbm9kZWpzIHlhcm4gdGFyIGdpdCByaXBncmVwIgotbWFr ZWRlcGVuZHM9ImxpYnhrYmZpbGUtZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnhtbDItZGV2ZWwg bWl0LWtyYjUtZGV2ZWwgbmN1cnNlcy1kZXZlbCBlbGVjdHJvbjI0IgotZGVwZW5kcz0ibGliWHRz dCBuY3Vyc2VzIG5zcyB4ZGctdXRpbHMgcmlwZ3JlcCBlbGVjdHJvbjI0IgorX2VsZWN0cm9udmVy PTMzLjAuMgorX25wbXZlcj0xMC44LjMKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBweXRo b24zIHB5dGhvbjMtc2V0dXB0b29scyBub2RlanMgdGFyIGdpdCByaXBncmVwIgorbWFrZWRlcGVu ZHM9ImxpYnhrYmZpbGUtZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnhtbDItZGV2ZWwgbWl0LWty YjUtZGV2ZWwgbm9kZWpzLWRldmVsIG5jdXJzZXMtZGV2ZWwgZWxlY3Ryb24zMy1kZXZlbCIKK2Rl cGVuZHM9ImxpYlh0c3QgbmN1cnNlcyBuc3MgeGRnLXV0aWxzIHJpcGdyZXAgZWxlY3Ryb24zMyIK IHNob3J0X2Rlc2M9Ik1pY3Jvc29mdCBDb2RlIGZvciBMaW51eCIKIG1haW50YWluZXI9InNoaXpv bmljIDxyZWFsdGlhekBnbWFpbC5jb20+LCBBbGV4IExvaHIgPGFsZXh0aGtsb3NzQHdlYi5kZT4i CiBsaWNlbnNlPSJNSVQiCiBob21lcGFnZT0iaHR0cHM6Ly9jb2RlLnZpc3VhbHN0dWRpby5jb20v IgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L3ZzY29kZS9hcmNoaXZl L3JlZnMvdGFncy8ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWQyZWQ3MjZkZDM0ZDJlOGU3 MWQ0MGIwOWMwZWE2NDhiZjliMzdiMTU5ODJiMzlkZGRjYjcwZDBjYmZjZGI0NWUKK2NoZWNrc3Vt PTU1OWUzMTgxZGIxNWZiMWI0NjNhOGEzODZhN2IzYTgyMzE1NjQyYjQwZTZmNDk1NjVjNzRjNDY5 N2VmMjI0NTcKIG5vY3Jvc3M9eWVzICMgeDY0IGJ1aWxkIGRvZXMgbm90IGN1dCBpdCwgaXQgY29u dGFpbnMgbmF0aXZlIGNvZGUKIAogaWYgWyAiJFhCUFNfVEFSR0VUX1dPUkRTSVpFIiA9ICIzMiIg XTsgdGhlbgpAQCAtMjQsNyArMjQsNyBAQCBmaQogZXhwb3J0IEVMRUNUUk9OX1NLSVBfQklOQVJZ X0RPV05MT0FEPTEKIAogZG9fY29uZmlndXJlKCkgewotCSMgVXNlIHlhcm4gdG8gaW5zdGFsbCBk ZXBlbmRlbmNpZXMKKwkjIFVzZSBucG0gdG8gaW5zdGFsbCBkZXBlbmRlbmNpZXMKIAllY2hvICIi ID4gYnVpbGQvbnBtL3ByZWluc3RhbGwuanMKIAogCSMgcmVkaXJlY3QgdGVsZW1ldHJ5IHVybHMg dG8gMC4wLjAuMApAQCAtMzQsMTcgKzM0LDI1IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAlncmVwIC1y bCAtLWV4Y2x1ZGUtZGlyPS5naXQgLUUgJF9URUxFTUVUUllfVVJMUyB8IHhhcmdzIHNlZCAtaSAt RSAkX1JFUExBQ0VNRU5UCiAKIAkjIHNldCB1c2VkIGVsZWN0cm9uIHZlcnNpb24KLQl2c2VkIC1l ICJzL150YXJnZXQgLiovdGFyZ2V0IFwiJHtfZWxlY3Ryb252ZXJ9XCIvIiAtaSAueWFybnJjCisJ dnNlZCAtZSAicy9edGFyZ2V0PVwiLipcIi90YXJnZXQ9XCIke19lbGVjdHJvbnZlcn1cIi8iIC1p IC5ucG1yYwogCiAJIyBAdnNjb2RlL3JpcGdyZXAgYXR0ZW1wdHMgdG8gaW5zdGFsbCBhbiBvd24g dmVyc2lvbiBvZiByaXBncmVwIGFuZCBwcm92aWRlcyBhIHBhdGgKIAkjIHdlIHdhbnQgdG8gdXNl IG91ciBvd24gdmVyc2lvbiBpbnN0ZWFkLCBzbyBhbGwgd2UgbmVlZCBpcyB0aGUgZml4ZWQgcGF0 aCAoL2Jpbi9yZykKIAkjIHJlbW92ZSBAdnNjb2RlL3JpcGdyZXAgZnJvbSBhbGwgcGFja2FnZS5q c29uIGZpbGVzIGl0IGlzIGluOgogCV9QQUNLQUdFX1BBVFRFUk49IlwiQHZzY29kZS5yaXBncmVw XCI6IgogCWdyZXAgLXJsIC0tZXhjbHVkZS1kaXI9LmdpdCAtRSAkX1BBQ0tBR0VfUEFUVEVSTiB8 IHhhcmdzIHNlZCAtaSAtRSAiLyR7X1BBQ0tBR0VfUEFUVEVSTn0vZCIKKwkjIHJlcGxhY2UgcmVx dWlyZSB3aXRoIGZpeGVkIHBhdGgKKwlfUkVRVUlSRV9QQVRURVJOPSJyZXF1aXJlLi5AdnNjb2Rl LnJpcGdyZXAuLiIKKwlfUkVRVUlSRV9SRVBMQUNFTUVOVD0icy8ke19SRVFVSVJFX1BBVFRFUk59 L3sgcmdQYXRoOiAnXC9iaW5cL3JnJyB9LyIKKwlncmVwIC1ybCAtLWV4Y2x1ZGUtZGlyPS5naXQg LUUgIiRfUkVRVUlSRV9QQVRURVJOIiB8IHhhcmdzIHNlZCAtaSAtRSAiJF9SRVFVSVJFX1JFUExB Q0VNRU5UIgogCSMgcmVwbGFjZSBwYXRoIGltcG9ydCB3aXRoIGZpeGVkIHBhdGg6CiAJX0lNUE9S VF9QQVRURVJOPSJpbXBvcnQuKmZyb20gJ0B2c2NvZGUucmlwZ3JlcCc7IgogCV9JTVBPUlRfUkVQ TEFDRU1FTlQ9InMvJHtfSU1QT1JUX1BBVFRFUk59L2NvbnN0IHJnUGF0aCA9ICdcL2Jpblwvcmcn Oy8iCiAJZ3JlcCAtcmwgLS1leGNsdWRlLWRpcj0uZ2l0IC1FICIkX0lNUE9SVF9QQVRURVJOIiB8 IHhhcmdzIHNlZCAtaSAtRSAiJF9JTVBPUlRfUkVQTEFDRU1FTlQiCisJIyByZXBsYWNlIGF3YWl0 IGltcG9ydCB3aXRoIGZpeGVkIHBhdGg6CisJX0FXQUlUX0lNUE9SVF9QQVRURVJOPSJhd2FpdCBp bXBvcnQuJ0B2c2NvZGUucmlwZ3JlcCcuIgorCV9BV0FJVF9JTVBPUlRfUkVQTEFDRU1FTlQ9InMv JHtfQVdBSVRfSU1QT1JUX1BBVFRFUk59L3sgcmdQYXRoOiAnXC9iaW5cL3JnJyB9LyIKKwlncmVw IC1ybCAtLWV4Y2x1ZGUtZGlyPS5naXQgLUUgIiRfQVdBSVRfSU1QT1JUX1BBVFRFUk4iIHwgeGFy Z3Mgc2VkIC1pIC1FICIkX0FXQUlUX0lNUE9SVF9SRVBMQUNFTUVOVCIKIH0KIAogZG9fYnVpbGQo KSB7CkBAIC01OCwyNiArNjYsMzYgQEAgZG9fYnVpbGQoKSB7CiAKIAlleHBvcnQgTk9ERV9PUFRJ T05TPSIke19tZW1fbGltaXR9IgogCi0JL3Vzci9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbm9k ZS1neXAtYmluL25vZGUtZ3lwIGluc3RhbGwgXAotCS0tdGFyZ2V0PSRfZWxlY3Ryb252ZXIgXAot CS0tdGFyYmFsbD0vdXNyL2luY2x1ZGUvZWxlY3Ryb24ke19lbGVjdHJvbnZlciUlLip9L25vZGVf aGVhZGVycy50YXIuZ3oKKwkjIG5vZGUtZ3lwIG5vIGxvbmdlciBuZWVkZWQ/CisJIy91c3IvbGli L25vZGVfbW9kdWxlcy9ucG0vYmluL25vZGUtZ3lwLWJpbi9ub2RlLWd5cCBpbnN0YWxsIFwKKwkj LS10YXJnZXQ9JF9lbGVjdHJvbnZlciBcCisJIy0tbm9kZS1kaXI9L3Vzci9pbmNsdWRlL2VsZWN0 cm9uJHtfZWxlY3Ryb252ZXIlJS4qfS9ub2RlX2hlYWRlcnMKIAogCSMgaWdub3JlIG5vZGVqcyB2 ZXJzaW9uIGNoZWNrcywgd2UgY2FuIG5vdCBwYXNzIGl0IGFzIGFuIGFyZ3VtZW50IHRvCi0JIyB5 YXJuIGluc3RhbGwgYmVjYXVzZSBpdCBkb2Vzbid0IGluaGVyaXQgcHJvcGVybHkKLQllY2hvICJp Z25vcmUtZW5naW5lcyB0cnVlIiA+PiAueWFybnJjCisJIyBucG0gaW5zdGFsbCBiZWNhdXNlIGl0 IGRvZXNuJ3QgaW5oZXJpdCBwcm9wZXJseQorCWVjaG8gImlnbm9yZS1lbmdpbmVzPXRydWUiID4+ IC5ucG1yYwogCi0JeWFybiBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlIC0tYXJjaD14NjQKKwkj IGFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcyB0aGF0IHdlcmUgbGVmdCBvdmVyIGluIHRoZSBwcmUt cmVsZWFzZSB2ZXJzaW9uIG9mIFRTIHVzZWQgaGVyZQorCW5wbSBpbnN0YWxsIC0tc2F2ZS1kZXYg QGJhemVsL2JhemVsaXNrQDEuMjIuMCBAYmF6ZWwvY29uY2F0anNANS44LjEga2FybWEtY2hyb21l LWxhdW5jaGVyQDMuMi4wIGthcm1hLWZpcmVmb3gtbGF1bmNoZXJAMi4xLjMga2FybWEtamFzbWlu ZUA1LjEuMCBrYXJtYS1qdW5pdC1yZXBvcnRlckAyLjAuMSBrYXJtYS1yZXF1aXJlanNAMS4xLjAg a2FybWEtc291cmNlbWFwLWxvYWRlckAwLjQuMCBrYXJtYUA2LjQuNCByZXF1aXJlanNAMi4zLjcK IAotICAjIHBhdGNoIG5vZGUgZnMgd2l0aCBncmFjZWZ1bC1mcyB0byBhdm9pZCB1c2luZyB0b28g bWFueSBmaWxlIGRlc2NyaXB0b3JzCi0JeWFybiBhZGQgLS1kZXYgZ3JhY2VmdWwtZnNANC4yLjEx Ci0JZWNobyAicmVxdWlyZSgnZ3JhY2VmdWwtZnMnKS5ncmFjZWZ1bGlmeShyZXF1aXJlKCdmcycp KTsiID4gJHt3cmtzcmN9L3VzZS1ncmFjZWZ1bC1mcy5qcwotCWV4cG9ydCBOT0RFX09QVElPTlM9 IiR7X21lbV9saW1pdH0gLS1yZXF1aXJlICR7d3Jrc3JjfS91c2UtZ3JhY2VmdWwtZnMuanMiCisJ IyB1cGRhdGUgYSBicm9rZW4gdHMgZGVwZW5kZW5jeSB0byBvbmUgdGhhdCBpcyBzdXBwb3NlZCB0 byB3b3JrCisJbnBtIGluc3RhbGwgLS1zYXZlLWRldiB0eXBlc2NyaXB0QDUuNy4wLWJldGEKKwor CW5wbSBjaQorCisJIyBwYXRjaCBub2RlIGZzIHdpdGggZ3JhY2VmdWwtZnMgdG8gYXZvaWQgdXNp bmcgdG9vIG1hbnkgZmlsZSBkZXNjcmlwdG9ycworCW5wbSBpbnN0YWxsIC0tc2F2ZS1kZXYgZ3Jh Y2VmdWwtZnNANC4yLjExCisJZWNobyAiKGF3YWl0IGltcG9ydCgnZ3JhY2VmdWwtZnMnKSkuZ3Jh Y2VmdWxpZnkoYXdhaXQgaW1wb3J0KCdub2RlOmZzJyk7IiA+ICR7d3Jrc3JjfS91c2UtZ3JhY2Vm dWwtZnMubWpzCisJZXhwb3J0IE5PREVfT1BUSU9OUz0iJHtfbWVtX2xpbWl0fSAtLXJlcXVpcmUg JHt3cmtzcmN9L3VzZS1ncmFjZWZ1bC1mcy5tanMiCiAKIAkjIGRvIG5vdCBjaGVja3N1bSBlbGVj dHJvbiwgc2luY2Ugd2UncmUgdXNpbmcgb3VyIG93biBidWlsZAogCXZzZWQgLWUgInMvdmFsaWRh dGVDaGVja3N1bTogdHJ1ZS92YWxpZGF0ZUNoZWNrc3VtOiBmYWxzZS9nIiAtaSBidWlsZC9saWIv ZWxlY3Ryb24uKnMKIAorCSMgbnBtIGxzIC0tYWxsIHRocm93cyBFTFNQUk9CTEVNUywgYnV0IHdl IGNhbiBtYWtlIGRvIHcvbyAtLWFsbAorCXZzZWQgLWUgInMvbnBtIGxzIC0tYWxsL25wbSBscy9n IiAtaSBidWlsZC9saWIvZGVwZW5kZW5jaWVzLipzCisKIAlleHBvcnQgQ0ZMQUdTPSIkQ0ZMQUdT IC1JL3Vzci9pbmNsdWRlL25vZGUiCi0JeWFybiBydW4gZ3VscCB2c2NvZGUtbGludXgteDY0LW1p bgorCW5wbSBydW4gZ3VscCB2c2NvZGUtbGludXgteDY0LW1pbgogfQogCiBkb19pbnN0YWxsKCkg ewo= --===============7367620413388938952==--