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.9 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE,URIBL_SBL_A autolearn=ham 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 2BBB424F88 for ; Tue, 13 Feb 2024 10:25:02 +0100 (CET) Content-Type: multipart/mixed; boundary="===============1057702484096055038==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_electron28-28=2E2=2E2?= To: ml@inbox.vuxu.org From: Johnnynator Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 13 Feb 2024 10:25:02 +0100 List-Id: Message-Id: <20240213092502.2BBB424F88@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============1057702484096055038== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgSm9obm55bmF0b3IgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0pvaG5ueW5hdG9yL3ZvaWQtcGFja2FnZXMgZWxlY3Ryb24yOApodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDg2OTAKCk5ldyBwYWNrYWdlOiBlbGVjdHJv bjI4LTI4LjIuMgojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5n ZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBuZXcg cGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3BhY2thZ2UgcmVxdWlyZW1lbnRzXShodHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElO Ry5tZCNwYWNrYWdlLXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQoNCjwhLS0gTm90ZTog SWYgdGhlIGJ1aWxkIGlzIGxpa2VseSB0byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2Ug YWRkIGNpIHNraXAgdGFnIGFzIGRlc2NyaWJlZCBpbg0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91 cy1pbnRlZ3JhdGlvbg0KYW5kIHRlc3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlm IHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlv biBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4NCi0tPg0KDQojIyMjIExvY2FsIGJ1aWxk IHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRl Y3R1cmUsIGB4ODZfNjQsYCBgeDg2XzY0LW11c2xgDQo8IS0tIA0KLSBJIGJ1aWx0IHRoaXMgUFIg bG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3Nz YnVpbGRzKToNCiAgLSBhYXJjaDY0LW11c2wNCiAgLSBhcm12N2wNCiAgLSBhcm12NmwtbXVzbA0K LS0+DQoNCltjaSBza2lwXQ0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDg2OTAucGF0Y2ggaXMgYXR0YWNoZWQ= --===============1057702484096055038== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-electron28-48690.patch" RnJvbSBlOTRlODIxYjdhM2QwNzVlMDY1ZTEwYTI5ODllYTQ5ODgzNDRiYjBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIDxtZUBqb2hubnluYXRvci5kZXY+CkRhdGU6IFR1ZSwg MTMgRmViIDIwMjQgMTA6MTg6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIXSBOZXcgcGFja2FnZTog ZWxlY3Ryb24yOC0yOC4yLjIKCi0tLQogc3JjcGtncy9lbGVjdHJvbjI4LWRldmVsICAgICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIC4uLi9jaHJvbWl1bS1kaXNhYmxlLWRuc19jb25maWdfc2Vy dmljZS5wYXRjaCB8ICAxNSArCiAuLi4vbXVzbC1wYXRjaGVzL2Nocm9taXVtLWxpYmMrKy1tdXNs LnBhdGNoICAgfCAgMTIgKwogLi4uL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNhbmRib3gu cGF0Y2ggIHwgMTI1ICsrKwogLi4uL2Nocm9taXVtLW11c2wtdGlkLWNhY2hpbmcucGF0Y2ggICAg ICAgICAgIHwgIDg2ICsrCiAuLi4vY2hyb21pdW0tbm8tcmVzLW5pbml0LW5jbG9zZS5wYXRjaCAg ICAgICAgfCAgMzMgKwogLi4ubWl1bS0xMDUuMC41MTk1LjUyLXB5dGhvbi1zaXgtMS4xNi4wLnBh dGNoIHwgMTM0ICsrKwogLi4uL2Nocm9taXVtLTExNC1tYWxkb2NhLWluY2x1ZGUucGF0Y2ggICAg ICAgIHwgIDI1ICsKIC4uLi9jaHJvbWl1bS0xMTUtY29tcGlsZXItU2tDb2xvcjRmLnBhdGNoICAg ICB8ICAyNyArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS0xMTctc3RyaW5nLWNvbnZlcnQucGF0Y2gg fCAgMjEgKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTE5LWFzc2VydC5wYXRjaCAgIHwg IDEyICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLTExOS1mZm1wZWctNC40LnBhdGNoICAgICB8ICAy MCArCiAuLi4vY2hyb21pdW0tMTE5LWZpeC1hYXJjaDY0LW11c2wucGF0Y2ggICAgICAgfCAgMTEg KwogLi4uL2Nocm9taXVtLTEyMC1hcm02NC1tZW1vcnlfdGFnZ2luZy5wYXRjaCAgIHwgIDE0ICsK IC4uLmhyb21pdW0tMTIwLWRpc2FibGUtRkZtcGVnQWxsb3dMaXN0cy5wYXRjaCB8ICAxMiArCiAu Li5ibGUtR2xvYmFsTWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AucGF0Y2ggfCAgMTQgKwogLi4u Y2hyb21pdW0tMTIwLWVsNy1jbGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoIHwgMjMwICsrKysrCiAu Li5pdW0tMTIwLWVsNy1jbGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoLmFyZ3MgfCAgIDEgKwogLi4u cm9taXVtLTEyMC1lbDctY2xhbmctdmVyc2lvbi13YXJuaW5nLnBhdGNoIHwgIDE2ICsKIC4uLi9j aHJvbWl1bS0xMjAtZ24td29ya2Fyb3VuZC1hdHNwaS5wYXRjaCAgICB8ICAxMyArCiAuLi4vY2hy b21pdW0tMTIwLW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoICAgfCA0NDggKysrKysrKysrCiAu Li5jaHJvbWl1bS0xMjAtbm9fbWF0Y2hpbmdfY29uc3RydWN0b3IucGF0Y2ggfCA3NDIgKysrKysr KysrKysrKysrCiAuLi4yMC1zcGxpdC10aHJlc2hvbGQtZm9yLXJlZy13aXRoLWhpbnQucGF0Y2gg fCAgMjggKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLXR5cGVuYW1lLnBhdGNoIHwg MjA1ICsrKysKIC4uLmthcm91bmRfY2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRjaCB8 ICA1MSArCiAuLi5FUlQtcm9sbC1zcmMtdGhpcmRfcGFydHktZmZtcGVnLW0xMDIucGF0Y2ggfCAz MzMgKysrKysrKwogLi4ub2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwMi5wYXRjaC5hcmdz IHwgICAxICsKIC4uLkVSVC1yb2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwNi5wYXRjaCB8 ICA1NSArKwogLi4ub2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwNi5wYXRjaC5hcmdzIHwg ICAxICsKIC4uLi9jaHJvbWl1bS1hbmdsZS13YXlsYW5kLWluY2x1ZGUucGF0Y2ggICAgICB8ICAz OSArCiAuLi41ZTZiOTFjY2RmOGIyNTE4ZWY3MzNkNzVjMDQ4MjM5NzlkMTgucGF0Y2ggfCAgNjEg KysKIC4uLi9wYXRjaGVzL2Nocm9taXVtLWJyb3dzZXItc2l6ZV90LnBhdGNoICAgICB8ICAxMCAr CiAuLi4vZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaCAgfCAgNjUgKysK IC4uLi9wYXRjaGVzL2Nocm9taXVtLWZjLWNhY2hlLXZlcnNpb24ucGF0Y2ggICB8ICAxMyArCiAu Li54LWFhcmNoNjQtbXVzbC1tZW1vcnktdGFnZ2luZy1tYWNyb3MucGF0Y2ggfCAgMjkgKwogLi4u cm9taXVtLWZpeC1hcmd1bWVudF9zcGVjLWlzbmFuLWlzaW5mLnBhdGNoIHwgIDExICsKIC4uLi9j aHJvbWl1bS1maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaCAgICB8ICAyMSArCiAuLi4vcGF0 Y2hlcy9jaHJvbWl1bS1maXgtZGF3bi1wbGF0Zm9ybS5wYXRjaCAgfCAgNjIgKysKIC4uLi9jaHJv bWl1bS1maXgtbGliYy12ZXJzaW9uLWluY2x1ZGUucGF0Y2ggICB8ICAxNSArCiAuLi5maXgtbWlz c2luZy1URU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0Y2ggfCAgMjEgKwogLi4uaXVtLWZpeC1t aXNzaW5nLWNzdGRpbnQtaW5jbHVkZS1tdXNsLnBhdGNoIHwgIDEwICsKIC4uLnVtLWZpeC1tdXNs LW1pc3NpbmctdW5pc3RkX2gtaW5jbHVkZS5wYXRjaCB8ICAxMCArCiAuLi5taXVtLWZpeC1wZXJm ZXR0by1HZXRUaHJlYWROYW1lLW11c2wucGF0Y2ggfCAgMjIgKwogLi4uaXVtLWZpeC1zd2lmdHNo YWRlci1sbHZtLW11c2wtY29uZmlnLnBhdGNoIHwgICAwCiAuLi4vY2hyb21pdW0taTY4Ni12YWFw aS1mcGVybWlzc2l2ZS5wYXRjaCAgICAgfCAgMjMgKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tbGliY19tYWxsb2MucGF0Y2ggIHwgIDM0ICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLW11c2wt bm8tZXhlY2luZm8ucGF0Y2ggICB8ICA4NSArKwogLi4uL3BhdGNoZXMvY2hyb21pdW0tbXVzbC1u by1tYWxsaW5mby5wYXRjaCAgIHwgMTI1ICsrKwogLi4uL2Nocm9taXVtLW11c2wtcGFydGl0aW9u LWF0Zm9yay5wYXRjaCAgICAgIHwgIDExICsKIC4uLi12OC1tb25vdG9uaWMtcHRocmVhZC1jb250 X3RpbWVkd2FpdC5wYXRjaCB8ICAyNCArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1uby1nZXRjb250 ZXh0LnBhdGNoICAgICAgfCAgMjcgKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tb2xkLWNs YW5nLnBhdGNoICAgIHwgIDExICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLXBlcmZldHRvLWxpYnN0 ZGMrKy5wYXRjaCB8ICAyMCArCiAuLi4vY2hyb21pdW0tcmVlbmFibGUtbGludXgtaTY4Ni1idWls ZHMucGF0Y2ggfCAgMTkgKwogLi4uL2Nocm9taXVtLXJlbW92ZS1zeXMtY2RlZnMtaW5jbHVkZXMu cGF0Y2ggIHwgIDM5ICsKIC4uLi9jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5w YXRjaCB8ICAxNSArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0 Y2ggfCAgMTAgKwogLi4uL2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc25kaW8ucGF0Y2ggICAgICAg IHwgODc3ICsrKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvY2hyb21pdW0tc3lzdGVtLW5v ZGVqcy5wYXRjaCAgICAgIHwgIDIwICsKIC4uLi9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXN5c3R5 cGVzLnBhdGNoICAgICB8ICAxMSArCiAuLi51bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJz dF9kdHMucGF0Y2ggfCAgMTIgKwogLi4uL2Nocm9taXVtLXVuYnVuZGxlZC1jcm9zcy10b29sY2hh aW4ucGF0Y2ggIHwgIDEyICsKIC4uLi9wYXRjaGVzL2Nocm9taXVtLXdlYmF1dGhuLXZhcmlhbnQu cGF0Y2ggICB8ICAxNCArCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNo ICAgICAgfCAgMTAgKwogLi4uYS1zY3JpcHQtdG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBh dGNoIHwgIDQyICsKIC4uLi9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBhdGNo ICB8ICAxMiArCiAuLi5sZWN0cm9uLWV4Y2x1ZGUtY29udGVudC10ZXN0LXBhdGNoZXMucGF0Y2gg fCAgMTAgKwogLi4uL3BhdGNoZXMvZWxlY3Ryb24tbm8tbmVlZC1mb3ItaHVza3kucGF0Y2ggIHwg IDEwICsKIHNyY3BrZ3MvZWxlY3Ryb24yOC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICB8IDQ3 NyArKysrKysrKysrCiBzcmNwa2dzL2VsZWN0cm9uMjgvdXBkYXRlICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogNzAgZmlsZXMgY2hhbmdlZCwgNTAyNyBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMjAwMDAgc3JjcGtncy9lbGVjdHJvbjI4LWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1kaXNhYmxlLWRu c19jb25maWdfc2VydmljZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ry b24yOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbGliYysrLW11c2wucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLW11c2wtc2FuZGJveC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ry b24yOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC10aWQtY2FjaGluZy5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9tdXNsLXBhdGNoZXMv Y2hyb21pdW0tbm8tcmVzLW5pbml0LW5jbG9zZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTEwNS4wLjUxOTUuNTItcHl0 aG9uLXNpeC0xLjE2LjAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9u MjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMTQtbWFsZG9jYS1pbmNsdWRlLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t MTE1LWNvbXBpbGVyLVNrQ29sb3I0Zi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv ZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTExNy1zdHJpbmctY29udmVydC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLTExOS1hc3NlcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMTktZmZtcGVnLTQuNC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTEx OS1maXgtYWFyY2g2NC1tdXNsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLWFybTY0LW1lbW9yeV90YWdnaW5nLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tMTIwLWRpc2FibGUtRkZtcGVnQWxsb3dMaXN0cy5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC1kaXNh YmxlLUdsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9wLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1j bGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1jbGFuZy1idWlsZC1mYWlsdXJl LnBhdGNoLmFyZ3MKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLXZlcnNpb24td2FybmluZy5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVt LTEyMC1nbi13b3JrYXJvdW5kLWF0c3BpLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLW1pc3NpbmctaGVhZGVyLWZp bGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tMTIwLW5vX21hdGNoaW5nX2NvbnN0cnVjdG9yLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIw LXNwbGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC10eXBlbmFt ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRj aGVzL2Nocm9taXVtLTEyMC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2JpbmRpbmcu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1SRVZFUlQtcm9sbC1zcmMtdGhpcmRfcGFydHktZmZtcGVnLW0xMDIucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJv bWl1bS1SRVZFUlQtcm9sbC1zcmMtdGhpcmRfcGFydHktZmZtcGVnLW0xMDIucGF0Y2guYXJncwog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLVJFVkVSVC1yb2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwNi5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLVJF VkVSVC1yb2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwNi5wYXRjaC5hcmdzCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYW5n bGUtd2F5bGFuZC1pbmNsdWRlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVj dHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYjc0ZDVlNmI5MWNjZGY4YjI1MThlZjczM2Q3 NWMwNDgyMzk3OWQxOC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24y OC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWJyb3dzZXItc2l6ZV90LnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY3Jvc3Mt YnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1mYy1jYWNoZS12ZXJzaW9uLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LWFhcmNoNjQt bXVzbC1tZW1vcnktdGFnZ2luZy1tYWNyb3MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtYXJndW1lbnRfc3BlYy1p c25hbi1pc2luZi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1jb25zdGV4cHItbmFycm93aW5nLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t Zml4LWRhd24tcGxhdGZvcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtbGliYy12ZXJzaW9uLWluY2x1ZGUucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS1maXgtbWlzc2luZy1URU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1m aXgtbWlzc2luZy1jc3RkaW50LWluY2x1ZGUtbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1tdXNsLW1pc3Np bmctdW5pc3RkX2gtaW5jbHVkZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1wZXJmZXR0by1HZXRUaHJlYWROYW1l LW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1maXgtc3dpZnRzaGFkZXItbGx2bS1tdXNsLWNvbmZpZy5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJjX21hbGxvYy5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLW11c2wtbm8tZXhlY2luZm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Vs ZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tbXVzbC1wYXJ0aXRpb24tYXRmb3JrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbXVzbC12OC1tb25vdG9uaWMtcHRo cmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW5vLWdldGNvbnRleHQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1v bGQtY2xhbmcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS1wZXJmZXR0by1saWJzdGRjKysucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1yZWVuYWJs ZS1saW51eC1pNjg2LWJ1aWxkcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxl Y3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXJlbW92ZS1zeXMtY2RlZnMtaW5jbHVkZXMu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXNhbmRib3gt bWVtYmFycmllci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLXNuZGlvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc3lzdGVtLW5vZGVqcy5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLXN5c3R5cGVzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJv bjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdW5idW5kbGUtZmZtcGVnLWF2X3N0cmVhbV9nZXRf Zmlyc3RfZHRzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tdW5idW5kbGVkLWNyb3NzLXRvb2xjaGFpbi5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVt LXdlYmF1dGhuLXZhcmlhbnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2VsZWN0 cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRk LWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRjaC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZp eGVzLnBhdGNoLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4L2Zp bGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2VsZWN0 cm9uLW5vLW5lZWQtZm9yLWh1c2t5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9l bGVjdHJvbjI4L3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9lbGVjdHJvbjI4 L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC1kZXZlbCBiL3NyY3BrZ3Mv ZWxlY3Ryb24yOC1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAw Li5kYTYyNmU5OGU4ZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjI4LWRl dmVsCkBAIC0wLDAgKzEgQEAKK2VsZWN0cm9uMjgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9t aXVtLWRpc2FibGUtZG5zX2NvbmZpZ19zZXJ2aWNlLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4 L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1kaXNhYmxlLWRuc19jb25maWdfc2VydmljZS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5hNzJlMWM0N2M3 ZTIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL211c2wtcGF0 Y2hlcy9jaHJvbWl1bS1kaXNhYmxlLWRuc19jb25maWdfc2VydmljZS5wYXRjaApAQCAtMCwwICsx LDE1IEBACitkaWZmIC0tZ2l0IGEvbmV0L2Rucy9CVUlMRC5nbiBiL25ldC9kbnMvQlVJTEQuZ24K K2luZGV4IGYzNmJmNjguLjgwNWQ5YTYgMTAwNjQ0CistLS0gYS9uZXQvZG5zL0JVSUxELmduCisr KysgYi9uZXQvZG5zL0JVSUxELmduCitAQCAtMTMwLDggKzEzMCw4IEBAIHNvdXJjZV9zZXQoImRu cyIpIHsKKyAgICAgXQorICAgfSBlbHNlIGlmIChpc19saW51eCkgeworICAgICBzb3VyY2VzICs9 IFsKKy0gICAgICAiZG5zX2NvbmZpZ19zZXJ2aWNlX2xpbnV4LmNjIiwKKy0gICAgICAiZG5zX2Nv bmZpZ19zZXJ2aWNlX2xpbnV4LmgiLAorKyAgICAgICJkbnNfY29uZmlnX3NlcnZpY2VfZnVjaHNp YS5jYyIsCisrICAgICAgImRuc19jb25maWdfc2VydmljZV9mdWNoc2lhLmgiLAorICAgICBdCisg ICB9IGVsc2UgaWYgKGlzX3Bvc2l4KSB7CisgICAgIHNvdXJjZXMgKz0gWwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1saWJjKystbXVz bC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0t bGliYysrLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MC4uYjkwYTU0ZGFhOGI0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbGliYysrLW11c2wucGF0Y2gKQEAgLTAsMCArMSwx MiBAQAorU291cmNlOiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL3RyZWUvY29t bXVuaXR5L2Nocm9taXVtL3llcy1tdXNsLnBhdGNoCistLS0gLi9idWlsZHRvb2xzL3RoaXJkX3Bh cnR5L2xpYmMrKy9fX2NvbmZpZ19zaXRlLm9yaWcKKysrKyAuL2J1aWxkdG9vbHMvdGhpcmRfcGFy dHkvbGliYysrL19fY29uZmlnX3NpdGUKK0BAIC0xOCw3ICsxOCw3IEBACisgLyogI3VuZGVmIF9M SUJDUFBfQUJJX0ZPUkNFX01JQ1JPU09GVCAqLworIC8qICN1bmRlZiBfTElCQ1BQX0hBU19OT19U SFJFQURTICovCisgLyogI3VuZGVmIF9MSUJDUFBfSEFTX05PX01PTk9UT05JQ19DTE9DSyAqLwor LS8qICN1bmRlZiBfTElCQ1BQX0hBU19NVVNMX0xJQkMgKi8KKysjZGVmaW5lIF9MSUJDUFBfSEFT X01VU0xfTElCQyAxCisgLyogI3VuZGVmIF9MSUJDUFBfSEFTX1RIUkVBRF9BUElfUFRIUkVBRCAq LworIC8qICN1bmRlZiBfTElCQ1BQX0hBU19USFJFQURfQVBJX0VYVEVSTkFMICovCisgLyogI3Vu ZGVmIF9MSUJDUFBfSEFTX1RIUkVBRF9BUElfV0lOMzIgKi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb24yOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXNh bmRib3gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMjJk ODY1YWE0MmY1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9t dXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoCkBAIC0wLDAgKzEsMTI1IEBA CitTb3VyY2U6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvdHJlZS9jb21tdW5p dHkvY2hyb21pdW0vbXVzbC1zYW5kYm94LnBhdGNoCittdXNsIHVzZXMgZGlmZmVyZW50IHN5c2Nh bGxzIGZyb20gZ2xpYmMgZm9yIHNvbWUgZnVuY3Rpb25zLCBzbyB0aGUgc2FuZGJveCBoYXMKK3Rv IGFjY291bnQgZm9yIHRoYXQKKy0tCitkaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21w LWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MgLi9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9u cy5jYworaW5kZXggZmY1YTFjMC4uZGE1NmI5YiAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCisr KysgLi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJz X3Jlc3RyaWN0aW9ucy5jYworQEAgLTEzOSwyMSArMTM5LDExIEBAIG5hbWVzcGFjZSBzYW5kYm94 IHsKKyAvLyBwcmVzZW50IChhcyBpbiBuZXdlciB2ZXJzaW9ucyBvZiBwb3NpeF9zcGF3bikuCisg UmVzdWx0RXhwciBSZXN0cmljdENsb25lVG9UaHJlYWRzQW5kRVBFUk1Gb3JrKCkgeworICAgY29u c3QgQXJnPHVuc2lnbmVkIGxvbmc+IGZsYWdzKDApOworLQorLSAgLy8gVE9ETyhtZGVtcHNreSk6 IEV4dGVuZCBEU0wgdG8gc3VwcG9ydCAoZmxhZ3MgJiB+bWFzazEpID09IG1hc2syLgorLSAgY29u c3QgdWludDY0X3Qga0FuZHJvaWRDbG9uZU1hc2sgPSBDTE9ORV9WTSB8IENMT05FX0ZTIHwgQ0xP TkVfRklMRVMgfAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTE9ORV9T SUdIQU5EIHwgQ0xPTkVfVEhSRUFEIHwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ0xPTkVfU1lTVlNFTTsKKy0gIGNvbnN0IHVpbnQ2NF90IGtPYnNvbGV0ZUFuZHJvaWRD bG9uZU1hc2sgPSBrQW5kcm9pZENsb25lTWFzayB8IENMT05FX0RFVEFDSEVEOworLQorLSAgY29u c3QgdWludDY0X3Qga0dsaWJjUHRocmVhZEZsYWdzID0KKy0gICAgICBDTE9ORV9WTSB8IENMT05F X0ZTIHwgQ0xPTkVfRklMRVMgfCBDTE9ORV9TSUdIQU5EIHwgQ0xPTkVfVEhSRUFEIHwKKy0gICAg ICBDTE9ORV9TWVNWU0VNIHwgQ0xPTkVfU0VUVExTIHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENM T05FX0NISUxEX0NMRUFSVElEOworLSAgY29uc3QgQm9vbEV4cHIgZ2xpYmNfdGVzdCA9IGZsYWdz ID09IGtHbGliY1B0aHJlYWRGbGFnczsKKy0KKy0gIGNvbnN0IEJvb2xFeHByIGFuZHJvaWRfdGVz dCA9CistICAgICAgQW55T2YoZmxhZ3MgPT0ga0FuZHJvaWRDbG9uZU1hc2ssIGZsYWdzID09IGtP YnNvbGV0ZUFuZHJvaWRDbG9uZU1hc2ssCistICAgICAgICAgICAgZmxhZ3MgPT0ga0dsaWJjUHRo cmVhZEZsYWdzKTsKKysgIGNvbnN0IGludCByZXF1aXJlZCA9IENMT05FX1ZNIHwgQ0xPTkVfRlMg fCBDTE9ORV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfAorKyAgICAgICAgICAgICAgICAgICAgICAg Q0xPTkVfVEhSRUFEIHwgQ0xPTkVfU1lTVlNFTTsKKysgIGNvbnN0IGludCBzYWZlID0gQ0xPTkVf U0VUVExTIHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFSVElEIHwKKysg ICAgICAgICAgICAgICAgICAgQ0xPTkVfREVUQUNIRUQ7CisrICBjb25zdCBCb29sRXhwciB0aHJl YWRfY2xvbmVfb2sgPSAoZmxhZ3MmfnNhZmUpPT1yZXF1aXJlZDsKKyAKKyAgIC8vIFRoZSBmb2xs b3dpbmcgdHdvIGZsYWdzIGFyZSB0aGUgdHdvIGltcG9ydGFudCBmbGFncyBpbiBhbnkgdmZvcmst ZW11bGF0aW5nCisgICAvLyBjbG9uZSBjYWxsLiBFUEVSTSBhbnkgY2xvbmUgY2FsbCB0aGF0IGNv bnRhaW5zIGJvdGggb2YgdGhlbS4KK0BAIC0xNjMsNyArMTUzLDcgQEAgUmVzdWx0RXhwciBSZXN0 cmljdENsb25lVG9UaHJlYWRzQW5kRVBFUk1Gb3JrKCkgeworICAgICAgIEFueU9mKChmbGFncyAm IChDTE9ORV9WTSB8IENMT05FX1RIUkVBRCkpID09IDAsCisgICAgICAgICAgICAgKGZsYWdzICYg a0ltcG9ydGFudENsb25lVmZvcmtGbGFncykgPT0ga0ltcG9ydGFudENsb25lVmZvcmtGbGFncyk7 CisgCistICByZXR1cm4gSWYoSXNBbmRyb2lkKCkgPyBhbmRyb2lkX3Rlc3QgOiBnbGliY190ZXN0 LCBBbGxvdygpKQorKyAgcmV0dXJuIElmKHRocmVhZF9jbG9uZV9vaywgQWxsb3coKSkKKyAgICAg ICAuRWxzZUlmKGlzX2Zvcmtfb3JfY2xvbmVfdmZvcmssIEVycm9yKEVQRVJNKSkKKyAgICAgICAu RWxzZShDcmFzaFNJR1NZU0Nsb25lKCkpOworIH0KK2RpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjIC4vc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworaW5kZXggZDlkMTg4Mi4uMDU2NzU1NyAx MDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Nl dHMuY2MKKysrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Nl dHMuY2MKK0BAIC0zOTIsNiArMzkyLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJv Y2Vzc1N0YXJ0T3JEZWF0aChpbnQgc3lzbm8pIHsKKyAjaWYgZGVmaW5lZChfX2kzODZfXykKKyAg ICAgY2FzZSBfX05SX3dhaXRwaWQ6CisgI2VuZGlmCisrICAgIGNhc2UgX19OUl9zZXRfdGlkX2Fk ZHJlc3M6CisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2UgX19OUl9jbG9uZTogIC8vIFNo b3VsZCBiZSBwYXJhbWV0ZXItcmVzdHJpY3RlZC4KKyAgICAgY2FzZSBfX05SX3NldG5zOiAgLy8g UHJpdmlsZWdlZC4KK0BAIC00MDQsNyArNDA1LDYgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkUHJvY2Vzc1N0YXJ0T3JEZWF0aChpbnQgc3lzbm8pIHsKKyAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQorICAgICBjYXNl IF9fTlJfc2V0X3RocmVhZF9hcmVhOgorICNlbmRpZgorLSAgICBjYXNlIF9fTlJfc2V0X3RpZF9h ZGRyZXNzOgorICAgICBjYXNlIF9fTlJfdW5zaGFyZToKKyAjaWYgIWRlZmluZWQoX19taXBzX18p ICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAgICBjYXNlIF9fTlJfdmZvcms6CitAQCAtNTE0 LDYgKzUxNCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUFjY2Vz cyhpbnQgc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX21sb2NrOgorICAgICBjYXNlIF9fTlJfbXVu bG9jazoKKyAgICAgY2FzZSBfX05SX211bm1hcDoKKysgICAgY2FzZSBfX05SX21yZW1hcDoKKysg ICAgY2FzZSBfX05SX21lbWJhcnJpZXI6CisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2Ug X19OUl9tYWR2aXNlOgorICAgICBjYXNlIF9fTlJfbWluY29yZToKK0BAIC01MzEsNyArNTMzLDYg QEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNu bykgeworICAgICBjYXNlIF9fTlJfbW9kaWZ5X2xkdDoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05S X21wcm90ZWN0OgorLSAgICBjYXNlIF9fTlJfbXJlbWFwOgorICAgICBjYXNlIF9fTlJfbXN5bmM6 CisgICAgIGNhc2UgX19OUl9tdW5sb2NrYWxsOgorICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgor ZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMu aCAuL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAoraW5kZXgg MmI3OGEwYy4uYjZmZWRiNSAxMDA2NDQKKy0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRl cnMvbGludXhfc3lzY2FsbHMuaAorKysrIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9s aW51eF9zeXNjYWxscy5oCitAQCAtMTAsNiArMTAsNyBAQAorICNkZWZpbmUgU0FOREJPWF9MSU5V WF9TWVNURU1fSEVBREVSU19MSU5VWF9TWVNDQUxMU19IXworIAorICNpbmNsdWRlICJidWlsZC9i dWlsZF9jb25maWcuaCIKKysjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyAKKyAjaWYgZGVmaW5l ZChfX3g4Nl82NF9fKQorICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4 Nl82NF9saW51eF9zeXNjYWxscy5oIgorLS0tIGEvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3Jl bmRlcmVyX3BvbGljeV9saW51eC5jYworKysrIGIvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3Jl bmRlcmVyX3BvbGljeV9saW51eC5jYworQEAgLTk0LDYgKzk0LDkgQEAKKyAgICAgY2FzZSBfX05S X3B3cml0ZTY0OgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21heDoKKyAgICAg Y2FzZSBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9taW46CisrICAgIGNhc2UgX19OUl9zY2hlZF9n ZXRwYXJhbToKKysgICAgY2FzZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlcjoKKysgICAgY2FzZSBf X05SX3NjaGVkX3NldHNjaGVkdWxlcjoKKyAgICAgY2FzZSBfX05SX3N5c2luZm86CisgICAgIGNh c2UgX19OUl90aW1lczoKKyAgICAgY2FzZSBfX05SX3VuYW1lOgorLS0tIGEvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYworKysrIGIvc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYworQEAgLTIyNSwxMCAr MjI1LDE1IEBACisgICBpZiAoc3lzbm8gPT0gX19OUl9nZXRwcmlvcml0eSB8fCBzeXNubyA9PV9f TlJfc2V0cHJpb3JpdHkpCisgICAgIHJldHVybiBSZXN0cmljdEdldFNldHByaW9yaXR5KGN1cnJl bnRfcGlkKTsKKyAKKysgIC8vIFhYWDogaGFja3MgZm9yIG11c2wgc2FuZGJveCwgY2FsbHMgbmVl ZGVkPworKyAgaWYgKHN5c25vID09IF9fTlJfc2NoZWRfZ2V0cGFyYW0gfHwgc3lzbm8gPT0gX19O Ul9zY2hlZF9nZXRzY2hlZHVsZXIgfHwKKysgICAgICBzeXNubyA9PSBfX05SX3NjaGVkX3NldHNj aGVkdWxlcikgeworKyAgICByZXR1cm4gQWxsb3coKTsKKysgIH0KKysKKyAgIC8vIFRoZSBzY2hl ZHVsaW5nIHN5c2NhbGxzIGFyZSB1c2VkIGluIHRocmVhZGluZyBsaWJyYXJpZXMgYW5kIGFsc28g aGVhdmlseSBpbgorICAgLy8gYWJzZWlsLiBTZWUgZm9yIGV4YW1wbGUgaHR0cHM6Ly9jcmJ1Zy5j b20vMTM3MDM5NC4KKy0gIGlmIChzeXNubyA9PSBfX05SX3NjaGVkX2dldGFmZmluaXR5IHx8IHN5 c25vID09IF9fTlJfc2NoZWRfZ2V0cGFyYW0gfHwKKy0gICAgICBzeXNubyA9PSBfX05SX3NjaGVk X2dldHNjaGVkdWxlciB8fCBzeXNubyA9PSBfX05SX3NjaGVkX3NldHNjaGVkdWxlcikgeworKyAg aWYgKHN5c25vID09IF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHkpIHsKKyAgICAgcmV0dXJuIFJlc3Ry aWN0U2NoZWRUYXJnZXQoY3VycmVudF9waWQsIHN5c25vKTsKKyAgIH0KKyAKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbXVzbC10aWQt Y2FjaGluZy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hy b21pdW0tbXVzbC10aWQtY2FjaGluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi41MmJiZTc3NWFkMmE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjI4L2ZpbGVzL211c2wtcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLXRpZC1jYWNoaW5nLnBh dGNoCkBAIC0wLDAgKzEsODYgQEAKK1NvdXJjZTogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3Jn L2Fwb3J0cy9wbGFpbi9jb21tdW5pdHkvY2hyb21pdW0vbXVzbC10aWQtY2FjaGluZy5wYXRjaAor dGhlIHNhbmRib3ggY2FjaGluZyBvZiB0aHJlYWQgaWQncyBvbmx5IHdvcmtzIHdpdGggZ2xpYmMK K3NlZTogaHR0cHM6Ly9naXRsYWIuYWxwaW5lbGludXgub3JnL2FscGluZS9hcG9ydHMvLS9tZXJn ZV9yZXF1ZXN0cy8zMjM1Ngorc2VlOiBodHRwczovL2dpdGxhYi5hbHBpbmVsaW51eC5vcmcvYWxw aW5lL2Fwb3J0cy8tL2lzc3Vlcy8xMzU3OQorLS0KKy0tLSBhL3NhbmRib3gvbGludXgvc2Vydmlj ZXMvbmFtZXNwYWNlX3NhbmRib3guY2MKKysrKyBiL3NhbmRib3gvbGludXgvc2VydmljZXMvbmFt ZXNwYWNlX3NhbmRib3guY2MKK0BAIC0yMDksNiArMjA5LDcwIEBACisgICByZXR1cm4gYmFzZTo6 TGF1bmNoUHJvY2Vzcyhhcmd2LCBsYXVuY2hfb3B0aW9uc19jb3B5KTsKKyB9CisgCisrI2lmIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2Vy cGNfXykKKysjZGVmaW5lIFRMU19BQk9WRV9UUAorKyNlbmRpZgorKworK3N0cnVjdCBtdXNsX3B0 aHJlYWQKKyt7CisrICAvKiBQYXJ0IDEgLS0gdGhlc2UgZmllbGRzIG1heSBiZSBleHRlcm5hbCBv cgorKyAgKiBpbnRlcm5hbCAoYWNjZXNzZWQgdmlhIGFzbSkgQUJJLiBEbyBub3QgY2hhbmdlLiAq LworKyAgc3RydWN0IHB0aHJlYWQgKnNlbGY7CisrI2lmbmRlZiBUTFNfQUJPVkVfVFAKKysgIHVp bnRwdHJfdCAqZHR2OworKyNlbmRpZgorKyAgc3RydWN0IHB0aHJlYWQgKnByZXYsICpuZXh0OyAv KiBub24tQUJJICovCisrICB1aW50cHRyX3Qgc3lzaW5mbzsKKysjaWZuZGVmIFRMU19BQk9WRV9U UAorKyNpZmRlZiBDQU5BUllfUEFECisrICB1aW50cHRyX3QgY2FuYXJ5X3BhZDsKKysjZW5kaWYK KysgIHVpbnRwdHJfdCBjYW5hcnk7CisrI2VuZGlmCisrCisrLyogUGFydCAyIC0tIGltcGxlbWVu dGF0aW9uIGRldGFpbHMsIG5vbi1BQkkuICovCisrICBpbnQgdGlkOworKyAgaW50IGVycm5vX3Zh bDsKKysgIHZvbGF0aWxlIGludCBkZXRhY2hfc3RhdGU7CisrICB2b2xhdGlsZSBpbnQgY2FuY2Vs OworKyAgdm9sYXRpbGUgdW5zaWduZWQgY2hhciBjYW5jZWxkaXNhYmxlLCBjYW5jZWxhc3luYzsK KysgIHVuc2lnbmVkIGNoYXIgdHNkX3VzZWQ6MTsKKysgIHVuc2lnbmVkIGNoYXIgZGxlcnJvcl9m bGFnOjE7CisrICB1bnNpZ25lZCBjaGFyICptYXBfYmFzZTsKKysgIHNpemVfdCBtYXBfc2l6ZTsK KysgIHZvaWQgKnN0YWNrOworKyAgc2l6ZV90IHN0YWNrX3NpemU7CisrICBzaXplX3QgZ3VhcmRf c2l6ZTsKKysgIHZvaWQgKnJlc3VsdDsKKysgIHN0cnVjdCBfX3B0Y2IgKmNhbmNlbGJ1ZjsKKysg IHZvaWQgKip0c2Q7CisrICBzdHJ1Y3QgeworKyAgICB2b2xhdGlsZSB2b2lkICp2b2xhdGlsZSBo ZWFkOworKyAgICBsb25nIG9mZjsKKysgICAgdm9sYXRpbGUgdm9pZCAqdm9sYXRpbGUgcGVuZGlu ZzsKKysgIH0gcm9idXN0X2xpc3Q7CisrICBpbnQgaF9lcnJub192YWw7CisrICB2b2xhdGlsZSBp bnQgdGltZXJfaWQ7CisrICBsb2NhbGVfdCBsb2NhbGU7CisrICB2b2xhdGlsZSBpbnQga2lsbGxv Y2tbMV07CisrICBjaGFyICpkbGVycm9yX2J1ZjsKKysgIHZvaWQgKnN0ZGlvX2xvY2tzOworKwor KyAgLyogUGFydCAzIC0tIHRoZSBwb3NpdGlvbnMgb2YgdGhlc2UgZmllbGRzIHJlbGF0aXZlIHRv CisrICAqIHRoZSBlbmQgb2YgdGhlIHN0cnVjdHVyZSBpcyBleHRlcm5hbCBhbmQgaW50ZXJuYWwg QUJJLiAqLworKyNpZmRlZiBUTFNfQUJPVkVfVFAKKysgIHVpbnRwdHJfdCBjYW5hcnk7CisrICB1 aW50cHRyX3QgKmR0djsKKysjZW5kaWYKKyt9OworKworK3ZvaWQgTWF5YmVVcGRhdGVNdXNsVGlk Q2FjaGUoKQorK3sKKysgIHBpZF90IHJlYWxfdGlkID0gc3lzX2dldHRpZCgpOworKyAgcGlkX3Qq IGNhY2hlZF90aWRfbG9jYXRpb24gPSAmcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3QgbXVzbF9wdGhy ZWFkKj4ocHRocmVhZF9zZWxmKCkpLT50aWQ7CisrICAqY2FjaGVkX3RpZF9sb2NhdGlvbiA9IHJl YWxfdGlkOworK30KKysKKyAvLyBzdGF0aWMKKyBwaWRfdCBOYW1lc3BhY2VTYW5kYm94OjpGb3Jr SW5OZXdQaWROYW1lc3BhY2UoYm9vbCBkcm9wX2NhcGFiaWxpdGllc19pbl9jaGlsZCkgeworICAg Y29uc3QgcGlkX3QgcGlkID0KK0BAIC0yMjYsNiArMjkwLDcgQEAKKyAjaWYgZGVmaW5lZChMSUJD X0dMSUJDKQorICAgICBNYXliZVVwZGF0ZUdsaWJjVGlkQ2FjaGUoKTsKKyAjZW5kaWYKKysgICAg TWF5YmVVcGRhdGVNdXNsVGlkQ2FjaGUoKTsKKyAgICAgcmV0dXJuIDA7CisgICB9CisgCmRpZmYg LS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvbXVzbC1wYXRjaGVzL2Nocm9taXVtLW5v LXJlcy1uaW5pdC1uY2xvc2UucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvbXVzbC1w YXRjaGVzL2Nocm9taXVtLW5vLXJlcy1uaW5pdC1uY2xvc2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNjg4NDAzOWVmYjg4NAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9tdXNsLXBhdGNoZXMvY2hyb21pdW0tbm8tcmVz LW5pbml0LW5jbG9zZS5wYXRjaApAQCAtMCwwICsxLDMzIEBACitTb3VyY2U6IGh0dHBzOi8vZ2l0 LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvcGxhaW4vY29tbXVuaXR5L2Nocm9taXVtL25vLXJlcy1u aW5pdC1uY2xvc2UucGF0Y2gKK3NpbWlsYXIgdG8gZG5zLXJlc29sdmVyLnBhdGNoLCBtdXNsIGRv ZXNuJ3QgaGF2ZSByZXNfbmluaXQgYW5kIHNvIG9uCistLQorLS0tIGEvbmV0L2Rucy9wdWJsaWMv c2NvcGVkX3Jlc19zdGF0ZS5jYworKysrIGIvbmV0L2Rucy9wdWJsaWMvc2NvcGVkX3Jlc19zdGF0 ZS5jYworQEAgLTEzLDcgKzEzLDcgQEAKKyBuYW1lc3BhY2UgbmV0IHsKKyAKKyBTY29wZWRSZXNT dGF0ZTo6U2NvcGVkUmVzU3RhdGUoKSB7CistI2lmIEJVSUxERkxBRyhJU19PUEVOQlNEKSB8fCBC VUlMREZMQUcoSVNfRlVDSFNJQSkKKysjaWYgQlVJTERGTEFHKElTX09QRU5CU0QpIHx8IEJVSUxE RkxBRyhJU19GVUNIU0lBKSB8fCBkZWZpbmVkKF9HTlVfU09VUkNFKQorICAgLy8gTm90ZTogcmVz X25pbml0IGluIGdsaWJjIGFsd2F5cyByZXR1cm5zIDAgYW5kIHNldHMgUkVTX0lOSVQuCisgICAv LyByZXNfaW5pdCBiZWhhdmVzIHRoZSBzYW1lIHdheS4KKyAgIG1lbXNldCgmX3JlcywgMCwgc2l6 ZW9mKF9yZXMpKTsKK0BAIC0yNSwxNiArMjUsOCBAQAorIH0KKyAKKyBTY29wZWRSZXNTdGF0ZTo6 flNjb3BlZFJlc1N0YXRlKCkgeworLSNpZiAhQlVJTERGTEFHKElTX09QRU5CU0QpICYmICFCVUlM REZMQUcoSVNfRlVDSFNJQSkKKy0KKy0gIC8vIFByZWZlciByZXNfbmRlc3Ryb3kgd2hlcmUgYXZh aWxhYmxlLgorLSNpZiBCVUlMREZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNE KQorLSAgcmVzX25kZXN0cm95KCZyZXNfKTsKKy0jZWxzZQorLSAgcmVzX25jbG9zZSgmcmVzXyk7 CistI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNE KQorLQorLSNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19PUEVOQlNEKSAmJiAhQlVJTERGTEFHKElT X0ZVQ0hTSUEpCisrICAvLyBtdXNsIHJlc19pbml0KCkgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0 aGluZworKyAgLy8gbm8gZGVzdHJ1Y3Rpb24gaXMgbmVjZXNzYXJ5IGFzIG5vIG1lbW9yeSBoYXMg YmVlbiBhbGxvY2F0ZWQKKyB9CisgCisgYm9vbCBTY29wZWRSZXNTdGF0ZTo6SXNWYWxpZCgpIGNv bnN0IHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLTEwNS4wLjUxOTUuNTItcHl0aG9uLXNpeC0xLjE2LjAucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMDUuMC41MTk1LjUyLXB5dGhvbi1zaXgtMS4x Ni4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjQ5N2My ZGY0MGIzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS0xMDUuMC41MTk1LjUyLXB5dGhvbi1zaXgtMS4xNi4wLnBhdGNoCkBAIC0w LDAgKzEsMTM0IEBACitkaWZmIC11cCBjaHJvbWl1bS0xMDMuMC41MDYwLjUzL3RoaXJkX3BhcnR5 L2NhdGFwdWx0L3RoaXJkX3BhcnR5L3NpeC9zaXgucHkuMTE2IGNocm9taXVtLTEwMy4wLjUwNjAu NTMvdGhpcmRfcGFydHkvY2F0YXB1bHQvdGhpcmRfcGFydHkvc2l4L3NpeC5weQorLS0tIGNocm9t aXVtLTEwMy4wLjUwNjAuNTMvdGhpcmRfcGFydHkvY2F0YXB1bHQvdGhpcmRfcGFydHkvc2l4L3Np eC5weS4xMTYJMjAyMi0wNy0wNSAxMzozMToyOS40MzQ2NzM2MzggKzAwMDAKKysrKyBjaHJvbWl1 bS0xMDMuMC41MDYwLjUzL3RoaXJkX3BhcnR5L2NhdGFwdWx0L3RoaXJkX3BhcnR5L3NpeC9zaXgu cHkJMjAyMi0wNy0wNSAyMTo1MjowMS44ODQ1Nzg3NDggKzAwMDAKK0BAIC0yOSw3ICsyOSw3IEBA IGltcG9ydCBzeXMKKyBpbXBvcnQgdHlwZXMKKyAKKyBfX2F1dGhvcl9fID0gIkJlbmphbWluIFBl dGVyc29uIDxiZW5qYW1pbkBweXRob24ub3JnPiIKKy1fX3ZlcnNpb25fXyA9ICIxLjE1LjAiCisr X192ZXJzaW9uX18gPSAiMS4xNi4wIgorIAorIAorICMgVXNlZnVsIGZvciB2ZXJ5IGNvYXJzZSB2 ZXJzaW9uIGRpZmZlcmVudGlhdGlvbi4KK0BAIC03MSw2ICs3MSwxMSBAQCBlbHNlOgorICAgICAg ICAgICAgIE1BWFNJWkUgPSBpbnQoKDEgPDwgNjMpIC0gMSkKKyAgICAgICAgIGRlbCBYCisgCisr aWYgUFkzNDoKKysgICAgZnJvbSBpbXBvcnRsaWIudXRpbCBpbXBvcnQgc3BlY19mcm9tX2xvYWRl cgorK2Vsc2U6CisrICAgIHNwZWNfZnJvbV9sb2FkZXIgPSBOb25lCisrCisgCisgZGVmIF9hZGRf ZG9jKGZ1bmMsIGRvYyk6CisgICAgICIiIkFkZCBkb2N1bWVudGF0aW9uIHRvIGEgZnVuY3Rpb24u IiIiCitAQCAtMTg2LDYgKzE5MSwxMSBAQCBjbGFzcyBfU2l4TWV0YVBhdGhJbXBvcnRlcihvYmpl Y3QpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICByZXR1cm4gTm9uZQorIAor KyAgICBkZWYgZmluZF9zcGVjKHNlbGYsIGZ1bGxuYW1lLCBwYXRoLCB0YXJnZXQ9Tm9uZSk6Cisr ICAgICAgICBpZiBmdWxsbmFtZSBpbiBzZWxmLmtub3duX21vZHVsZXM6CisrICAgICAgICAgICAg cmV0dXJuIHNwZWNfZnJvbV9sb2FkZXIoZnVsbG5hbWUsIHNlbGYpCisrICAgICAgICByZXR1cm4g Tm9uZQorKworICAgICBkZWYgX19nZXRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKKyAgICAgICAg IHRyeToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5rbm93bl9tb2R1bGVzW2Z1bGxuYW1lXQor QEAgLTIyMyw2ICsyMzMsMTIgQEAgY2xhc3MgX1NpeE1ldGFQYXRoSW1wb3J0ZXIob2JqZWN0KToK KyAgICAgICAgIHJldHVybiBOb25lCisgICAgIGdldF9zb3VyY2UgPSBnZXRfY29kZSAgIyBzYW1l IGFzIGdldF9jb2RlCisgCisrICAgIGRlZiBjcmVhdGVfbW9kdWxlKHNlbGYsIHNwZWMpOgorKyAg ICAgICAgcmV0dXJuIHNlbGYubG9hZF9tb2R1bGUoc3BlYy5uYW1lKQorKworKyAgICBkZWYgZXhl Y19tb2R1bGUoc2VsZiwgbW9kdWxlKToKKysgICAgICAgIHBhc3MKKysKKyBfaW1wb3J0ZXIgPSBf U2l4TWV0YVBhdGhJbXBvcnRlcihfX25hbWVfXykKKyAKKyAKK2RpZmYgLXVwIGNocm9taXVtLTEw My4wLjUwNjAuNTMvdGhpcmRfcGFydHkvc2l4L3NyYy9zaXgucHkuMTE2IGNocm9taXVtLTEwMy4w LjUwNjAuNTMvdGhpcmRfcGFydHkvc2l4L3NyYy9zaXgucHkKKy0tLSBjaHJvbWl1bS0xMDMuMC41 MDYwLjUzL3RoaXJkX3BhcnR5L3NpeC9zcmMvc2l4LnB5LjExNgkyMDIyLTA3LTA1IDEzOjMyOjI4 LjkxNjY4NzY1OCArMDAwMAorKysrIGNocm9taXVtLTEwMy4wLjUwNjAuNTMvdGhpcmRfcGFydHkv c2l4L3NyYy9zaXgucHkJMjAyMi0wNy0wNSAyMTo1OTo0Mi41NjEyNDA0MDcgKzAwMDAKK0BAIC0y OSw3ICsyOSw3IEBAIGltcG9ydCBzeXMKKyBpbXBvcnQgdHlwZXMKKyAKKyBfX2F1dGhvcl9fID0g IkJlbmphbWluIFBldGVyc29uIDxiZW5qYW1pbkBweXRob24ub3JnPiIKKy1fX3ZlcnNpb25fXyA9 ICIxLjE0LjAiCisrX192ZXJzaW9uX18gPSAiMS4xNi4wIgorIAorIAorICMgVXNlZnVsIGZvciB2 ZXJ5IGNvYXJzZSB2ZXJzaW9uIGRpZmZlcmVudGlhdGlvbi4KK0BAIC03MSw2ICs3MSwxMSBAQCBl bHNlOgorICAgICAgICAgICAgIE1BWFNJWkUgPSBpbnQoKDEgPDwgNjMpIC0gMSkKKyAgICAgICAg IGRlbCBYCisgCisraWYgUFkzNDoKKysgICAgZnJvbSBpbXBvcnRsaWIudXRpbCBpbXBvcnQgc3Bl Y19mcm9tX2xvYWRlcgorK2Vsc2U6CisrICAgIHNwZWNfZnJvbV9sb2FkZXIgPSBOb25lCisrCisg CisgZGVmIF9hZGRfZG9jKGZ1bmMsIGRvYyk6CisgICAgICIiIkFkZCBkb2N1bWVudGF0aW9uIHRv IGEgZnVuY3Rpb24uIiIiCitAQCAtMTg2LDYgKzE5MSwxMSBAQCBjbGFzcyBfU2l4TWV0YVBhdGhJ bXBvcnRlcihvYmplY3QpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICByZXR1 cm4gTm9uZQorIAorKyAgICBkZWYgZmluZF9zcGVjKHNlbGYsIGZ1bGxuYW1lLCBwYXRoLCB0YXJn ZXQ9Tm9uZSk6CisrICAgICAgICBpZiBmdWxsbmFtZSBpbiBzZWxmLmtub3duX21vZHVsZXM6Cisr ICAgICAgICAgICAgcmV0dXJuIHNwZWNfZnJvbV9sb2FkZXIoZnVsbG5hbWUsIHNlbGYpCisrICAg ICAgICByZXR1cm4gTm9uZQorKworICAgICBkZWYgX19nZXRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1l KToKKyAgICAgICAgIHRyeToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5rbm93bl9tb2R1bGVz W2Z1bGxuYW1lXQorQEAgLTIyMyw2ICsyMzMsMTIgQEAgY2xhc3MgX1NpeE1ldGFQYXRoSW1wb3J0 ZXIob2JqZWN0KToKKyAgICAgICAgIHJldHVybiBOb25lCisgICAgIGdldF9zb3VyY2UgPSBnZXRf Y29kZSAgIyBzYW1lIGFzIGdldF9jb2RlCisgCisrICAgIGRlZiBjcmVhdGVfbW9kdWxlKHNlbGYs IHNwZWMpOgorKyAgICAgICAgcmV0dXJuIHNlbGYubG9hZF9tb2R1bGUoc3BlYy5uYW1lKQorKwor KyAgICBkZWYgZXhlY19tb2R1bGUoc2VsZiwgbW9kdWxlKToKKysgICAgICAgIHBhc3MKKysKKyBf aW1wb3J0ZXIgPSBfU2l4TWV0YVBhdGhJbXBvcnRlcihfX25hbWVfXykKKyAKKyAKK0BAIC04OTAs MTIgKzkwNiwxMSBAQCBkZWYgZW5zdXJlX2JpbmFyeShzLCBlbmNvZGluZz0ndXRmLTgnLCBlCisg ICAgICAgLSBgc3RyYCAtPiBlbmNvZGVkIHRvIGBieXRlc2AKKyAgICAgICAtIGBieXRlc2AgLT4g YGJ5dGVzYAorICAgICAiIiIKKysgICAgaWYgaXNpbnN0YW5jZShzLCBiaW5hcnlfdHlwZSk6Cisr ICAgICAgICByZXR1cm4gcworICAgICBpZiBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSk6CisgICAg ICAgICByZXR1cm4gcy5lbmNvZGUoZW5jb2RpbmcsIGVycm9ycykKKy0gICAgZWxpZiBpc2luc3Rh bmNlKHMsIGJpbmFyeV90eXBlKToKKy0gICAgICAgIHJldHVybiBzCistICAgIGVsc2U6CistICAg ICAgICByYWlzZSBUeXBlRXJyb3IoIm5vdCBleHBlY3RpbmcgdHlwZSAnJXMnIiAlIHR5cGUocykp CisrICAgIHJhaXNlIFR5cGVFcnJvcigibm90IGV4cGVjdGluZyB0eXBlICclcyciICUgdHlwZShz KSkKKyAKKyAKKyBkZWYgZW5zdXJlX3N0cihzLCBlbmNvZGluZz0ndXRmLTgnLCBlcnJvcnM9J3N0 cmljdCcpOgorQEAgLTkwOSwxMiArOTI0LDE1IEBAIGRlZiBlbnN1cmVfc3RyKHMsIGVuY29kaW5n PSd1dGYtOCcsIGVycm8KKyAgICAgICAtIGBzdHJgIC0+IGBzdHJgCisgICAgICAgLSBgYnl0ZXNg IC0+IGRlY29kZWQgdG8gYHN0cmAKKyAgICAgIiIiCistICAgIGlmIG5vdCBpc2luc3RhbmNlKHMs ICh0ZXh0X3R5cGUsIGJpbmFyeV90eXBlKSk6CistICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm5v dCBleHBlY3RpbmcgdHlwZSAnJXMnIiAlIHR5cGUocykpCisrICAgICMgT3B0aW1pemF0aW9uOiBG YXN0IHJldHVybiBmb3IgdGhlIGNvbW1vbiBjYXNlLgorKyAgICBpZiB0eXBlKHMpIGlzIHN0cjoK KysgICAgICAgIHJldHVybiBzCisgICAgIGlmIFBZMiBhbmQgaXNpbnN0YW5jZShzLCB0ZXh0X3R5 cGUpOgorLSAgICAgICAgcyA9IHMuZW5jb2RlKGVuY29kaW5nLCBlcnJvcnMpCisrICAgICAgICBy ZXR1cm4gcy5lbmNvZGUoZW5jb2RpbmcsIGVycm9ycykKKyAgICAgZWxpZiBQWTMgYW5kIGlzaW5z dGFuY2UocywgYmluYXJ5X3R5cGUpOgorLSAgICAgICAgcyA9IHMuZGVjb2RlKGVuY29kaW5nLCBl cnJvcnMpCisrICAgICAgICByZXR1cm4gcy5kZWNvZGUoZW5jb2RpbmcsIGVycm9ycykKKysgICAg ZWxpZiBub3QgaXNpbnN0YW5jZShzLCAodGV4dF90eXBlLCBiaW5hcnlfdHlwZSkpOgorKyAgICAg ICAgcmFpc2UgVHlwZUVycm9yKCJub3QgZXhwZWN0aW5nIHR5cGUgJyVzJyIgJSB0eXBlKHMpKQor ICAgICByZXR1cm4gcworIAorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tMTE0LW1hbGRvY2EtaW5jbHVkZS5wYXRjaCBiL3NyY3BrZ3MvZWxl Y3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTExNC1tYWxkb2NhLWluY2x1ZGUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMDI1OWNiOWIwZDAxNwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLTExNC1tYWxkb2NhLWluY2x1ZGUucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSAzNDVj NThmMWQ4NTI4NmIzOTRjMDViYjhkODcxYWM4MTczYmU5MGEzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgorRGF0 ZTogRnJpLCAzMSBNYXIgMjAyMyAxNjoyNjowNiArMDAwMAorU3ViamVjdDogW1BBVENIXSBJV1lV OiBhZGQgc3RkaW50LmggZm9yIGludCB0eXBlcyBpbiBtYWxkb2NhCisKKy0tLQorIHRoaXJkX3Bh cnR5L21hbGRvY2Evc3JjL21hbGRvY2Evb2xlL2hlYWRlci5oIHwgMiArKworIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L21hbGRvY2Ev c3JjL21hbGRvY2Evb2xlL2hlYWRlci5oIGIvdGhpcmRfcGFydHkvbWFsZG9jYS9zcmMvbWFsZG9j YS9vbGUvaGVhZGVyLmgKK2luZGV4IDE3NGY3MDQuLjQxYzQxZDUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9tYWxkb2NhL3NyYy9tYWxkb2NhL29sZS9oZWFkZXIuaAorKysrIGIvdGhpcmRfcGFy dHkvbWFsZG9jYS9zcmMvbWFsZG9jYS9vbGUvaGVhZGVyLmgKK0BAIC00Myw2ICs0Myw4IEBACisg I2lmbmRlZiBNQUxET0NBX09MRV9IRUFERVJfSF8KKyAjZGVmaW5lIE1BTERPQ0FfT0xFX0hFQURF Ul9IXworIAorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKysKKyAjaW5jbHVkZSAiYWJzbC9zdHJpbmdz L3N0cmluZ192aWV3LmgiCisgCisgbmFtZXNwYWNlIG1hbGRvY2EgeworLS0gCisyLjM5LjIKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTE1 LWNvbXBpbGVyLVNrQ29sb3I0Zi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRj aGVzL2Nocm9taXVtLTExNS1jb21waWxlci1Ta0NvbG9yNGYucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZmZhMGU3ZWQxMDhjOQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTExNS1jb21waWxl ci1Ta0NvbG9yNGYucGF0Y2gKQEAgLTAsMCArMSwyNyBAQAorUGF0Y2gtU291cmNlOiBodHRwczov L3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2Nocm9taXVtL2Jsb2IvMWY4ZmQ4NDZkMmNjNzJj OTBjNzNjOTg2NzYxOWYwZGE0M2I5YzgxNi9mL2Nocm9taXVtLTExNS1jb21waWxlci1Ta0NvbG9y NGYucGF0Y2gKK2RpZmYgLXVwIGNocm9taXVtLTExNS4wLjU3OTAuNDAvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvbW9kdWxlcy9jYW52YXMvY2FudmFzMmQvY2FudmFzX3N0eWxlLmNjLm1lIGNo cm9taXVtLTExNS4wLjU3OTAuNDAvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9j YW52YXMvY2FudmFzMmQvY2FudmFzX3N0eWxlLmNjCistLS0gY2hyb21pdW0tMTE1LjAuNTc5MC40 MC90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL2NhbnZhcy9jYW52YXMyZC9jYW52 YXNfc3R5bGUuY2MubWUJMjAyMy0wNi0yNCAxMDozODoxMS4wMTE1MTE0NjMgKzAyMDAKKysrKyBj aHJvbWl1bS0xMTUuMC41NzkwLjQwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMv Y2FudmFzL2NhbnZhczJkL2NhbnZhc19zdHlsZS5jYwkyMDIzLTA2LTI0IDEzOjA3OjM1Ljg2NTM3 NTg4NCArMDIwMAorQEAgLTg0LDYgKzg0LDcgQEAgQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNv bnN0IENhbnZhc1N0eQorIAorIHZvaWQgQ2FudmFzU3R5bGU6OkFwcGx5VG9GbGFncyhjYzo6UGFp bnRGbGFncyYgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGds b2JhbF9hbHBoYSkgY29uc3QgeworKyAgU2tDb2xvcjRmIGN1c3RvbV9jb2xvciA9IFNrQ29sb3I0 ZnswLjBmLCAwLjBmLCAwLjBmLCBnbG9iYWxfYWxwaGF9OworICAgc3dpdGNoICh0eXBlXykgewor ICAgICBjYXNlIGtDb2xvcjoKKyAgICAgICBBcHBseUNvbG9yVG9GbGFncyhmbGFncywgZ2xvYmFs X2FscGhhKTsKK0BAIC05MSwxMiArOTIsMTIgQEAgdm9pZCBDYW52YXNTdHlsZTo6QXBwbHlUb0Zs YWdzKGNjOjpQYWludAorICAgICBjYXNlIGtHcmFkaWVudDoKKyAgICAgICBHZXRDYW52YXNHcmFk aWVudCgpLT5HZXRHcmFkaWVudCgpLT5BcHBseVRvRmxhZ3MoZmxhZ3MsIFNrTWF0cml4OjpJKCks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEltYWdlRHJhd09wdGlvbnMoKSk7CistICAgICAgZmxhZ3Muc2V0Q29sb3IoU2tDb2xvcjRmKDAu MGYsIDAuMGYsIDAuMGYsIGdsb2JhbF9hbHBoYSkpOworKyAgICAgIGZsYWdzLnNldENvbG9yKGN1 c3RvbV9jb2xvcik7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2Uga0ltYWdlUGF0dGVybjoKKyAg ICAgICBHZXRDYW52YXNQYXR0ZXJuKCktPkdldFBhdHRlcm4oKS0+QXBwbHlUb0ZsYWdzKAorICAg ICAgICAgICBmbGFncywgQWZmaW5lVHJhbnNmb3JtVG9Ta01hdHJpeChHZXRDYW52YXNQYXR0ZXJu KCktPkdldFRyYW5zZm9ybSgpKSk7CistICAgICAgZmxhZ3Muc2V0Q29sb3IoU2tDb2xvcjRmKDAu MGYsIDAuMGYsIDAuMGYsIGdsb2JhbF9hbHBoYSkpOworKyAgICAgIGZsYWdzLnNldENvbG9yKGN1 c3RvbV9jb2xvcik7CisgICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgTk9UUkVB Q0hFRCgpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tMTE3LXN0cmluZy1jb252ZXJ0LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tMTE3LXN0cmluZy1jb252ZXJ0LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmNiNDhlNGIyMWE2MTcKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMTctc3RyaW5n LWNvbnZlcnQucGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAu NTkzOC42Mi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MubWUgY2hyb21pdW0tMTE3LjAu NTkzOC42Mi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuY2MKK2RpZmYgLXVwIGNocm9taXVt LTExNy4wLjU5MzguNjIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmgubWUgY2hyb21pdW0t MTE3LjAuNTkzOC42Mi9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfY2FjaGUuaAorLS0tIGNocm9taXVt LTExNy4wLjU5MzguNjIvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmgubWUJMjAyMy0wOS0x NCAxNToyMToyNC42MzI5NjUwMDQgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL25l dC9kbnMvaG9zdF9yZXNvbHZlcl9jYWNoZS5oCTIwMjMtMDktMTUgMDk6MTU6NDguNTExMzAwODQ1 ICswMjAwCitAQCAtMTQzLDEyICsxNDMsMTQgQEAgY2xhc3MgTkVUX0VYUE9SVCBIb3N0UmVzb2x2 ZXJDYWNoZSBmaW5hbAorICAgICB9CisgCisgICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBLZXkm IGxocywgY29uc3QgS2V5UmVmJiByaHMpIGNvbnN0IHsKKysgICAgICBjb25zdCBzdGQ6OnN0cmlu ZyByaHNfZG9tYWluX25hbWV7cmhzLmRvbWFpbl9uYW1lfTsKKyAgICAgICByZXR1cm4gc3RkOjp0 aWUobGhzLmRvbWFpbl9uYW1lLCBsaHMubmV0d29ya19hbm9ueW1pemF0aW9uX2tleSkgPAorLSAg ICAgICAgICAgICBzdGQ6OnRpZShyaHMuZG9tYWluX25hbWUsICpyaHMubmV0d29ya19hbm9ueW1p emF0aW9uX2tleSk7CisrICAgICAgICAgICAgIHN0ZDo6dGllKHJoc19kb21haW5fbmFtZSwgKnJo cy5uZXR3b3JrX2Fub255bWl6YXRpb25fa2V5KTsKKyAgICAgfQorIAorICAgICBib29sIG9wZXJh dG9yKCkoY29uc3QgS2V5UmVmJiBsaHMsIGNvbnN0IEtleSYgcmhzKSBjb25zdCB7CistICAgICAg cmV0dXJuIHN0ZDo6dGllKGxocy5kb21haW5fbmFtZSwgKmxocy5uZXR3b3JrX2Fub255bWl6YXRp b25fa2V5KSA8CisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbGhzX2RvbWFpbl9uYW1le2xocy5k b21haW5fbmFtZX07CisrICAgICAgcmV0dXJuIHN0ZDo6dGllKGxoc19kb21haW5fbmFtZSwgKmxo cy5uZXR3b3JrX2Fub255bWl6YXRpb25fa2V5KSA8CisgICAgICAgICAgICAgIHN0ZDo6dGllKHJo cy5kb21haW5fbmFtZSwgcmhzLm5ldHdvcmtfYW5vbnltaXphdGlvbl9rZXkpOworICAgICB9Cisg ICB9OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tMTE5LWFzc2VydC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLTExOS1hc3NlcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMC4uNmM1MDJmMTNhNTk1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTExOS1hc3NlcnQucGF0Y2gKQEAgLTAsMCArMSwx MiBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTE5LjAuNjA0NS41OS92OC9zcmMvYmFzZS9zbWFsbC12 ZWN0b3IuaC50aGFuIGNocm9taXVtLTExOS4wLjYwNDUuNTkvdjgvc3JjL2Jhc2Uvc21hbGwtdmVj dG9yLmgKKy0tLSBjaHJvbWl1bS0xMTkuMC42MDQ1LjU5L3Y4L3NyYy9iYXNlL3NtYWxsLXZlY3Rv ci5oLnRoYW4JMjAyMy0xMS0wMSAxNjoxMzoxMi42NDUzMDEzNDUgKzAxMDAKKysrKyBjaHJvbWl1 bS0xMTkuMC42MDQ1LjU5L3Y4L3NyYy9iYXNlL3NtYWxsLXZlY3Rvci5oCTIwMjMtMTEtMDEgMTY6 MTM6MjkuNjYwNjEwMTgyICswMTAwCitAQCAtMjIsNyArMjIsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5h bWUgVCwgc2l6ZV90IGtTaXplLCB0eXBlCisgY2xhc3MgU21hbGxWZWN0b3IgeworICAgLy8gQ3Vy cmVudGx5IG9ubHkgc3VwcG9ydCB0cml2aWFsbHkgY29weWFibGUgYW5kIHRyaXZpYWxseSBkZXN0 cnVjdGlibGUgZGF0YQorICAgLy8gdHlwZXMsIGFzIGl0IHVzZXMgbWVtY3B5IHRvIGNvcHkgZWxl bWVudHMgYW5kIG5ldmVyIGNhbGxzIGRlc3RydWN0b3JzLgorLSAgQVNTRVJUX1RSSVZJQUxMWV9D T1BZQUJMRShUKTsKKysgIC8vQVNTRVJUX1RSSVZJQUxMWV9DT1BZQUJMRShUKTsKKyAgIHN0YXRp Y19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSk7CisgCisg IHB1YmxpYzoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLTExOS1mZm1wZWctNC40LnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tMTE5LWZmbXBlZy00LjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMC4uMDRkMDRiMTY2YmEzNwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTExOS1mZm1wZWctNC40LnBh dGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL21lZGlhL2ZpbHRlcnMvZmZtcGVnX2RlbXV4ZXIu Y2Mub3JpZworKysrIGIvbWVkaWEvZmlsdGVycy9mZm1wZWdfZGVtdXhlci5jYworQEAgLTM5MCw3 ICszOTAsNyBAQAorIAorICAgc2NvcGVkX3JlZnB0cjxEZWNvZGVyQnVmZmVyPiBidWZmZXI7Cisg CistICAgIHNpemVfdCBzaWRlX2RhdGFfc2l6ZSA9IDA7CisrICAgIGludCBzaWRlX2RhdGFfc2l6 ZSA9IDA7CisgICAgIHVpbnQ4X3QqIHNpZGVfZGF0YSA9IGF2X3BhY2tldF9nZXRfc2lkZV9kYXRh KAorICAgICAgICAgcGFja2V0LmdldCgpLCBBVl9QS1RfREFUQV9NQVRST1NLQV9CTE9DS0FERElU SU9OQUwsICZzaWRlX2RhdGFfc2l6ZSk7CisgCitAQCAtNDUzLDcgKzQ1Myw3IEBACisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2V0LT5zaXplIC0gZGF0YV9vZmZz ZXQpOworICAgICB9CisgCistICAgIHNpemVfdCBza2lwX3NhbXBsZXNfc2l6ZSA9IDA7CisrICAg IGludCBza2lwX3NhbXBsZXNfc2l6ZSA9IDA7CisgICAgIGNvbnN0IHVpbnQzMl90KiBza2lwX3Nh bXBsZXNfcHRyID0KKyAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihh dl9wYWNrZXRfZ2V0X3NpZGVfZGF0YSgKKyAgICAgICAgICAgICBwYWNrZXQuZ2V0KCksIEFWX1BL VF9EQVRBX1NLSVBfU0FNUExFUywgJnNraXBfc2FtcGxlc19zaXplKSk7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMTktZml4LWFhcmNoNjQt bXVzbC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTEx OS1maXgtYWFyY2g2NC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLmNiYjJlYzE0YzkwZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0 cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMTktZml4LWFhcmNoNjQtbXVzbC5wYXRjaApA QCAtMCwwICsxLDExIEBACistLS0gYS92OC9zcmMvYmFzZS9jcHUuY2MKKysrKyBiL3Y4L3NyYy9i YXNlL2NwdS5jYworQEAgLTE0LDcgKzE0LDcgQEAKKyAjaWYgVjhfT1NfTElOVVgKKyAjaW5jbHVk ZSA8bGludXgvYXV4dmVjLmg+ICAvLyBBVF9IV0NBUAorICNlbmRpZgorLSNpZiBWOF9HTElCQ19Q UkVSRVEoMiwgMTYpIHx8IFY4X09TX0FORFJPSUQKKysjaWYgVjhfT1NfTElOVVggfHwgVjhfT1Nf QU5EUk9JRAorICNpbmNsdWRlIDxzeXMvYXV4di5oPiAgLy8gZ2V0YXV4dmFsKCkKKyAjZW5kaWYK KyAjaWYgVjhfT1NfUU5YCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS0xMjAtYXJtNjQtbWVtb3J5X3RhZ2dpbmcucGF0Y2ggYi9zcmNwa2dzL2Vs ZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMjAtYXJtNjQtbWVtb3J5X3RhZ2dpbmcu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYmI0NjFlZjM2 NjRhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVz L2Nocm9taXVtLTEyMC1hcm02NC1tZW1vcnlfdGFnZ2luZy5wYXRjaApAQCAtMCwwICsxLDE0IEBA CistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS4zNS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxs b2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2MvcGFydGl0aW9uX2FsbG9jX2NvbmZpZy5oLnRoYW4J MjAyMy0xMS0yNiAxMzo1MDowNy4wMDU1MTk4NzcgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42 MDk5LjM1L2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRpdGlvbl9h bGxvYy9wYXJ0aXRpb25fYWxsb2NfY29uZmlnLmgJMjAyMy0xMS0yNiAxMzo1MDo0OS43MjcyNjcy NDAgKzAxMDAKK0BAIC0xNTIsMTAgKzE1Miw3IEBACisgICAoIUJVSUxERkxBRyhQVVRfUkVGX0NP VU5UX0lOX1BSRVZJT1VTX1NMT1QpICYmIFwKKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX0xJVFRMRV9F TkRJQU4pKQorIAorLSNkZWZpbmUgUEFfQ09ORklHX0hBU19NRU1PUllfVEFHR0lORygpICAgICAg ICAgICAgICBcCistICAoZGVmaW5lZChBUkNIX0NQVV9BUk02NCkgJiYgZGVmaW5lZChfX2NsYW5n X18pICYmIFwKKy0gICAhZGVmaW5lZChBRERSRVNTX1NBTklUSVpFUikgJiYgICAgICAgICAgICAg ICAgICAgXAorLSAgIChCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19BTkRST0lE KSkpCisrI2RlZmluZSBQQV9DT05GSUdfSEFTX01FTU9SWV9UQUdHSU5HKCkgMAorIAorICNpZiBQ QV9DT05GSUcoSEFTX01FTU9SWV9UQUdHSU5HKQorIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHZvaWQq KSA9PSA4KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLTEyMC1kaXNhYmxlLUZGbXBlZ0FsbG93TGlzdHMucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZGlzYWJsZS1GRm1wZWdBbGxvd0xpc3Rz LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjk4MjE2ZGRi NDY1Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS0xMjAtZGlzYWJsZS1GRm1wZWdBbGxvd0xpc3RzLnBhdGNoCkBAIC0wLDAgKzEs MTIgQEAKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvbWVkaWEvYmFzZS9tZWRpYV9z d2l0Y2hlcy5jYy5tZSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L21lZGlhL2Jhc2UvbWVkaWFfc3dp dGNoZXMuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L21lZGlhL2Jhc2UvbWVkaWFfc3dp dGNoZXMuY2MubWUJMjAyMy0xMi0wMiAxMTo0MzoyMS45OTA3NzU4OTcgKzAxMDAKKysrKyBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L21lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuY2MJMjAyMy0xMi0w MiAxMTo0NToyMy4yNDgwMDYzNzcgKzAxMDAKK0BAIC0xNjM2LDcgKzE2MzYsNyBAQCBCQVNFX0ZF QVRVUkUoa1VzZVNoYXJlZEltYWdlc0ZvclBlcHBlclZpCisgLy8gRW5hYmxlcyBGRm1wZWcgYWxs b3cgbGlzdHMgZm9yIHN1cHBvcnRlZCBjb2RlY3MgLyBjb250YWluZXJzLgorIEJBU0VfRkVBVFVS RShrRkZtcGVnQWxsb3dMaXN0cywKKyAgICAgICAgICAgICAgIkZGbXBlZ0FsbG93TGlzdHMiLAor LSAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0VOQUJMRURfQllfREVGQVVMVCk7CisrICAgICAg ICAgICAgIGJhc2U6OkZFQVRVUkVfRElTQUJMRURfQllfREVGQVVMVCk7CisgCisgI2lmIEJVSUxE RkxBRyhFTkFCTEVfRkZNUEVHX1ZJREVPX0RFQ09ERVJTKQorIC8vIEFsbG93cyBkZWNvZGluZyBv ZiB0aGVvcmEgLyB2cDMgY29udGVudC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC1kaXNhYmxlLUdsb2JhbE1lZGlhQ29udHJvbHNDYXN0 U3RhcnRTdG9wLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tMTIwLWRpc2FibGUtR2xvYmFsTWVkaWFDb250cm9sc0Nhc3RTdGFydFN0b3AucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNmEyNTg1Yjk1M2MzYgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVt LTEyMC1kaXNhYmxlLUdsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9wLnBhdGNoCkBAIC0w LDAgKzEsMTQgQEAKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2Nocm9tZS9icm93c2VyL21l ZGlhL3JvdXRlci9tZWRpYV9yb3V0ZXJfZmVhdHVyZS5jYy5vcmlnCTIwMjMtMTEtMjYgMTM6MjU6 MzQuNzI0MjI4NzU1ICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS4zNS9jaHJvbWUvYnJv d3Nlci9tZWRpYS9yb3V0ZXIvbWVkaWFfcm91dGVyX2ZlYXR1cmUuY2MJMjAyMy0xMS0yNiAxMzoy ODoyNi40NTIzNTkxNDYgKzAxMDAKK0BAIC03MSwxMSArNzEsNyBAQAorIC8vIFRPRE8oYi8yMDIy OTQ5NDYpOiBSZW1vdmUgd2hlbiBlbmFibGVkIGJ5IGRlZmF1bHQgb24gQ2hyb21lT1MuCisgQkFT RV9GRUFUVVJFKGtHbG9iYWxNZWRpYUNvbnRyb2xzQ2FzdFN0YXJ0U3RvcCwKKyAgICAgICAgICAg ICAgIkdsb2JhbE1lZGlhQ29udHJvbHNDYXN0U3RhcnRTdG9wIiwKKy0jaWYgQlVJTERGTEFHKElT X0NIUk9NRU9TKQorICAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0RJU0FCTEVEX0JZX0RFRkFV TFQpOworLSNlbHNlCistICAgICAgICAgICAgIGJhc2U6OkZFQVRVUkVfRU5BQkxFRF9CWV9ERUZB VUxUKTsKKy0jZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKKyAjZW5kaWYgIC8vICFC VUlMREZMQUcoSVNfQU5EUk9JRCkKKyAKKyBuYW1lc3BhY2UgewpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1jbGFuZy1idWlsZC1m YWlsdXJlLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t MTIwLWVsNy1jbGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLjk2MjU4ZTY3YWFlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLWJ1aWxk LWZhaWx1cmUucGF0Y2gKQEAgLTAsMCArMSwyMzAgQEAKK2NvbW1pdCA1NzUyNmI4ZGM0NWIyZTZj NjdiYmE3MzA2ZjFkZGU3M2IxZjI5MTBjCitBdXRob3I6IHNpc2lkb3Zza2kgPHNpc2lkb3Zza2lA Y2hyb21pdW0ub3JnPgorRGF0ZTogICBUdWUgT2N0IDI0IDA5OjMyOjQ5IDIwMjMgKzAwMDAKKwor ICAgIFJlbW92ZSB1bnVzZWQgaXRlbXMgZnJvbSB0aGUgUmFjZU5ldHdvcmtSZXF1ZXN0IGhhc2ht YXAKKyAgICAKKyAgICBXaGVuIHRoZSBBdXRvUHJlbG9hZCBvciB0aGUgcmFjZS1uZXR3b3JrLWFu ZC1mZXRjaC1oYW5kbGVyIG9wdGlvbiBpbiB0aGUKKyAgICBzdGF0aWMgcm91dGluZyBBUEkgaXMg ZW5hYmxlZCwgbmV0d29yayByZXF1ZXN0cyBhcmUgZGlzcGF0Y2hlZCBhbmQKKyAgICBVUkxMb2Fk ZXJGYWN0b3JpZXMgYXJlIGhlbGQgaW4gYSBoYXNobWFwIGluIFNlcnZpY2VXb3JrZXJHbG9iYWxT Y29wZS4KKyAgICBUaG9zZSBhcmUgY29uc3VtZWQgaW5zaWRlIHRoZSBmZXRjaCBoYW5kbGVyIHdo ZW4gZmV0Y2goZS5yZXF1ZXN0KSBpcworICAgIGNhbGxlZC4gQnV0IGlmIHRoZSBmZXRjaCBoYW5k bGVyIGRvZXNuJ3QgY2FsbCBmZXRjaCgpIGUuZy4gZmFsbGJhY2ssCisgICAgdGhvc2UgaGFzaG1h cCBpdGVtcyBkb2VzIG5vdCBoYXZlIGEgY2hhbmNlIHRvIGJlIHJlbW92ZWQuCisgICAgCisgICAg VGhpcyBDTCBjaGFuZ2VzIHRoZSBoYXNobWFwIGl0ZW1zIHRvIGJlIHJlbW92ZWQgd2hlbiB0aGUg ZmV0Y2ggZXZlbnQKKyAgICBmaW5pc2hlcywgYW5kIHRoZSBVUkxMb2FkZXJGYWN0b3J5IGlzIHN0 aWxsIG5vdCBjb25zdW1lZCBhdCB0aGF0IHRpbWUuCisgICAgVGhpcyBtYXkgbG9vc2UgdGhlIGRl ZHVwZSBjYXBhYmlsaXR5IGlmIGZldGNoKCkgaXMgY2FsbGVkIGxhdGVyIGUuZy4KKyAgICBzZXRU aW1lb3V0KCgpID0+IGZldGNoKCkpLCBidXQgaXQgbWFrZXMgc2Vuc2UgdG8gcHJpb3JpdGl6ZSBr ZWVwaW5nIHRoZQorICAgIGhhc2htYXAgc21hbGwuCisgICAgCisgICAgQ2hhbmdlLUlkOiBJNTFi ZGM5ZDVlYjUxODVmMmI1YjRkZjZlZTc4NTcxNWIxMTgwYzg0OAorICAgIEJ1ZzogMTQ5MjY0MAor ICAgIFJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29t L2MvY2hyb21pdW0vc3JjLysvNDk2NDg0MAorICAgIFJldmlld2VkLWJ5OiBNaW5vcnUgQ2hpa2Ft dW5lIDxjaGlrYW11bmVAY2hyb21pdW0ub3JnPgorICAgIENvbW1pdC1RdWV1ZTogWW9zaGlzYXRv IFlhbmFnaXNhd2EgPHl5YW5hZ2lzYXdhQGNocm9taXVtLm9yZz4KKyAgICBSZXZpZXdlZC1ieTog WW9zaGlzYXRvIFlhbmFnaXNhd2EgPHl5YW5hZ2lzYXdhQGNocm9taXVtLm9yZz4KKyAgICBDci1D b21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFpbkB7IzEyMTQwNjR9CisKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3NlcnZpY2Vfd29ya2VyL3NlcnZp Y2Vfd29ya2VyX2dsb2JhbF9zY29wZS5jYyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21v ZHVsZXMvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xvYmFsX3Njb3BlLmNjCitpbmRl eCAwMjg4N2VkYzEwODgzLi5iMzYyNGZjMDE2MmRmIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9nbG9i YWxfc2NvcGUuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMvc2Vy dmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xvYmFsX3Njb3BlLmNjCitAQCAtNDYsNiArNDYs NyBAQAorICNpbmNsdWRlICJzZXJ2aWNlcy9uZXR3b3JrL3B1YmxpYy9jcHAvY3Jvc3Nfb3JpZ2lu X2VtYmVkZGVyX3BvbGljeS5oIgorICNpbmNsdWRlICJzZXJ2aWNlcy9uZXR3b3JrL3B1YmxpYy9t b2pvbS9jb29raWVfbWFuYWdlci5tb2pvbS1ibGluay5oIgorICNpbmNsdWRlICJzZXJ2aWNlcy9u ZXR3b3JrL3B1YmxpYy9tb2pvbS9jcm9zc19vcmlnaW5fZW1iZWRkZXJfcG9saWN5Lm1vam9tLmgi CisrI2luY2x1ZGUgInNlcnZpY2VzL25ldHdvcmsvcHVibGljL21vam9tL3VybF9sb2FkZXJfZmFj dG9yeS5tb2pvbS1ibGluay5oIgorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMv Y29tbW9uL2ZlYXR1cmVzLmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3B1YmxpYy9t b2pvbS9mZXRjaC9mZXRjaF9hcGlfcmVxdWVzdC5tb2pvbS1ibGluay5oIgorICNpbmNsdWRlICJ0 aGlyZF9wYXJ0eS9ibGluay9wdWJsaWMvbW9qb20vbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24u bW9qb20tYmxpbmsuaCIKK0BAIC0xMDk2LDYgKzEwOTcsMTAgQEAgdm9pZCBTZXJ2aWNlV29ya2Vy R2xvYmFsU2NvcGU6OkRpZEhhbmRsZUZldGNoRXZlbnQoCisgICAgICAgVFJBQ0VfSURfV0lUSF9T Q09QRShrU2VydmljZVdvcmtlckdsb2JhbFNjb3BlVHJhY2VTY29wZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRSQUNFX0lEX0xPQ0FMKGV2ZW50X2lkKSksCisgICAgICAgVFJBQ0VfRVZF TlRfRkxBR19GTE9XX0lOLCAic3RhdHVzIiwgTW9qb0VudW1Ub1N0cmluZyhzdGF0dXMpKTsKKysK KysgIC8vIERlbGV0ZSB0aGUgVVJMTG9hZGVyRmFjdG9yeSBmb3IgdGhlIFJhY2VOZXR3b3JrUmVx dWVzdCBpZiBpdCdzIG5vdCB1c2VkLgorKyAgUmVtb3ZlSXRlbUZyb21SYWNlTmV0d29ya1JlcXVl c3RzKGV2ZW50X2lkKTsKKysKKyAgIGlmICghUnVuRXZlbnRDYWxsYmFjaygmZmV0Y2hfZXZlbnRf Y2FsbGJhY2tzXywgZXZlbnRfcXVldWVfLmdldCgpLCBldmVudF9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBzdGF0dXMpKSB7CisgICAgIC8vIFRoZSBldmVudCBtYXkgaGF2ZSBiZWVuIGFi b3J0ZWQuIEl0cyByZXNwb25zZSBjYWxsYmFjayBhbHNvIG5lZWRzIHRvIGJlCitAQCAtMTQ5NSw2 ICsxNTAwLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OkFib3J0Q2FsbGJhY2tG b3JGZXRjaEV2ZW50KAorICAgICByZXNwb25zZV9jYWxsYmFja19pdGVyLT52YWx1ZS0+VGFrZVZh bHVlKCkucmVzZXQoKTsKKyAgICAgZmV0Y2hfcmVzcG9uc2VfY2FsbGJhY2tzXy5lcmFzZShyZXNw b25zZV9jYWxsYmFja19pdGVyKTsKKyAgIH0KKysgIFJlbW92ZUl0ZW1Gcm9tUmFjZU5ldHdvcmtS ZXF1ZXN0cyhldmVudF9pZCk7CisgCisgICAvLyBSdW4gdGhlIGV2ZW50IGNhbGxiYWNrIHdpdGgg dGhlIGVycm9yIGNvZGUuCisgICBhdXRvIGV2ZW50X2NhbGxiYWNrX2l0ZXIgPSBmZXRjaF9ldmVu dF9jYWxsYmFja3NfLmZpbmQoZXZlbnRfaWQpOworQEAgLTE1NTEsNTIgKzE1NTcsMTEgQEAgdm9p ZCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OlN0YXJ0RmV0Y2hFdmVudCgKKyAKKyAgIGlmIChw YXJhbXMtPnJhY2VfbmV0d29ya19yZXF1ZXN0X2xvYWRlcl9mYWN0b3J5ICYmCisgICAgICAgcGFy YW1zLT5yZXF1ZXN0LT5zZXJ2aWNlX3dvcmtlcl9yYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbikg eworLSAgICBhdXRvIGluc2VydF9yZXN1bHQgPSByYWNlX25ldHdvcmtfcmVxdWVzdF9sb2FkZXJf ZmFjdG9yaWVzXy5pbnNlcnQoCistICAgICAgICBTdHJpbmcocGFyYW1zLT5yZXF1ZXN0LT5zZXJ2 aWNlX3dvcmtlcl9yYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbgorLSAgICAgICAgICAgICAgICAg ICAtPlRvU3RyaW5nKCkpLAorLSAgICAgICAgc3RkOjptb3ZlKHBhcmFtcy0+cmFjZV9uZXR3b3Jr X3JlcXVlc3RfbG9hZGVyX2ZhY3RvcnkpKTsKKy0KKy0gICAgLy8gRHVtcFdpdGhvdXRDcmFzaGlu ZyBpZiB0aGUgdG9rZW4gaXMgZW1wdHksIG9yIG5vdCBpbnNlcnRlZCBhcyBhIG5ldyBlbnRyeQor LSAgICAvLyB0byB8cmFjZV9uZXR3b3JrX3JlcXVlc3RfbG9hZGVyX2ZhY3Rvcmllc198LgorLSAg ICAvLyBUT0RPKGNyYnVnLmNvbS8xNDkyNjQwKSBSZW1vdmUgRHVtcFdpdGhvdXRDcmFzaGluZyBv bmNlIHdlIGNvbGxlY3QgZGF0YQorLSAgICAvLyBhbmQgaWRlbnRpZnkgdGhlIGNhdXNlLgorLSAg ICBzdGF0aWMgYm9vbCBoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX2VtcHR5X3Rva2Vu ID0gZmFsc2U7CistICAgIHN0YXRpYyBib29sIGhhc19kdW1wZWRfd2l0aG91dF9jcmFzaGluZ19m b3Jfbm90X25ld19lbnRyeSA9IGZhbHNlOworLSAgICBpZiAoIWhhc19kdW1wZWRfd2l0aG91dF9j cmFzaGluZ19mb3JfZW1wdHlfdG9rZW4gJiYKKy0gICAgICAgIHBhcmFtcy0+cmVxdWVzdC0+c2Vy dmljZV93b3JrZXJfcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4KKy0gICAgICAgICAgICAtPmlz X2VtcHR5KCkpIHsKKy0gICAgICBoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX2VtcHR5 X3Rva2VuID0gdHJ1ZTsKKy0gICAgICBTQ09QRURfQ1JBU0hfS0VZX0JPT0woCistICAgICAgICAg ICJTV0dsb2JhbFNjb3BlIiwgImVtcHR5X3JhY2VfdG9rZW4iLAorLSAgICAgICAgICBwYXJhbXMt PnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2VuCistICAg ICAgICAgICAgICAtPmlzX2VtcHR5KCkpOworLSAgICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RSSU5H NjQoCistICAgICAgICAgICJTV0dsb2JhbFNjb3BlIiwgInJhY2VfdG9rZW5fc3RyaW5nIiwKKy0g ICAgICAgICAgcGFyYW1zLT5yZXF1ZXN0LT5zZXJ2aWNlX3dvcmtlcl9yYWNlX25ldHdvcmtfcmVx dWVzdF90b2tlbgorLSAgICAgICAgICAgICAgLT5Ub1N0cmluZygpKTsKKy0gICAgICBTQ09QRURf Q1JBU0hfS0VZX0JPT0woIlNXR2xvYmFsU2NvcGUiLCAicmFjZV9pbnNlcnRfbmV3X2VudHJ5IiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0X3Jlc3VsdC5pc19uZXdfZW50cnkp OworLSAgICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RSSU5HMjU2KCJTV0dsb2JhbFNjb3BlIiwgInJh Y2VfcmVxdWVzdF91cmwiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt cy0+cmVxdWVzdC0+dXJsLkdldFN0cmluZygpLlV0ZjgoKSk7CistICAgICAgYmFzZTo6ZGVidWc6 OkR1bXBXaXRob3V0Q3Jhc2hpbmcoKTsKKy0gICAgfQorLSAgICBpZiAoIWhhc19kdW1wZWRfd2l0 aG91dF9jcmFzaGluZ19mb3Jfbm90X25ld19lbnRyeSAmJgorLSAgICAgICAgIWluc2VydF9yZXN1 bHQuaXNfbmV3X2VudHJ5KSB7CistICAgICAgaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zv cl9ub3RfbmV3X2VudHJ5ID0gdHJ1ZTsKKy0gICAgICBTQ09QRURfQ1JBU0hfS0VZX0JPT0woCist ICAgICAgICAgICJTV0dsb2JhbFNjb3BlIiwgImVtcHR5X3JhY2VfdG9rZW4iLAorLSAgICAgICAg ICBwYXJhbXMtPnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rv a2VuCistICAgICAgICAgICAgICAtPmlzX2VtcHR5KCkpOworLSAgICAgIFNDT1BFRF9DUkFTSF9L RVlfU1RSSU5HNjQoCistICAgICAgICAgICJTV0dsb2JhbFNjb3BlIiwgInJhY2VfdG9rZW5fc3Ry aW5nIiwKKy0gICAgICAgICAgcGFyYW1zLT5yZXF1ZXN0LT5zZXJ2aWNlX3dvcmtlcl9yYWNlX25l dHdvcmtfcmVxdWVzdF90b2tlbgorLSAgICAgICAgICAgICAgLT5Ub1N0cmluZygpKTsKKy0gICAg ICBTQ09QRURfQ1JBU0hfS0VZX0JPT0woIlNXR2xvYmFsU2NvcGUiLCAicmFjZV9pbnNlcnRfbmV3 X2VudHJ5IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0X3Jlc3VsdC5pc19u ZXdfZW50cnkpOworLSAgICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RSSU5HMjU2KCJTV0dsb2JhbFNj b3BlIiwgInJhY2VfcmVxdWVzdF91cmwiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhcmFtcy0+cmVxdWVzdC0+dXJsLkdldFN0cmluZygpLlV0ZjgoKSk7CistICAgICAgYmFz ZTo6ZGVidWc6OkR1bXBXaXRob3V0Q3Jhc2hpbmcoKTsKKy0gICAgfQorKyAgICBJbnNlcnROZXdJ dGVtVG9SYWNlTmV0d29ya1JlcXVlc3RzKAorKyAgICAgICAgZXZlbnRfaWQsCisrICAgICAgICBw YXJhbXMtPnJlcXVlc3QtPnNlcnZpY2Vfd29ya2VyX3JhY2VfbmV0d29ya19yZXF1ZXN0X3Rva2Vu LnZhbHVlKCksCisrICAgICAgICBzdGQ6Om1vdmUocGFyYW1zLT5yYWNlX25ldHdvcmtfcmVxdWVz dF9sb2FkZXJfZmFjdG9yeSksCisrICAgICAgICBwYXJhbXMtPnJlcXVlc3QtPnVybCk7CisgICB9 CisgCisgICBSZXF1ZXN0KiByZXF1ZXN0ID0gUmVxdWVzdDo6Q3JlYXRlKAorQEAgLTI4MDgsMTIg KzI3NzMsNzEgQEAgYm9vbCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OlNldEF0dHJpYnV0ZUV2 ZW50TGlzdGVuZXIoCisgYWJzbDo6b3B0aW9uYWw8bW9qbzo6UGVuZGluZ1JlbW90ZTxuZXR3b3Jr Ojptb2pvbTo6Ymxpbms6OlVSTExvYWRlckZhY3Rvcnk+PgorIFNlcnZpY2VXb3JrZXJHbG9iYWxT Y29wZTo6RmluZFJhY2VOZXR3b3JrUmVxdWVzdFVSTExvYWRlckZhY3RvcnkoCisgICAgIGNvbnN0 IGJhc2U6OlVuZ3Vlc3NhYmxlVG9rZW4mIHRva2VuKSB7CistICBtb2pvOjpQZW5kaW5nUmVtb3Rl PG5ldHdvcms6Om1vam9tOjpibGluazo6VVJMTG9hZGVyRmFjdG9yeT4gcmVzdWx0ID0KKy0gICAg ICByYWNlX25ldHdvcmtfcmVxdWVzdF9sb2FkZXJfZmFjdG9yaWVzXy5UYWtlKFN0cmluZyh0b2tl bi5Ub1N0cmluZygpKSk7CisrICBzdGQ6OnVuaXF1ZV9wdHI8UmFjZU5ldHdvcmtSZXF1ZXN0SW5m bz4gcmVzdWx0ID0KKysgICAgICByYWNlX25ldHdvcmtfcmVxdWVzdHNfLlRha2UoU3RyaW5nKHRv a2VuLlRvU3RyaW5nKCkpKTsKKyAgIGlmIChyZXN1bHQpIHsKKy0gICAgcmV0dXJuIHJlc3VsdDsK KysgICAgcmFjZV9uZXR3b3JrX3JlcXVlc3RfZmV0Y2hfZXZlbnRfaWRzXy5lcmFzZShyZXN1bHQt PmZldGNoX2V2ZW50X2lkKTsKKysgICAgcmV0dXJuIGFic2w6Om9wdGlvbmFsPAorKyAgICAgICAg bW9qbzo6UGVuZGluZ1JlbW90ZTxuZXR3b3JrOjptb2pvbTo6Ymxpbms6OlVSTExvYWRlckZhY3Rv cnk+PigKKysgICAgICAgIHN0ZDo6bW92ZShyZXN1bHQtPnVybF9sb2FkZXJfZmFjdG9yeSkpOwor ICAgfQorICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7CisgfQorIAorK3ZvaWQgU2VydmljZVdvcmtl ckdsb2JhbFNjb3BlOjpJbnNlcnROZXdJdGVtVG9SYWNlTmV0d29ya1JlcXVlc3RzKAorKyAgICBp bnQgZmV0Y2hfZXZlbnRfaWQsCisrICAgIGNvbnN0IGJhc2U6OlVuZ3Vlc3NhYmxlVG9rZW4mIHRv a2VuLAorKyAgICBtb2pvOjpQZW5kaW5nUmVtb3RlPG5ldHdvcms6Om1vam9tOjpibGluazo6VVJM TG9hZGVyRmFjdG9yeT4KKysgICAgICAgIHVybF9sb2FkZXJfZmFjdG9yeSwKKysgICAgY29uc3Qg S1VSTCYgcmVxdWVzdF91cmwpIHsKKysgIGF1dG8gcmFjZV9uZXR3b3JrX3JlcXVlc3RfdG9rZW4g PSBTdHJpbmcodG9rZW4uVG9TdHJpbmcoKSk7CisrICBhdXRvIGluZm8gPSBzdGQ6Om1ha2VfdW5p cXVlPFJhY2VOZXR3b3JrUmVxdWVzdEluZm8+KAorKyAgICAgIGZldGNoX2V2ZW50X2lkLCByYWNl X25ldHdvcmtfcmVxdWVzdF90b2tlbiwKKysgICAgICBzdGQ6Om1vdmUodXJsX2xvYWRlcl9mYWN0 b3J5KSk7CisrICByYWNlX25ldHdvcmtfcmVxdWVzdF9mZXRjaF9ldmVudF9pZHNfLmluc2VydChm ZXRjaF9ldmVudF9pZCwgaW5mby5nZXQoKSk7CisrICBhdXRvIGluc2VydF9yZXN1bHQgPSByYWNl X25ldHdvcmtfcmVxdWVzdHNfLmluc2VydChyYWNlX25ldHdvcmtfcmVxdWVzdF90b2tlbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6 bW92ZShpbmZvKSk7CisrCisrICAvLyBEdW1wV2l0aG91dENyYXNoaW5nIGlmIHRoZSB0b2tlbiBp cyBlbXB0eSwgb3Igbm90IGluc2VydGVkIGFzIGEgbmV3IGVudHJ5CisrICAvLyB0byB8cmFjZV9u ZXR3b3JrX3JlcXVlc3RfbG9hZGVyX2ZhY3Rvcmllc198LgorKyAgLy8gVE9ETyhjcmJ1Zy5jb20v MTQ5MjY0MCkgUmVtb3ZlIER1bXBXaXRob3V0Q3Jhc2hpbmcgb25jZSB3ZSBjb2xsZWN0IGRhdGEK KysgIC8vIGFuZCBpZGVudGlmeSB0aGUgY2F1c2UuCisrICBzdGF0aWMgYm9vbCBoYXNfZHVtcGVk X3dpdGhvdXRfY3Jhc2hpbmdfZm9yX2VtcHR5X3Rva2VuID0gZmFsc2U7CisrICBzdGF0aWMgYm9v bCBoYXNfZHVtcGVkX3dpdGhvdXRfY3Jhc2hpbmdfZm9yX25vdF9uZXdfZW50cnkgPSBmYWxzZTsK KysgIGlmICghaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9lbXB0eV90b2tlbiAmJiB0 b2tlbi5pc19lbXB0eSgpKSB7CisrICAgIGhhc19kdW1wZWRfd2l0aG91dF9jcmFzaGluZ19mb3Jf ZW1wdHlfdG9rZW4gPSB0cnVlOworKyAgICBTQ09QRURfQ1JBU0hfS0VZX0JPT0woIlNXR2xvYmFs U2NvcGUiLCAiZW1wdHlfcmFjZV90b2tlbiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICB0 b2tlbi5pc19lbXB0eSgpKTsKKysgICAgU0NPUEVEX0NSQVNIX0tFWV9TVFJJTkc2NCgiU1dHbG9i YWxTY29wZSIsICJyYWNlX3Rva2VuX3N0cmluZyIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdG9rZW4uVG9TdHJpbmcoKSk7CisrICAgIFNDT1BFRF9DUkFTSF9LRVlfQk9PTCgiU1dH bG9iYWxTY29wZSIsICJyYWNlX2luc2VydF9uZXdfZW50cnkiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zZXJ0X3Jlc3VsdC5pc19uZXdfZW50cnkpOworKyAgICBTQ09QRURfQ1JBU0hf S0VZX1NUUklORzI1NigiU1dHbG9iYWxTY29wZSIsICJyYWNlX3JlcXVlc3RfdXJsIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF91cmwuR2V0U3RyaW5nKCkuVXRmOCgp KTsKKysgICAgYmFzZTo6ZGVidWc6OkR1bXBXaXRob3V0Q3Jhc2hpbmcoKTsKKysgIH0KKysgIGlm ICghaGFzX2R1bXBlZF93aXRob3V0X2NyYXNoaW5nX2Zvcl9ub3RfbmV3X2VudHJ5ICYmCisrICAg ICAgIWluc2VydF9yZXN1bHQuaXNfbmV3X2VudHJ5KSB7CisrICAgIGhhc19kdW1wZWRfd2l0aG91 dF9jcmFzaGluZ19mb3Jfbm90X25ld19lbnRyeSA9IHRydWU7CisrICAgIFNDT1BFRF9DUkFTSF9L RVlfQk9PTCgiU1dHbG9iYWxTY29wZSIsICJlbXB0eV9yYWNlX3Rva2VuIiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIHRva2VuLmlzX2VtcHR5KCkpOworKyAgICBTQ09QRURfQ1JBU0hfS0VZ X1NUUklORzY0KCJTV0dsb2JhbFNjb3BlIiwgInJhY2VfdG9rZW5fc3RyaW5nIiwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5Ub1N0cmluZygpKTsKKysgICAgU0NPUEVEX0NS QVNIX0tFWV9CT09MKCJTV0dsb2JhbFNjb3BlIiwgInJhY2VfaW5zZXJ0X25ld19lbnRyeSIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRfcmVzdWx0LmlzX25ld19lbnRyeSk7Cisr ICAgIFNDT1BFRF9DUkFTSF9LRVlfU1RSSU5HMjU2KCJTV0dsb2JhbFNjb3BlIiwgInJhY2VfcmVx dWVzdF91cmwiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X3VybC5H ZXRTdHJpbmcoKS5VdGY4KCkpOworKyAgICBiYXNlOjpkZWJ1Zzo6RHVtcFdpdGhvdXRDcmFzaGlu ZygpOworKyAgfQorK30KKysKKyt2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6UmVtb3Zl SXRlbUZyb21SYWNlTmV0d29ya1JlcXVlc3RzKAorKyAgICBpbnQgZmV0Y2hfZXZlbnRfaWQpIHsK KysgIFJhY2VOZXR3b3JrUmVxdWVzdEluZm8qIGluZm8gPQorKyAgICAgIHJhY2VfbmV0d29ya19y ZXF1ZXN0X2ZldGNoX2V2ZW50X2lkc18uVGFrZShmZXRjaF9ldmVudF9pZCk7CisrICBpZiAoaW5m bykgeworKyAgICByYWNlX25ldHdvcmtfcmVxdWVzdHNfLmVyYXNlKGluZm8tPnRva2VuKTsKKysg IH0KKyt9CisrCisgfSAgLy8gbmFtZXNwYWNlIGJsaW5rCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvbW9kdWxlcy9zZXJ2aWNlX3dvcmtlci9zZXJ2aWNlX3dvcmtlcl9n bG9iYWxfc2NvcGUuaCBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL21vZHVsZXMvc2Vydmlj ZV93b3JrZXIvc2VydmljZV93b3JrZXJfZ2xvYmFsX3Njb3BlLmgKK2luZGV4IDQ2YzQzMWIzOTU4 MjUuLmFjNGNhYzBiMWQ4ZmIgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9tb2R1bGVzL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2VyX2dsb2JhbF9zY29wZS5oCisr KysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9tb2R1bGVzL3NlcnZpY2Vfd29ya2VyL3Nl cnZpY2Vfd29ya2VyX2dsb2JhbF9zY29wZS5oCitAQCAtNjIzLDYgKzYyMywxNCBAQCBjbGFzcyBN T0RVTEVTX0VYUE9SVCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgZmluYWwKKyAgIC8vIFNlcnZp Y2VXb3JrZXIuRmV0Y2hFdmVudC5RdWV1aW5nVGltZSBoaXN0b2dyYW0uCisgICB2b2lkIFJlY29y ZFF1ZXVpbmdUaW1lKGJhc2U6OlRpbWVUaWNrcyBjcmVhdGVkX3RpbWUpOworIAorKyAgdm9pZCBJ bnNlcnROZXdJdGVtVG9SYWNlTmV0d29ya1JlcXVlc3RzKAorKyAgICAgIGludCBmZXRjaF9ldmVu dF9pZCwKKysgICAgICBjb25zdCBiYXNlOjpVbmd1ZXNzYWJsZVRva2VuJiB0b2tlbiwKKysgICAg ICBtb2pvOjpQZW5kaW5nUmVtb3RlPG5ldHdvcms6Om1vam9tOjpibGluazo6VVJMTG9hZGVyRmFj dG9yeT4KKysgICAgICAgICAgdXJsX2xvYWRlcl9mYWN0b3J5LAorKyAgICAgIGNvbnN0IEtVUkwm IHJlcXVlc3RfdXJsKTsKKysgIHZvaWQgUmVtb3ZlSXRlbUZyb21SYWNlTmV0d29ya1JlcXVlc3Rz KGludCBmZXRjaF9ldmVudF9pZCk7CisrCisgICBNZW1iZXI8U2VydmljZVdvcmtlckNsaWVudHM+ IGNsaWVudHNfOworICAgTWVtYmVyPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IHJlZ2lzdHJh dGlvbl87CisgICBNZW1iZXI8OjpibGluazo6U2VydmljZVdvcmtlcj4gc2VydmljZV93b3JrZXJf OworQEAgLTc2OCwxMCArNzc2LDE3IEBAIGNsYXNzIE1PRFVMRVNfRVhQT1JUIFNlcnZpY2VXb3Jr ZXJHbG9iYWxTY29wZSBmaW5hbAorIAorICAgYmxpbms6OkJsaW5rU3RvcmFnZUtleSBzdG9yYWdl X2tleV87CisgCisrICBzdHJ1Y3QgUmFjZU5ldHdvcmtSZXF1ZXN0SW5mbyB7CisrICAgIGludCBm ZXRjaF9ldmVudF9pZDsKKysgICAgU3RyaW5nIHRva2VuOworKyAgICBtb2pvOjpQZW5kaW5nUmVt b3RlPG5ldHdvcms6Om1vam9tOjpibGluazo6VVJMTG9hZGVyRmFjdG9yeT4KKysgICAgICAgIHVy bF9sb2FkZXJfZmFjdG9yeTsKKysgIH07CisgICAvLyBUT0RPKGNyYnVnLmNvbS85MTg3MDIpIFdU Rjo6SGFzaE1hcCBjYW5ub3QgdXNlIGJhc2U6OlVuZ3Vlc3NhYmxlVG9rZW4gYXMgYQorICAgLy8g a2V5LiBBcyBhIHdvcmthcm91bmQgdXNlcyBXVEY6OlN0cmluZyBhcyBhIGtleSBpbnN0ZWFkLgor LSAgSGFzaE1hcDxTdHJpbmcsIG1vam86OlBlbmRpbmdSZW1vdGU8bmV0d29yazo6bW9qb206OmJs aW5rOjpVUkxMb2FkZXJGYWN0b3J5Pj4KKy0gICAgICByYWNlX25ldHdvcmtfcmVxdWVzdF9sb2Fk ZXJfZmFjdG9yaWVzXzsKKysgIEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UmFjZU5l dHdvcmtSZXF1ZXN0SW5mbz4+CisrICAgICAgcmFjZV9uZXR3b3JrX3JlcXVlc3RzXzsKKysgIEhh c2hNYXA8aW50LCBSYWNlTmV0d29ya1JlcXVlc3RJbmZvKj4gcmFjZV9uZXR3b3JrX3JlcXVlc3Rf ZmV0Y2hfZXZlbnRfaWRzXzsKKyAKKyAgIEhlYXBNb2pvQXNzb2NpYXRlZFJlbW90ZTxtb2pvbTo6 Ymxpbms6OkFzc29jaWF0ZWRJbnRlcmZhY2VQcm92aWRlcj4KKyAgICAgICByZW1vdGVfYXNzb2Np YXRlZF9pbnRlcmZhY2VzX3t0aGlzfTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC1lbDctY2xhbmctYnVpbGQtZmFpbHVyZS5wYXRjaC5h cmdzIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLWVsNy1j bGFuZy1idWlsZC1mYWlsdXJlLnBhdGNoLmFyZ3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uOGJiYmJlOTQ4MzYzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC1lbDctY2xhbmctYnVpbGQtZmFp bHVyZS5wYXRjaC5hcmdzCkBAIC0wLDAgKzEgQEAKKy1STnAxCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLXZlcnNpb24t d2FybmluZy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVt LTEyMC1lbDctY2xhbmctdmVyc2lvbi13YXJuaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAuLjExMmRhNjViNGQ5YjYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMjAtZWw3LWNsYW5nLXZl cnNpb24td2FybmluZy5wYXRjaApAQCAtMCwwICsxLDE2IEBACitkaWZmIC11cCBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2xpYmMrKy9zcmMvaW5jbHVkZS9fX2NvbmZpZy5tZSBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2xpYmMrKy9zcmMvaW5jbHVkZS9fX2Nv bmZpZworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvbGliYysrL3NyYy9p bmNsdWRlL19fY29uZmlnLm1lCTIwMjMtMTItMDMgMDA6MDU6NTEuMjU0NDgzNDc0ICswMTAwCisr KysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9saWJjKysvc3JjL2luY2x1ZGUv X19jb25maWcJMjAyMy0xMi0wMyAwMDowNjowNS44NzI4NjMxNjggKzAxMDAKK0BAIC0zMiwxMSAr MzIsNyBAQAorIAorIC8vIFdhcm4gaWYgYSBjb21waWxlciB2ZXJzaW9uIGlzIHVzZWQgdGhhdCBp cyBub3Qgc3VwcG9ydGVkIGFueW1vcmUKKyAvLyBMTFZNIFJFTEVBU0UgVXBkYXRlIHRoZSBtaW5p bXVtIGNvbXBpbGVyIHZlcnNpb25zCistIyAgaWYgZGVmaW5lZChfTElCQ1BQX0NMQU5HX1ZFUikK Ky0jICAgIGlmIF9MSUJDUFBfQ0xBTkdfVkVSIDwgMTUwMAorLSMgICAgICB3YXJuaW5nICJMaWJj Kysgb25seSBzdXBwb3J0cyBDbGFuZyAxNSBhbmQgbGF0ZXIiCistIyAgICBlbmRpZgorLSMgIGVs aWYgZGVmaW5lZChfTElCQ1BQX0FQUExFX0NMQU5HX1ZFUikKKysjICBpZiBkZWZpbmVkKF9MSUJD UFBfQVBQTEVfQ0xBTkdfVkVSKQorICMgICAgaWYgX0xJQkNQUF9BUFBMRV9DTEFOR19WRVIgPCAx NTAwCisgIyAgICAgIHdhcm5pbmcgIkxpYmMrKyBvbmx5IHN1cHBvcnRzIEFwcGxlQ2xhbmcgMTUg YW5kIGxhdGVyIgorICMgICAgZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC1nbi13b3JrYXJvdW5kLWF0c3BpLnBhdGNoIGIvc3Jj cGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLWduLXdvcmthcm91bmQt YXRzcGkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNzJj N2I3ZWM0MWMyOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9w YXRjaGVzL2Nocm9taXVtLTEyMC1nbi13b3JrYXJvdW5kLWF0c3BpLnBhdGNoCkBAIC0wLDAgKzEs MTMgQEAKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuMzUvYnVpbGQvY29uZmlnL2xpbnV4 L2F0c3BpMi9CVUlMRC5nbi5tZSBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2J1aWxkL2NvbmZpZy9s aW51eC9hdHNwaTIvQlVJTEQuZ24KKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2J1aWxkL2Nv bmZpZy9saW51eC9hdHNwaTIvQlVJTEQuZ24ubWUJMjAyMy0xMS0yNiAxNjoxNDoxNS4zNjQwNjQx MjYgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjM1L2J1aWxkL2NvbmZpZy9saW51eC9h dHNwaTIvQlVJTEQuZ24JMjAyMy0xMS0yNiAxNjo0MToxNi44NzczMjE5OTAgKzAxMDAKK0BAIC0y MSw2ICsyMSw5IEBAIGlmICh1c2VfYXRrKSB7CisgICAgIG1pbm9yID0gYXRzcGlfdmVyc2lvblsx XQorICAgICBtaWNybyA9IGF0c3BpX3ZlcnNpb25bMl0KKyAKKysgICAgIyBnbiB3b3JrYXJvdW5k IGZvciB0aGUgZXJyb3I6IEFzc2lnbm1lbnQgaGFkIG5vIGVmZmVjdAorKyAgICBwcmludCgiQVRT UEkgVmVyc2lvbjogJG1ham9yLiRtaW5vci4kbWljcm8iKQorKworICAgICAjIEFUU1BJIDIuNDku OTAgbm93IGRlZmluZXMgdGhlc2UgZm9yIHVzIGFuZCBpdCdzIGFuIGVycm9yIGZvciB1cyB0bwor ICAgICAjIHJlZGVmaW5lIHRoZW0gb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZS4KKyAgICAg IyBTZWUgQVRTUEkgOTI3MzQ0YTM0Y2Q1YmY4MWZjNjRkYTQ5NjgyNDE3MzVlY2I0ZjAzYgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLW1p c3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNo ZXMvY2hyb21pdW0tMTIwLW1pc3NpbmctaGVhZGVyLWZpbGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjFlN2QyNjkyYThmNmQKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMjAtbWlzc2lu Zy1oZWFkZXItZmlsZXMucGF0Y2gKQEAgLTAsMCArMSw0NDggQEAKK2RpZmYgLXVwIGNocm9taXVt LTExMC4wLjU0ODEuMTc3L2Jhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgubWUgY2hyb21pdW0tMTEw LjAuNTQ4MS4xNzcvYmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaAorLS0tIGNocm9taXVtLTExMC4w LjU0ODEuMTc3L2Jhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgubWUJMjAyMy0wMi0yMyAxMzozNDoz My4xNzQ4MTcyNTUgLTA1MDAKKysrKyBjaHJvbWl1bS0xMTAuMC41NDgxLjE3Ny9iYXNlL21lbW9y eS9yZWZfY291bnRlZC5oCTIwMjMtMDItMjMgMTM6NDI6MjguNjQ2MDUyNDY5IC0wNTAwCitAQCAt Niw2ICs2LDcgQEAKKyAjZGVmaW5lIEJBU0VfTUVNT1JZX1JFRl9DT1VOVEVEX0hfCisgCisgI2lu Y2x1ZGUgPHN0ZGRlZi5oPgorKyNpbmNsdWRlIDxsaW1pdHM+CisgCisgI2luY2x1ZGUgPHV0aWxp dHk+CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2Jhc2UvY2hlY2tfb3AuaC5t ZSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2Jhc2UvY2hlY2tfb3AuaAorLS0tIGNocm9taXVtLTEw OS4wLjU0MTQuNzQvYmFzZS9jaGVja19vcC5oLm1lCTIwMjMtMDEtMTcgMTc6Mzk6MjcuNjIwODc1 ODgzICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9iYXNlL2NoZWNrX29wLmgJMjAy My0wMS0xNyAxNzozOTo0Mi41NDYwNjA5NTcgKzAxMDAKK0BAIC01LDYgKzUsNyBAQAorICNpZm5k ZWYgQkFTRV9DSEVDS19PUF9IXworICNkZWZpbmUgQkFTRV9DSEVDS19PUF9IXworIAorKyNpbmNs dWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxjc3RkZGVmPgorICNpbmNsdWRlIDxzdHJpbmc+Cisg I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9i YXNlL2RlYnVnL3Byb2ZpbGVyLmgubWUgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9iYXNlL2RlYnVn L3Byb2ZpbGVyLmgKKy0tLSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2Jhc2UvZGVidWcvcHJvZmls ZXIuaC5tZQkyMDIzLTAxLTE3IDE2OjI5OjI2LjM2ODA5MDA3MyArMDEwMAorKysrIGNocm9taXVt LTEwOS4wLjU0MTQuNzQvYmFzZS9kZWJ1Zy9wcm9maWxlci5oCTIwMjMtMDEtMTcgMTY6NTk6NDEu MTkwNjI4Njc5ICswMTAwCitAQCAtNyw2ICs3LDcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+ CisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAKKyAjaW5jbHVk ZSAiYmFzZS9iYXNlX2V4cG9ydC5oIgorZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9n cHUvY29uZmlnL2dwdV9mZWF0dXJlX2luZm8uaC5tZSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2dw dS9jb25maWcvZ3B1X2ZlYXR1cmVfaW5mby5oCistLS0gY2hyb21pdW0tMTA5LjAuNTQxNC43NC9n cHUvY29uZmlnL2dwdV9mZWF0dXJlX2luZm8uaC5tZQkyMDIzLTAxLTE3IDE5OjA2OjUzLjUzMDY3 NTEyOSArMDEwMAorKysrIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvZ3B1L2NvbmZpZy9ncHVfZmVh dHVyZV9pbmZvLmgJMjAyMy0wMS0xNyAxOTowNzowOC44NzQ4NDk4NzkgKzAxMDAKK0BAIC01LDYg KzUsNyBAQAorICNpZm5kZWYgR1BVX0NPTkZJR19HUFVfRkVBVFVSRV9JTkZPX0hfCisgI2RlZmlu ZSBHUFVfQ09ORklHX0dQVV9GRUFUVVJFX0lORk9fSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4K KyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx2ZWN0b3I+CisgCitkaWZmIC11cCBjaHJv bWl1bS0xMDkuMC41NDE0Ljc0L25ldC9iYXNlL25ldF9leHBvcnQuaC5tZSBjaHJvbWl1bS0xMDku MC41NDE0Ljc0L25ldC9iYXNlL25ldF9leHBvcnQuaAorLS0tIGNocm9taXVtLTEwOS4wLjU0MTQu NzQvbmV0L2Jhc2UvbmV0X2V4cG9ydC5oLm1lCTIwMjMtMDEtMTcgMTg6MTY6MzQuMTMzODU0NjE1 ICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9uZXQvYmFzZS9uZXRfZXhwb3J0LmgJ MjAyMy0wMS0xNyAxODoxNjoxNS45NDU2MjMxNTMgKzAxMDAKK0BAIC01LDYgKzUsOCBAQAorICNp Zm5kZWYgTkVUX0JBU0VfTkVUX0VYUE9SVF9IXworICNkZWZpbmUgTkVUX0JBU0VfTkVUX0VYUE9S VF9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorKworIC8vIERlZmluZXMgTkVUX0VYUE9SVCBz byB0aGF0IGZ1bmN0aW9uYWxpdHkgaW1wbGVtZW50ZWQgYnkgdGhlIG5ldCBtb2R1bGUgY2FuCisg Ly8gYmUgZXhwb3J0ZWQgdG8gY29uc3VtZXJzLCBhbmQgTkVUX0VYUE9SVF9QUklWQVRFIHRoYXQg YWxsb3dzIHVuaXQgdGVzdHMgdG8KKyAvLyBhY2Nlc3MgZmVhdHVyZXMgbm90IGludGVuZGVkIHRv IGJlIHVzZWQgZGlyZWN0bHkgYnkgcmVhbCBjb25zdW1lcnMuCitkaWZmIC11cCBjaHJvbWl1bS0x MDkuMC41NDE0Ljc0L3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX2ZpbGVfcGVy bWlzc2lvbi5oLm1lIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvc2FuZGJveC9saW51eC9zeXNjYWxs X2Jyb2tlci9icm9rZXJfZmlsZV9wZXJtaXNzaW9uLmgKKy0tLSBjaHJvbWl1bS0xMDkuMC41NDE0 Ljc0L3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX2ZpbGVfcGVybWlzc2lvbi5o Lm1lCTIwMjMtMDEtMTcgMTc6MTI6MzQuMTg0Njg2NTE1ICswMTAwCisrKysgY2hyb21pdW0tMTA5 LjAuNTQxNC43NC9zYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9maWxlX3Blcm1p c3Npb24uaAkyMDIzLTAxLTE3IDE3OjEzOjE2LjUzNzE2MjQyMCArMDEwMAorQEAgLTUsNiArNSw3 IEBACisgI2lmbmRlZiBTQU5EQk9YX0xJTlVYX1NZU0NBTExfQlJPS0VSX0JST0tFUl9GSUxFX1BF Uk1JU1NJT05fSF8KKyAjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTQ0FMTF9CUk9LRVJfQlJPS0VS X0ZJTEVfUEVSTUlTU0lPTl9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxi aXRzZXQ+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAKK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjU0 MTQuNzQvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL3N0cmluZ3Mvc3RyaW5nX3ZpZXcuaC5t ZSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9zdHJp bmdzL3N0cmluZ192aWV3LmgKKy0tLSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJkX3BhcnR5 L2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgubWUJMjAyMy0wMS0xNyAxNzoz MzoyMC44OTU3MTczMDcgKzAxMDAKKysrKyBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJkX3Bh cnR5L2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cmluZ192aWV3LmgJMjAyMy0wMS0xNyAxNzoz NDowMy40NTYxODUzNjUgKzAxMDAKK0BAIC0yNyw2ICsyNyw3IEBACisgI2lmbmRlZiBBQlNMX1NU UklOR1NfU1RSSU5HX1ZJRVdfSF8KKyAjZGVmaW5lIEFCU0xfU1RSSU5HU19TVFJJTkdfVklFV19I XworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxhbGdvcml0aG0+CisgI2luY2x1 ZGUgPGNhc3NlcnQ+CisgI2luY2x1ZGUgPGNzdGRkZWY+CitkaWZmIC11cCBjaHJvbWl1bS0xMDku MC41NDE0Ljc0L3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvR0xTTEFORy9TaGFkZXJWYXJzLmgu bWUgY2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL0dMU0xB TkcvU2hhZGVyVmFycy5oCistLS0gY2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9h bmdsZS9pbmNsdWRlL0dMU0xBTkcvU2hhZGVyVmFycy5oLm1lCTIwMjMtMDEtMTcgMTc6MzY6MTUu MDE3NjE2MjUwICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9h bmdsZS9pbmNsdWRlL0dMU0xBTkcvU2hhZGVyVmFycy5oCTIwMjMtMDEtMTcgMTc6MzY6NDguOTYw OTgyMTk1ICswMTAwCitAQCAtMTAsNiArMTAsNyBAQAorICNpZm5kZWYgR0xTTEFOR19TSEFERVJW QVJTX0hfCisgI2RlZmluZSBHTFNMQU5HX1NIQURFUlZBUlNfSF8KKyAKKysjaW5jbHVkZSA8Y3N0 ZGludD4KKyAjaW5jbHVkZSA8YWxnb3JpdGhtPgorICNpbmNsdWRlIDxhcnJheT4KKyAjaW5jbHVk ZSA8c3RyaW5nPgorZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9i bGluay9wdWJsaWMvY29tbW9uL2JsdWV0b290aC93ZWJfYmx1ZXRvb3RoX2RldmljZV9pZC5oLm1l IGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdGhpcmRfcGFydHkvYmxpbmsvcHVibGljL2NvbW1vbi9i bHVldG9vdGgvd2ViX2JsdWV0b290aF9kZXZpY2VfaWQuaAorLS0tIGNocm9taXVtLTEwOS4wLjU0 MTQuNzQvdGhpcmRfcGFydHkvYmxpbmsvcHVibGljL2NvbW1vbi9ibHVldG9vdGgvd2ViX2JsdWV0 b290aF9kZXZpY2VfaWQuaC5tZQkyMDIzLTAxLTE3IDE5OjE3OjQwLjQ4MDg3NjE3MSArMDEwMAor KysrIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdGhpcmRfcGFydHkvYmxpbmsvcHVibGljL2NvbW1v bi9ibHVldG9vdGgvd2ViX2JsdWV0b290aF9kZXZpY2VfaWQuaAkyMDIzLTAxLTE3IDE5OjE3OjQ2 LjgwMzk1ODMyMCArMDEwMAorQEAgLTUsNiArNSw3IEBACisgI2lmbmRlZiBUSElSRF9QQVJUWV9C TElOS19QVUJMSUNfQ09NTU9OX0JMVUVUT09USF9XRUJfQkxVRVRPT1RIX0RFVklDRV9JRF9IXwor ICNkZWZpbmUgVEhJUkRfUEFSVFlfQkxJTktfUFVCTElDX0NPTU1PTl9CTFVFVE9PVEhfV0VCX0JM VUVUT09USF9ERVZJQ0VfSURfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8 YXJyYXk+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAKK2RpZmYgLXVwIGNocm9taXVtLTExNy4wLjU5 MzguNDgvdGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC9sYW5nL3NwaXJ2L3JlYWRlci9hc3RfcGFy c2VyL25hbWVyLmgubWUgY2hyb21pdW0tMTE3LjAuNTkzOC40OC90aGlyZF9wYXJ0eS9kYXduL3Ny Yy90aW50L2xhbmcvc3BpcnYvcmVhZGVyL2FzdF9wYXJzZXIvbmFtZXIuaAorLS0tIGNocm9taXVt LTExNy4wLjU5MzguNDgvdGhpcmRfcGFydHkvZGF3bi9zcmMvdGludC9sYW5nL3NwaXJ2L3JlYWRl ci9hc3RfcGFyc2VyL25hbWVyLmgubWUJMjAyMy0wMS0xNyAxODowMjo0NC42ODE1MzgxMDcgKzAx MDAKKysrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjQ4L3RoaXJkX3BhcnR5L2Rhd24vc3JjL3RpbnQv bGFuZy9zcGlydi9yZWFkZXIvYXN0X3BhcnNlci9uYW1lci5oCTIwMjMtMDEtMTcgMTg6MDI6NTcu MjA4Njc5MTQwICswMTAwCitAQCAtMTUsNiArMTUsNyBAQAorICNpZm5kZWYgU1JDX1RJTlRfUkVB REVSX1NQSVJWX05BTUVSX0hfCisgI2RlZmluZSBTUkNfVElOVF9SRUFERVJfU1BJUlZfTkFNRVJf SF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRl IDx1bm9yZGVyZWRfbWFwPgorICNpbmNsdWRlIDx2ZWN0b3I+CitkaWZmIC11cCBjaHJvbWl1bS0x MDkuMC41NDE0Ljc0L3RoaXJkX3BhcnR5L29wZW5zY3JlZW4vc3JjL2Rpc2NvdmVyeS9kbnNzZC9w dWJsaWMvZG5zX3NkX3R4dF9yZWNvcmQuaC5tZSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJk X3BhcnR5L29wZW5zY3JlZW4vc3JjL2Rpc2NvdmVyeS9kbnNzZC9wdWJsaWMvZG5zX3NkX3R4dF9y ZWNvcmQuaAorLS0tIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdGhpcmRfcGFydHkvb3BlbnNjcmVl bi9zcmMvZGlzY292ZXJ5L2Ruc3NkL3B1YmxpYy9kbnNfc2RfdHh0X3JlY29yZC5oLm1lCTIwMjMt MDEtMTggMTU6MjI6MzguNDcyOTQwNjQ4ICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTQxNC43 NC90aGlyZF9wYXJ0eS9vcGVuc2NyZWVuL3NyYy9kaXNjb3ZlcnkvZG5zc2QvcHVibGljL2Ruc19z ZF90eHRfcmVjb3JkLmgJMjAyMy0wMS0xOCAxNToyMzowOS4zODAyNTUxMDEgKzAxMDAKK0BAIC01 LDYgKzUsNyBAQAorICNpZm5kZWYgRElTQ09WRVJZX0ROU1NEX1BVQkxJQ19ETlNfU0RfVFhUX1JF Q09SRF9IXworICNkZWZpbmUgRElTQ09WRVJZX0ROU1NEX1BVQkxJQ19ETlNfU0RfVFhUX1JFQ09S RF9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorICNp bmNsdWRlIDxtYXA+CisgI2luY2x1ZGUgPHNldD4KK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjU0 MTQuNzQvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvc3JjL1N5c3RlbS9MUlVDYWNoZS5ocHAubWUg Y2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci9zcmMvU3lzdGVt L0xSVUNhY2hlLmhwcAorLS0tIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdGhpcmRfcGFydHkvc3dp ZnRzaGFkZXIvc3JjL1N5c3RlbS9MUlVDYWNoZS5ocHAubWUJMjAyMy0wMS0xNyAxNTozNzo0OC41 MzA2MjY1MTYgKzAxMDAKKysrKyBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJkX3BhcnR5L3N3 aWZ0c2hhZGVyL3NyYy9TeXN0ZW0vTFJVQ2FjaGUuaHBwCTIwMjMtMDEtMTcgMTY6NTc6NDYuMDI1 NTQ4MDkyICswMTAwCitAQCAtMTcsNiArMTcsNyBAQAorIAorICNpbmNsdWRlICJTeXN0ZW0vRGVi dWcuaHBwIgorIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxjc3RkZGVmPgorICNp bmNsdWRlIDxmdW5jdGlvbmFsPgorICNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorZGlmZiAtdXAg Y2hyb21pdW0tMTA5LjAuNTQxNC43NC91aS9nZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50Lmgu bWUgY2hyb21pdW0tMTA5LjAuNTQxNC43NC91aS9nZngvZ2VvbWV0cnkvbGluZWFyX2dyYWRpZW50 LmgKKy0tLSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3VpL2dmeC9nZW9tZXRyeS9saW5lYXJfZ3Jh ZGllbnQuaC5tZQkyMDIzLTAxLTE3IDE4OjA4OjI1Ljc0NTQ5MTM1MyArMDEwMAorKysrIGNocm9t aXVtLTEwOS4wLjU0MTQuNzQvdWkvZ2Z4L2dlb21ldHJ5L2xpbmVhcl9ncmFkaWVudC5oCTIwMjMt MDEtMTcgMTg6MDg6MzUuNzc3NjY3NjMyICswMTAwCitAQCAtNSw2ICs1LDcgQEAKKyAjaWZuZGVm IFVJX0dGWF9MSU5FQVJfR1JBRElFTlRfSF8KKyAjZGVmaW5lIFVJX0dGWF9MSU5FQVJfR1JBRElF TlRfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8YXJyYXk+CisgI2luY2x1 ZGUgPHN0cmluZz4KKyAKK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdGhpcmRfcGFy dHkvcnV5L3NyYy9ydXkvcHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgubWUgY2hyb21pdW0tMTA5 LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9wcm9maWxlci9pbnN0cnVtZW50YXRp b24uaAorLS0tIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdGhpcmRfcGFydHkvcnV5L3NyYy9ydXkv cHJvZmlsZXIvaW5zdHJ1bWVudGF0aW9uLmgubWUJMjAyMy0wMS0xOSAxMDoxMDoyMS4yODc4NzY3 MzYgKzAxMDAKKysrKyBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJkX3BhcnR5L3J1eS9zcmMv cnV5L3Byb2ZpbGVyL2luc3RydW1lbnRhdGlvbi5oCTIwMjMtMDEtMTkgMTA6MTE6MjEuNzE0Nzc4 ODk2ICswMTAwCitAQCAtMTcsNiArMTcsNyBAQCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5z ZS4KKyAjZGVmaW5lIFJVWV9SVVlfUFJPRklMRVJfSU5TVFJVTUVOVEFUSU9OX0hfCisgCisgI2lm ZGVmIFJVWV9QUk9GSUxFUgorKyNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPGNzdGRpbz4K KyAjaW5jbHVkZSA8bXV0ZXg+CisgI2luY2x1ZGUgPHZlY3Rvcj4KK2RpZmYgLXVwIGNocm9taXVt LTEwOS4wLjU0MTQuNzQvdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUva2Vy bmVscy9pbnRlcm5hbC9zcGVjdHJvZ3JhbS5oLm1lIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdGhp cmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUva2VybmVscy9pbnRlcm5hbC9zcGVj dHJvZ3JhbS5oCistLS0gY2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS90ZmxpdGUv c3JjL3RlbnNvcmZsb3cvbGl0ZS9rZXJuZWxzL2ludGVybmFsL3NwZWN0cm9ncmFtLmgubWUJMjAy My0wMS0xOSAxMDozMDoyNy41MzM4NjE5ODUgKzAxMDAKKysrKyBjaHJvbWl1bS0xMDkuMC41NDE0 Ljc0L3RoaXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29yZmxvdy9saXRlL2tlcm5lbHMvaW50ZXJu YWwvc3BlY3Ryb2dyYW0uaAkyMDIzLTAxLTE5IDEwOjMxOjEyLjU4NTU1NDE4MyArMDEwMAorQEAg LTMxLDYgKzMxLDcgQEAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgI2lmbmRlZiBU RU5TT1JGTE9XX0xJVEVfS0VSTkVMU19JTlRFUk5BTF9TUEVDVFJPR1JBTV9IXworICNkZWZpbmUg VEVOU09SRkxPV19MSVRFX0tFUk5FTFNfSU5URVJOQUxfU1BFQ1RST0dSQU1fSF8KKyAKKysjaW5j bHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8Y29tcGxleD4KKyAjaW5jbHVkZSA8ZGVxdWU+Cisg I2luY2x1ZGUgPHZlY3Rvcj4KK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvYmFzZS9j b250YWluZXJzL2ZsYXRfbWFwLmgubWVlIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvYmFzZS9jb250 YWluZXJzL2ZsYXRfbWFwLmgKKy0tLSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2Jhc2UvY29udGFp bmVycy9mbGF0X21hcC5oLm1lZQkyMDIzLTAxLTE5IDEwOjU5OjUyLjIxNDk1Nzc3MyArMDEwMAor KysrIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvYmFzZS9jb250YWluZXJzL2ZsYXRfbWFwLmgJMjAy My0wMS0xOSAxMTowMDowNi40MTUyMTUzMDkgKzAxMDAKK0BAIC01LDYgKzUsNyBAQAorICNpZm5k ZWYgQkFTRV9DT05UQUlORVJTX0ZMQVRfTUFQX0hfCisgI2RlZmluZSBCQVNFX0NPTlRBSU5FUlNf RkxBVF9NQVBfSF8KKyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8ZnVuY3Rpb25h bD4KKyAjaW5jbHVkZSA8dHVwbGU+CisgI2luY2x1ZGUgPHV0aWxpdHk+CitkaWZmIC11cCBjaHJv bWl1bS0xMDkuMC41NDE0Ljc0L3VpL2Jhc2UvcHJlZGljdGlvbi9rYWxtYW5fZmlsdGVyLmgubWVl IGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdWkvYmFzZS9wcmVkaWN0aW9uL2thbG1hbl9maWx0ZXIu aAorLS0tIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvdWkvYmFzZS9wcmVkaWN0aW9uL2thbG1hbl9m aWx0ZXIuaC5tZWUJMjAyMy0wMS0xOSAxMTo0NToxNS45NTMxNTk3NTUgKzAxMDAKKysrKyBjaHJv bWl1bS0xMDkuMC41NDE0Ljc0L3VpL2Jhc2UvcHJlZGljdGlvbi9rYWxtYW5fZmlsdGVyLmgJMjAy My0wMS0xOSAxMTo0NToyMi4zMjAyNDYyNDEgKzAxMDAKK0BAIC01LDYgKzUsOCBAQAorICNpZm5k ZWYgVUlfQkFTRV9QUkVESUNUSU9OX0tBTE1BTl9GSUxURVJfSF8KKyAjZGVmaW5lIFVJX0JBU0Vf UFJFRElDVElPTl9LQUxNQU5fRklMVEVSX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisrCisg I2luY2x1ZGUgImJhc2UvY29tcG9uZW50X2V4cG9ydC5oIgorICNpbmNsdWRlICJ1aS9nZngvZ2Vv bWV0cnkvbWF0cml4M19mLmgiCisgCitkaWZmIC11cCBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2Nv bXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvZ2VuZXJhdGlvbi9wYXNzd29y ZF9nZW5lcmF0b3IuaC5tZSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2NvbXBvbmVudHMvcGFzc3dv cmRfbWFuYWdlci9jb3JlL2Jyb3dzZXIvZ2VuZXJhdGlvbi9wYXNzd29yZF9nZW5lcmF0b3IuaAor LS0tIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2Nv cmUvYnJvd3Nlci9nZW5lcmF0aW9uL3Bhc3N3b3JkX2dlbmVyYXRvci5oLm1lCTIwMjMtMDEtMTkg MTU6MjA6MDcuNjIwOTg3OTQ5ICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9jb21w b25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL2dlbmVyYXRpb24vcGFzc3dvcmRf Z2VuZXJhdG9yLmgJMjAyMy0wMS0xOSAxNToyMDoxOC4zMjQxNzM3MDIgKzAxMDAKK0BAIC01LDYg KzUsNyBAQAorICNpZm5kZWYgQ09NUE9ORU5UU19QQVNTV09SRF9NQU5BR0VSX0NPUkVfQlJPV1NF Ul9HRU5FUkFUSU9OX1BBU1NXT1JEX0dFTkVSQVRPUl9IXworICNkZWZpbmUgQ09NUE9ORU5UU19Q QVNTV09SRF9NQU5BR0VSX0NPUkVfQlJPV1NFUl9HRU5FUkFUSU9OX1BBU1NXT1JEX0dFTkVSQVRP Ul9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgCitk aWZmIC11cCBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2NvbXBvbmVudHMvZmVhdHVyZV9lbmdhZ2Vt ZW50L2ludGVybmFsL2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgubWUgY2hyb21pdW0tMTA5LjAu NTQxNC43NC9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9y YWdlX3ZhbGlkYXRvci5oCistLS0gY2hyb21pdW0tMTA5LjAuNTQxNC43NC9jb21wb25lbnRzL2Zl YXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oLm1lCTIw MjMtMDEtMTkgMTY6MDA6MTQuMzUwMTg2NTE1ICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTQx NC43NC9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9ldmVudF9zdG9yYWdl X3ZhbGlkYXRvci5oCTIwMjMtMDEtMTkgMTY6MDA6MjEuNjQzMzA3OTkzICswMTAwCitAQCAtNSw2 ICs1LDcgQEAKKyAjaWZuZGVmIENPTVBPTkVOVFNfRkVBVFVSRV9FTkdBR0VNRU5UX0lOVEVSTkFM X0VWRU5UX1NUT1JBR0VfVkFMSURBVE9SX0hfCisgI2RlZmluZSBDT01QT05FTlRTX0ZFQVRVUkVf RU5HQUdFTUVOVF9JTlRFUk5BTF9FVkVOVF9TVE9SQUdFX1ZBTElEQVRPUl9IXworIAorKyNpbmNs dWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgbmFtZXNwYWNlIGZlYXR1cmVf ZW5nYWdlbWVudCB7CitkaWZmIC11cCBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2NvbXBvbmVudHMv ZmVhdHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL25ldmVyX2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9y LmgubWUgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVu dC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oCistLS0gY2hyb21pdW0t MTA5LjAuNTQxNC43NC9jb21wb25lbnRzL2ZlYXR1cmVfZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZl cl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oLm1lCTIwMjMtMDEtMTkgMTU6NTk6MTguMjEwMjM5 NDE2ICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9jb21wb25lbnRzL2ZlYXR1cmVf ZW5nYWdlbWVudC9pbnRlcm5hbC9uZXZlcl9ldmVudF9zdG9yYWdlX3ZhbGlkYXRvci5oCTIwMjMt MDEtMTkgMTU6NTk6MzQuNTEzNTE1MDMwICswMTAwCitAQCAtNSw2ICs1LDcgQEAKKyAjaWZuZGVm IENPTVBPTkVOVFNfRkVBVFVSRV9FTkdBR0VNRU5UX0lOVEVSTkFMX05FVkVSX0VWRU5UX1NUT1JB R0VfVkFMSURBVE9SX0hfCisgI2RlZmluZSBDT01QT05FTlRTX0ZFQVRVUkVfRU5HQUdFTUVOVF9J TlRFUk5BTF9ORVZFUl9FVkVOVF9TVE9SQUdFX1ZBTElEQVRPUl9IXworIAorKyNpbmNsdWRlIDxj c3RkaW50PgorICNpbmNsdWRlIDxzdHJpbmc+CisgCisgI2luY2x1ZGUgImNvbXBvbmVudHMvZmVh dHVyZV9lbmdhZ2VtZW50L2ludGVybmFsL2V2ZW50X3N0b3JhZ2VfdmFsaWRhdG9yLmgiCitkaWZm IC11cCBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJk X3BhcnR5L2xsdm0tMTAuMC9sbHZtL2xpYi9TdXBwb3J0L1VuaXgvU2lnbmFscy5pbmMubWUgY2hy b21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9s bHZtLTEwLjAvbGx2bS9saWIvU3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5jCistLS0gY2hyb21pdW0t MTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEw LjAvbGx2bS9saWIvU3VwcG9ydC9Vbml4L1NpZ25hbHMuaW5jLm1lCTIwMjMtMDEtMTkgMTY6MDk6 MjkuMjE2NDc3MTgyICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0 eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvbGx2bS9saWIvU3VwcG9ydC9Vbml4 L1NpZ25hbHMuaW5jCTIwMjMtMDEtMTkgMTY6MTA6MDUuNjU3MDg5MjA4ICswMTAwCitAQCAtNDUs NiArNDUsNyBAQAorICNpbmNsdWRlICJsbHZtL1N1cHBvcnQvU2F2ZUFuZFJlc3RvcmUuaCIKKyAj aW5jbHVkZSAibGx2bS9TdXBwb3J0L3Jhd19vc3RyZWFtLmgiCisgI2luY2x1ZGUgPGFsZ29yaXRo bT4KKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDxz eXNleGl0cy5oPgorICNpZmRlZiBIQVZFX0JBQ0tUUkFDRQorZGlmZiAtdXAgY2hyb21pdW0tMTA5 LjAuNTQxNC43NC9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X2J1ZGdldC9lbmNvdW50ZXJlZF9zdXJm YWNlX3RyYWNrZXIuaC5tZSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2Nocm9tZS9icm93c2VyL3By aXZhY3lfYnVkZ2V0L2VuY291bnRlcmVkX3N1cmZhY2VfdHJhY2tlci5oCistLS0gY2hyb21pdW0t MTA5LjAuNTQxNC43NC9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X2J1ZGdldC9lbmNvdW50ZXJlZF9z dXJmYWNlX3RyYWNrZXIuaC5tZQkyMDIzLTAxLTE5IDE2OjMyOjA1LjMzODE2MDEzMSArMDEwMAor KysrIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvY2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9idWRnZXQv ZW5jb3VudGVyZWRfc3VyZmFjZV90cmFja2VyLmgJMjAyMy0wMS0xOSAxNjozMjoxNi4yMTMzMjY3 OTggKzAxMDAKK0BAIC01LDYgKzUsNyBAQAorICNpZm5kZWYgQ0hST01FX0JST1dTRVJfUFJJVkFD WV9CVURHRVRfRU5DT1VOVEVSRURfU1VSRkFDRV9UUkFDS0VSX0hfCisgI2RlZmluZSBDSFJPTUVf QlJPV1NFUl9QUklWQUNZX0JVREdFVF9FTkNPVU5URVJFRF9TVVJGQUNFX1RSQUNLRVJfSF8KKyAK KysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8bWFwPgorIAorICNpbmNsdWRlICJiYXNl L2NvbnRhaW5lcnMvZmxhdF9zZXQuaCIKK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjU0MTQuNzQv Y29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvYXV0b2ZpbGxfYWJsYXRpb25fc3R1ZHku aC5tZSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93 c2VyL2F1dG9maWxsX2FibGF0aW9uX3N0dWR5LmgKKy0tLSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0 L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2F1dG9maWxsX2FibGF0aW9uX3N0dWR5 LmgubWUJMjAyMy0wMS0xOSAxNjo0Nzo1NS41NDg1NzExMDIgKzAxMDAKKysrKyBjaHJvbWl1bS0x MDkuMC41NDE0Ljc0L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2F1dG9maWxsX2Fi bGF0aW9uX3N0dWR5LmgJMjAyMy0wMS0xOSAxNjo0ODoyOS4yMTQxNDY1MjkgKzAxMDAKK0BAIC01 LDYgKzUsNyBAQAorICNpZm5kZWYgQ09NUE9ORU5UU19BVVRPRklMTF9DT1JFX0JST1dTRVJfQVVU T0ZJTExfQUJMQVRJT05fU1RVRFlfSF8KKyAjZGVmaW5lIENPTVBPTkVOVFNfQVVUT0ZJTExfQ09S RV9CUk9XU0VSX0FVVE9GSUxMX0FCTEFUSU9OX1NUVURZX0hfCisgCisrI2luY2x1ZGUgPGNzdGRp bnQ+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAKKyBjbGFzcyBHVVJMOworZGlmZiAtdXAgY2hyb21p dW0tMTA5LjAuNTQxNC43NC9jb21wb25lbnRzL29tbmlib3gvYnJvd3Nlci9vbl9kZXZpY2VfaGVh ZF9tb2RlbC5oLm1lIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvY29tcG9uZW50cy9vbW5pYm94L2Jy b3dzZXIvb25fZGV2aWNlX2hlYWRfbW9kZWwuaAorLS0tIGNocm9taXVtLTEwOS4wLjU0MTQuNzQv Y29tcG9uZW50cy9vbW5pYm94L2Jyb3dzZXIvb25fZGV2aWNlX2hlYWRfbW9kZWwuaC5tZQkyMDIz LTAxLTE5IDE2OjU3OjI5LjUyNTM3MjgxNCArMDEwMAorKysrIGNocm9taXVtLTEwOS4wLjU0MTQu NzQvY29tcG9uZW50cy9vbW5pYm94L2Jyb3dzZXIvb25fZGV2aWNlX2hlYWRfbW9kZWwuaAkyMDIz LTAxLTE5IDE2OjU4OjAyLjY2Nzk3OTI4OCArMDEwMAorQEAgLTUsNiArNSw3IEBACisgI2lmbmRl ZiBDT01QT05FTlRTX09NTklCT1hfQlJPV1NFUl9PTl9ERVZJQ0VfSEVBRF9NT0RFTF9IXworICNk ZWZpbmUgQ09NUE9ORU5UU19PTU5JQk9YX0JST1dTRVJfT05fREVWSUNFX0hFQURfTU9ERUxfSF8K KyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx1 dGlsaXR5PgorICNpbmNsdWRlIDx2ZWN0b3I+CitkaWZmIC11cCBjaHJvbWl1bS0xMDkuMC41NDE0 Ljc0L2NvbXBvbmVudHMvcGF5bWVudHMvY29udGVudC91dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNl ci5oLm1lIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvY29tcG9uZW50cy9wYXltZW50cy9jb250ZW50 L3V0aWxpdHkvZmluZ2VycHJpbnRfcGFyc2VyLmgKKy0tLSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0 L2NvbXBvbmVudHMvcGF5bWVudHMvY29udGVudC91dGlsaXR5L2ZpbmdlcnByaW50X3BhcnNlci5o Lm1lCTIwMjMtMDEtMTkgMTc6MDI6NDUuMjU4NTQ0NjY1ICswMTAwCisrKysgY2hyb21pdW0tMTA5 LjAuNTQxNC43NC9jb21wb25lbnRzL3BheW1lbnRzL2NvbnRlbnQvdXRpbGl0eS9maW5nZXJwcmlu dF9wYXJzZXIuaAkyMDIzLTAxLTE5IDE3OjAyOjUyLjU3NzYxMTc1NyArMDEwMAorQEAgLTUsNiAr NSw3IEBACisgI2lmbmRlZiBDT01QT05FTlRTX1BBWU1FTlRTX0NPTlRFTlRfVVRJTElUWV9GSU5H RVJQUklOVF9QQVJTRVJfSF8KKyAjZGVmaW5lIENPTVBPTkVOVFNfUEFZTUVOVFNfQ09OVEVOVF9V VElMSVRZX0ZJTkdFUlBSSU5UX1BBUlNFUl9IXworIAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNp bmNsdWRlIDxzdGRkZWYuaD4KKyAKKyAjaW5jbHVkZSA8c3RyaW5nPgorZGlmZiAtdXAgY2hyb21p dW0tMTA5LjAuNTQxNC43NC9wZGYvZG9jdW1lbnRfYXR0YWNobWVudF9pbmZvLmgubWUgY2hyb21p dW0tMTA5LjAuNTQxNC43NC9wZGYvZG9jdW1lbnRfYXR0YWNobWVudF9pbmZvLmgKKy0tLSBjaHJv bWl1bS0xMDkuMC41NDE0Ljc0L3BkZi9kb2N1bWVudF9hdHRhY2htZW50X2luZm8uaC5tZQkyMDIz LTAxLTE5IDE3OjI4OjI4LjU1MjA2MzUzNCArMDEwMAorKysrIGNocm9taXVtLTEwOS4wLjU0MTQu NzQvcGRmL2RvY3VtZW50X2F0dGFjaG1lbnRfaW5mby5oCTIwMjMtMDEtMTkgMTc6Mjg6NDguMDcy Mzc5OTUzICswMTAwCitAQCAtNSw2ICs1LDcgQEAKKyAjaWZuZGVmIFBERl9ET0NVTUVOVF9BVFRB Q0hNRU5UX0lORk9fSF8KKyAjZGVmaW5lIFBERl9ET0NVTUVOVF9BVFRBQ0hNRU5UX0lORk9fSF8K KyAKKysjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8c3RyaW5nPgorIAorIAorZGlmZiAt dXAgY2hyb21pdW0tMTA5LjAuNTQxNC43NC90aGlyZF9wYXJ0eS9wZGZpdW0vY29uc3RhbnRzL2Fu bm90YXRpb25fZmxhZ3MuaC5tZSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L3RoaXJkX3BhcnR5L3Bk Zml1bS9jb25zdGFudHMvYW5ub3RhdGlvbl9mbGFncy5oCistLS0gY2hyb21pdW0tMTA5LjAuNTQx NC43NC90aGlyZF9wYXJ0eS9wZGZpdW0vY29uc3RhbnRzL2Fubm90YXRpb25fZmxhZ3MuaC5tZQky MDIzLTAxLTE5IDE4OjI1OjQ3LjY0ODE5MzcxMCArMDEwMAorKysrIGNocm9taXVtLTEwOS4wLjU0 MTQuNzQvdGhpcmRfcGFydHkvcGRmaXVtL2NvbnN0YW50cy9hbm5vdGF0aW9uX2ZsYWdzLmgJMjAy My0wMS0xOSAxODoyNjoxMS40ODg1OTM1NTYgKzAxMDAKK0BAIC01LDYgKzUsOCBAQAorICNpZm5k ZWYgQ09OU1RBTlRTX0FOTk9UQVRJT05fRkxBR1NfSF8KKyAjZGVmaW5lIENPTlNUQU5UU19BTk5P VEFUSU9OX0ZMQUdTX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisrCisgbmFtZXNwYWNlIHBk Zml1bSB7CisgbmFtZXNwYWNlIGFubm90YXRpb25fZmxhZ3MgeworIAorZGlmZiAtdXAgY2hyb21p dW0tMTEzLjAuNTY3Mi4yNC90aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdmFsaWRhdGlv bi1sYXllcnMvc3JjL2xheWVycy9leHRlcm5hbC92bWEvdmtfbWVtX2FsbG9jLmgubWUgY2hyb21p dW0tMTEzLjAuNTY3Mi4yNC90aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy92dWxrYW4tdmFsaWRhdGlv bi1sYXllcnMvc3JjL2xheWVycy9leHRlcm5hbC92bWEvdmtfbWVtX2FsbG9jLmgKKy0tLSBjaHJv bWl1bS0xMTMuMC41NjcyLjI0L3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi12YWxpZGF0 aW9uLWxheWVycy9zcmMvbGF5ZXJzL2V4dGVybmFsL3ZtYS92a19tZW1fYWxsb2MuaC5tZQkyMDIz LTA0LTE1IDE2OjQ0OjU1LjM0NDMwNTQxMiArMDIwMAorKysrIGNocm9taXVtLTExMy4wLjU2NzIu MjQvdGhpcmRfcGFydHkvdnVsa2FuLWRlcHMvdnVsa2FuLXZhbGlkYXRpb24tbGF5ZXJzL3NyYy9s YXllcnMvZXh0ZXJuYWwvdm1hL3ZrX21lbV9hbGxvYy5oCTIwMjMtMDQtMTUgMTY6NDc6MDkuMDI4 NjY2OTk1ICswMjAwCitAQCAtMjg1NCw2ICsyODU0LDcgQEAgc3RhdGljIHZvaWQgdm1hX2FsaWdu ZWRfZnJlZSh2b2lkKiBWTUFfTgorIAorIC8vIERlZmluZSB0aGlzIG1hY3JvIHRvIDEgdG8gZW5h YmxlIGZ1bmN0aW9uczogdm1hQnVpbGRTdGF0c1N0cmluZywgdm1hRnJlZVN0YXRzU3RyaW5nLgor ICNpZiBWTUFfU1RBVFNfU1RSSU5HX0VOQUJMRUQKKysjaW5jbHVkZSA8c3RkaW8uaD4KKyAgICAg c3RhdGljIGlubGluZSB2b2lkIFZtYVVpbnQzMlRvU3RyKGNoYXIqIFZNQV9OT1RfTlVMTCBvdXRT dHIsIHNpemVfdCBzdHJMZW4sIHVpbnQzMl90IG51bSkKKyAgICAgeworICAgICAgICAgc25wcmlu dGYob3V0U3RyLCBzdHJMZW4sICIldSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4obnVtKSk7 CitkaWZmIC11cCBjaHJvbWl1bS0xMTMuMC41NjcyLjM3L2Nocm9tZS9icm93c2VyL3dlYmF1dGhu L2F1dGhlbnRpY2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaC5tZSBjaHJvbWl1bS0xMTMuMC41 NjcyLjM3L2Nocm9tZS9icm93c2VyL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3JfcmVxdWVzdF9kaWFs b2dfbW9kZWwuaAorLS0tIGNocm9taXVtLTExMy4wLjU2NzIuMzcvY2hyb21lL2Jyb3dzZXIvd2Vi YXV0aG4vYXV0aGVudGljYXRvcl9yZXF1ZXN0X2RpYWxvZ19tb2RlbC5oLm1lCTIwMjMtMDQtMTgg MTU6NTU6NDQuNzc0OTE2MzE5ICswMjAwCisrKysgY2hyb21pdW0tMTEzLjAuNTY3Mi4zNy9jaHJv bWUvYnJvd3Nlci93ZWJhdXRobi9hdXRoZW50aWNhdG9yX3JlcXVlc3RfZGlhbG9nX21vZGVsLmgJ MjAyMy0wNC0xOCAxNTo1NTo1NC40NDEwODU4ODIgKzAyMDAKK0BAIC04LDYgKzgsNyBAQAorICNp bmNsdWRlIDxtZW1vcnk+CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dmVjdG9yPgor KyNpbmNsdWRlIDx2YXJpYW50PgorIAorICNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5o IgorICNpbmNsdWRlICJiYXNlL2Z1bmN0aW9uYWwvY2FsbGJhY2tfZm9yd2FyZC5oIgorZGlmZiAt dXAgY2hyb21pdW0tMTEzLjAuNTY3Mi4zNy9naW4vdGltZV9jbGFtcGVyLmgubWUgY2hyb21pdW0t MTEzLjAuNTY3Mi4zNy9naW4vdGltZV9jbGFtcGVyLmgKKy0tLSBjaHJvbWl1bS0xMTMuMC41Njcy LjM3L2dpbi90aW1lX2NsYW1wZXIuaC5tZQkyMDIzLTA0LTE4IDE2OjM4OjQxLjE4MDQzNzQ2NyAr MDIwMAorKysrIGNocm9taXVtLTExMy4wLjU2NzIuMzcvZ2luL3RpbWVfY2xhbXBlci5oCTIwMjMt MDQtMTggMTY6Mzk6NDMuODU3MDQ5NDMyICswMjAwCitAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBH SU5fRVhQT1JUIFRpbWVDbGFtcGVyIHsKKyAgICAgY29uc3QgaW50NjRfdCBtaWNyb3MgPSBub3df bWljcm9zICUgMTAwMDsKKyAgICAgLy8gYWJzKCkgaXMgbmVjZXNzYXJ5IGZvciBkZXZpY2VzIHdp dGggdGltZXMgYmVmb3JlIHVuaXgtZXBvY2ggKG1vc3QgbGlrZWx5CisgICAgIC8vIGNvbmZpZ3Vy ZWQgaW5jb3JyZWN0bHkpLgorLSAgICBpZiAoYWJzKG1pY3JvcykgKyBrUmVzb2x1dGlvbk1pY3Jv cyA8IDEwMDApIHsKKysgICAgaWYgKHN0ZDo6YWJzKG1pY3JvcykgKyBrUmVzb2x1dGlvbk1pY3Jv cyA8IDEwMDApIHsKKyAgICAgICByZXR1cm4gbm93X21pY3JvcyAvIDEwMDA7CisgICAgIH0KKyAg ICAgcmV0dXJuIENsYW1wVGltZVJlc29sdXRpb24obm93X21pY3JvcykgLyAxMDAwOworZGlmZiAt dXAgY2hyb21pdW0tMTEzLjAuNTY3Mi41My9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvY2hyb21l L3dlYl92aWV3X2ltcGwuY2MubWUgY2hyb21pdW0tMTEzLjAuNTY3Mi41My9jaHJvbWUvdGVzdC9j aHJvbWVkcml2ZXIvY2hyb21lL3dlYl92aWV3X2ltcGwuY2MKKy0tLSBjaHJvbWl1bS0xMTMuMC41 NjcyLjUzL2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jaHJvbWUvd2ViX3ZpZXdfaW1wbC5jYy5t ZQkyMDIzLTA0LTIxIDA4OjA3OjU1LjM2MjcxNDU0NCArMDIwMAorKysrIGNocm9taXVtLTExMy4w LjU2NzIuNTMvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL2Nocm9tZS93ZWJfdmlld19pbXBsLmNj CTIwMjMtMDQtMjEgMDg6MTQ6MzUuNDI0MTU4NjkzICswMjAwCitAQCAtMTAsNiArMTAsNyBAQAor ICNpbmNsdWRlIDxxdWV1ZT4KKyAjaW5jbHVkZSA8dXRpbGl0eT4KKyAjaW5jbHVkZSA8dmVjdG9y PgorKyNpbmNsdWRlIDxjc3RyaW5nPgorIAorICNpbmNsdWRlICJiYXNlL2NoZWNrLmgiCisgI2lu Y2x1ZGUgImJhc2UvZmlsZXMvZmlsZV9wYXRoLmgiCitkaWZmIC11cCBjaHJvbWl1bS0xMTUuMC41 NzkwLjMyL3NraWEvZXh0L3NrY29sb3JzcGFjZV90cmZuLmNjLm1lIGNocm9taXVtLTExNS4wLjU3 OTAuMzIvc2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4uY2MKKy0tLSBjaHJvbWl1bS0xMTUuMC41 NzkwLjMyL3NraWEvZXh0L3NrY29sb3JzcGFjZV90cmZuLmNjLm1lCTIwMjMtMDYtMTggMTI6MzM6 NTIuMzg3NDEyNzg4ICswMjAwCisrKysgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9za2lhL2V4dC9z a2NvbG9yc3BhY2VfdHJmbi5jYwkyMDIzLTA2LTE4IDEyOjM1OjI4LjIyOTE0ODkzNSArMDIwMAor QEAgLTMsNiArMyw3IEBACisgLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyAKKyAjaW5j bHVkZSAic2tpYS9leHQvc2tjb2xvcnNwYWNlX3RyZm4uaCIKKysjaW5jbHVkZSA8Y21hdGg+Cisg CisgbmFtZXNwYWNlIHNraWEgeworIAorZGlmZiAtdXAgY2hyb21pdW0tOTYuMC40NjY0LjQ1L3Ro aXJkX3BhcnR5L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgubWlzc2luZy1j c3RkaW50IGNocm9taXVtLTk2LjAuNDY2NC40NS90aGlyZF9wYXJ0eS93ZWJydGMvY29tbW9uX3Zp ZGVvL2gyNjQvc3BzX3BhcnNlci5oCistLS0gY2hyb21pdW0tOTYuMC40NjY0LjQ1L3RoaXJkX3Bh cnR5L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgubWlzc2luZy1jc3RkaW50 CTIwMjEtMTEtMTkgMTc6MDU6MzEuMzc5NzUwMzUwIC0wNTAwCisrKysgY2hyb21pdW0tOTYuMC40 NjY0LjQ1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NC9zcHNfcGFyc2VyLmgJ MjAyMS0xMS0xOSAxNzowNzozNS4xOTE1MjAxMjcgLTA1MDAKK0BAIC0xMSw2ICsxMSw3IEBACisg I2lmbmRlZiBDT01NT05fVklERU9fSDI2NF9TUFNfUEFSU0VSX0hfCisgI2RlZmluZSBDT01NT05f VklERU9fSDI2NF9TUFNfUEFSU0VSX0hfCisgCisrI2luY2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1 ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKKyAjaW5jbHVkZSAicnRjX2Jhc2UvYml0c3RyZWFt X3JlYWRlci5oIgorIAorZGlmZiAtdXAgY2hyb21pdW0tOTYuMC40NjY0LjQ1L3RoaXJkX3BhcnR5 L3dlYnJ0Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaC5taXNz aW5nLWNzdGRpbnQgY2hyb21pdW0tOTYuMC40NjY0LjQ1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1 bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaAorLS0tIGNocm9taXVtLTk2 LjAuNDY2NC40NS90aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21t b25fdHlwZXNfcHVibGljLmgubWlzc2luZy1jc3RkaW50CTIwMjEtMTEtMTIgMDU6Mjg6MTAuMDAw MDAwMDAwIC0wNTAwCisrKysgY2hyb21pdW0tOTYuMC40NjY0LjQ1L3RoaXJkX3BhcnR5L3dlYnJ0 Yy9tb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlc19wdWJsaWMuaAkyMDIxLTExLTE5 IDE3OjA1OjMxLjM3OTc1MDM1MCAtMDUwMAorQEAgLTExLDYgKzExLDcgQEAKKyAjaWZuZGVmIE1P RFVMRVNfSU5DTFVERV9NT0RVTEVfQ09NTU9OX1RZUEVTX1BVQkxJQ19IXworICNkZWZpbmUgTU9E VUxFU19JTkNMVURFX01PRFVMRV9DT01NT05fVFlQRVNfUFVCTElDX0hfCisgCisrI2luY2x1ZGUg PGNzdGRpbnQ+CisgI2luY2x1ZGUgPGxpbWl0cz4KKyAKKyAjaW5jbHVkZSAiYWJzbC90eXBlcy9v cHRpb25hbC5oIgorZGlmZiAtdXAgY2hyb21pdW0tOTYuMC40NjY0LjQ1L3VpL2dmeC9saW51eC9k cm1fdXRpbF9saW51eC5oLm1pc3NpbmctY3N0ZGludCBjaHJvbWl1bS05Ni4wLjQ2NjQuNDUvdWkv Z2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmgKKy0tLSBjaHJvbWl1bS05Ni4wLjQ2NjQuNDUvdWkv Z2Z4L2xpbnV4L2RybV91dGlsX2xpbnV4LmgubWlzc2luZy1jc3RkaW50CTIwMjEtMTEtMTIgMDU6 MjU6MjQuMDAwMDAwMDAwIC0wNTAwCisrKysgY2hyb21pdW0tOTYuMC40NjY0LjQ1L3VpL2dmeC9s aW51eC9kcm1fdXRpbF9saW51eC5oCTIwMjEtMTEtMTkgMTc6MDU6MzEuMzc5NzUwMzUwIC0wNTAw CitAQCAtOSw2ICs5LDggQEAKKyAKKyAjaW5jbHVkZSAidWkvZ2Z4L2J1ZmZlcl90eXBlcy5oIgor IAorKyNpbmNsdWRlIDxjc3RkaW50PgorKworIG5hbWVzcGFjZSB1aSB7CisgCisgaW50IEdldEZv dXJDQ0Zvcm1hdEZyb21CdWZmZXJGb3JtYXQoZ2Z4OjpCdWZmZXJGb3JtYXQgZm9ybWF0KTsKK2Rp ZmYgLXVwIGNocm9taXVtLTk2LjAuNDY2NC40NS90aGlyZF9wYXJ0eS93ZWJydGMvYXVkaW8vdXRp bGl0eS9jaGFubmVsX21peGVyLmNjLm1pc3NpbmctY3N0cmluZyBjaHJvbWl1bS05Ni4wLjQ2NjQu NDUvdGhpcmRfcGFydHkvd2VicnRjL2F1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhlci5jYworLS0t IGNocm9taXVtLTk2LjAuNDY2NC40NS90aGlyZF9wYXJ0eS93ZWJydGMvYXVkaW8vdXRpbGl0eS9j aGFubmVsX21peGVyLmNjLm1pc3NpbmctY3N0cmluZwkyMDIxLTExLTEyIDA1OjI4OjA5LjAwMDAw MDAwMCAtMDUwMAorKysrIGNocm9taXVtLTk2LjAuNDY2NC40NS90aGlyZF9wYXJ0eS93ZWJydGMv YXVkaW8vdXRpbGl0eS9jaGFubmVsX21peGVyLmNjCTIwMjEtMTEtMTkgMTc6MTA6MDIuOTI3NDM4 Njk1IC0wNTAwCitAQCAtOCw2ICs4LDggQEAKKyAgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMg ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgICovCisgCisrI2luY2x1ZGUg PGNzdHJpbmc+CisrCisgI2luY2x1ZGUgImF1ZGlvL3V0aWxpdHkvY2hhbm5lbF9taXhlci5oIgor IAorICNpbmNsdWRlICJhdWRpby91dGlsaXR5L2NoYW5uZWxfbWl4aW5nX21hdHJpeC5oIgorZGlm ZiAtdXAgY2hyb21pdW0tOTYuMC40NjY0LjQ1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL3Zp ZGVvX2NvZGluZy91dGlsaXR5L2l2Zl9maWxlX3JlYWRlci5jYy5taXNzaW5nLWNzdHJpbmcgY2hy b21pdW0tOTYuMC40NjY0LjQ1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGlu Zy91dGlsaXR5L2l2Zl9maWxlX3JlYWRlci5jYworLS0tIGNocm9taXVtLTk2LjAuNDY2NC40NS90 aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9pdmZfZmlsZV9y ZWFkZXIuY2MubWlzc2luZy1jc3RyaW5nCTIwMjEtMTEtMTIgMDU6Mjg6MTAuMDAwMDAwMDAwIC0w NTAwCisrKysgY2hyb21pdW0tOTYuMC40NjY0LjQ1L3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVz L3ZpZGVvX2NvZGluZy91dGlsaXR5L2l2Zl9maWxlX3JlYWRlci5jYwkyMDIxLTExLTE5IDE3OjEw OjAyLjkyODQzODcwMSAtMDUwMAorQEAgLTEwLDYgKzEwLDcgQEAKKyAKKyAjaW5jbHVkZSAibW9k dWxlcy92aWRlb19jb2RpbmcvdXRpbGl0eS9pdmZfZmlsZV9yZWFkZXIuaCIKKyAKKysjaW5jbHVk ZSA8Y3N0cmluZz4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx2ZWN0b3I+CisgCitk aWZmIC11cCBjaHJvbWl1bS0xMTcuMC41OTM4LjQ4L3RoaXJkX3BhcnR5L2lwY3ovc3JjL2lwY3ov cm91dGVyX2xpbmsuaC5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjQ4L3RoaXJkX3BhcnR5L2lwY3ov c3JjL2lwY3ovcm91dGVyX2xpbmsuaAorLS0tIGNocm9taXVtLTExNy4wLjU5MzguNDgvdGhpcmRf cGFydHkvaXBjei9zcmMvaXBjei9yb3V0ZXJfbGluay5oLm1lCTIwMjMtMDktMTAgMTc6NTM6MDQu ODI2Mjk4MzUxICswMjAwCisrKysgY2hyb21pdW0tMTE3LjAuNTkzOC40OC90aGlyZF9wYXJ0eS9p cGN6L3NyYy9pcGN6L3JvdXRlcl9saW5rLmgJMjAyMy0wOS0xMCAxNzo1MzoyMi4yMDE3NTY4OTQg KzAyMDAKK0BAIC01LDYgKzUsNyBAQAorICNpZm5kZWYgSVBDWl9TUkNfSVBDWl9ST1VURVJfTElO S19IXworICNkZWZpbmUgSVBDWl9TUkNfSVBDWl9ST1VURVJfTElOS19IXworIAorKyNpbmNsdWRl IDxtZW1vcnk+CisgI2luY2x1ZGUgPGNzdGRkZWY+CisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Cisg I2luY2x1ZGUgPHN0cmluZz4KK2RpZmYgLXVwIGNocm9taXVtLTExNy4wLjU5MzguNDgvdGhpcmRf cGFydHkvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVzL3NyYy9jcHAvcGFsZXR0ZXMvdG9uZXMuY2Mu bWUgY2hyb21pdW0tMTE3LjAuNTkzOC40OC90aGlyZF9wYXJ0eS9tYXRlcmlhbF9jb2xvcl91dGls aXRpZXMvc3JjL2NwcC9wYWxldHRlcy90b25lcy5jYworLS0tIGNocm9taXVtLTExNy4wLjU5Mzgu NDgvdGhpcmRfcGFydHkvbWF0ZXJpYWxfY29sb3JfdXRpbGl0aWVzL3NyYy9jcHAvcGFsZXR0ZXMv dG9uZXMuY2MubWUJMjAyMy0wOS0xMCAxNzozNjoyNy4xOTk4NDEwNTEgKzAyMDAKKysrKyBjaHJv bWl1bS0xMTcuMC41OTM4LjQ4L3RoaXJkX3BhcnR5L21hdGVyaWFsX2NvbG9yX3V0aWxpdGllcy9z cmMvY3BwL3BhbGV0dGVzL3RvbmVzLmNjCTIwMjMtMDktMTAgMTc6NDQ6NTEuODcwNTU0MjMzICsw MjAwCitAQCAtMTQsNiArMTQsNyBAQAorICAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNl LgorICAqLworIAorKyNpbmNsdWRlIDxjbWF0aD4KKyAjaW5jbHVkZSAiY3BwL3BhbGV0dGVzL3Rv bmVzLmgiCisgCisgI2luY2x1ZGUgImNwcC9jYW0vY2FtLmgiCitkaWZmIC11cCBjaHJvbWl1bS0x MTguMC41OTkzLjMyL3NlcnZpY2VzL2RldmljZS9wdWJsaWMvY3BwL2dlbmVyaWNfc2Vuc29yL3Nl bnNvcl9yZWFkaW5nLmgubWUgY2hyb21pdW0tMTE4LjAuNTk5My4zMi9zZXJ2aWNlcy9kZXZpY2Uv cHVibGljL2NwcC9nZW5lcmljX3NlbnNvci9zZW5zb3JfcmVhZGluZy5oCistLS0gY2hyb21pdW0t MTE4LjAuNTk5My4zMi9zZXJ2aWNlcy9kZXZpY2UvcHVibGljL2NwcC9nZW5lcmljX3NlbnNvci9z ZW5zb3JfcmVhZGluZy5oLm1lCTIwMjMtMTAtMDEgMTM6NTU6MDEuOTEzMTkzMTg2ICswMjAwCisr KysgY2hyb21pdW0tMTE4LjAuNTk5My4zMi9zZXJ2aWNlcy9kZXZpY2UvcHVibGljL2NwcC9nZW5l cmljX3NlbnNvci9zZW5zb3JfcmVhZGluZy5oCTIwMjMtMTAtMDEgMTQ6MDU6MzguNDg4MDM4NDI5 ICswMjAwCitAQCAtNSw2ICs1LDkgQEAKKyAjaWZuZGVmIFNFUlZJQ0VTX0RFVklDRV9QVUJMSUNf Q1BQX0dFTkVSSUNfU0VOU09SX1NFTlNPUl9SRUFESU5HX0hfCisgI2RlZmluZSBTRVJWSUNFU19E RVZJQ0VfUFVCTElDX0NQUF9HRU5FUklDX1NFTlNPUl9TRU5TT1JfUkVBRElOR19IXworIAorKyNp bmNsdWRlIDxjc3RkZGVmPgorKyNpbmNsdWRlIDxjc3RkaW50PgorKworICNpbmNsdWRlIDx0eXBl X3RyYWl0cz4KKyAKKyBuYW1lc3BhY2UgZGV2aWNlIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxl Y3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC1ub19tYXRjaGluZ19jb25zdHJ1Y3Rv ci5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC1u b19tYXRjaGluZ19jb25zdHJ1Y3Rvci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwLi5iMWQ5ODdhZGVmZjhkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9l bGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLW5vX21hdGNoaW5nX2NvbnN0cnVj dG9yLnBhdGNoCkBAIC0wLDAgKzEsNzQyIEBACitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L2Jhc2UvbWV0cmljcy9wZXJzaXN0ZW50X2hpc3RvZ3JhbV9hbGxvY2F0b3IuY2Mubm9fbWF0 Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL21ldHJpY3MvcGVy c2lzdGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1fYWxsb2NhdG9yLmNjLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NDAuMDAwMDAwMDAwICswMTAwCisrKysg Y2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL21ldHJpY3MvcGVyc2lzdGVudF9oaXN0b2dyYW1f YWxsb2NhdG9yLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzQ4NDIwMTg5ICswMTAwCitAQCAtMjE4 LDEzICsyMTgsMTMgQEAgUGVyc2lzdGVudFNwYXJzZUhpc3RvZ3JhbURhdGFNYW5hZ2VyOjpMbwor ICAgICAvLyBUaGUgc2FtcGxlLXJlY29yZCBjb3VsZCBiZSBmb3IgYW55IHNwYXJzZSBoaXN0b2dy YW0uIEFkZCB0aGUgcmVmZXJlbmNlCisgICAgIC8vIHRvIHRoZSBhcHByb3ByaWF0ZSBjb2xsZWN0 aW9uIGZvciBsYXRlciB1c2UuCisgICAgIGlmIChmb3VuZF9pZCA9PSBtYXRjaF9pZCkgeworLSAg ICAgIGZvdW5kX3JlY29yZHMuZW1wbGFjZV9iYWNrKHJlZiwgdmFsdWUpOworKyAgICAgIGZvdW5k X3JlY29yZHMuZW1wbGFjZV9iYWNrKCkgPSB7cmVmLCB2YWx1ZX07CisgICAgICAgZm91bmQgPSB0 cnVlOworICAgICB9IGVsc2UgeworICAgICAgIHN0ZDo6dmVjdG9yPFJlZmVyZW5jZUFuZFNhbXBs ZT4qIHNhbXBsZXMgPQorICAgICAgICAgICBHZXRTYW1wbGVNYXBSZWNvcmRzV2hpbGVMb2NrZWQo Zm91bmRfaWQpOworICAgICAgIENIRUNLKHNhbXBsZXMpOworLSAgICAgIHNhbXBsZXMtPmVtcGxh Y2VfYmFjayhyZWYsIHZhbHVlKTsKKysgICAgICBzYW1wbGVzLT5lbXBsYWNlX2JhY2soKSA9IHty ZWYsIHZhbHVlfTsKKyAgICAgfQorICAgfQorIAorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5 OS41Ni9iYXNlL3RyYWNlX2V2ZW50L3RyYWNlX2xvZy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3Rv ciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2UvdHJhY2VfZXZlbnQvdHJhY2VfbG9nLmNjCist LS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9iYXNlL3RyYWNlX2V2ZW50L3RyYWNlX2xvZy5jYy5u b19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjQwLjAwMDAwMDAwMCArMDEw MAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvYmFzZS90cmFjZV9ldmVudC90cmFjZV9sb2cu Y2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAyMDggKzAxMDAKK0BAIC0yMTkxLDggKzIxOTEs OCBAQCB2b2lkIFRyYWNlTG9nOjpTZXRUcmFjZUJ1ZmZlckZvclRlc3RpbmcoCisgI2lmIEJVSUxE RkxBRyhVU0VfUEVSRkVUVE9fQ0xJRU5UX0xJQlJBUlkpCisgdm9pZCBUcmFjZUxvZzo6T25TZXR1 cChjb25zdCBwZXJmZXR0bzo6RGF0YVNvdXJjZUJhc2U6OlNldHVwQXJncyYgYXJncykgeworICAg QXV0b0xvY2sgbG9jayh0cmFja19ldmVudF9sb2NrXyk7CistICB0cmFja19ldmVudF9zZXNzaW9u c18uZW1wbGFjZV9iYWNrKGFyZ3MuaW50ZXJuYWxfaW5zdGFuY2VfaW5kZXgsICphcmdzLmNvbmZp ZywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5iYWNrZW5kX3R5 cGUpOworKyAgdHJhY2tfZXZlbnRfc2Vzc2lvbnNfLmVtcGxhY2VfYmFjaygpID0ge2FyZ3MuaW50 ZXJuYWxfaW5zdGFuY2VfaW5kZXgsICphcmdzLmNvbmZpZywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXJncy5iYWNrZW5kX3R5cGV9OworIH0KKyAKKyB2b2lkIFRyYWNl TG9nOjpPblN0YXJ0KGNvbnN0IHBlcmZldHRvOjpEYXRhU291cmNlQmFzZTo6U3RhcnRBcmdzJikg eworZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9jb250ZW50 X3NldHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2Mubm9fbWF0Y2hpbmdfY29u c3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9jb250ZW50X3Nl dHRpbmdzL29uZV90aW1lX3Blcm1pc3Npb25fcHJvdmlkZXIuY2MKKy0tLSBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3Mvb25lX3RpbWVfcGVybWlz c2lvbl9wcm92aWRlci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5 OjQ3LjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jy b3dzZXIvY29udGVudF9zZXR0aW5ncy9vbmVfdGltZV9wZXJtaXNzaW9uX3Byb3ZpZGVyLmNjCTIw MjMtMTItMDMgMTc6MzE6MjUuNzQ5NDIwMjA4ICswMTAwCitAQCAtMjI2LDggKzIyNiw4IEBAIHZv aWQgT25lVGltZVBlcm1pc3Npb25Qcm92aWRlcjo6T25TdXNwZW4KKyAKKyAgICAgICB3aGlsZSAo cnVsZV9pdGVyYXRvciAmJiBydWxlX2l0ZXJhdG9yLT5IYXNOZXh0KCkpIHsKKyAgICAgICAgIGF1 dG8gcnVsZSA9IHJ1bGVfaXRlcmF0b3ItPk5leHQoKTsKKy0gICAgICAgIHBhdHRlcm5zX3RvX2Rl bGV0ZS5lbXBsYWNlX2JhY2soc2V0dGluZ190eXBlLCBydWxlLT5wcmltYXJ5X3BhdHRlcm4sCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUtPnNlY29uZGFyeV9w YXR0ZXJuKTsKKysgICAgICAgIHBhdHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soKSA9IHtz ZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm59OworICAgICAgICAg cGVybWlzc2lvbnM6OlBlcm1pc3Npb25VbWFVdGlsOjpSZWNvcmRPbmVUaW1lUGVybWlzc2lvbkV2 ZW50KAorICAgICAgICAgICAgIHNldHRpbmdfdHlwZSwKKyAgICAgICAgICAgICBwZXJtaXNzaW9u czo6T25lVGltZVBlcm1pc3Npb25FdmVudDo6RVhQSVJFRF9PTl9TVVNQRU5EKTsKK0BAIC0zMjks OCArMzI5LDggQEAgdm9pZCBPbmVUaW1lUGVybWlzc2lvblByb3ZpZGVyOjpEZWxldGVFbgorICAg ICBhdXRvIHJ1bGUgPSBydWxlX2l0ZXJhdG9yLT5OZXh0KCk7CisgICAgIGlmIChydWxlLT5wcmlt YXJ5X3BhdHRlcm4uTWF0Y2hlcyhvcmlnaW5fZ3VybCkgJiYKKyAgICAgICAgIHJ1bGUtPnNlY29u ZGFyeV9wYXR0ZXJuLk1hdGNoZXMob3JpZ2luX2d1cmwpKSB7CistICAgICAgcGF0dGVybnNfdG9f ZGVsZXRlLmVtcGxhY2VfYmFjaygKKy0gICAgICAgICAgY29udGVudF9zZXR0aW5nX3R5cGUsIHJ1 bGUtPnByaW1hcnlfcGF0dGVybiwgcnVsZS0+c2Vjb25kYXJ5X3BhdHRlcm4pOworKyAgICAgIHBh dHRlcm5zX3RvX2RlbGV0ZS5lbXBsYWNlX2JhY2soKSA9IHsKKysgICAgICAgICAgY29udGVudF9z ZXR0aW5nX3R5cGUsIHJ1bGUtPnByaW1hcnlfcGF0dGVybiwgcnVsZS0+c2Vjb25kYXJ5X3BhdHRl cm59OworICAgICAgIHBlcm1pc3Npb25zOjpQZXJtaXNzaW9uVW1hVXRpbDo6UmVjb3JkT25lVGlt ZVBlcm1pc3Npb25FdmVudCgKKyAgICAgICAgICAgY29udGVudF9zZXR0aW5nX3R5cGUsIHRyaWdn ZXJfZXZlbnQpOworICAgICB9CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9t ZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2VtZW50L3Byb2ZpbGVfbWFuYWdlbWVu dF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvZW50ZXJwcmlzZS9wcm9maWxlX21hbmFnZW1l bnQvcHJvZmlsZV9tYW5hZ2VtZW50X25hdmlnYXRpb25fdGhyb3R0bGUuY2MKKy0tLSBjaHJvbWl1 bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL2VudGVycHJpc2UvcHJvZmlsZV9tYW5hZ2Vt ZW50L3Byb2ZpbGVfbWFuYWdlbWVudF9uYXZpZ2F0aW9uX3Rocm90dGxlLmNjLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NDguMDAwMDAwMDAwICswMTAwCisrKysgY2hy b21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci9lbnRlcnByaXNlL3Byb2ZpbGVfbWFu YWdlbWVudC9wcm9maWxlX21hbmFnZW1lbnRfbmF2aWdhdGlvbl90aHJvdHRsZS5jYwkyMDIzLTEy LTAzIDE3OjMxOjI1Ljc0OTQyMDIwOCArMDEwMAorQEAgLTY3LDggKzY3LDggQEAgYmFzZTo6Zmxh dF9tYXA8c3RkOjpzdHJpbmcsIFNBTUxQcm9maWxlQQorICAgLy8gVE9ETyhjcmJ1Zy5jb20vMTQ0 NTA3Mik6IEFkZCBhY3R1YWwgZG9tYWlucyB3aXRoIGF0dHJpYnV0ZSBuYW1lcy4KKyAgIHByb2Zp bGVfYXR0cmlidXRlcy0+aW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKAorICAgICAgICJzdXBwb3J0ZWQu dGVzdCIsCistICAgICAgU0FNTFByb2ZpbGVBdHRyaWJ1dGVzKCJwbGFjZWhvbGRlck5hbWUiLCAi cGxhY2Vob2xkZXJEb21haW4iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGxhY2Vo b2xkZXJUb2tlbiIpKSk7CisrICAgICAgU0FNTFByb2ZpbGVBdHRyaWJ1dGVzeyJwbGFjZWhvbGRl ck5hbWUiLCAicGxhY2Vob2xkZXJEb21haW4iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAicGxhY2Vob2xkZXJUb2tlbiJ9KSk7CisgCisgICAvLyBFeHRyYWN0IGRvbWFpbnMgYW5kIGF0 dHJpYnV0ZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lIHN3aXRjaC4KKyAgIGNvbnN0IGJhc2U6OkNv bW1hbmRMaW5lJiBjb21tYW5kX2xpbmUgPQorZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41 Ni9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5jYy5ub19t YXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2Vy L3VpL29tbmlib3gvY2hyb21lX29tbmlib3hfY2xpZW50LmNjCistLS0gY2hyb21pdW0tMTIwLjAu NjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS9vbW5pYm94L2Nocm9tZV9vbW5pYm94X2NsaWVudC5j Yy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjM5OjUyLjAwMDAwMDAwMCAr MDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvb21uaWJv eC9jaHJvbWVfb21uaWJveF9jbGllbnQuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NDk0MjAyMDgg KzAxMDAKK0BAIC00NzQsMTAgKzQ3NCwxMCBAQCB2b2lkIENocm9tZU9tbmlib3hDbGllbnQ6Ok9u QXV0b2NvbXBsZXRlCisgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZV9uYXZfbWF0Y2gpOworIAor ICAgLy8gU3RvcmUgdGhlIGRldGFpbHMgbmVjZXNzYXJ5IHRvIG9wZW4gdGhlIG9tbmlib3ggbWF0 Y2ggdmlhIGJyb3dzZXIgY29tbWFuZHMuCistICBsb2NhdGlvbl9iYXJfLT5zZXRfbmF2aWdhdGlv bl9wYXJhbXMoTG9jYXRpb25CYXI6Ok5hdmlnYXRpb25QYXJhbXMoCisrICBsb2NhdGlvbl9iYXJf LT5zZXRfbmF2aWdhdGlvbl9wYXJhbXMoTG9jYXRpb25CYXI6Ok5hdmlnYXRpb25QYXJhbXN7Cisg ICAgICAgZGVzdGluYXRpb25fdXJsLCBkaXNwb3NpdGlvbiwgdHJhbnNpdGlvbiwgbWF0Y2hfc2Vs ZWN0aW9uX3RpbWVzdGFtcCwKKyAgICAgICBkZXN0aW5hdGlvbl91cmxfZW50ZXJlZF93aXRob3V0 X3NjaGVtZSwKKy0gICAgICBkZXN0aW5hdGlvbl91cmxfZW50ZXJlZF93aXRoX2h0dHBfc2NoZW1l KSk7CisrICAgICAgZGVzdGluYXRpb25fdXJsX2VudGVyZWRfd2l0aF9odHRwX3NjaGVtZX0pOwor IAorICAgaWYgKGJyb3dzZXJfKSB7CisgICAgIGF1dG8gbmF2aWdhdGlvbiA9IGNocm9tZTo6T3Bl bkN1cnJlbnRVUkwoYnJvd3Nlcl8pOworZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9j aHJvbWUvYnJvd3Nlci91aS9zYWZldHlfaHViL21lbnVfbm90aWZpY2F0aW9uX3NlcnZpY2UuY2Mu bm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJv d3Nlci91aS9zYWZldHlfaHViL21lbnVfbm90aWZpY2F0aW9uX3NlcnZpY2UuY2MKKy0tLSBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3NhZmV0eV9odWIvbWVudV9ub3Rp ZmljYXRpb25fc2VydmljZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIy OjM5OjUyLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21l L2Jyb3dzZXIvdWkvc2FmZXR5X2h1Yi9tZW51X25vdGlmaWNhdGlvbl9zZXJ2aWNlLmNjCTIwMjMt MTItMDMgMTc6MzE6MjUuNzU2NDIwMzQyICswMTAwCitAQCAtMTQ4LDggKzE0OCw4IEBAIFNhZmV0 eUh1Yk1lbnVOb3RpZmljYXRpb25TZXJ2aWNlOjpHZXROb3QKKyAgIC8vIFRoZSBpbmZvcm1hdGlv biByZWxhdGVkIHRvIHNob3dpbmcgdGhlIG5vdGlmaWNhdGlvbiBuZWVkcyB0byBiZSBwZXJzaXN0 ZWQKKyAgIC8vIGFzIHdlbGwuCisgICBTYXZlTm90aWZpY2F0aW9uc1RvUHJlZnMoKTsKKy0gIHJl dHVybiBNZW51Tm90aWZpY2F0aW9uRW50cnkobm90aWZpY2F0aW9uX3RvX3Nob3ctPkdldE5vdGlm aWNhdGlvbkNvbW1hbmRJZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Rp ZmljYXRpb25fdG9fc2hvdy0+R2V0Tm90aWZpY2F0aW9uU3RyaW5nKCkpOworKyAgcmV0dXJuIE1l bnVOb3RpZmljYXRpb25FbnRyeXtub3RpZmljYXRpb25fdG9fc2hvdy0+R2V0Tm90aWZpY2F0aW9u Q29tbWFuZElkKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlv bl90b19zaG93LT5HZXROb3RpZmljYXRpb25TdHJpbmcoKX07CisgfQorIAorIGFic2w6Om9wdGlv bmFsPFJlc3VsdE1hcD4KK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jy b3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNr X3ZpZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9j aHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3By b21wdF9hc2tfdmlldy5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dz ZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfYXNrX3Zp ZXcuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1My4wMDAwMDAw MDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3Zp ZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X2Fza192aWV3LmNjCTIw MjMtMTItMDMgMTc6MzE6MjUuNzQ5NDIwMjA4ICswMTAwCitAQCAtNTUsMTIgKzU1LDEyIEBAIHN0 ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdEFza1YKKyBFbWJlZGRlZFBlcm1pc3Np b25Qcm9tcHRBc2tWaWV3OjpHZXRCdXR0b25zQ29uZmlndXJhdGlvbigpIGNvbnN0IHsKKyAgIHN0 ZDo6dmVjdG9yPEJ1dHRvbkNvbmZpZ3VyYXRpb24+IGJ1dHRvbnM7CisgICBpZiAoYmFzZTo6RmVh dHVyZUxpc3Q6OklzRW5hYmxlZChwZXJtaXNzaW9uczo6ZmVhdHVyZXM6OmtPbmVUaW1lUGVybWlz c2lvbikpIHsKKy0gICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soCisrICAgIGJ1dHRvbnMuZW1wbGFj ZV9iYWNrKCkgPSB7CisgICAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJN SVNTSU9OX0FMTE9XX1RISVNfVElNRSksCistICAgICAgICBCdXR0b25UeXBlOjprQWxsb3dUaGlz VGltZSwgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOworKyAgICAgICAgQnV0dG9uVHlwZTo6a0Fs bG93VGhpc1RpbWUsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKKyAgIH0KKy0gIGJ1dHRvbnMu ZW1wbGFjZV9iYWNrKGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxM T1cpLAorLSAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6QnV0 dG9uU3R5bGU6OmtUb25hbCk7CisrICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0ge2wxMG5fdXRp bDo6R2V0U3RyaW5nVVRGMTYoSURTX1BFUk1JU1NJT05fQUxMT1cpLAorKyAgICAgICAgICAgICAg ICAgICAgICAgQnV0dG9uVHlwZTo6a0FsbG93LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbH07Cisg ICByZXR1cm4gYnV0dG9uczsKKyB9CisgCitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25f cHJvbXB0X2Jhc2Vfdmlldy5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4w LjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVy bWlzc2lvbl9wcm9tcHRfYmFzZV92aWV3LmgKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2No cm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJv bXB0X2Jhc2Vfdmlldy5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6 NTMuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJv d3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9iYXNl X3ZpZXcuaAkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1MDQyMDIyNyArMDEwMAorQEAgLTg2LDYgKzg2 LDcgQEAgY2xhc3MgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0QmFzZVZpZXcgOgorICAgc3RydWN0 IFJlcXVlc3RMaW5lQ29uZmlndXJhdGlvbiB7CisgICAgIGNvbnN0IHJhd19wdHI8Y29uc3QgZ2Z4 OjpWZWN0b3JJY29uPiBpY29uOworICAgICBzdGQ6OnUxNnN0cmluZyBtZXNzYWdlOworKyAgICBS ZXF1ZXN0TGluZUNvbmZpZ3VyYXRpb24oYXV0byBpLCBhdXRvIG0pIDogaWNvbihpKSwgbWVzc2Fn ZShtKSB7IH0KKyAgIH07CisgCisgICBzdHJ1Y3QgQnV0dG9uQ29uZmlndXJhdGlvbiB7CitkaWZm IC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1p c3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92aWV3LmNjLm5vX21hdGNo aW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21lL2Jyb3dzZXIvdWkv dmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRfcG9saWN5X3ZpZXcu Y2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Bl cm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3BvbGljeV92aWV3LmNjLm5vX21h dGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTMuMDAwMDAwMDAwICswMTAwCisr KysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNz aW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wb2xpY3lfdmlldy5jYwkyMDIzLTEyLTAz IDE3OjMxOjI1Ljc1MDQyMDIyNyArMDEwMAorQEAgLTQ4LDggKzQ4LDggQEAgRW1iZWRkZWRQZXJt aXNzaW9uUHJvbXB0UG9saWN5Vmlldzo6R2V0UgorIHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlz c2lvblByb21wdFBvbGljeVZpZXc6OkJ1dHRvbkNvbmZpZ3VyYXRpb24+CisgRW1iZWRkZWRQZXJt aXNzaW9uUHJvbXB0UG9saWN5Vmlldzo6R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSBjb25zdCB7 CisgICBzdGQ6OnZlY3RvcjxCdXR0b25Db25maWd1cmF0aW9uPiBidXR0b25zOworLSAgYnV0dG9u cy5lbXBsYWNlX2JhY2sobDEwbl91dGlsOjpHZXRTdHJpbmdVVEYxNihJRFNfRU1CRURERURfUFJP TVBUX09LX0xBQkVMKSwKKy0gICAgICAgICAgICAgICAgICAgICAgIEJ1dHRvblR5cGU6OmtQb2xp Y3lPSywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOworKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2so KSA9IHtsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfT0tfTEFC RUwpLAorKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uVHlwZTo6a1BvbGljeU9LLCB1aTo6 QnV0dG9uU3R5bGU6OmtUb25hbH07CisgICByZXR1cm4gYnV0dG9uczsKKyB9CisgCitkaWZmIC11 cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3VpL3ZpZXdzL3Blcm1pc3Np b25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlfZGVuaWVkX3ZpZXcuY2Mu bm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJv d3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2 aW91c2x5X2RlbmllZF92aWV3LmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUv YnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9w cmV2aW91c2x5X2RlbmllZF92aWV3LmNjLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEt MjkgMjI6Mzk6NTMuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9j aHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3By b21wdF9wcmV2aW91c2x5X2RlbmllZF92aWV3LmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzU2NDIw MzQyICswMTAwCitAQCAtNjMsMTggKzYzLDE4IEBAIEVtYmVkZGVkUGVybWlzc2lvblByb21wdFBy ZXZpb3VzbHlEZW5pZWQKKyBzdGQ6OnZlY3RvcjxFbWJlZGRlZFBlcm1pc3Npb25Qcm9tcHRQcmV2 aW91c2x5RGVuaWVkVmlldzo6QnV0dG9uQ29uZmlndXJhdGlvbj4KKyBFbWJlZGRlZFBlcm1pc3Np b25Qcm9tcHRQcmV2aW91c2x5RGVuaWVkVmlldzo6R2V0QnV0dG9uc0NvbmZpZ3VyYXRpb24oKSBj b25zdCB7CisgICBzdGQ6OnZlY3RvcjxCdXR0b25Db25maWd1cmF0aW9uPiBidXR0b25zOworLSAg YnV0dG9ucy5lbXBsYWNlX2JhY2soCisrICBidXR0b25zLmVtcGxhY2VfYmFjaygpID0geworICAg ICAgIGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX0VNQkVEREVEX1BST01QVF9DT05USU5V RV9OT1RfQUxMT1dJTkcpLAorLSAgICAgIEJ1dHRvblR5cGU6OmtDb250aW51ZU5vdEFsbG93aW5n LCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICAgICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVl Tm90QWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKKyAKKyAgIGlmIChiYXNlOjpG ZWF0dXJlTGlzdDo6SXNFbmFibGVkKHBlcm1pc3Npb25zOjpmZWF0dXJlczo6a09uZVRpbWVQZXJt aXNzaW9uKSkgeworLSAgICBidXR0b25zLmVtcGxhY2VfYmFjaygKKysgICAgYnV0dG9ucy5lbXBs YWNlX2JhY2soKSA9IHsKKyAgICAgICAgIGwxMG5fdXRpbDo6R2V0U3RyaW5nVVRGMTYoSURTX1BF Uk1JU1NJT05fQUxMT1dfVEhJU19USU1FKSwKKy0gICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvd1Ro aXNUaW1lLCB1aTo6QnV0dG9uU3R5bGU6OmtUb25hbCk7CisrICAgICAgICBCdXR0b25UeXBlOjpr QWxsb3dUaGlzVGltZSwgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWx9OworICAgfSBlbHNlIHsKKy0g ICAgYnV0dG9ucy5lbXBsYWNlX2JhY2soCisrICAgIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKCkgPSB7 CisgICAgICAgICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19QRVJNSVNTSU9OX0FMTE9X X1RISVNfVElNRSksCistICAgICAgICBCdXR0b25UeXBlOjprQWxsb3csIHVpOjpCdXR0b25TdHls ZTo6a1RvbmFsKTsKKysgICAgICAgIEJ1dHRvblR5cGU6OmtBbGxvdywgdWk6OkJ1dHRvblN0eWxl OjprVG9uYWx9OworICAgfQorICAgcmV0dXJuIGJ1dHRvbnM7CisgfQorZGlmZiAtdXAgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nlci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJl ZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91c2x5X2dyYW50ZWRfdmlldy5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS9icm93c2VyL3Vp L3ZpZXdzL3Blcm1pc3Npb25zL2VtYmVkZGVkX3Blcm1pc3Npb25fcHJvbXB0X3ByZXZpb3VzbHlf Z3JhbnRlZF92aWV3LmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jaHJvbWUvYnJvd3Nl ci91aS92aWV3cy9wZXJtaXNzaW9ucy9lbWJlZGRlZF9wZXJtaXNzaW9uX3Byb21wdF9wcmV2aW91 c2x5X2dyYW50ZWRfdmlldy5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIy OjM5OjUzLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hyb21l L2Jyb3dzZXIvdWkvdmlld3MvcGVybWlzc2lvbnMvZW1iZWRkZWRfcGVybWlzc2lvbl9wcm9tcHRf cHJldmlvdXNseV9ncmFudGVkX3ZpZXcuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTA0MjAyMjcg KzAxMDAKK0BAIC01NywxMyArNTcsMTMgQEAgRW1iZWRkZWRQZXJtaXNzaW9uUHJvbXB0UHJldmlv dXNseUdyYW50ZQorIHN0ZDo6dmVjdG9yPEVtYmVkZGVkUGVybWlzc2lvblByb21wdFByZXZpb3Vz bHlHcmFudGVkVmlldzo6QnV0dG9uQ29uZmlndXJhdGlvbj4KKyBFbWJlZGRlZFBlcm1pc3Npb25Q cm9tcHRQcmV2aW91c2x5R3JhbnRlZFZpZXc6OkdldEJ1dHRvbnNDb25maWd1cmF0aW9uKCkgY29u c3QgeworICAgc3RkOjp2ZWN0b3I8QnV0dG9uQ29uZmlndXJhdGlvbj4gYnV0dG9uczsKKy0gIGJ1 dHRvbnMuZW1wbGFjZV9iYWNrKAorKyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAg ICBsMTBuX3V0aWw6OkdldFN0cmluZ1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfQ09OVElOVUVf QUxMT1dJTkcpLAorLSAgICAgIEJ1dHRvblR5cGU6OmtDb250aW51ZUFsbG93aW5nLCB1aTo6QnV0 dG9uU3R5bGU6OmtUb25hbCk7CisrICAgICAgQnV0dG9uVHlwZTo6a0NvbnRpbnVlQWxsb3dpbmcs IHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKKyAKKy0gIGJ1dHRvbnMuZW1wbGFjZV9iYWNrKAor KyAgYnV0dG9ucy5lbXBsYWNlX2JhY2soKSA9IHsKKyAgICAgICBsMTBuX3V0aWw6OkdldFN0cmlu Z1VURjE2KElEU19FTUJFRERFRF9QUk9NUFRfU1RPUF9BTExPV0lORyksCistICAgICAgQnV0dG9u VHlwZTo6a1N0b3BBbGxvd2luZywgdWk6OkJ1dHRvblN0eWxlOjprVG9uYWwpOworKyAgICAgIEJ1 dHRvblR5cGU6OmtTdG9wQWxsb3dpbmcsIHVpOjpCdXR0b25TdHlsZTo6a1RvbmFsfTsKKyAgIHJl dHVybiBidXR0b25zOworIH0KKyAKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY2hy b21lL3Rlc3QvY2hyb21lZHJpdmVyL2NhcGFiaWxpdGllcy5jYy5ub19tYXRjaGluZ19jb25zdHJ1 Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBh YmlsaXRpZXMuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Nocm9tZS90ZXN0L2Nocm9t ZWRyaXZlci9jYXBhYmlsaXRpZXMuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0y OSAyMjozOTo1NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2No cm9tZS90ZXN0L2Nocm9tZWRyaXZlci9jYXBhYmlsaXRpZXMuY2MJMjAyMy0xMi0wMyAxNzozMToy NS43NTA0MjAyMjcgKzAxMDAKK0BAIC0zNDYsNyArMzQ2LDcgQEAgU3RhdHVzIFBhcnNlTW9iaWxl RW11bGF0aW9uKGNvbnN0IGJhc2U6OgorICAgICAgICAgICAgICAgICAgICAgICAgICIndmVyc2lv bicgZmllbGQgb2YgdHlwZSBzdHJpbmciKTsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIGJyYW5k cy5lbXBsYWNlX2JhY2soKmJyYW5kLCAqdmVyc2lvbik7CisrICAgICAgICBicmFuZHMuZW1wbGFj ZV9iYWNrKCkgPSB7KmJyYW5kLCAqdmVyc2lvbn07CisgICAgICAgfQorIAorICAgICAgIGNsaWVu dF9oaW50cy5icmFuZHMgPSBzdGQ6Om1vdmUoYnJhbmRzKTsKK0BAIC0zODQsNyArMzg0LDcgQEAg U3RhdHVzIFBhcnNlTW9iaWxlRW11bGF0aW9uKGNvbnN0IGJhc2U6OgorICAgICAgICAgICAgICAg ICAgICAgICAgICJhICd2ZXJzaW9uJyBmaWVsZCBvZiB0eXBlIHN0cmluZyIpOworICAgICAgICAg fQorIAorLSAgICAgICAgZnVsbF92ZXJzaW9uX2xpc3QuZW1wbGFjZV9iYWNrKCpicmFuZCwgKnZl cnNpb24pOworKyAgICAgICAgZnVsbF92ZXJzaW9uX2xpc3QuZW1wbGFjZV9iYWNrKCkgPSB7KmJy YW5kLCAqdmVyc2lvbn07CisgICAgICAgfQorIAorICAgICAgIGNsaWVudF9oaW50cy5mdWxsX3Zl cnNpb25fbGlzdCA9IHN0ZDo6bW92ZShmdWxsX3ZlcnNpb25fbGlzdCk7CitkaWZmIC11cCBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL2NvbnRh Y3RfaW5mb19zeW5jX3V0aWwuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IgY2hyb21pdW0tMTIw LjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9f c3luY191dGlsLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9m aWxsL2NvcmUvYnJvd3Nlci9jb250YWN0X2luZm9fc3luY191dGlsLmNjLm5vX21hdGNoaW5nX2Nv bnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTcuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21p dW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL2F1dG9maWxsL2NvcmUvYnJvd3Nlci9jb250YWN0 X2luZm9fc3luY191dGlsLmNjCTIwMjMtMTItMDMgMTc6MzE6MjUuNzUwNDIwMjI3ICswMTAwCitA QCAtMTk3LDkgKzE5Nyw5IEBAIGNsYXNzIENvbnRhY3RJbmZvUHJvZmlsZVNldHRlciB7CisgICAg ICAgQ0hFQ0sob2JzZXJ2YXRpb25zLmVtcHR5KCkpOworICAgICAgIGZvciAoY29uc3Qgc3luY19w Yjo6Q29udGFjdEluZm9TcGVjaWZpY3M6Ok9ic2VydmF0aW9uJiBwcm90b19vYnNlcnZhdGlvbiA6 CisgICAgICAgICAgICBtZXRhZGF0YS5vYnNlcnZhdGlvbnMoKSkgeworLSAgICAgICAgb2JzZXJ2 YXRpb25zLmVtcGxhY2VfYmFjayhwcm90b19vYnNlcnZhdGlvbi50eXBlKCksCisrICAgICAgICBv YnNlcnZhdGlvbnMuZW1wbGFjZV9iYWNrKCkgPSB7c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4o cHJvdG9fb2JzZXJ2YXRpb24udHlwZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHJvZmlsZVRva2VuUXVhbGl0eTo6Rm9ybVNpZ25hdHVyZUhhc2goCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b19vYnNlcnZhdGlvbi5mb3JtX2hhc2go KSkpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9fb2JzZXJ2 YXRpb24uZm9ybV9oYXNoKCkpfTsKKyAgICAgICB9CisgICAgIH0KKyAgIH0KK2RpZmYgLXVwIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvd2Vi ZGF0YS9hdXRvZmlsbF90YWJsZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0 b2ZpbGxfdGFibGUuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0 b2ZpbGwvY29yZS9icm93c2VyL3dlYmRhdGEvYXV0b2ZpbGxfdGFibGUuY2Mubm9fbWF0Y2hpbmdf Y29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjozOTo1Ny4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvYXV0b2ZpbGwvY29yZS9icm93c2VyL3dlYmRh dGEvYXV0b2ZpbGxfdGFibGUuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTE0MjAyNDYgKzAxMDAK K0BAIC0xNzYzLDEwICsxNzYzLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxBdXRvZmlsbFByb2ZpbGU+ IEF1dG9maWwKKyAgICAgfQorIAorICAgICBiYXNlOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IG9ic2Vy dmF0aW9uc19kYXRhID0gcy5Db2x1bW5CbG9iKDMpOworLSAgICBmaWVsZF90eXBlX3ZhbHVlcy5l bXBsYWNlX2JhY2soCisrICAgIGZpZWxkX3R5cGVfdmFsdWVzLmVtcGxhY2VfYmFjaygpID0gewor ICAgICAgICAgdHlwZSwgcy5Db2x1bW5TdHJpbmcxNigxKSwgcy5Db2x1bW5JbnQoMiksCisgICAg ICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PihvYnNlcnZhdGlvbnNfZGF0YS5iZWdpbigpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2YXRpb25zX2RhdGEuZW5kKCkpKTsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmF0aW9uc19kYXRhLmVuZCgpKX07Cisg CisgICAgIGlmICh0eXBlID09IEFERFJFU1NfSE9NRV9DT1VOVFJZKSB7CisgICAgICAgY291bnRy eV9jb2RlID0gYmFzZTo6VVRGMTZUb1VURjgocy5Db2x1bW5TdHJpbmcxNigxKSk7CitkaWZmIC11 cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3Jl L2Jyb3dzZXIvcGFzc3dvcmRfbWFuYWdlci5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvcGFzc3dvcmRfbWFuYWdlci9jb3JlL2Jyb3dz ZXIvcGFzc3dvcmRfbWFuYWdlci5jYworLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9u ZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci9wYXNzd29yZF9tYW5hZ2VyLmNjLm5v X21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6Mzk6NTguMDAwMDAwMDAwICswMTAw CisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIv Y29yZS9icm93c2VyL3Bhc3N3b3JkX21hbmFnZXIuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTE0 MjAyNDYgKzAxMDAKK0BAIC02MzAsNyArNjMwLDcgQEAgdm9pZCBQYXNzd29yZE1hbmFnZXI6Ok9u VXNlck1vZGlmaWVkTm9uUAorICAgLy8gfGRyaXZlcnwgbWlnaHQgYmUgZW1wdHkgb24gaU9TIG9y IGluIHRlc3RzLgorICAgaW50IGRyaXZlcl9pZCA9IGRyaXZlciA/IGRyaXZlci0+R2V0SWQoKSA6 IDA7CisgICBwb3NzaWJsZV91c2VybmFtZXNfLlB1dCgKKy0gICAgICBQb3NzaWJsZVVzZXJuYW1l RmllbGRJZGVudGlmaWVyKGRyaXZlcl9pZCwgcmVuZGVyZXJfaWQpLAorKyAgICAgIFBvc3NpYmxl VXNlcm5hbWVGaWVsZElkZW50aWZpZXJ7ZHJpdmVyX2lkLCByZW5kZXJlcl9pZH0sCisgICAgICAg UG9zc2libGVVc2VybmFtZURhdGEoR2V0U2lnbm9uUmVhbG0oZHJpdmVyLT5HZXRMYXN0Q29tbWl0 dGVkVVJMKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyX2lkLCB2YWx1 ZSwgYmFzZTo6VGltZTo6Tm93KCksIGRyaXZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhdXRvY29tcGxldGVfYXR0cmlidXRlX2hhc191c2VybmFtZSwgaXNfbGlrZWx5X290cCkp OworZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNl L2Rpc3BsYXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19t YXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbXBvbmVudHMvdml6 L3NlcnZpY2UvZGlzcGxheV9lbWJlZGRlci9za2lhX291dHB1dF9zdXJmYWNlX2ltcGxfb25fZ3B1 LmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb21wb25lbnRzL3Zpei9zZXJ2aWNlL2Rp c3BsYXlfZW1iZWRkZXIvc2tpYV9vdXRwdXRfc3VyZmFjZV9pbXBsX29uX2dwdS5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjQwOjAxLjAwMDAwMDAwMCArMDEwMAorKysr IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29tcG9uZW50cy92aXovc2VydmljZS9kaXNwbGF5X2Vt YmVkZGVyL3NraWFfb3V0cHV0X3N1cmZhY2VfaW1wbF9vbl9ncHUuY2MJMjAyMy0xMi0wMyAxNzoz MToyNS43NTE0MjAyNDYgKzAxMDAKK0BAIC0xNTY3LDcgKzE1NjcsNyBAQCB2b2lkIFNraWFPdXRw dXRTdXJmYWNlSW1wbE9uR3B1OjpDb3B5T3V0CisgCisgICAgICAgLy8gSXNzdWUgcmVhZGJhY2tz IGZyb20gdGhlIHN1cmZhY2VzOgorICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQ29weU91 dHB1dFJlc3VsdDo6a05WMTJNYXhQbGFuZXM7ICsraSkgeworLSAgICAgICAgU2tJU2l6ZSBzaXpl KHBsYW5lX3N1cmZhY2VzW2ldLT53aWR0aCgpLCBwbGFuZV9zdXJmYWNlc1tpXS0+aGVpZ2h0KCkp OworKyAgICAgICAgU2tJU2l6ZSBzaXple3BsYW5lX3N1cmZhY2VzW2ldLT53aWR0aCgpLCBwbGFu ZV9zdXJmYWNlc1tpXS0+aGVpZ2h0KCl9OworICAgICAgICAgU2tJbWFnZUluZm8gZHN0X2luZm8g PSBTa0ltYWdlSW5mbzo6TWFrZSgKKyAgICAgICAgICAgICBzaXplLCAoaSA9PSAwKSA/IGtBbHBo YV84X1NrQ29sb3JUeXBlIDoga1I4RzhfdW5vcm1fU2tDb2xvclR5cGUsCisgICAgICAgICAgICAg a1VucHJlbXVsX1NrQWxwaGFUeXBlKTsKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYv Y29udGVudC9icm93c2VyL2Rvd25sb2FkL3NhdmVfcGFja2FnZS5jYy5ub19tYXRjaGluZ19jb25z dHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9z YXZlX3BhY2thZ2UuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nl ci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0x MS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L2NvbnRlbnQvYnJvd3Nlci9kb3dubG9hZC9zYXZlX3BhY2thZ2UuY2MJMjAyMy0xMi0wMyAxNzoz MToyNS43NTI0MjAyNjUgKzAxMDAKK0BAIC03NjcsOCArNzY3LDggQEAgdm9pZCBTYXZlUGFja2Fn ZTo6RmluaXNoKCkgeworICAgaWYgKGRvd25sb2FkXykgeworICAgICBzdGQ6OnZlY3Rvcjxkb3du bG9hZDo6RG93bmxvYWRTYXZlSXRlbURhdGE6Okl0ZW1JbmZvPiBmaWxlczsKKyAgICAgZm9yIChh dXRvJiBpdGVtIDogc2F2ZWRfc3VjY2Vzc19pdGVtc18pIHsKKy0gICAgICBmaWxlcy5lbXBsYWNl X2JhY2soaXRlbS5zZWNvbmQtPmZ1bGxfcGF0aCgpLCBpdGVtLnNlY29uZC0+dXJsKCksCistICAg ICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2Vjb25kLT5yZWZlcnJlcigpLnVybCk7CisrICAg ICAgZmlsZXMuZW1wbGFjZV9iYWNrKCkgPSB7aXRlbS5zZWNvbmQtPmZ1bGxfcGF0aCgpLCBpdGVt LnNlY29uZC0+dXJsKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2Vjb25kLT5y ZWZlcnJlcigpLnVybH07CisgICAgIH0KKyAgICAgZG93bmxvYWQ6OkRvd25sb2FkU2F2ZUl0ZW1E YXRhOjpBdHRhY2hJdGVtRGF0YShkb3dubG9hZF8sIHN0ZDo6bW92ZShmaWxlcykpOworICAgfQor ZGlmZiAtdXAgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50L2Jyb3dzZXIvaW50ZXJlc3Rf Z3JvdXAvaW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9pbnRlcmVzdF9ncm91cC9pbnRl cmVzdF9ncm91cF9zdG9yYWdlLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9jb250ZW50 L2Jyb3dzZXIvaW50ZXJlc3RfZ3JvdXAvaW50ZXJlc3RfZ3JvdXBfc3RvcmFnZS5jYy5ub19tYXRj aGluZ19jb25zdHJ1Y3RvcgkyMDIzLTExLTI5IDIyOjQwOjAxLjAwMDAwMDAwMCArMDEwMAorKysr IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL2ludGVyZXN0X2dyb3VwL2lu dGVyZXN0X2dyb3VwX3N0b3JhZ2UuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTI0MjAyNjUgKzAx MDAKK0BAIC0zMDAyLDEwICszMDAyLDEwIEBAIERvR2V0S0Fub255bWl0eURhdGEoc3FsOjpEYXRh YmFzZSYgZGIsCisgCisgICBzdGQ6OnZlY3RvcjxTdG9yYWdlSW50ZXJlc3RHcm91cDo6S0Fub255 bWl0eURhdGE+IGtfYW5vbl9kYXRhOworICAgd2hpbGUgKGludGVyZXN0X2dyb3VwX2thbm9uX3F1 ZXJ5LlN0ZXAoKSkgeworLSAgICBrX2Fub25fZGF0YS5lbXBsYWNlX2JhY2soCisrICAgIGtfYW5v bl9kYXRhLmVtcGxhY2VfYmFjaygpID0geworICAgICAgICAgLyprZXk9Ki9pbnRlcmVzdF9ncm91 cF9rYW5vbl9xdWVyeS5Db2x1bW5TdHJpbmcoMCksCisgICAgICAgICAvKmlzX2tfYW5vbnltb3Vz PSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuQ29sdW1uQm9vbCgxKSwKKy0gICAgICAgIC8q bGFzdF91cGRhdGVkPSovaW50ZXJlc3RfZ3JvdXBfa2Fub25fcXVlcnkuQ29sdW1uVGltZSgyKSk7 CisrICAgICAgICAvKmxhc3RfdXBkYXRlZD0qL2ludGVyZXN0X2dyb3VwX2thbm9uX3F1ZXJ5LkNv bHVtblRpbWUoMil9OworICAgfQorICAgaWYgKCFpbnRlcmVzdF9ncm91cF9rYW5vbl9xdWVyeS5T dWNjZWVkZWQoKSkgeworICAgICByZXR1cm4gYWJzbDo6bnVsbG9wdDsKK2RpZmYgLXVwIGNocm9t aXVtLTEyMC4wLjYwOTkuNTYvY29udGVudC9icm93c2VyL3JlbmRlcmVyX2hvc3QvcmVuZGVyX2Zy YW1lX2hvc3RfaW1wbC5jYy5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42 MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2lt cGwuY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJl cl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2ltcGwuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJ MjAyMy0xMS0yOSAyMjo0MDowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42 MDk5LjU2L2NvbnRlbnQvYnJvd3Nlci9yZW5kZXJlcl9ob3N0L3JlbmRlcl9mcmFtZV9ob3N0X2lt cGwuY2MJMjAyMy0xMi0wMyAyMDo0OToyOC4wNTkwNDI2NzIgKzAxMDAKK0BAIC04Njg1LDcgKzg2 ODUsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdEltcGw6OlNlbmRGZW5jZWRGcmFtCisgICBmb3Ig KGNvbnN0IGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVwb3J0aW5nRGVzdGluYXRpb24mIGRlc3RpbmF0 aW9uIDoKKyAgICAgICAgZGVzdGluYXRpb25zKSB7CisgICAgIFNlbmRGZW5jZWRGcmFtZVJlcG9y dGluZ0JlYWNvbkludGVybmFsKAorLSAgICAgICAgRGVzdGluYXRpb25FbnVtRXZlbnQoZXZlbnRf dHlwZSwgZXZlbnRfZGF0YSksIGRlc3RpbmF0aW9uLAorKyAgICAgICAgRGVzdGluYXRpb25FbnVt RXZlbnR7ZXZlbnRfdHlwZSwgZXZlbnRfZGF0YX0sIGRlc3RpbmF0aW9uLAorICAgICAgICAgLypm cm9tX3JlbmRlcmVyPSovdHJ1ZSwgYXR0cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVy ZXMpOworICAgfQorIH0KK0BAIC04NzIwLDcgKzg3MjAsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9z dEltcGw6OlNlbmRGZW5jZWRGcmFtCisgICB9CisgCisgICBTZW5kRmVuY2VkRnJhbWVSZXBvcnRp bmdCZWFjb25JbnRlcm5hbCgKKy0gICAgICBEZXN0aW5hdGlvblVSTEV2ZW50KGRlc3RpbmF0aW9u X3VybCksCisrICAgICAgRGVzdGluYXRpb25VUkxFdmVudHtkZXN0aW5hdGlvbl91cmx9LAorICAg ICAgIGJsaW5rOjpGZW5jZWRGcmFtZTo6UmVwb3J0aW5nRGVzdGluYXRpb246OmtCdXllciwKKyAg ICAgICAvKmZyb21fcmVuZGVyZXI9Ki90cnVlLCBhdHRyaWJ1dGlvbl9yZXBvcnRpbmdfcnVudGlt ZV9mZWF0dXJlcyk7CisgfQorQEAgLTg4MjAsNyArODgyMCw3IEBAIHZvaWQgUmVuZGVyRnJhbWVI b3N0SW1wbDo6TWF5YmVTZW5kRmVuY2UKKyAgICAgICAgIGRhdGEgPSBpbmZvLT5kYXRhOworICAg ICAgIH0KKyAgICAgICBpbml0aWF0b3JfcmZoLT5TZW5kRmVuY2VkRnJhbWVSZXBvcnRpbmdCZWFj b25JbnRlcm5hbCgKKy0gICAgICAgICAgQXV0b21hdGljQmVhY29uRXZlbnQoZXZlbnRfdHlwZSwg ZGF0YSksIGRlc3RpbmF0aW9uLAorKyAgICAgICAgICBBdXRvbWF0aWNCZWFjb25FdmVudHtldmVu dF90eXBlLCBkYXRhfSwgZGVzdGluYXRpb24sCisgICAgICAgICAgIC8qZnJvbV9yZW5kZXJlcj0q L2ZhbHNlLCBhdHRyaWJ1dGlvbl9yZXBvcnRpbmdfZmVhdHVyZXMsCisgICAgICAgICAgIG5hdmln YXRpb25fcmVxdWVzdC5HZXROYXZpZ2F0aW9uSWQoKSk7CisgICAgIH0KK0BAIC04ODMyLDcgKzg4 MzIsNyBAQCB2b2lkIFJlbmRlckZyYW1lSG9zdEltcGw6Ok1heWJlU2VuZEZlbmNlCisgICAgIGZv ciAoYmxpbms6OkZlbmNlZEZyYW1lOjpSZXBvcnRpbmdEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiA6 CisgICAgICAgICAgaW5mby0+ZGVzdGluYXRpb25zKSB7CisgICAgICAgaW5pdGlhdG9yX3JmaC0+ U2VuZEZlbmNlZEZyYW1lUmVwb3J0aW5nQmVhY29uSW50ZXJuYWwoCistICAgICAgICAgIEF1dG9t YXRpY0JlYWNvbkV2ZW50KGV2ZW50X3R5cGUsIGluZm8tPmRhdGEpLCBkZXN0aW5hdGlvbiwKKysg ICAgICAgICAgQXV0b21hdGljQmVhY29uRXZlbnR7ZXZlbnRfdHlwZSwgaW5mby0+ZGF0YX0sIGRl c3RpbmF0aW9uLAorICAgICAgICAgICAvKmZyb21fcmVuZGVyZXI9Ki9mYWxzZSwgaW5mby0+YXR0 cmlidXRpb25fcmVwb3J0aW5nX3J1bnRpbWVfZmVhdHVyZXMsCisgICAgICAgICAgIG5hdmlnYXRp b25fcmVxdWVzdC5HZXROYXZpZ2F0aW9uSWQoKSk7CisgICAgIH0KK2RpZmYgLXVwIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVyX2NhY2hlLmNjLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvbmV0L2Rucy9ob3N0X3Jlc29sdmVy X2NhY2hlLmNjCistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni9uZXQvZG5zL2hvc3RfcmVzb2x2 ZXJfY2FjaGUuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDowNy4w MDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L25ldC9kbnMvaG9zdF9y ZXNvbHZlcl9jYWNoZS5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NDQyMDMwMyArMDEwMAorQEAg LTM2OCw3ICszNjgsNyBAQCB2b2lkIEhvc3RSZXNvbHZlckNhY2hlOjpTZXQoCisgCisgICBzdGQ6 OnN0cmluZyBkb21haW5fbmFtZSA9IHJlc3VsdC0+ZG9tYWluX25hbWUoKTsKKyAgIGVudHJpZXNf LmVtcGxhY2UoCistICAgICAgS2V5KHN0ZDo6bW92ZShkb21haW5fbmFtZSksIG5ldHdvcmtfYW5v bnltaXphdGlvbl9rZXkpLAorKyAgICAgIEtleXtzdGQ6Om1vdmUoZG9tYWluX25hbWUpLCBuZXR3 b3JrX2Fub255bWl6YXRpb25fa2V5fSwKKyAgICAgICBFbnRyeShzdGQ6Om1vdmUocmVzdWx0KSwg c291cmNlLCBzZWN1cmUsIHN0YWxlbmVzc19nZW5lcmF0aW9uKSk7CisgCisgICBpZiAoZW50cmll c18uc2l6ZSgpID4gbWF4X2VudHJpZXNfKSB7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5 LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL2ZvbnRfcGFsZXR0 ZS5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvZm9udF9wYWxldHRlLmgKKy0tLSBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L2ZvbnRzL2ZvbnRfcGFsZXR0ZS5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkg MjI6NDA6MTIuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X3BhbGV0dGUuaAkyMDIz LTEyLTAzIDE3OjMxOjI1Ljc1NDQyMDMwMyArMDEwMAorQEAgLTk2LDcgKzk2LDcgQEAgY2xhc3Mg UExBVEZPUk1fRVhQT1JUIEZvbnRQYWxldHRlIDogcHVibAorICAgICAgIENvbG9yOjpDb2xvclNw YWNlIGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2UsCisgICAgICAgYWJzbDo6b3B0aW9uYWw8Q29s b3I6Okh1ZUludGVycG9sYXRpb25NZXRob2Q+IGh1ZV9pbnRlcnBvbGF0aW9uX21ldGhvZCkgewor ICAgICByZXR1cm4gYmFzZTo6QWRvcHRSZWYobmV3IEZvbnRQYWxldHRlKAorLSAgICAgICAgc3Rh cnQsIGVuZCwgTm9uTm9ybWFsaXplZFBlcmNlbnRhZ2VzKHN0YXJ0X3BlcmNlbnRhZ2UsIGVuZF9w ZXJjZW50YWdlKSwKKysgICAgICAgIHN0YXJ0LCBlbmQsIE5vbk5vcm1hbGl6ZWRQZXJjZW50YWdl c3tzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZX0sCisgICAgICAgICBub3JtYWxpemVk X3BlcmNlbnRhZ2UsIGFscGhhX211bHRpcGxpZXIsIGNvbG9yX2ludGVycG9sYXRpb25fc3BhY2Us CisgICAgICAgICBodWVfaW50ZXJwb2xhdGlvbl9tZXRob2QpKTsKKyAgIH0KK0BAIC0xNzAsNyAr MTcwLDcgQEAgY2xhc3MgUExBVEZPUk1fRVhQT1JUIEZvbnRQYWxldHRlIDogcHVibAorICAgICAg IGRvdWJsZSBub3JtYWxpemVkX3BlcmNlbnRhZ2UpIHsKKyAgICAgZG91YmxlIGVuZF9wZXJjZW50 YWdlID0gbm9ybWFsaXplZF9wZXJjZW50YWdlICogMTAwLjA7CisgICAgIGRvdWJsZSBzdGFydF9w ZXJjZW50YWdlID0gMTAwLjAgLSBlbmRfcGVyY2VudGFnZTsKKy0gICAgcmV0dXJuIE5vbk5vcm1h bGl6ZWRQZXJjZW50YWdlcyhzdGFydF9wZXJjZW50YWdlLCBlbmRfcGVyY2VudGFnZSk7CisrICAg IHJldHVybiBOb25Ob3JtYWxpemVkUGVyY2VudGFnZXN7c3RhcnRfcGVyY2VudGFnZSwgZW5kX3Bl cmNlbnRhZ2V9OworICAgfQorIAorICAgZG91YmxlIEdldEFscGhhTXVsdGlwbGllcigpIGNvbnN0 IHsKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjLm5vX21hdGNoaW5n X2NvbnN0cnVjdG9yIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvcGxhdGZvcm0vZm9udHMvcGFsZXR0ZV9pbnRlcnBvbGF0aW9uLmNjCistLS0gY2hyb21p dW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250 cy9wYWxldHRlX2ludGVycG9sYXRpb24uY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0x MS0yOSAyMjo0MDoxMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2 L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL3BhbGV0dGVfaW50ZXJw b2xhdGlvbi5jYwkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NTQyMDMyMyArMDEwMAorQEAgLTMxLDcg KzMxLDcgQEAgVmVjdG9yPEZvbnRQYWxldHRlOjpGb250UGFsZXR0ZU92ZXJyaWRlPgorICAgICAg ICAgY29sb3JfaW50ZXJwb2xhdGlvbl9zcGFjZSwgaHVlX2ludGVycG9sYXRpb25fbWV0aG9kLCBz dGFydF9jb2xvciwKKyAgICAgICAgIGVuZF9jb2xvciwgcGVyY2VudGFnZSwgYWxwaGFfbXVsdGlw bGllcik7CisgCistICAgIEZvbnRQYWxldHRlOjpGb250UGFsZXR0ZU92ZXJyaWRlIHJlc3VsdF9j b2xvcl9yZWNvcmQoaSwgcmVzdWx0X2NvbG9yKTsKKysgICAgRm9udFBhbGV0dGU6OkZvbnRQYWxl dHRlT3ZlcnJpZGUgcmVzdWx0X2NvbG9yX3JlY29yZHtzdGF0aWNfY2FzdDxpbnQ+KGkpLCByZXN1 bHRfY29sb3J9OworICAgICByZXN1bHRfY29sb3JfcmVjb3Jkcy5wdXNoX2JhY2socmVzdWx0X2Nv bG9yX3JlY29yZCk7CisgICB9CisgICByZXR1cm4gcmVzdWx0X2NvbG9yX3JlY29yZHM7CitkaWZm IC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L3BkZml1bS9jb3JlL2ZwZGZh cGkvcmVuZGVyL2NwZGZfcmVuZGVyc3RhdHVzLmNwcC5ub19tYXRjaGluZ19jb25zdHJ1Y3RvciBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L3BkZml1bS9jb3JlL2ZwZGZhcGkvcmVu ZGVyL2NwZGZfcmVuZGVyc3RhdHVzLmNwcAorLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhp cmRfcGFydHkvcGRmaXVtL2NvcmUvZnBkZmFwaS9yZW5kZXIvY3BkZl9yZW5kZXJzdGF0dXMuY3Bw Lm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yCTIwMjMtMTEtMjkgMjI6NDE6NDYuMDAwMDAwMDAwICsw MTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9wZGZpdW0vY29yZS9m cGRmYXBpL3JlbmRlci9jcGRmX3JlbmRlcnN0YXR1cy5jcHAJMjAyMy0xMi0wMyAxNzozMToyNS43 NTY0MjAzNDIgKzAxMDAKK0BAIC00OTEsNyArNDkxLDcgQEAgdm9pZCBDUERGX1JlbmRlclN0YXR1 czo6UHJvY2Vzc0NsaXBQYXRoKAorICAgICB9IGVsc2UgeworICAgICAgIG1fcERldmljZS0+U2V0 Q2xpcF9QYXRoRmlsbCgKKyAgICAgICAgICAgKnBQYXRoLCAmbXRPYmoyRGV2aWNlLAorLSAgICAg ICAgICBDRlhfRmlsbFJlbmRlck9wdGlvbnMoQ2xpcFBhdGguR2V0Q2xpcFR5cGUoaSkpKTsKKysg ICAgICAgICAgQ0ZYX0ZpbGxSZW5kZXJPcHRpb25ze0NsaXBQYXRoLkdldENsaXBUeXBlKGkpfSk7 CisgICAgIH0KKyAgIH0KKyAKK2RpZmYgLXVwIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvYmFz ZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5oLm5vX21hdGNoaW5nX2NvbnN0cnVjdG9yIGNo cm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvYmFzZS93YXlsYW5kL2NvbG9yX21hbmFnZXJfdXRpbC5o CistLS0gY2hyb21pdW0tMTIwLjAuNjA5OS41Ni91aS9iYXNlL3dheWxhbmQvY29sb3JfbWFuYWdl cl91dGlsLmgubm9fbWF0Y2hpbmdfY29uc3RydWN0b3IJMjAyMy0xMS0yOSAyMjo0MDo0NC4wMDAw MDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2Jhc2Uvd2F5bGFuZC9j b2xvcl9tYW5hZ2VyX3V0aWwuaAkyMDIzLTEyLTAzIDE3OjMxOjI1Ljc1NTQyMDMyMyArMDEwMAor QEAgLTUyLDUzICs1Miw1MyBAQCBjb25zdGV4cHIgYXV0byBrQ2hyb21hdGljaXR5TWFwID0gYmFz ZTo6CisgICAgIHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2Nocm9tYXRpY2l0eV9uYW1lcywKKyAgICAg UHJpbWFyeVZlcnNpb24+KAorICAgICB7e1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lU WV9OQU1FU19CVDYwMV81MjVfTElORSwKKy0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9y U3BhY2U6OlByaW1hcnlJRDo6U01QVEUxNzBNLAorLSAgICAgICAgICAgICAgICAgICAgIGtEZWZh dWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNl OjpQcmltYXJ5SUQ6OlNNUFRFMTcwTSwKKysgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNp bmNlVmVyc2lvbn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9O QU1FU19CVDYwMV82MjVfTElORSwKKy0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3Bh Y2U6OlByaW1hcnlJRDo6QlQ0NzBCRywKKy0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNp bmNlVmVyc2lvbil9LAorKyAgICAgIFByaW1hcnlWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UHJp bWFyeUlEOjpCVDQ3MEJHLAorKyAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJz aW9ufX0sCisgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NN UFRFMTcwTSwKKy0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJ RDo6U01QVEUxNzBNLAorLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9u KX0sCisrICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNN UFRFMTcwTSwKKysgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAor ICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19CVDcwOSwKKy0g ICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6QlQ3MDksIGtE ZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNw YWNlOjpQcmltYXJ5SUQ6OkJUNzA5LCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAge1pD Ul9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19CVDIwMjAsCistICAgICAgUHJp bWFyeVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkJUMjAyMCwga0RlZmF1bHRT aW5jZVZlcnNpb24pfSwKKysgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlBy aW1hcnlJRDo6QlQyMDIwLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAge1pDUl9DT0xP Ul9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TUkdCLAorLSAgICAgIFByaW1hcnlWZXJz aW9uKGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpCVDcwOSwga0RlZmF1bHRTaW5jZVZlcnNp b24pfSwKKysgICAgICBQcmltYXJ5VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6 QlQ3MDksIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgICB7WkNSX0NPTE9SX01BTkFHRVJf VjFfQ0hST01BVElDSVRZX05BTUVTX0RJU1BMQVlQMywKKy0gICAgICBQcmltYXJ5VmVyc2lvbihn Zng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6UDMsIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisr ICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlAzLCBrRGVm YXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJ Q0lUWV9OQU1FU19BRE9CRVJHQiwKKy0gICAgICBQcmltYXJ5VmVyc2lvbihnZng6OkNvbG9yU3Bh Y2U6OlByaW1hcnlJRDo6QURPQkVfUkdCLAorLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0 U2luY2VWZXJzaW9uKX0sCisrICAgICAgUHJpbWFyeVZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpQ cmltYXJ5SUQ6OkFET0JFX1JHQiwKKysgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNl VmVyc2lvbn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1F U19XSURFX0dBTVVUX0NPTE9SX1NQSU4sCistICAgICAgUHJpbWFyeVZlcnNpb24oCisrICAgICAg UHJpbWFyeVZlcnNpb257CisgICAgICAgICAgIGdmeDo6Q29sb3JTcGFjZTo6UHJpbWFyeUlEOjpX SURFX0dBTVVUX0NPTE9SX1NQSU4sCistICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NI Uk9NQVRJQ0lUWV9OQU1FU19XSURFX0dBTVVUX0NPTE9SX1NQSU5fU0lOQ0VfVkVSU0lPTil9LAor KyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfV0lERV9H QU1VVF9DT0xPUl9TUElOX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfQlQ0NzBNLAorLSAgICAgIFByaW1hcnlWZXJzaW9uKAor KyAgICAgIFByaW1hcnlWZXJzaW9ueworICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1h cnlJRDo6QlQ0NzBNLAorLSAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJ VFlfTkFNRVNfQlQ0NzBNX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgICAgICAgWkNSX0NPTE9SX01B TkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX0JUNDcwTV9TSU5DRV9WRVJTSU9OfX0sCisgICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFMjQwTSwKKy0g ICAgICBQcmltYXJ5VmVyc2lvbigKKysgICAgICBQcmltYXJ5VmVyc2lvbnsKKyAgICAgICAgICAg Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRFMjQwTSwKKy0gICAgICAgICAgWkNSX0NP TE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFMjQwTV9TSU5DRV9WRVJTSU9O KX0sCisrICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19T TVBURTI0ME1fU0lOQ0VfVkVSU0lPTn19LAorICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0NI Uk9NQVRJQ0lUWV9OQU1FU19YWVpfRDUwLAorLSAgICAgIFByaW1hcnlWZXJzaW9uKAorKyAgICAg IFByaW1hcnlWZXJzaW9ueworICAgICAgICAgICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRDo6 WFlaX0Q1MCwKKy0gICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05B TUVTX1hZWl9ENTBfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfWFlaX0Q1MF9TSU5DRV9WRVJTSU9OfX0sCisgICAgICB7 WkNSX0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFU1Q0MjhfMSwKKy0g ICAgICBQcmltYXJ5VmVyc2lvbigKKysgICAgICBQcmltYXJ5VmVyc2lvbnsKKyAgICAgICAgICAg Z2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OlNNUFRFU1Q0MjhfMSwKKy0gICAgICAgICAgWkNS X0NPTE9SX01BTkFHRVJfVjFfQ0hST01BVElDSVRZX05BTUVTX1NNUFRFU1Q0MjhfMV9TSU5DRV9W RVJTSU9OKX0sCisrICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9O QU1FU19TTVBURVNUNDI4XzFfU0lOQ0VfVkVSU0lPTn19LAorICAgICAge1pDUl9DT0xPUl9NQU5B R0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDMxXzIsCistICAgICAgUHJpbWFyeVZl cnNpb24oCisrICAgICAgUHJpbWFyeVZlcnNpb257CisgICAgICAgICAgIGdmeDo6Q29sb3JTcGFj ZTo6UHJpbWFyeUlEOjpTTVBURVNUNDMxXzIsCistICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VS X1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19TTVBURVNUNDMxXzJfU0lOQ0VfVkVSU0lPTil9LAorKyAg ICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFUSUNJVFlfTkFNRVNfU01QVEVTVDQz MV8yX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFU SUNJVFlfTkFNRVNfRklMTSwKKy0gICAgICBQcmltYXJ5VmVyc2lvbigKKysgICAgICBQcmltYXJ5 VmVyc2lvbnsKKyAgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpQcmltYXJ5SUQ6OkZJTE0sCist ICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0NIUk9NQVRJQ0lUWV9OQU1FU19GSUxNX1NJ TkNFX1ZFUlNJT04pfX0pOworKyAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9DSFJPTUFU SUNJVFlfTkFNRVNfRklMTV9TSU5DRV9WRVJTSU9OfX19KTsKKyAKKyAvLyBBIG1hcCBmcm9tIHRo ZSB6Y3JfY29sb3JfbWFuYWdlcl92MSBlb3RmX25hbWVzIGVudW0gdmFsdWVzCisgLy8gcmVwcmVz ZW50aW5nIHdlbGwta25vd24gRU9URnMsIHRvIHRoZWlyIGVxdWl2YWxlbnQgVHJhbnNmZXJJRHMu CitAQCAtMTA3LDY4ICsxMDcsNjggQEAgY29uc3RleHByIGF1dG8ga0VvdGZNYXAgPSBiYXNlOjpN YWtlRml4ZQorICAgICB6Y3JfY29sb3JfbWFuYWdlcl92MV9lb3RmX25hbWVzLAorICAgICBUcmFu c2ZlclZlcnNpb24+KHsKKyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfTElO RUFSLAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6 TElORUFSLAorLSAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisr ICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMSU5FQVIs CisrICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAge1pD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQiwKKy0gICAgIFRyYW5zZmVyVmVyc2lv bihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNSR0IsIGtEZWZhdWx0U2luY2VWZXJzaW9u KX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpT UkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19TUkdCX0hEUiwKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3Bh Y2U6OlRyYW5zZmVySUQ6OlNSR0JfSERSLAorLSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xP Ul9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFJfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAg VHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U1JHQl9IRFIsCisr ICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TUkdC X0hEUl9TSU5DRV9WRVJTSU9OfX0sCisgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05B TUVTX0JUNzA5LAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNm ZXJJRDo6QlQ3MDksCistICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFf RU9URl9OQU1FU19CVDcwOV9TSU5DRV9WRVJTSU9OKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257 Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpCVDcwOSwKKysgICAgICAgICAgICAgICAgICAg ICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUNzA5X1NJTkNFX1ZFUlNJT059fSwK KyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDg3LAorLSAgICAgVHJh bnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyNCwKKy0gICAg ICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgVHJhbnNmZXJW ZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyNCwKKysgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICB7WkNSX0NPTE9SX01BTkFH RVJfVjFfRU9URl9OQU1FU19BRE9CRVJHQiwKKyAgICAgIC8vIFRoaXMgaXMgZXZlciBzbyBzbGln aHRseSBpbmFjY3VyYXRlLiBUaGUgbnVtYmVyIG91Z2h0IHRvIGJlCisgICAgICAvLyAyLjE5OTIx ODc1Ziwgbm90IDIuMgorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJh bnNmZXJJRDo6R0FNTUEyMiwKKy0gICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVy c2lvbil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJ RDo6R0FNTUEyMiwKKysgICAgICAgICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19 LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19QUSwKKy0gICAgIFRyYW5z ZmVyVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlBRLCBrRGVmYXVsdFNpbmNl VmVyc2lvbil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNm ZXJJRDo6UFEsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgIHtaQ1JfQ09MT1JfTUFOQUdF Ul9WMV9FT1RGX05BTUVTX0hMRywKKy0gICAgIFRyYW5zZmVyVmVyc2lvbihnZng6OkNvbG9yU3Bh Y2U6OlRyYW5zZmVySUQ6OkhMRywKKy0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFO QUdFUl9WMV9FT1RGX05BTUVTX0hMR19TSU5DRV9WRVJTSU9OKX0sCisrICAgICBUcmFuc2ZlclZl cnNpb257Z2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpITEcsCisrICAgICAgICAgICAgICAg ICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19ITEdfU0lOQ0VfVkVSU0lPTn19 LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBURTE3ME0sCistICAg ICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpTTVBURTE3ME0s CistICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19T TVBURTE3ME1fU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29s b3JTcGFjZTo6VHJhbnNmZXJJRDo6U01QVEUxNzBNLAorKyAgICAgICAgICAgICAgICAgICAgIFpD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUxNzBNX1NJTkNFX1ZFUlNJT059fSwK KyAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01QVEUyNDBNLAorLSAgICAg VHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6U01QVEUyNDBNLAor LSAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU01Q VEUyNDBNX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9y U3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFMjQwTSwKKysgICAgICAgICAgICAgICAgICAgICBaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFMjQwTV9TSU5DRV9WRVJTSU9OfX0sCisg ICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFU1Q0MjhfMSwKKy0gICAg IFRyYW5zZmVyVmVyc2lvbigKKysgICAgIFRyYW5zZmVyVmVyc2lvbnsKKyAgICAgICAgICBnZng6 OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNNUFRFU1Q0MjhfMSwKKy0gICAgICAgICBaQ1JfQ09M T1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1NNUFRFU1Q0MjhfMV9TSU5DRV9WRVJTSU9OKX0sCisr ICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TTVBURVNUNDI4XzFfU0lO Q0VfVkVSU0lPTn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19MT0cs CistICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0cs CistICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19M T0dfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFj ZTo6VHJhbnNmZXJJRDo6TE9HLAorKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pDUl9DT0xPUl9N QU5BR0VSX1YxX0VPVEZfTkFNRVNfTE9HX1NRUlQsCistICAgICBUcmFuc2ZlclZlcnNpb24oZ2Z4 OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklEOjpMT0dfU1FSVCwKKy0gICAgICAgICAgICAgICAgICAg ICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xPR19TUVJUX1NJTkNFX1ZFUlNJT04p fSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkxP R19TUVJULAorKyAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZf TkFNRVNfTE9HX1NRUlRfU0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJf VjFfRU9URl9OQU1FU19JRUM2MTk2Nl8yXzQsCistICAgICBUcmFuc2ZlclZlcnNpb24oCisrICAg ICBUcmFuc2ZlclZlcnNpb257CisgICAgICAgICAgZ2Z4OjpDb2xvclNwYWNlOjpUcmFuc2ZlcklE OjpJRUM2MTk2Nl8yXzQsCistICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1F U19JRUM2MTk2Nl8yXzRfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgICAgIFpDUl9DT0xPUl9NQU5B R0VSX1YxX0VPVEZfTkFNRVNfSUVDNjE5NjZfMl80X1NJTkNFX1ZFUlNJT059fSwKKyAgICAge1pD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQxMzYxX0VDRywKKy0gICAgIFRyYW5zZmVy VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMTM2MV9FQ0csCistICAgICAg ICAgICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDEzNjFfRUNH X1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6 OlRyYW5zZmVySUQ6OkJUMTM2MV9FQ0csCisrICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDEzNjFfRUNHX1NJTkNFX1ZFUlNJT059fSwKKyAgICAg e1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDIwXzEwLAorLSAgICAgVHJhbnNm ZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6QlQyMDIwXzEwLAorLSAgICAg ICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfQlQyMDIwXzEw X1NJTkNFX1ZFUlNJT04pfSwKKysgICAgIFRyYW5zZmVyVmVyc2lvbntnZng6OkNvbG9yU3BhY2U6 OlRyYW5zZmVySUQ6OkJUMjAyMF8xMCwKKysgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMF9TSU5DRV9WRVJTSU9OfX0sCisgICAgIHta Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMiwKKy0gICAgIFRyYW5zZmVy VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OkJUMjAyMF8xMiwKKy0gICAgICAg ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JUMjAyMF8xMl9T SU5DRV9WRVJTSU9OKX0sCisrICAgICBUcmFuc2ZlclZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpU cmFuc2ZlcklEOjpCVDIwMjBfMTIsCisrICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9SX01B TkFHRVJfVjFfRU9URl9OQU1FU19CVDIwMjBfMTJfU0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNS X0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19TQ1JHQl9MSU5FQVJfODBfTklUUywKKy0gICAg IFRyYW5zZmVyVmVyc2lvbigKKysgICAgIFRyYW5zZmVyVmVyc2lvbnsKKyAgICAgICAgICBnZng6 OkNvbG9yU3BhY2U6OlRyYW5zZmVySUQ6OlNDUkdCX0xJTkVBUl84MF9OSVRTLAorLSAgICAgICAg IFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU0NSR0JfTElORUFSXzgwX05JVFNfU0lO Q0VfVkVSU0lPTil9LAorKyAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf U0NSR0JfTElORUFSXzgwX05JVFNfU0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNSX0NPTE9SX01B TkFHRVJfVjFfRU9URl9OQU1FU19HQU1NQTE4LAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6 Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUExOCwKKy0gICAgICAgICAgICAgICAgICAgICBa Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMThfU0lOQ0VfVkVSU0lPTil9LAor KyAgICAgVHJhbnNmZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEx OCwKKysgICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVT X0dBTU1BMThfU0lOQ0VfVkVSU0lPTn19LAorICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9U Rl9OQU1FU19HQU1NQTI4LAorLSAgICAgVHJhbnNmZXJWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6 VHJhbnNmZXJJRDo6R0FNTUEyOCwKKy0gICAgICAgICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFO QUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMjhfU0lOQ0VfVkVSU0lPTil9LAorKyAgICAgVHJhbnNm ZXJWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6VHJhbnNmZXJJRDo6R0FNTUEyOCwKKysgICAgICAg ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0dBTU1BMjhfU0lO Q0VfVkVSU0lPTn19LAorIH0pOworIAorIC8vIEEgbWFwIGZyb20gdGhlIFNEUiB6Y3JfY29sb3Jf bWFuYWdlcl92MSBlb3RmX25hbWVzIGVudW0gdmFsdWVzCitAQCAtMTc3LDE4ICsxNzcsMTggQEAg Y29uc3RleHByIGF1dG8ga0VvdGZNYXAgPSBiYXNlOjpNYWtlRml4ZQorIGNvbnN0ZXhwciBhdXRv IGtUcmFuc2Zlck1hcCA9CisgICAgIGJhc2U6Ok1ha2VGaXhlZEZsYXRNYXA8emNyX2NvbG9yX21h bmFnZXJfdjFfZW90Zl9uYW1lcywgVHJhbnNmZXJGblZlcnNpb24+KHsKKyAgICAgICAgIHtaQ1Jf Q09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xJTkVBUiwKKy0gICAgICAgICBUcmFuc2ZlckZu VmVyc2lvbihTa05hbWVkVHJhbnNmZXJGbjo6a0xpbmVhciwga0RlZmF1bHRTaW5jZVZlcnNpb24p fSwKKysgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJGbjo6a0xpbmVh ciwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9W MV9FT1RGX05BTUVTX1NSR0IsCistICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tOYW1lZFRy YW5zZmVyRm5FeHQ6OmtTUkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgICAgIFRy YW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuRXh0OjprU1JHQiwga0RlZmF1bHRTaW5j ZVZlcnNpb259fSwKKyAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0JU NzA5LAorLSAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKAorKyAgICAgICAgIFRyYW5zZmVyRm5W ZXJzaW9ueworICAgICAgICAgICAgICBTa05hbWVkVHJhbnNmZXJGbkV4dDo6a1JlYzcwOSwKKy0g ICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1FU19CVDcwOV9TSU5DRV9W RVJTSU9OKX0sCisrICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNf QlQ3MDlfU0lOQ0VfVkVSU0lPTn19LAorICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX0VP VEZfTkFNRVNfQlQyMDg3LAorLSAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKGdhbW1hMjQsIGtE ZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257Z2FtbWEy NCwga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9W MV9FT1RGX05BTUVTX0FET0JFUkdCLAorLSAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9uKFNrTmFt ZWRUcmFuc2ZlckZuRXh0OjprQTk4UkdCLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGtE ZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1l ZFRyYW5zZmVyRm5FeHQ6OmtBOThSR0IsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAga0Rl ZmF1bHRTaW5jZVZlcnNpb259fSwKKyAgICAgfSk7CisgCisgLy8gQSBtYXAgZnJvbSB0aGUgSERS IHpjcl9jb2xvcl9tYW5hZ2VyX3YxIGVvdGZfbmFtZXMgZW51bSB2YWx1ZXMKK0BAIC0xOTcsNzAg KzE5Nyw3MCBAQCBjb25zdGV4cHIgYXV0byBrVHJhbnNmZXJNYXAgPQorIGNvbnN0ZXhwciBhdXRv IGtIRFJUcmFuc2Zlck1hcCA9CisgICAgIGJhc2U6Ok1ha2VGaXhlZEZsYXRNYXA8emNyX2NvbG9y X21hbmFnZXJfdjFfZW90Zl9uYW1lcywgVHJhbnNmZXJGblZlcnNpb24+KAorICAgICAgICAge3ta Q1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0xJTkVBUiwKKy0gICAgICAgICAgVHJhbnNm ZXJGblZlcnNpb24oU2tOYW1lZFRyYW5zZmVyRm46OmtMaW5lYXIsIGtEZWZhdWx0U2luY2VWZXJz aW9uKX0sCisrICAgICAgICAgIFRyYW5zZmVyRm5WZXJzaW9ue1NrTmFtZWRUcmFuc2ZlckZuOjpr TGluZWFyLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFO QUdFUl9WMV9FT1RGX05BTUVTX1NSR0JfSERSLAorLSAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lv bigKKysgICAgICAgICAgVHJhbnNmZXJGblZlcnNpb257CisgICAgICAgICAgICAgICBTa05hbWVk VHJhbnNmZXJGbkV4dDo6a1NSR0IsCistICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9W MV9FT1RGX05BTUVTX1NSR0JfSERSX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgICAgICAgICAgIFpD Ul9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfU1JHQl9IRFJfU0lOQ0VfVkVSU0lPTn19LAor ICAgICAgICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX1BRLAorLSAgICAgICAg ICBUcmFuc2ZlckZuVmVyc2lvbihTa05hbWVkVHJhbnNmZXJGbjo6a1BRLCBrRGVmYXVsdFNpbmNl VmVyc2lvbil9LAorKyAgICAgICAgICBUcmFuc2ZlckZuVmVyc2lvbntTa05hbWVkVHJhbnNmZXJG bjo6a1BRLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAgICAgIHtaQ1JfQ09MT1JfTUFO QUdFUl9WMV9FT1RGX05BTUVTX0hMRywKKy0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oU2tO YW1lZFRyYW5zZmVyRm46OmtITEcsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9D T0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSExHX1NJTkNFX1ZFUlNJT04pfSwKKysgICAgICAg ICAgVHJhbnNmZXJGblZlcnNpb257U2tOYW1lZFRyYW5zZmVyRm46OmtITEcsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX0VPVEZfTkFNRVNfSExHX1NJ TkNFX1ZFUlNJT059fSwKKyAgICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfRU9URl9OQU1F U19FWFRFTkRFRFNSR0IxMCwKKy0gICAgICAgICAgVHJhbnNmZXJGblZlcnNpb24oCisrICAgICAg ICAgIFRyYW5zZmVyRm5WZXJzaW9ueworICAgICAgICAgICAgICAgU2tOYW1lZFRyYW5zZmVyRm5F eHQ6OmtTUkdCRXh0ZW5kZWQxMDIzT3ZlcjUxMCwKKy0gICAgICAgICAgICAgIFpDUl9DT0xPUl9N QU5BR0VSX1YxX0VPVEZfTkFNRVNfRVhURU5ERURTUkdCMTBfU0lOQ0VfVkVSU0lPTil9fSk7Cisr ICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9FT1RGX05BTUVTX0VYVEVOREVEU1JH QjEwX1NJTkNFX1ZFUlNJT059fX0pOworIAorIC8vIEEgbWFwIGZyb20gemNyX2NvbG9yX21hbmFn ZXJfdjEgbWF0cml4X25hbWVzIGVudW0gdmFsdWVzIHRvCisgLy8gZ2Z4OjpDb2xvclNwYWNlOjpN YXRyaXhJRHMuCisgY29uc3RleHByIGF1dG8ga01hdHJpeE1hcCA9CisgICAgIGJhc2U6Ok1ha2VG aXhlZEZsYXRNYXA8emNyX2NvbG9yX21hbmFnZXJfdjFfbWF0cml4X25hbWVzLCBNYXRyaXhWZXJz aW9uPigKKyAgICAgICAgIHt7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1JHQiwK Ky0gICAgICAgICAgTWF0cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpSR0Is IGtEZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpD b2xvclNwYWNlOjpNYXRyaXhJRDo6UkdCLCBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAg ICAgIHtaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ3MDksCistICAgICAgICAg IE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6QlQ3MDksCistICAgICAg ICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZlcnNpb24pfSwKKysgICAgICAgICAgTWF0 cml4VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpCVDcwOSwKKysgICAgICAgICAg ICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAgICAgIHtaQ1JfQ09M T1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ0NzBCRywKKy0gICAgICAgICAgTWF0cml4VmVy c2lvbigKKysgICAgICAgICAgTWF0cml4VmVyc2lvbnsKKyAgICAgICAgICAgICAgIGdmeDo6Q29s b3JTcGFjZTo6TWF0cml4SUQ6OkJUNDcwQkcsCistICAgICAgICAgICAgICBaQ1JfQ09MT1JfTUFO QUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ0NzBCR19TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAg ICAgICBaQ1JfQ09MT1JfTUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfQlQ0NzBCR19TSU5DRV9WRVJT SU9OfX0sCisgICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19CVDIw MjBfTkNMLAorLSAgICAgICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4 SUQ6OkJUMjAyMF9OQ0wsCistICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZl cnNpb24pfSwKKysgICAgICAgICAgTWF0cml4VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6Ok1hdHJp eElEOjpCVDIwMjBfTkNMLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VW ZXJzaW9ufX0sCisgICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19C VDIwMjBfQ0wsCistICAgICAgICAgIE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRy aXhJRDo6QlQyMDIwX0NMLAorLSAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VW ZXJzaW9uKX0sCisrICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRy aXhJRDo6QlQyMDIwX0NMLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VW ZXJzaW9ufX0sCisgICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19G Q0MsCistICAgICAgICAgIE1hdHJpeFZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6 RkNDLCBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgICAgICBNYXRyaXhWZXJzaW9ue2dm eDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OkZDQywga0RlZmF1bHRTaW5jZVZlcnNpb259fSwKKyAg ICAgICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lDT0NHLAorLSAgICAg ICAgICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OllDT0NHLAorLSAg ICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19Z Q09DR19TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xv clNwYWNlOjpNYXRyaXhJRDo6WUNPQ0csCisrICAgICAgICAgICAgICAgICAgICAgICAgWkNSX0NP TE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lDT0NHX1NJTkNFX1ZFUlNJT059fSwKKyAgICAg ICAgICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lEWkRYLAorLSAgICAgICAg ICBNYXRyaXhWZXJzaW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OllEWkRYLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1YxX01BVFJJWF9OQU1FU19ZRFpE WF9TSU5DRV9WRVJTSU9OKX0sCisrICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNw YWNlOjpNYXRyaXhJRDo6WURaRFgsCisrICAgICAgICAgICAgICAgICAgICAgICAgWkNSX0NPTE9S X01BTkFHRVJfVjFfTUFUUklYX05BTUVTX1lEWkRYX1NJTkNFX1ZFUlNJT059fSwKKyAgICAgICAg ICB7WkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0dCUiwKKy0gICAgICAgICAgTWF0 cml4VmVyc2lvbihnZng6OkNvbG9yU3BhY2U6Ok1hdHJpeElEOjpHQlIsCistICAgICAgICAgICAg ICAgICAgICAgICAgWkNSX0NPTE9SX01BTkFHRVJfVjFfTUFUUklYX05BTUVTX0dCUl9TSU5DRV9W RVJTSU9OKX0sCisrICAgICAgICAgIE1hdHJpeFZlcnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRy aXhJRDo6R0JSLAorKyAgICAgICAgICAgICAgICAgICAgICAgIFpDUl9DT0xPUl9NQU5BR0VSX1Yx X01BVFJJWF9OQU1FU19HQlJfU0lOQ0VfVkVSU0lPTn19LAorICAgICAgICAgIHtaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfU01QVEUxNzBNLAorLSAgICAgICAgICBNYXRyaXhWZXJz aW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlNNUFRFMTcwTSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9LAorKyAgICAgICAgICBNYXRyaXhWZXJz aW9ue2dmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlNNUFRFMTcwTSwKKysgICAgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19LAorICAgICAgICAgIHtaQ1JfQ09MT1Jf TUFOQUdFUl9WMV9NQVRSSVhfTkFNRVNfU01QVEUyNDBNLAorLSAgICAgICAgICBNYXRyaXhWZXJz aW9uKGdmeDo6Q29sb3JTcGFjZTo6TWF0cml4SUQ6OlNNUFRFMjQwTSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9fSk7CisrICAgICAgICAgIE1hdHJpeFZl cnNpb257Z2Z4OjpDb2xvclNwYWNlOjpNYXRyaXhJRDo6U01QVEUyNDBNLAorKyAgICAgICAgICAg ICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9ufX19KTsKKyAKKyAvLyBBIG1hcCBmcm9t IHpjcl9jb2xvcl9tYW5hZ2VyX3YxIHJhbmdlX25hbWVzIGVudW0gdmFsdWVzIHRvCisgLy8gZ2Z4 OjpDb2xvclNwYWNlOjpSYW5nZUlEcy4KKyBjb25zdGV4cHIgYXV0byBrUmFuZ2VNYXAgPQorICAg ICBiYXNlOjpNYWtlRml4ZWRGbGF0TWFwPHpjcl9jb2xvcl9tYW5hZ2VyX3YxX3JhbmdlX25hbWVz LCBSYW5nZVZlcnNpb24+KAorICAgICAgICAge3taQ1JfQ09MT1JfTUFOQUdFUl9WMV9SQU5HRV9O QU1FU19MSU1JVEVELAorLSAgICAgICAgICBSYW5nZVZlcnNpb24oZ2Z4OjpDb2xvclNwYWNlOjpS YW5nZUlEOjpMSU1JVEVELAorLSAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRTaW5jZVZl cnNpb24pfSwKKysgICAgICAgICAgUmFuZ2VWZXJzaW9ue2dmeDo6Q29sb3JTcGFjZTo6UmFuZ2VJ RDo6TElNSVRFRCwKKysgICAgICAgICAgICAgICAgICAgICAgIGtEZWZhdWx0U2luY2VWZXJzaW9u fX0sCisgICAgICAgICAge1pDUl9DT0xPUl9NQU5BR0VSX1YxX1JBTkdFX05BTUVTX0ZVTEwsCist ICAgICAgICAgIFJhbmdlVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6OkZVTEwsIGtE ZWZhdWx0U2luY2VWZXJzaW9uKX0sCisrICAgICAgICAgIFJhbmdlVmVyc2lvbntnZng6OkNvbG9y U3BhY2U6OlJhbmdlSUQ6OkZVTEwsIGtEZWZhdWx0U2luY2VWZXJzaW9ufX0sCisgICAgICAgICAg e1pDUl9DT0xPUl9NQU5BR0VSX1YxX1JBTkdFX05BTUVTX0RFUklWRUQsCistICAgICAgICAgIFJh bmdlVmVyc2lvbihnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6OkRFUklWRUQsCistICAgICAgICAg ICAgICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbil9fSk7CisrICAgICAgICAgIFJhbmdl VmVyc2lvbntnZng6OkNvbG9yU3BhY2U6OlJhbmdlSUQ6OkRFUklWRUQsCisrICAgICAgICAgICAg ICAgICAgICAgICBrRGVmYXVsdFNpbmNlVmVyc2lvbn19fSk7CisgCisgemNyX2NvbG9yX21hbmFn ZXJfdjFfY2hyb21hdGljaXR5X25hbWVzIFRvQ29sb3JNYW5hZ2VyQ2hyb21hdGljaXR5KAorICAg ICBnZng6OkNvbG9yU3BhY2U6OlByaW1hcnlJRCBwcmltYXJ5SUQsCitAQCAtMjgzLDQgKzI4Myw0 IEBAIHpjcl9jb2xvcl9tYW5hZ2VyX3YxX2VvdGZfbmFtZXMgVG9Db2xvck0KKyAKKyB9ICAvLyBu YW1lc3BhY2UgdWk6OndheWxhbmQKKyAKKy0jZW5kaWYgIC8vIFVJX0JBU0VfV0FZTEFORF9DT0xP Ul9NQU5BR0VSX1VUSUxfSF8KK1wgS2VpbiBaZWlsZW51bWJydWNoIGFtIERhdGVpZW5kZS4KKysj ZW5kaWYgIC8vIFVJX0JBU0VfV0FZTEFORF9DT0xPUl9NQU5BR0VSX1VUSUxfSF8KK2RpZmYgLXVw IGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdWkvZ3RrL2d0a191aS5jYy5ub19tYXRjaGluZ19jb25z dHJ1Y3RvciBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2MKKy0tLSBjaHJv bWl1bS0xMjAuMC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2Mubm9fbWF0Y2hpbmdfY29uc3RydWN0 b3IJMjAyMy0xMS0yOSAyMjo0MDo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAu MC42MDk5LjU2L3VpL2d0ay9ndGtfdWkuY2MJMjAyMy0xMi0wMyAxNzozMToyNS43NTY0MjAzNDIg KzAxMDAKK0BAIC0xMDEzLDExICsxMDEzLDExIEBAIHVpOjpEaXNwbGF5Q29uZmlnIEd0a1VpOjpH ZXREaXNwbGF5Q29uZmkKKyAgICAgR2RrUmVjdGFuZ2xlIGdlb21ldHJ5OworICAgICBnZGtfbW9u aXRvcl9nZXRfZ2VvbWV0cnkobW9uaXRvciwgJmdlb21ldHJ5KTsKKyAgICAgaW50IG1vbml0b3Jf c2NhbGUgPSBzdGQ6Om1heCgxLCBnZGtfbW9uaXRvcl9nZXRfc2NhbGVfZmFjdG9yKG1vbml0b3Ip KTsKKy0gICAgY29uZmlnLmRpc3BsYXlfZ2VvbWV0cmllcy5lbXBsYWNlX2JhY2soCisrICAgIGNv bmZpZy5kaXNwbGF5X2dlb21ldHJpZXMuZW1wbGFjZV9iYWNrKCkgPSB7CisgICAgICAgICBnZng6 OlJlY3QobW9uaXRvcl9zY2FsZSAqIGdlb21ldHJ5LngsIG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRy eS55LAorICAgICAgICAgICAgICAgICAgIG1vbml0b3Jfc2NhbGUgKiBnZW9tZXRyeS53aWR0aCwK KyAgICAgICAgICAgICAgICAgICBtb25pdG9yX3NjYWxlICogZ2VvbWV0cnkuaGVpZ2h0KSwKKy0g ICAgICAgIG1vbml0b3Jfc2NhbGUgKiBmb250X3NjYWxlKTsKKysgICAgICAgIHN0YXRpY19jYXN0 PGZsb2F0Pihtb25pdG9yX3NjYWxlICogZm9udF9zY2FsZSl9OworICAgfQorICAgcmV0dXJuIGNv bmZpZzsKKyB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9j aHJvbWl1bS0xMjAtc3BsaXQtdGhyZXNob2xkLWZvci1yZWctd2l0aC1oaW50LnBhdGNoIGIvc3Jj cGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLXNwbGl0LXRocmVzaG9s ZC1mb3ItcmVnLXdpdGgtaGludC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwLi5lODBlZDcxNWFhZjI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLXNwbGl0LXRocmVzaG9sZC1mb3ItcmVn LXdpdGgtaGludC5wYXRjaApAQCAtMCwwICsxLDI4IEBACitkaWZmIC11cCBjaHJvbWl1bS0xMjAu MC42MDk5LjM1L2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbi50aGFuIGNocm9taXVtLTEy MC4wLjYwOTkuMzUvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCistLS0gY2hyb21pdW0t MTIwLjAuNjA5OS4zNS9idWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24udGhhbgkyMDIzLTEx LTI2IDE3OjAyOjI1LjY0NzAyMjc0NiArMDEwMAorKysrIGNocm9taXVtLTEyMC4wLjYwOTkuMzUv YnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCTIwMjMtMTEtMjYgMTc6MTU6NTguMDI1NTg1 MzU4ICswMTAwCitAQCAtNjE2LDI0ICs2MTYsNiBAQCBjb25maWcoImNvbXBpbGVyIikgeworICAg ICAgIH0KKyAgICAgfQorIAorLSAgICAjIFRPRE8oY3JidWcuY29tLzE0ODgzNzQpOiBUaGlzIGNh dXNlcyBiaW5hcnkgc2l6ZSBncm93dGggYW5kIHBvdGVudGlhbGx5CistICAgICMgb3RoZXIgcHJv YmxlbXMuCistICAgICMgVE9ETyhjcmJ1Zy5jb20vMTQ5MTAzNik6IFRoaXMgaXNuJ3Qgc3VwcG9y dGVkIGJ5IENyb25ldCdzIG1haW5saW5lIGxsdm0gdmVyc2lvbi4KKy0gICAgaWYgKGRlZmF1bHRf dG9vbGNoYWluICE9ICIvL2J1aWxkL3Rvb2xjaGFpbi9jcm9zOnRhcmdldCIgJiYKKy0gICAgICAg ICFsbHZtX2FuZHJvaWRfbWFpbmxpbmUpIHsKKy0gICAgICBjZmxhZ3MgKz0gWworLSAgICAgICAg Ii1tbGx2bSIsCistICAgICAgICAiLXNwbGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludD0w IiwKKy0gICAgICBdCistICAgICAgaWYgKHVzZV90aGluX2x0byAmJiBpc19hX3RhcmdldF90b29s Y2hhaW4pIHsKKy0gICAgICAgIGlmIChpc193aW4pIHsKKy0gICAgICAgICAgbGRmbGFncyArPSBb ICItbWxsdm06LXNwbGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludD0wIiBdCistICAgICAg ICB9IGVsc2UgeworLSAgICAgICAgICBsZGZsYWdzICs9IFsgIi1XbCwtbWxsdm0sLXNwbGl0LXRo cmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludD0wIiBdCistICAgICAgICB9CistICAgICAgfQorLSAg ICB9CistCisgICAgICMgVE9ETyhjcmJ1Zy5jb20vMTIzNTE0NSk6IEludmVzdGlnYXRlIHdoeS9p ZiB0aGlzIHNob3VsZCBiZSBuZWVkZWQuCisgICAgIGlmIChpc193aW4pIHsKKyAgICAgICBjZmxh Z3MgKz0gWyAiL2NsYW5nOi1mZnAtY29udHJhY3Q9b2ZmIiBdCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMjAtdHlwZW5hbWUucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS0xMjAtdHlwZW5hbWUucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOWEyZDg3OGIxMmI1 NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLTEyMC10eXBlbmFtZS5wYXRjaApAQCAtMCwwICsxLDIwNSBAQAorLS0tIGNocm9taXVt LTEyMC4wLjYwOTkuNTYvYmFzZS9jb250YWluZXJzL21hcF91dGlsLmgubWUJMjAyMy0xMi0wMiAx OTowMDoxOS42OTY4MDE1NjMgKzAxMDAKKysrKyBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L2Jhc2Uv Y29udGFpbmVycy9tYXBfdXRpbC5oCTIwMjMtMTItMDIgMTk6MDA6NDcuMDQ5MzM3NTQ3ICswMTAw CitAQCAtNDIsNyArNDIsNyBAQAorIHRlbXBsYXRlIDx0eXBlbmFtZSBNYXAsCisgICAgICAgICAg IHR5cGVuYW1lIEtleSwKKyAgICAgICAgICAgdHlwZW5hbWUgTWFwcGVkRWxlbWVudFR5cGUgPQor LSAgICAgICAgICAgICAgc3RkOjpwb2ludGVyX3RyYWl0czxpbnRlcm5hbDo6TWFwcGVkVHlwZTxN YXA+Pjo6ZWxlbWVudF90eXBlPgorKyAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpwb2ludGVy X3RyYWl0czxpbnRlcm5hbDo6TWFwcGVkVHlwZTxNYXA+Pjo6ZWxlbWVudF90eXBlPgorIGNvbnN0 ZXhwciBjb25zdCBNYXBwZWRFbGVtZW50VHlwZSogRmluZFB0ck9yTnVsbChjb25zdCBNYXAmIG1h cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgS2V5JiBrZXkpIHsKKyAgIGF1dG8gaXQgPSBtYXAuZmluZChrZXkpOworQEAgLTU4LDcgKzU4 LDcgQEAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgTWFwLAorICAgICAgICAgICB0eXBlbmFtZSBLZXks CisgICAgICAgICAgIHR5cGVuYW1lIE1hcHBlZEVsZW1lbnRUeXBlID0KKy0gICAgICAgICAgICAg IHN0ZDo6cG9pbnRlcl90cmFpdHM8aW50ZXJuYWw6Ok1hcHBlZFR5cGU8TWFwPj46OmVsZW1lbnRf dHlwZT4KKysgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cG9pbnRlcl90cmFpdHM8aW50ZXJu YWw6Ok1hcHBlZFR5cGU8TWFwPj46OmVsZW1lbnRfdHlwZT4KKyBjb25zdGV4cHIgTWFwcGVkRWxl bWVudFR5cGUqIEZpbmRQdHJPck51bGwoTWFwJiBtYXAsIGNvbnN0IEtleSYga2V5KSB7CisgICBh dXRvIGl0ID0gbWFwLmZpbmQoa2V5KTsKKyAgIHJldHVybiBpdCAhPSBtYXAuZW5kKCkgPyBzdGQ6 OnRvX2FkZHJlc3MoaXQtPnNlY29uZCkgOiBudWxscHRyOworZGlmZiAtdXAgY2hyb21pdW0tMTE1 LjAuNTc5MC4yNC9jaHJvbWUvYnJvd3Nlci9kb3dubG9hZC9idWJibGUvZG93bmxvYWRfYnViYmxl X3VwZGF0ZV9zZXJ2aWNlLmNjLm1lIGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dz ZXIvZG93bmxvYWQvYnViYmxlL2Rvd25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYworLS0t IGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIvZG93bmxvYWQvYnViYmxlL2Rv d25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYy5tZQkyMDIzLTA2LTE3IDE0OjUwOjU2LjM0 MjU5MTcwMiArMDIwMAorKysrIGNocm9taXVtLTExNS4wLjU3OTAuMjQvY2hyb21lL2Jyb3dzZXIv ZG93bmxvYWQvYnViYmxlL2Rvd25sb2FkX2J1YmJsZV91cGRhdGVfc2VydmljZS5jYwkyMDIzLTA2 LTE3IDE0OjU3OjQ4LjAyNDM3NzM3NSArMDIwMAorQEAgLTkxLDcgKzkxLDcgQEAgSXRlbVNvcnRL ZXkgR2V0U29ydEtleShjb25zdCBJdGVtJiBpdGVtKQorIC8vIEhlbHBlciB0byBnZXQgYW4gaXRl cmF0b3IgdG8gdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgY2FjaGUuIFRoZSBjYWNoZQorIC8vIG11 c3Qgbm90IGJlIGVtcHR5LgorIHRlbXBsYXRlIDx0eXBlbmFtZSBJdGVtPgorLVNvcnRlZEl0ZW1z PEl0ZW0+Ojpjb25zdF9pdGVyYXRvciBHZXRMYXN0SXRlcihjb25zdCBTb3J0ZWRJdGVtczxJdGVt PiYgY2FjaGUpIHsKKyt0eXBlbmFtZSBTb3J0ZWRJdGVtczxJdGVtPjo6Y29uc3RfaXRlcmF0b3Ig R2V0TGFzdEl0ZXIoY29uc3QgU29ydGVkSXRlbXM8SXRlbT4mIGNhY2hlKSB7CisgICBDSEVDSygh Y2FjaGUuZW1wdHkoKSk7CisgICBhdXRvIGl0ID0gY2FjaGUuZW5kKCk7CisgICByZXR1cm4gc3Rk OjpwcmV2KGl0KTsKK0BAIC05NjcsOSArOTY3LDkgQEAgYm9vbCBEb3dubG9hZEJ1YmJsZVVwZGF0 ZVNlcnZpY2U6OkNhY2hlTQorIH0KKyAKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgSWQsIHR5cGVuYW1l IEl0ZW0+CistU29ydGVkSXRlbXM8SXRlbT46Oml0ZXJhdG9yCisrdHlwZW5hbWUgU29ydGVkSXRl bXM8SXRlbT46Oml0ZXJhdG9yCisgRG93bmxvYWRCdWJibGVVcGRhdGVTZXJ2aWNlOjpDYWNoZU1h bmFnZXI6OlJlbW92ZUl0ZW1Gcm9tQ2FjaGVCeUl0ZXIoCistICAgIFNvcnRlZEl0ZW1zPEl0ZW0+ OjppdGVyYXRvciBpdGVyLAorKyAgICB0eXBlbmFtZSBTb3J0ZWRJdGVtczxJdGVtPjo6aXRlcmF0 b3IgaXRlciwKKyAgICAgU29ydGVkSXRlbXM8SXRlbT4mIGNhY2hlLAorICAgICBJdGVyTWFwPElk LCBJdGVtPiYgaXRlcl9tYXApIHsKKyAgIENIRUNLKGl0ZXIgIT0gY2FjaGUuZW5kKCkpOworZGlm ZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9jb21wb25lbnRzL29wdGltaXphdGlvbl9ndWlk ZS9jb3JlL3RmbGl0ZV9tb2RlbF9leGVjdXRvci5oLm1lIGNocm9taXVtLTExNS4wLjU3OTAuMzIv Y29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3Iu aAorLS0tIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29tcG9uZW50cy9vcHRpbWl6YXRpb25fZ3Vp ZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaC5tZQkyMDIzLTA2LTE4IDIxOjUyOjUzLjUx NTYyNTIzNyArMDIwMAorKysrIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29tcG9uZW50cy9vcHRp bWl6YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaAkyMDIzLTA2LTE4IDIx OjUzOjA2Ljg4MTg4MTI5MyArMDIwMAorQEAgLTE4OSw3ICsxODksNyBAQCBjbGFzcyBURkxpdGVN b2RlbEV4ZWN1dG9yIDogcHVibGljIE1vZGVsCisgICB2b2lkIFNlbmRGb3JCYXRjaEV4ZWN1dGlv bigKKyAgICAgICBCYXRjaEV4ZWN1dGlvbkNhbGxiYWNrIGNhbGxiYWNrX29uX2NvbXBsZXRlLAor ICAgICAgIGJhc2U6OlRpbWVUaWNrcyBzdGFydF90aW1lLAorLSAgICAgIE1vZGVsRXhlY3V0b3I8 T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCisrICAg ICAgdHlwZW5hbWUgTW9kZWxFeGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJl ZklucHV0VmVjdG9yIGlucHV0cykKKyAgICAgICBvdmVycmlkZSB7CisgICAgIERDSEVDSyhleGVj dXRpb25fdGFza19ydW5uZXJfLT5SdW5zVGFza3NJbkN1cnJlbnRTZXF1ZW5jZSgpKTsKKyAgICAg RENIRUNLX0NBTExFRF9PTl9WQUxJRF9TRVFVRU5DRShzZXF1ZW5jZV9jaGVja2VyXyk7CitkaWZm IC11cCBjaHJvbWl1bS0xMTUuMC41NzkwLjMyL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2Nv cmUvaHRtbC9wYXJzZXIvaHRtbF9kb2N1bWVudF9wYXJzZXJfZmFzdHBhdGguY2MubWUgY2hyb21p dW0tMTE1LjAuNTc5MC4zMi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2h0bWwvcGFy c2VyL2h0bWxfZG9jdW1lbnRfcGFyc2VyX2Zhc3RwYXRoLmNjCistLS0gY2hyb21pdW0tMTE1LjAu NTc5MC4zMi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2h0bWwvcGFyc2VyL2h0bWxf ZG9jdW1lbnRfcGFyc2VyX2Zhc3RwYXRoLmNjLm1lCTIwMjMtMDYtMTkgMTA6MDM6MzIuMzE5MjE4 Njc4ICswMjAwCisrKysgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9jb3JlL2h0bWwvcGFyc2VyL2h0bWxfZG9jdW1lbnRfcGFyc2VyX2Zhc3RwYXRoLmNj CTIwMjMtMDYtMTkgMTA6MDQ6MTIuMDIzOTQyMjMyICswMjAwCitAQCAtMTY5LDcgKzE2OSw3IEBA IGNsYXNzIEhUTUxGYXN0UGF0aFBhcnNlciB7CisgICB1c2luZyBTcGFuID0gYmFzZTo6c3Bhbjxj b25zdCBDaGFyPjsKKyAgIHVzaW5nIFVTcGFuID0gYmFzZTo6c3Bhbjxjb25zdCBVQ2hhcj47Cisg ICAvLyAzMiBtYXRjaGVzIHRoYXQgdXNlZCBieSBIVE1MVG9rZW46OkF0dHJpYnV0ZS4KKy0gIHR5 cGVkZWYgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX3NhbWVfdjxDaGFyLCBVQ2hhcj4sCisrICB0 eXBlZGVmIHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19zYW1lX3Y8Q2hhciwgVUNo YXI+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyTGl0ZXJhbEJ1ZmZlcjwzMj4s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTENoYXJMaXRlcmFsQnVmZmVyPDMyPj46OnR5 cGUgTGl0ZXJhbEJ1ZmZlclR5cGU7CisgICB0eXBlZGVmIFVDaGFyTGl0ZXJhbEJ1ZmZlcjwzMj4g VUNoYXJMaXRlcmFsQnVmZmVyVHlwZTsKK2RpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuNTAv Y29udGVudC9wdWJsaWMvYnJvd3Nlci93ZWJfdWlfYnJvd3Nlcl9pbnRlcmZhY2VfYnJva2VyX3Jl Z2lzdHJ5LmgubWUgY2hyb21pdW0tMTE2LjAuNTg0NS41MC9jb250ZW50L3B1YmxpYy9icm93c2Vy L3dlYl91aV9icm93c2VyX2ludGVyZmFjZV9icm9rZXJfcmVnaXN0cnkuaAorLS0tIGNocm9taXVt LTExNi4wLjU4NDUuNTAvY29udGVudC9wdWJsaWMvYnJvd3Nlci93ZWJfdWlfYnJvd3Nlcl9pbnRl cmZhY2VfYnJva2VyX3JlZ2lzdHJ5LmgubWUJMjAyMy0wOC0wMiAxNjoxODozMC4zODAxMDgxMjUg KzAyMDAKKysrKyBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL2NvbnRlbnQvcHVibGljL2Jyb3dzZXIv d2ViX3VpX2Jyb3dzZXJfaW50ZXJmYWNlX2Jyb2tlcl9yZWdpc3RyeS5oCTIwMjMtMDgtMDIgMTY6 MjA6NTkuNjYwMDI0NTc4ICswMjAwCitAQCAtMTI3LDEwICsxMjcsMTAgQEAgY2xhc3MgQ09OVEVO VF9FWFBPUlQgV2ViVUlCcm93c2VySW50ZXJmYQorICAgLy8KKyAgIC8vIFRPRE8oY3JidWcuY29t LzE0MDc5MzYpOiBQb2ludCB0byBXZWJVSUpzQnJpZGdlIGRvY3VtZW50YXRpb24uCisgICB0ZW1w bGF0ZSA8dHlwZW5hbWUgQ29udHJvbGxlclR5cGU+CistICBKc0JyaWRnZVRyYWl0czxDb250cm9s bGVyVHlwZT46OkJpbmRlckluaXRpYWxpemVyJiBGb3JXZWJVSVdpdGhKc0JyaWRnZSgpIHsKKysg IHR5cGVuYW1lIEpzQnJpZGdlVHJhaXRzPENvbnRyb2xsZXJUeXBlPjo6QmluZGVySW5pdGlhbGl6 ZXImIEZvcldlYlVJV2l0aEpzQnJpZGdlKCkgeworICAgICB1c2luZyBUcmFpdHMgPSBKc0JyaWRn ZVRyYWl0czxDb250cm9sbGVyVHlwZT47CistICAgIHVzaW5nIEludGVyZmFjZSA9IFRyYWl0czo6 SW50ZXJmYWNlOworLSAgICB1c2luZyBKc0JyaWRnZUJpbmRlckluaXRpYWxpemVyID0gVHJhaXRz OjpCaW5kZXJJbml0aWFsaXplcjsKKysgICAgdXNpbmcgSW50ZXJmYWNlID0gdHlwZW5hbWUgVHJh aXRzOjpJbnRlcmZhY2U7CisrICAgIHVzaW5nIEpzQnJpZGdlQmluZGVySW5pdGlhbGl6ZXIgPSB0 eXBlbmFtZSBUcmFpdHM6OkJpbmRlckluaXRpYWxpemVyOworIAorICAgICAvLyBXZWJVSUNvbnRy b2xsZXI6OkdldFR5cGUoKSByZXF1aXJlcyBhbiBpbnN0YW50aWF0ZWQgV2ViVUlDb250cm9sbGVy CisgICAgIC8vIChiZWNhdXNlIGl0J3MgYSB2aXJ0dWFsIG1ldGhvZCBhbmQgY2FuJ3QgYmUgc3Rh dGljKS4gSGVyZSB3ZSBvbmx5IGhhdmUKK2RpZmYgLXVwIGNocm9taXVtLTExNi4wLjU4NDUuNTAv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9wYWludC9vYmplY3RfcGFpbnRfcHJvcGVy dGllc19zcGFyc2UuaC5tZSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL2NvcmUvcGFpbnQvb2JqZWN0X3BhaW50X3Byb3BlcnRpZXNfc3BhcnNlLmgKKy0t LSBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUv cGFpbnQvb2JqZWN0X3BhaW50X3Byb3BlcnRpZXNfc3BhcnNlLmgubWUJMjAyMy0wOC0wMiAyMDo0 MToyMy45ODQ3Mjk0NjIgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTYuMC41ODQ1LjUwL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvcGFpbnQvb2JqZWN0X3BhaW50X3Byb3BlcnRpZXNfc3Bh cnNlLmgJMjAyMy0wOC0wMiAyMDo0MTo1My43Mzc1ODMwOTMgKzAyMDAKK0BAIC0yNzAsOCArMjcw LDggQEAgY2xhc3MgQ09SRV9FWFBPUlQgT2JqZWN0UGFpbnRQcm9wZXJ0aWVzUworICAgICAgIE5v ZGVMaXN0JiBub2RlcywKKyAgICAgICBOb2RlSWQgbm9kZV9pZCwKKyAgICAgICBjb25zdCBQYXJl bnRUeXBlJiBwYXJlbnQsCistICAgICAgTm9kZVR5cGU6OlN0YXRlJiYgc3RhdGUsCistICAgICAg Y29uc3QgTm9kZVR5cGU6OkFuaW1hdGlvblN0YXRlJiBhbmltYXRpb25fc3RhdGUgPQorKyAgICAg IHR5cGVuYW1lIE5vZGVUeXBlOjpTdGF0ZSYmIHN0YXRlLAorKyAgICAgIGNvbnN0IHR5cGVuYW1l IE5vZGVUeXBlOjpBbmltYXRpb25TdGF0ZSYgYW5pbWF0aW9uX3N0YXRlID0KKyAgICAgICAgICAg Tm9kZVR5cGU6OkFuaW1hdGlvblN0YXRlKCkpIHsKKyAgICAgLy8gRmlyc3QsIGNoZWNrIGlmIHdl IG5lZWQgdG8gYWRkIGEgbmV3IG5vZGUuCisgICAgIGlmICghbm9kZXMuSGFzRmllbGQobm9kZV9p ZCkpIHsKK2RpZmYgLXVwIGNocm9taXVtLTExNy4wLjU5MzguNjIvY29tcG9uZW50cy9vcHRpbWl6 YXRpb25fZ3VpZGUvY29yZS90ZmxpdGVfbW9kZWxfZXhlY3V0b3IuaC5tZSBjaHJvbWl1bS0xMTcu MC41OTM4LjYyL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVs X2V4ZWN1dG9yLmgKKy0tLSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvb3B0aW1p emF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgubWUJMjAyMy0wOS0xNSAx MDoyMjo1MS44ODk2OTg0MDIgKzAyMDAKKysrKyBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBv bmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUvdGZsaXRlX21vZGVsX2V4ZWN1dG9yLmgJMjAy My0wOS0xNSAxMDoyODoyNi43MDI3MTYyMjQgKzAyMDAKK0BAIC0yMzQsNyArMjM0LDcgQEAgY2xh c3MgVEZMaXRlTW9kZWxFeGVjdXRvciA6IHB1YmxpYyBNb2RlbAorICAgLy8gU3RhcnRzIHRoZSBz eW5jaHJvbm91cyBleGVjdXRpb24gb2YgdGhlIG1vZGVsLiBSZXR1cm5zIG1vZGVsIG91dHB1dHMu CisgICAvLyBNb2RlbCBuZWVkcyB0byBiZSBsb2FkZWQuIFN5bmNocm9ub3VzIGNhbGxzIGRvIG5v dCBsb2FkIG9yIHVubG9hZCBtb2RlbC4KKyAgIHN0ZDo6dmVjdG9yPGFic2w6Om9wdGlvbmFsPE91 dHB1dFR5cGU+PiBTZW5kRm9yQmF0Y2hFeGVjdXRpb25TeW5jKAorLSAgICAgIE1vZGVsRXhlY3V0 b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMpCisr ICAgICAgdHlwZW5hbWUgTW9kZWxFeGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+OjpDb25z dFJlZklucHV0VmVjdG9yIGlucHV0cykKKyAgICAgICBvdmVycmlkZSB7CisgICAgIERDSEVDSyhl eGVjdXRpb25fdGFza19ydW5uZXJfLT5SdW5zVGFza3NJbkN1cnJlbnRTZXF1ZW5jZSgpKTsKKyAg ICAgRENIRUNLX0NBTExFRF9PTl9WQUxJRF9TRVFVRU5DRShzZXF1ZW5jZV9jaGVja2VyXyk7CitA QCAtMzg5LDcgKzM4OSw3IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhlY3V0b3IgOiBwdWJsaWMgTW9k ZWwKKyAgIC8vIGV4ZWN1dGVzIGl0IG9uIHRoZSBtb2RlbCBleGVjdXRpb24gdGhyZWFkLgorICAg dm9pZCBMb2FkTW9kZWxGaWxlQW5kQmF0Y2hFeGVjdXRlKAorICAgICAgIEJhdGNoRXhlY3V0aW9u Q2FsbGJhY2sgY2FsbGJhY2tfb25fY29tcGxldGUsCistICAgICAgTW9kZWxFeGVjdXRvcjxPdXRw dXRUeXBlLCBJbnB1dFR5cGU+OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cykgeworKyAgICAg IHR5cGVuYW1lIE1vZGVsRXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJ bnB1dFZlY3RvciBpbnB1dHMpIHsKKyAgICAgRENIRUNLKGV4ZWN1dGlvbl90YXNrX3J1bm5lcl8t PlJ1bnNUYXNrc0luQ3VycmVudFNlcXVlbmNlKCkpOworICAgICBEQ0hFQ0tfQ0FMTEVEX09OX1ZB TElEX1NFUVVFTkNFKHNlcXVlbmNlX2NoZWNrZXJfKTsKKyAKK0BAIC00MDYsNyArNDA2LDcgQEAg Y2xhc3MgVEZMaXRlTW9kZWxFeGVjdXRvciA6IHB1YmxpYyBNb2RlbAorIAorICAgLy8gQmF0Y2gg ZXhlY3V0ZXMgdGhlIGxvYWRlZCBtb2RlbCBmb3IgaW5wdXRzLgorICAgdm9pZCBCYXRjaEV4ZWN1 dGVMb2FkZWRNb2RlbCgKKy0gICAgICBNb2RlbEV4ZWN1dG9yPE91dHB1dFR5cGUsIElucHV0VHlw ZT46OkNvbnN0UmVmSW5wdXRWZWN0b3IgaW5wdXRzLAorKyAgICAgIHR5cGVuYW1lIE1vZGVsRXhl Y3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1dHMs CisgICAgICAgc3RkOjp2ZWN0b3I8YWJzbDo6b3B0aW9uYWw8T3V0cHV0VHlwZT4+KiBvdXRwdXRz KSB7CisgICAgIERDSEVDSyhleGVjdXRpb25fdGFza19ydW5uZXJfLT5SdW5zVGFza3NJbkN1cnJl bnRTZXF1ZW5jZSgpKTsKKyAgICAgRENIRUNLX0NBTExFRF9PTl9WQUxJRF9TRVFVRU5DRShzZXF1 ZW5jZV9jaGVja2VyXyk7CitAQCAtNDY2LDcgKzQ2Niw3IEBAIGNsYXNzIFRGTGl0ZU1vZGVsRXhl Y3V0b3IgOiBwdWJsaWMgTW9kZWwKKyAgIC8vIFVubG9hZHMgdGhlIG1vZGVsIGlmIG5lZWRlZC4K KyAgIHZvaWQgQmF0Y2hFeGVjdXRlTG9hZGVkTW9kZWxBbmRSdW5DYWxsYmFjaygKKyAgICAgICBC YXRjaEV4ZWN1dGlvbkNhbGxiYWNrIGNhbGxiYWNrX29uX2NvbXBsZXRlLAorLSAgICAgIE1vZGVs RXhlY3V0b3I8T3V0cHV0VHlwZSwgSW5wdXRUeXBlPjo6Q29uc3RSZWZJbnB1dFZlY3RvciBpbnB1 dHMsCisrICAgICAgdHlwZW5hbWUgTW9kZWxFeGVjdXRvcjxPdXRwdXRUeXBlLCBJbnB1dFR5cGU+ OjpDb25zdFJlZklucHV0VmVjdG9yIGlucHV0cywKKyAgICAgICBFeGVjdXRpb25TdGF0dXMgZXhl Y3V0aW9uX3N0YXR1cykgeworICAgICBEQ0hFQ0soZXhlY3V0aW9uX3Rhc2tfcnVubmVyXy0+UnVu c1Rhc2tzSW5DdXJyZW50U2VxdWVuY2UoKSk7CisgICAgIERDSEVDS19DQUxMRURfT05fVkFMSURf U0VRVUVOQ0Uoc2VxdWVuY2VfY2hlY2tlcl8pOworZGlmZiAtdXAgY2hyb21pdW0tMTE3LjAuNTkz OC42Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hl ci5jYy5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2Vy L2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVyLmNjCistLS0gY2hyb21pdW0tMTE3LjAuNTkzOC42 Mi9jb21wb25lbnRzL3N1cGVydmlzZWRfdXNlci9jb3JlL2Jyb3dzZXIvcHJvdG9fZmV0Y2hlci5j Yy5tZQkyMDIzLTA5LTE1IDE3OjIwOjIyLjU1MDY1NzU4NiArMDIwMAorKysrIGNocm9taXVtLTEx Ny4wLjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2VyL3Byb3Rv X2ZldGNoZXIuY2MJMjAyMy0wOS0xNSAxNzoyNDoxMS4zOTY3MTY3MzQgKzAyMDAKK0BAIC0zOTks NyArMzk5LDcgQEAgY2xhc3MgUmV0cnlpbmdGZXRjaGVySW1wbCBmaW5hbCA6IHB1YmxpYworICAg UmV0cnlpbmdGZXRjaGVySW1wbChjb25zdCBSZXRyeWluZ0ZldGNoZXJJbXBsJikgPSBkZWxldGU7 CisgICBSZXRyeWluZ0ZldGNoZXJJbXBsJiBvcGVyYXRvcj0oY29uc3QgUmV0cnlpbmdGZXRjaGVy SW1wbCYpID0gZGVsZXRlOworIAorLSAgdm9pZCBTdGFydChQcm90b0ZldGNoZXI8UmVzcG9uc2U+ OjpDYWxsYmFjayBjYWxsYmFjaykgb3ZlcnJpZGUgeworKyAgdm9pZCBTdGFydCh0eXBlbmFtZSBQ cm90b0ZldGNoZXI8UmVzcG9uc2U+OjpDYWxsYmFjayBjYWxsYmFjaykgb3ZlcnJpZGUgeworICAg ICBjYWxsYmFja18gPSBzdGQ6Om1vdmUoY2FsbGJhY2spOworICAgICBSZXRyeSgpOworICAgfQor QEAgLTQzNSw3ICs0MzUsNyBAQCBjbGFzcyBSZXRyeWluZ0ZldGNoZXJJbXBsIGZpbmFsIDogcHVi bGljCisgICB9CisgCisgICAvLyBDbGllbnQgY2FsbGJhY2suCistICBQcm90b0ZldGNoZXI8UmVz cG9uc2U+OjpDYWxsYmFjayBjYWxsYmFja187CisrICB0eXBlbmFtZSBQcm90b0ZldGNoZXI8UmVz cG9uc2U+OjpDYWxsYmFjayBjYWxsYmFja187CisgCisgICAvLyBSZXRyeSBjb250cm9scy4KKyAg IGJhc2U6Ok9uZVNob3RUaW1lciB0aW1lcl87CitAQCAtNTc4LDcgKzU3OCw3IEBAIFBhcmFsbGVs RmV0Y2hNYW5hZ2VyPFJlcXVlc3QsIFJlc3BvbnNlPjoKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVx dWVzdCwgdHlwZW5hbWUgUmVzcG9uc2U+Cisgdm9pZCBQYXJhbGxlbEZldGNoTWFuYWdlcjxSZXF1 ZXN0LCBSZXNwb25zZT46OkZldGNoKAorICAgICBjb25zdCBSZXF1ZXN0JiByZXF1ZXN0LAorLSAg ICBGZXRjaGVyOjpDYWxsYmFjayBjYWxsYmFjaykgeworKyAgICB0eXBlbmFtZSBGZXRjaGVyOjpD YWxsYmFjayBjYWxsYmFjaykgeworICAgQ0hFQ0soY2FsbGJhY2spIDw8ICJVc2UgYmFzZTo6RG9O b3RoaW5nKCkgaW5zdGVhZCBvZiBlbXB0eSBjYWxsYmFjay4iOworICAgS2V5VHlwZSBrZXkgPSBy ZXF1ZXN0c19pbl9mbGlnaHRfLkFkZChNYWtlRmV0Y2hlcihyZXF1ZXN0KSk7CisgICByZXF1ZXN0 c19pbl9mbGlnaHRfLkxvb2t1cChrZXkpLT5TdGFydCgKK2RpZmYgLXVwIGNocm9taXVtLTExNy4w LjU5MzguNjIvY29tcG9uZW50cy9zdXBlcnZpc2VkX3VzZXIvY29yZS9icm93c2VyL3Byb3RvX2Zl dGNoZXIuaC5tZSBjaHJvbWl1bS0xMTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91 c2VyL2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVyLmgKKy0tLSBjaHJvbWl1bS0xMTcuMC41OTM4 LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nlci9wcm90b19mZXRjaGVy LmgubWUJMjAyMy0wOS0xNSAxNzoyMDo1Ni41NDA0NjAzOTEgKzAyMDAKKysrKyBjaHJvbWl1bS0x MTcuMC41OTM4LjYyL2NvbXBvbmVudHMvc3VwZXJ2aXNlZF91c2VyL2NvcmUvYnJvd3Nlci9wcm90 b19mZXRjaGVyLmgJMjAyMy0wOS0xNSAxNzoyMjoxOC4yNDYyMzc4MTcgKzAyMDAKK0BAIC0xNjUs MTAgKzE2NSwxMCBAQCBjbGFzcyBQYXJhbGxlbEZldGNoTWFuYWdlciB7CisgCisgICAvLyBTdGFy dHMgdGhlIGZldGNoLiBVbmRlcmx5aW5nIGZldGNoZXIgaXMgc3RvcmVkIGludGVybmFsbHksIGFu ZCB3aWxsIGJlCisgICAvLyBjbGVhbmVkIHVwIGFmdGVyIGZpbmlzaCBvciB3aGVuIHRoaXMgbWFu YWdlciBpcyBkZXN0cm95ZWQuCistICB2b2lkIEZldGNoKGNvbnN0IFJlcXVlc3QmIHJlcXVlc3Qs IEZldGNoZXI6OkNhbGxiYWNrIGNhbGxiYWNrKTsKKysgIHZvaWQgRmV0Y2goY29uc3QgUmVxdWVz dCYgcmVxdWVzdCwgdHlwZW5hbWUgRmV0Y2hlcjo6Q2FsbGJhY2sgY2FsbGJhY2spOworIAorICBw cml2YXRlOgorLSAgdXNpbmcgS2V5VHlwZSA9IGJhc2U6OklETWFwPHN0ZDo6dW5pcXVlX3B0cjxG ZXRjaGVyPj46OktleVR5cGU7CisrICB1c2luZyBLZXlUeXBlID0gdHlwZW5hbWUgYmFzZTo6SURN YXA8c3RkOjp1bmlxdWVfcHRyPEZldGNoZXI+Pjo6S2V5VHlwZTsKKyAKKyAgIC8vIFJlbW92ZSBm ZXRjaGVyIHVuZGVyIGtleSBmcm9tIHJlcXVlc3RzX2luX2ZsaWdodF8uCisgICB2b2lkIFJlbW92 ZShLZXlUeXBlIGtleSk7CitkaWZmIC11cCBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdzL2NvcmUvdjgvYXN5bmNfaXRlcmFibGUuaC5tZSBj aHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2JpbmRpbmdz L2NvcmUvdjgvYXN5bmNfaXRlcmFibGUuaAorLS0tIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3MvY29yZS92OC9hc3luY19pdGVyYWJsZS5o Lm1lCTIwMjMtMTItMDQgMDA6Mjk6MzUuMTk3MjA5NTM4ICswMTAwCisrKysgY2hyb21pdW0tMTIw LjAuNjA5OS41Ni90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9iaW5kaW5ncy9jb3JlL3Y4L2Fz eW5jX2l0ZXJhYmxlLmgJMjAyMy0xMi0wNCAwMDozMDoyNC40MzYyMzMyNDkgKzAxMDAKK0BAIC0y MjAsNyArMjIwLDcgQEAgY2xhc3MgUGFpckFzeW5jSXRlcmFibGUgeworICBwcml2YXRlOgorICAg dmlydHVhbCBJdGVyYXRpb25Tb3VyY2UqIENyZWF0ZUl0ZXJhdGlvblNvdXJjZSgKKyAgICAgICBT Y3JpcHRTdGF0ZSogc2NyaXB0X3N0YXRlLAorLSAgICAgIEl0ZXJhdGlvblNvdXJjZTo6S2luZCBr aW5kLAorKyAgICAgIHR5cGVuYW1lIEl0ZXJhdGlvblNvdXJjZTo6S2luZCBraW5kLAorICAgICAg IEV4Y2VwdGlvblN0YXRlJiBleGNlcHRpb25fc3RhdGUpID0gMDsKKyB9OworIAorQEAgLTI2Miw3 ICsyNjIsNyBAQCBjbGFzcyBWYWx1ZUFzeW5jSXRlcmFibGUgeworICBwcml2YXRlOgorICAgdmly dHVhbCBJdGVyYXRpb25Tb3VyY2UqIENyZWF0ZUl0ZXJhdGlvblNvdXJjZSgKKyAgICAgICBTY3Jp cHRTdGF0ZSogc2NyaXB0X3N0YXRlLAorLSAgICAgIEl0ZXJhdGlvblNvdXJjZTo6S2luZCBraW5k LAorKyAgICAgIHR5cGVuYW1lIEl0ZXJhdGlvblNvdXJjZTo6S2luZCBraW5kLAorICAgICAgIEV4 Y2VwdGlvblN0YXRlJiBleGNlcHRpb25fc3RhdGUpID0gMDsKKyB9OworIApkaWZmIC0tZ2l0IGEv c3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tMTIwLXdvcmthcm91bmRf Y2xhbmdfYnVnLXN0cnVjdHVyZWRfYmluZGluZy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLTEyMC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVk X2JpbmRpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4u YjA2ZTI5ZjI5MDQ3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxl cy9wYXRjaGVzL2Nocm9taXVtLTEyMC13b3JrYXJvdW5kX2NsYW5nX2J1Zy1zdHJ1Y3R1cmVkX2Jp bmRpbmcucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAorZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5 MC4yNC9tZWRpYS9iYXNlL2NkbV9wcm9taXNlX2FkYXB0ZXIuY2Mud29ya2Fyb3VuZF9jbGFuZ19i dWctc3RydWN0dXJlZF9iaW5kaW5nIGNocm9taXVtLTExNS4wLjU3OTAuMjQvbWVkaWEvYmFzZS9j ZG1fcHJvbWlzZV9hZGFwdGVyLmNjCistLS0gY2hyb21pdW0tMTE1LjAuNTc5MC4yNC9tZWRpYS9i YXNlL2NkbV9wcm9taXNlX2FkYXB0ZXIuY2Mud29ya2Fyb3VuZF9jbGFuZ19idWctc3RydWN0dXJl ZF9iaW5kaW5nCTIwMjMtMDYtMDcgMjE6NDg6MzcuMDAwMDAwMDAwICswMjAwCisrKysgY2hyb21p dW0tMTE1LjAuNTc5MC4yNC9tZWRpYS9iYXNlL2NkbV9wcm9taXNlX2FkYXB0ZXIuY2MJMjAyMy0w Ni0xNyAxNjo1MzoyMC4yMTY2Mjg1NTcgKzAyMDAKK0BAIC05NCw3ICs5NCw5IEBAIHZvaWQgQ2Rt UHJvbWlzZUFkYXB0ZXI6OlJlamVjdFByb21pc2UodWkKKyB2b2lkIENkbVByb21pc2VBZGFwdGVy OjpDbGVhcihDbGVhclJlYXNvbiByZWFzb24pIHsKKyAgIC8vIFJlamVjdCBhbGwgb3V0c3RhbmRp bmcgcHJvbWlzZXMuCisgICBEQ0hFQ0sodGhyZWFkX2NoZWNrZXJfLkNhbGxlZE9uVmFsaWRUaHJl YWQoKSk7CistICBmb3IgKGF1dG8mIFtwcm9taXNlX2lkLCBwcm9taXNlXSA6IHByb21pc2VzXykg eworKyAgZm9yIChhdXRvJiBbcF9pLCBwX2VdIDogcHJvbWlzZXNfKSB7CisrICAgIGF1dG8mIHBy b21pc2VfaWQgPSBwX2k7CisrICAgIGF1dG8mIHByb21pc2UgPSBwX2U7CisgICAgIFRSQUNFX0VW RU5UX05FU1RBQkxFX0FTWU5DX0VORDEoCisgICAgICAgICAibWVkaWEiLCAiQ2RtUHJvbWlzZSIs IFRSQUNFX0lEX1dJVEhfU0NPUEUoIkNkbVByb21pc2UiLCBwcm9taXNlX2lkKSwKKyAgICAgICAg ICJzdGF0dXMiLCAiY2xlYXJlZCIpOworZGlmZiAtdXAgY2hyb21pdW0tMTE1LjAuNTc5MC4zMi9j b250ZW50L2Jyb3dzZXIvc2VydmljZV93b3JrZXIvc2VydmljZV93b3JrZXJfY29udGV4dF93cmFw cGVyLmNjLm1lIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vf d29ya2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRleHRfd3JhcHBlci5jYworLS0tIGNocm9taXVtLTEx NS4wLjU3OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29ya2VyL3NlcnZpY2Vfd29ya2Vy X2NvbnRleHRfd3JhcHBlci5jYy5tZQkyMDIzLTA2LTE5IDA4OjA0OjAyLjI4NzA3MjcyMiArMDIw MAorKysrIGNocm9taXVtLTExNS4wLjU3OTAuMzIvY29udGVudC9icm93c2VyL3NlcnZpY2Vfd29y a2VyL3NlcnZpY2Vfd29ya2VyX2NvbnRleHRfd3JhcHBlci5jYwkyMDIzLTA2LTE5IDA4OjE4OjI0 LjU3NjgxNDk1MCArMDIwMAorQEAgLTEzOTMsNyArMTM5Myw4IEBAIHZvaWQgU2VydmljZVdvcmtl ckNvbnRleHRXcmFwcGVyOjpNYXliZVAKKyAgICAgcmV0dXJuOworICAgfQorIAorLSAgYXV0byBb ZG9jdW1lbnRfdXJsLCBrZXksIGNhbGxiYWNrXSA9IHN0ZDo6bW92ZSgqcmVxdWVzdCk7CisrICBh dXRvIFtkX3UsIGtleSwgY2FsbGJhY2tdID0gc3RkOjptb3ZlKCpyZXF1ZXN0KTsKKysgIGF1dG8g ZG9jdW1lbnRfdXJsID0gZF91OworIAorICAgRENIRUNLKGRvY3VtZW50X3VybC5pc192YWxpZCgp KTsKKyAgIFRSQUNFX0VWRU5UMSgiU2VydmljZVdvcmtlciIsCitkaWZmIC11cCBjaHJvbWl1bS0x MjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL2NvcmUvbGF5b3V0L2dyaWQv Z3JpZF9sYXlvdXRfYWxnb3JpdGhtLmNjLm1lIGNocm9taXVtLTEyMC4wLjYwOTkuNTYvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvY29yZS9sYXlvdXQvZ3JpZC9ncmlkX2xheW91dF9hbGdvcml0 aG0uY2MKKy0tLSBjaHJvbWl1bS0xMjAuMC42MDk5LjU2L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL2NvcmUvbGF5b3V0L2dyaWQvZ3JpZF9sYXlvdXRfYWxnb3JpdGhtLmNjLm1lCTIwMjMtMTIt MDMgMjI6MTc6NTAuOTIyMDgzMjAwICswMTAwCisrKysgY2hyb21pdW0tMTIwLjAuNjA5OS41Ni90 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9jb3JlL2xheW91dC9ncmlkL2dyaWRfbGF5b3V0X2Fs Z29yaXRobS5jYwkyMDIzLTEyLTAzIDIyOjIyOjU1LjQzNzQ4NDM0MyArMDEwMAorQEAgLTM0NDcs NyArMzQ0Nyw4IEBAIHZvaWQgR3JpZExheW91dEFsZ29yaXRobTo6UGxhY2VHcmlkSXRlbXMKKyAg IERDSEVDSyhvdXRfcm93X2JyZWFrX2JldHdlZW4pOworIAorICAgY29uc3QgYXV0byYgY29udGFp bmVyX3NwYWNlID0gQ29uc3RyYWludFNwYWNlKCk7CistICBjb25zdCBhdXRvJiBbZ3JpZF9pdGVt cywgbGF5b3V0X2RhdGEsIHRyZWVfc2l6ZV0gPSBzaXppbmdfdHJlZS5UcmVlUm9vdERhdGEoKTsK KysgIGNvbnN0IGF1dG8mIFtncmlkX2l0ZW1zLCBsX2QsIHRyZWVfc2l6ZV0gPSBzaXppbmdfdHJl ZS5UcmVlUm9vdERhdGEoKTsKKysgIGNvbnN0IGF1dG8mIGxheW91dF9kYXRhID0gbF9kOworIAor ICAgY29uc3QgYXV0byogY2FjaGVkX2xheW91dF9zdWJ0cmVlID0gY29udGFpbmVyX3NwYWNlLkdl dEdyaWRMYXlvdXRTdWJ0cmVlKCk7CisgICBjb25zdCBhdXRvIGNvbnRhaW5lcl93cml0aW5nX2Rp cmVjdGlvbiA9CitAQCAtMzYxMSw3ICszNjEyLDkgQEAgdm9pZCBHcmlkTGF5b3V0QWxnb3JpdGht OjpQbGFjZUdyaWRJdGVtcworIAorICAgLy8gVE9ETyhpa2lscGF0cmljayk6IFVwZGF0ZSB8U2V0 SGFzU2VlbkFsbENoaWxkcmVufCBhbmQgZWFybHkgZXhpdCBpZiB0cnVlLgorICAgY29uc3QgYXV0 byYgY29uc3RyYWludF9zcGFjZSA9IENvbnN0cmFpbnRTcGFjZSgpOworLSAgY29uc3QgYXV0byYg W2dyaWRfaXRlbXMsIGxheW91dF9kYXRhLCB0cmVlX3NpemVdID0gc2l6aW5nX3RyZWUuVHJlZVJv b3REYXRhKCk7CisrICBjb25zdCBhdXRvJiBbZ19pLCBsX2QsIHRyZWVfc2l6ZV0gPSBzaXppbmdf dHJlZS5UcmVlUm9vdERhdGEoKTsKKysgIGNvbnN0IGF1dG8mIGdyaWRfaXRlbXMgPSBnX2k7Cisr ICBjb25zdCBhdXRvJiBsYXlvdXRfZGF0YSA9IGxfZDsKKyAKKyAgIGNvbnN0IGF1dG8qIGNhY2hl ZF9sYXlvdXRfc3VidHJlZSA9IGNvbnN0cmFpbnRfc3BhY2UuR2V0R3JpZExheW91dFN1YnRyZWUo KTsKKyAgIGNvbnN0IGF1dG8gY29udGFpbmVyX3dyaXRpbmdfZGlyZWN0aW9uID0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLVJFVkVSVC1yb2xs LXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwMi5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLVJFVkVSVC1yb2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWct bTEwMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5lNzM5 YjQwYTI3MzNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tUkVWRVJULXJvbGwtc3JjLXRoaXJkX3BhcnR5LWZmbXBlZy1tMTAyLnBh dGNoCkBAIC0wLDAgKzEsMzMzIEBACitGcm9tIDZlNTU0YTMwODkzMTUwNzkzYzI2MzhlMzY4OWNm MjA4ZmZjOGUzNzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYWxlIEN1cnRpcyA8 ZGFsZWN1cnRpc0BjaHJvbWl1bS5vcmc+CitEYXRlOiBTYXQsIDIgQXByIDIwMjIgMDU6MTM6NTMg KzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gUm9sbCBzcmMvdGhpcmRfcGFydHkvZmZtcGVnLyA1NzRj MzljY2UuLjMyYjJkMWQ1MjYgKDExMjUKKyBjb21taXRzKQorCitodHRwczovL2Nocm9taXVtLmdv b2dsZXNvdXJjZS5jb20vY2hyb21pdW0vdGhpcmRfcGFydHkvZmZtcGVnLmdpdC8rbG9nLzU3NGMz OWNjZTMyMy4uMzJiMmQxZDUyNgorCitDcmVhdGVkIHdpdGg6CisgIHJvbGwtZGVwIHNyYy90aGly ZF9wYXJ0eS9mZm1wZWcKKworRml4ZWQ6IDEyOTM5MTgKK0NxLUluY2x1ZGUtVHJ5Ym90czogbHVj aS5jaHJvbWl1bS50cnk6bWFjX2Nocm9taXVtX2FzYW5fcmVsX25nLGxpbnV4X2Nocm9taXVtX2Fz YW5fcmVsX25nLGxpbnV4X2Nocm9taXVtX2Nocm9tZW9zX2FzYW5fcmVsX25nCitDaGFuZ2UtSWQ6 IEk0MTk0NWQwZjk2M2UzZDFmNjU5NDAwNjdiYWMyMmY2M2I2OGUzN2QyCitSZXZpZXdlZC1vbjog aHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8r LzM1NjU2NDcKK0F1dG8tU3VibWl0OiBEYWxlIEN1cnRpcyA8ZGFsZWN1cnRpc0BjaHJvbWl1bS5v cmc+CitSZXZpZXdlZC1ieTogRGFuIFNhbmRlcnMgPHNhbmRlcnNkQGNocm9taXVtLm9yZz4KK0Nv bW1pdC1RdWV1ZTogRGFsZSBDdXJ0aXMgPGRhbGVjdXJ0aXNAY2hyb21pdW0ub3JnPgorQ3ItQ29t bWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyM5ODgyNTN9CistLS0KKyAuLi4vY2xlYXJf a2V5X2NkbS9mZm1wZWdfY2RtX2F1ZGlvX2RlY29kZXIuY2MgfCAyOSArKysrKysrKysrLS0tLS0t LS0tCisgbWVkaWEvZmZtcGVnL2ZmbXBlZ19jb21tb24uY2MgICAgICAgICAgICAgICAgIHwgMTEg KysrLS0tLQorIG1lZGlhL2ZpbHRlcnMvYXVkaW9fZmlsZV9yZWFkZXIuY2MgICAgICAgICAgICB8 ICA5ICsrKy0tLQorIG1lZGlhL2ZpbHRlcnMvYXVkaW9fZmlsZV9yZWFkZXJfdW5pdHRlc3QuY2Mg ICB8ICA2ICsrLS0KKyAuLi4vZmlsdGVycy9hdWRpb192aWRlb19tZXRhZGF0YV9leHRyYWN0b3Iu Y2MgfCAxMSArKysrKy0tCisgLi4uL2ZpbHRlcnMvZmZtcGVnX2FhY19iaXRzdHJlYW1fY29udmVy dGVyLmNjIHwgIDcgKysrLS0KKyAuLi5mZm1wZWdfYWFjX2JpdHN0cmVhbV9jb252ZXJ0ZXJfdW5p dHRlc3QuY2MgfCAgMiArLQorIG1lZGlhL2ZpbHRlcnMvZmZtcGVnX2F1ZGlvX2RlY29kZXIuY2Mg ICAgICAgICB8IDEzICsrKysrLS0tLQorIDggZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygr KSwgMzcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9tZWRpYS9jZG0vbGlicmFyeV9jZG0v Y2xlYXJfa2V5X2NkbS9mZm1wZWdfY2RtX2F1ZGlvX2RlY29kZXIuY2MgYi9tZWRpYS9jZG0vbGli cmFyeV9jZG0vY2xlYXJfa2V5X2NkbS9mZm1wZWdfY2RtX2F1ZGlvX2RlY29kZXIuY2MKK2luZGV4 IGU0ZmMzZjQ2MGUyLi45YjFhZDlmNzY3NSAxMDA2NDQKKy0tLSBhL21lZGlhL2NkbS9saWJyYXJ5 X2NkbS9jbGVhcl9rZXlfY2RtL2ZmbXBlZ19jZG1fYXVkaW9fZGVjb2Rlci5jYworKysrIGIvbWVk aWEvY2RtL2xpYnJhcnlfY2RtL2NsZWFyX2tleV9jZG0vZmZtcGVnX2NkbV9hdWRpb19kZWNvZGVy LmNjCitAQCAtNzQsNyArNzQsNyBAQCB2b2lkIENkbUF1ZGlvRGVjb2RlckNvbmZpZ1RvQVZDb2Rl Y0NvbnRleHQoCisgICAgICAgY29kZWNfY29udGV4dC0+c2FtcGxlX2ZtdCA9IEFWX1NBTVBMRV9G TVRfTk9ORTsKKyAgIH0KKyAKKy0gIGNvZGVjX2NvbnRleHQtPmNoYW5uZWxzID0gY29uZmlnLmNo YW5uZWxfY291bnQ7CisrICBjb2RlY19jb250ZXh0LT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgPSBj b25maWcuY2hhbm5lbF9jb3VudDsKKyAgIGNvZGVjX2NvbnRleHQtPnNhbXBsZV9yYXRlID0gY29u ZmlnLnNhbXBsZXNfcGVyX3NlY29uZDsKKyAKKyAgIGlmIChjb25maWcuZXh0cmFfZGF0YSkgewor QEAgLTEyNCw4ICsxMjQsOCBAQCB2b2lkIENvcHlTYW1wbGVzKGNkbTo6QXVkaW9Gb3JtYXQgY2Rt X2Zvcm1hdCwKKyAgICAgY2FzZSBjZG06OmtBdWRpb0Zvcm1hdFBsYW5hclMxNjoKKyAgICAgY2Fz ZSBjZG06OmtBdWRpb0Zvcm1hdFBsYW5hckYzMjogeworICAgICAgIGNvbnN0IGludCBkZWNvZGVk X3NpemVfcGVyX2NoYW5uZWwgPQorLSAgICAgICAgICBkZWNvZGVkX2F1ZGlvX3NpemUgLyBhdl9m cmFtZS5jaGFubmVsczsKKy0gICAgICBmb3IgKGludCBpID0gMDsgaSA8IGF2X2ZyYW1lLmNoYW5u ZWxzOyArK2kpIHsKKysgICAgICAgICAgZGVjb2RlZF9hdWRpb19zaXplIC8gYXZfZnJhbWUuY2hf bGF5b3V0Lm5iX2NoYW5uZWxzOworKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXZfZnJhbWUu Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOyArK2kpIHsKKyAgICAgICAgIG1lbWNweShvdXRwdXRfYnVm ZmVyLCBhdl9mcmFtZS5leHRlbmRlZF9kYXRhW2ldLAorICAgICAgICAgICAgICAgIGRlY29kZWRf c2l6ZV9wZXJfY2hhbm5lbCk7CisgICAgICAgICBvdXRwdXRfYnVmZmVyICs9IGRlY29kZWRfc2l6 ZV9wZXJfY2hhbm5lbDsKK0BAIC0xODUsMTMgKzE4NSwxNCBAQCBib29sIEZGbXBlZ0NkbUF1ZGlv RGVjb2Rlcjo6SW5pdGlhbGl6ZSgKKyAgIC8vIFN1Y2Nlc3MhCisgICBkZWNvZGluZ19sb29wXyA9 IHN0ZDo6bWFrZV91bmlxdWU8RkZtcGVnRGVjb2RpbmdMb29wPihjb2RlY19jb250ZXh0Xy5nZXQo KSk7CisgICBzYW1wbGVzX3Blcl9zZWNvbmRfID0gY29uZmlnLnNhbXBsZXNfcGVyX3NlY29uZDsK Ky0gIGJ5dGVzX3Blcl9mcmFtZV8gPSBjb2RlY19jb250ZXh0Xy0+Y2hhbm5lbHMgKiBjb25maWcu Yml0c19wZXJfY2hhbm5lbCAvIDg7CisrICBieXRlc19wZXJfZnJhbWVfID0KKysgICAgICBjb2Rl Y19jb250ZXh0Xy0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzICogY29uZmlnLmJpdHNfcGVyX2NoYW5u ZWwgLyA4OworICAgb3V0cHV0X3RpbWVzdGFtcF9oZWxwZXJfID0KKyAgICAgICBzdGQ6Om1ha2Vf dW5pcXVlPEF1ZGlvVGltZXN0YW1wSGVscGVyPihjb25maWcuc2FtcGxlc19wZXJfc2Vjb25kKTsK KyAgIGlzX2luaXRpYWxpemVkXyA9IHRydWU7CisgCisgICAvLyBTdG9yZSBpbml0aWFsIHZhbHVl cyB0byBndWFyZCBhZ2FpbnN0IG1pZHN0cmVhbSBjb25maWd1cmF0aW9uIGNoYW5nZXMuCistICBj aGFubmVsc18gPSBjb2RlY19jb250ZXh0Xy0+Y2hhbm5lbHM7CisrICBjaGFubmVsc18gPSBjb2Rl Y19jb250ZXh0Xy0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzOworICAgYXZfc2FtcGxlX2Zvcm1hdF8g PSBjb2RlY19jb250ZXh0Xy0+c2FtcGxlX2ZtdDsKKyAKKyAgIHJldHVybiB0cnVlOworQEAgLTI5 MSwxNyArMjkyLDE5IEBAIGNkbTo6U3RhdHVzIEZGbXBlZ0NkbUF1ZGlvRGVjb2Rlcjo6RGVjb2Rl QnVmZmVyKAorICAgZm9yIChhdXRvJiBmcmFtZSA6IGF1ZGlvX2ZyYW1lcykgeworICAgICBpbnQg ZGVjb2RlZF9hdWRpb19zaXplID0gMDsKKyAgICAgaWYgKGZyYW1lLT5zYW1wbGVfcmF0ZSAhPSBz YW1wbGVzX3Blcl9zZWNvbmRfIHx8CistICAgICAgICBmcmFtZS0+Y2hhbm5lbHMgIT0gY2hhbm5l bHNfIHx8IGZyYW1lLT5mb3JtYXQgIT0gYXZfc2FtcGxlX2Zvcm1hdF8pIHsKKysgICAgICAgIGZy YW1lLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgIT0gY2hhbm5lbHNfIHx8CisrICAgICAgICBmcmFt ZS0+Zm9ybWF0ICE9IGF2X3NhbXBsZV9mb3JtYXRfKSB7CisgICAgICAgRExPRyhFUlJPUikgPDwg IlVuc3VwcG9ydGVkIG1pZHN0cmVhbSBjb25maWd1cmF0aW9uIGNoYW5nZSEiCisgICAgICAgICAg ICAgICAgICAgPDwgIiBTYW1wbGUgUmF0ZTogIiA8PCBmcmFtZS0+c2FtcGxlX3JhdGUgPDwgIiB2 cyAiCistICAgICAgICAgICAgICAgICAgPDwgc2FtcGxlc19wZXJfc2Vjb25kXyA8PCAiLCBDaGFu bmVsczogIiA8PCBmcmFtZS0+Y2hhbm5lbHMKKy0gICAgICAgICAgICAgICAgICA8PCAiIHZzICIg PDwgY2hhbm5lbHNfIDw8ICIsIFNhbXBsZSBGb3JtYXQ6ICIgPDwgZnJhbWUtPmZvcm1hdAorLSAg ICAgICAgICAgICAgICAgIDw8ICIgdnMgIiA8PCBhdl9zYW1wbGVfZm9ybWF0XzsKKysgICAgICAg ICAgICAgICAgICA8PCBzYW1wbGVzX3Blcl9zZWNvbmRfCisrICAgICAgICAgICAgICAgICAgPDwg IiwgQ2hhbm5lbHM6ICIgPDwgZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVscyA8PCAiIHZzICIK KysgICAgICAgICAgICAgICAgICA8PCBjaGFubmVsc18gPDwgIiwgU2FtcGxlIEZvcm1hdDogIiA8 PCBmcmFtZS0+Zm9ybWF0IDw8ICIgdnMgIgorKyAgICAgICAgICAgICAgICAgIDw8IGF2X3NhbXBs ZV9mb3JtYXRfOworICAgICAgIHJldHVybiBjZG06OmtEZWNvZGVFcnJvcjsKKyAgICAgfQorIAor ICAgICBkZWNvZGVkX2F1ZGlvX3NpemUgPSBhdl9zYW1wbGVzX2dldF9idWZmZXJfc2l6ZSgKKy0g ICAgICAgIG51bGxwdHIsIGNvZGVjX2NvbnRleHRfLT5jaGFubmVscywgZnJhbWUtPm5iX3NhbXBs ZXMsCisrICAgICAgICBudWxscHRyLCBjb2RlY19jb250ZXh0Xy0+Y2hfbGF5b3V0Lm5iX2NoYW5u ZWxzLCBmcmFtZS0+bmJfc2FtcGxlcywKKyAgICAgICAgIGNvZGVjX2NvbnRleHRfLT5zYW1wbGVf Zm10LCAxKTsKKyAgICAgaWYgKCFkZWNvZGVkX2F1ZGlvX3NpemUpCisgICAgICAgY29udGludWU7 CitAQCAtMzIwLDkgKzMyMyw5IEBAIGJvb2wgRkZtcGVnQ2RtQXVkaW9EZWNvZGVyOjpPbk5ld0Zy YW1lKAorICAgICBzaXplX3QqIHRvdGFsX3NpemUsCisgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6dW5p cXVlX3B0cjxBVkZyYW1lLCBTY29wZWRQdHJBVkZyZWVGcmFtZT4+KiBhdWRpb19mcmFtZXMsCisg ICAgIEFWRnJhbWUqIGZyYW1lKSB7CistICAqdG90YWxfc2l6ZSArPSBhdl9zYW1wbGVzX2dldF9i dWZmZXJfc2l6ZShudWxscHRyLCBjb2RlY19jb250ZXh0Xy0+Y2hhbm5lbHMsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZS0+bmJfc2FtcGxlcywKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVjX2NvbnRleHRf LT5zYW1wbGVfZm10LCAxKTsKKysgICp0b3RhbF9zaXplICs9IGF2X3NhbXBsZXNfZ2V0X2J1ZmZl cl9zaXplKAorKyAgICAgIG51bGxwdHIsIGNvZGVjX2NvbnRleHRfLT5jaF9sYXlvdXQubmJfY2hh bm5lbHMsIGZyYW1lLT5uYl9zYW1wbGVzLAorKyAgICAgIGNvZGVjX2NvbnRleHRfLT5zYW1wbGVf Zm10LCAxKTsKKyAgIGF1ZGlvX2ZyYW1lcy0+ZW1wbGFjZV9iYWNrKGF2X2ZyYW1lX2Nsb25lKGZy YW1lKSk7CisgICByZXR1cm4gdHJ1ZTsKKyB9CitkaWZmIC0tZ2l0IGEvbWVkaWEvZmZtcGVnL2Zm bXBlZ19jb21tb24uY2MgYi9tZWRpYS9mZm1wZWcvZmZtcGVnX2NvbW1vbi5jYworaW5kZXggODdj YTg5Njk2MjYuLjc2ZjAzZDY2MDhlIDEwMDY0NAorLS0tIGEvbWVkaWEvZmZtcGVnL2ZmbXBlZ19j b21tb24uY2MKKysrKyBiL21lZGlhL2ZmbXBlZy9mZm1wZWdfY29tbW9uLmNjCitAQCAtMzQ1LDEw ICszNDUsMTEgQEAgYm9vbCBBVkNvZGVjQ29udGV4dFRvQXVkaW9EZWNvZGVyQ29uZmlnKGNvbnN0 IEFWQ29kZWNDb250ZXh0KiBjb2RlY19jb250ZXh0LAorICAgICAgIGNvZGVjX2NvbnRleHQtPnNh bXBsZV9mbXQsIGNvZGVjX2NvbnRleHQtPmNvZGVjX2lkKTsKKyAKKyAgIENoYW5uZWxMYXlvdXQg Y2hhbm5lbF9sYXlvdXQgPQorLSAgICAgIGNvZGVjX2NvbnRleHQtPmNoYW5uZWxzID4gOAorKyAg ICAgIGNvZGVjX2NvbnRleHQtPmNoX2xheW91dC5uYl9jaGFubmVscyA+IDgKKyAgICAgICAgICAg PyBDSEFOTkVMX0xBWU9VVF9ESVNDUkVURQorLSAgICAgICAgICA6IENoYW5uZWxMYXlvdXRUb0No cm9tZUNoYW5uZWxMYXlvdXQoY29kZWNfY29udGV4dC0+Y2hhbm5lbF9sYXlvdXQsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlY19jb250ZXh0LT5j aGFubmVscyk7CisrICAgICAgICAgIDogQ2hhbm5lbExheW91dFRvQ2hyb21lQ2hhbm5lbExheW91 dCgKKysgICAgICAgICAgICAgICAgY29kZWNfY29udGV4dC0+Y2hfbGF5b3V0LnUubWFzaywKKysg ICAgICAgICAgICAgICAgY29kZWNfY29udGV4dC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzKTsKKyAK KyAgIGludCBzYW1wbGVfcmF0ZSA9IGNvZGVjX2NvbnRleHQtPnNhbXBsZV9yYXRlOworICAgc3dp dGNoIChjb2RlYykgeworQEAgLTQwMSw3ICs0MDIsNyBAQCBib29sIEFWQ29kZWNDb250ZXh0VG9B dWRpb0RlY29kZXJDb25maWcoY29uc3QgQVZDb2RlY0NvbnRleHQqIGNvZGVjX2NvbnRleHQsCisg ICAgICAgICAgICAgICAgICAgICAgZXh0cmFfZGF0YSwgZW5jcnlwdGlvbl9zY2hlbWUsIHNlZWtf cHJlcm9sbCwKKyAgICAgICAgICAgICAgICAgICAgICBjb2RlY19jb250ZXh0LT5kZWxheSk7Cisg ICBpZiAoY2hhbm5lbF9sYXlvdXQgPT0gQ0hBTk5FTF9MQVlPVVRfRElTQ1JFVEUpCistICAgIGNv bmZpZy0+U2V0Q2hhbm5lbHNGb3JEaXNjcmV0ZShjb2RlY19jb250ZXh0LT5jaGFubmVscyk7Cisr ICAgIGNvbmZpZy0+U2V0Q2hhbm5lbHNGb3JEaXNjcmV0ZShjb2RlY19jb250ZXh0LT5jaF9sYXlv dXQubmJfY2hhbm5lbHMpOworIAorICNpZiBCVUlMREZMQUcoRU5BQkxFX1BMQVRGT1JNX0FDM19F QUMzX0FVRElPKQorICAgLy8gVGhlc2UgYXJlIGJpdHN0cmVhbSBmb3JtYXRzIHVua25vd24gdG8g ZmZtcGVnLCBzbyB0aGV5IGRvbid0IGhhdmUKK0BAIC00NzAsNyArNDcxLDcgQEAgdm9pZCBBdWRp b0RlY29kZXJDb25maWdUb0FWQ29kZWNDb250ZXh0KGNvbnN0IEF1ZGlvRGVjb2RlckNvbmZpZyYg Y29uZmlnLAorIAorICAgLy8gVE9ETyhzY2hlcmt1cyk6IHNob3VsZCB3ZSBzZXQgfGNoYW5uZWxf bGF5b3V0fD8gSSdtIG5vdCBzdXJlIGlmIEZGbXBlZyB1c2VzCisgICAvLyBzYWlkIGluZm9ybWF0 aW9uIHRvIGRlY29kZS4KKy0gIGNvZGVjX2NvbnRleHQtPmNoYW5uZWxzID0gY29uZmlnLmNoYW5u ZWxzKCk7CisrICBjb2RlY19jb250ZXh0LT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgPSBjb25maWcu Y2hhbm5lbHMoKTsKKyAgIGNvZGVjX2NvbnRleHQtPnNhbXBsZV9yYXRlID0gY29uZmlnLnNhbXBs ZXNfcGVyX3NlY29uZCgpOworIAorICAgaWYgKGNvbmZpZy5leHRyYV9kYXRhKCkuZW1wdHkoKSkg eworZGlmZiAtLWdpdCBhL21lZGlhL2ZpbHRlcnMvYXVkaW9fZmlsZV9yZWFkZXIuY2MgYi9tZWRp YS9maWx0ZXJzL2F1ZGlvX2ZpbGVfcmVhZGVyLmNjCitpbmRleCA1ZjI1N2JkZmFhNi4uZTFiZTVh YTlhNWIgMTAwNjQ0CistLS0gYS9tZWRpYS9maWx0ZXJzL2F1ZGlvX2ZpbGVfcmVhZGVyLmNjCisr KysgYi9tZWRpYS9maWx0ZXJzL2F1ZGlvX2ZpbGVfcmVhZGVyLmNjCitAQCAtMTEzLDE0ICsxMTMs MTUgQEAgYm9vbCBBdWRpb0ZpbGVSZWFkZXI6Ok9wZW5EZWNvZGVyKCkgeworIAorICAgLy8gVmVy aWZ5IHRoZSBjaGFubmVsIGxheW91dCBpcyBzdXBwb3J0ZWQgYnkgQ2hyb21lLiAgQWN0cyBhcyBh IHNhbml0eSBjaGVjaworICAgLy8gYWdhaW5zdCBpbnZhbGlkIGZpbGVzLiAgU2VlIGh0dHA6Ly9j cmJ1Zy5jb20vMTcxOTYyCistICBpZiAoQ2hhbm5lbExheW91dFRvQ2hyb21lQ2hhbm5lbExheW91 dChjb2RlY19jb250ZXh0Xy0+Y2hhbm5lbF9sYXlvdXQsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb2RlY19jb250ZXh0Xy0+Y2hhbm5lbHMpID09CisrICBpZiAo Q2hhbm5lbExheW91dFRvQ2hyb21lQ2hhbm5lbExheW91dCgKKysgICAgICAgICAgY29kZWNfY29u dGV4dF8tPmNoX2xheW91dC51Lm1hc2ssCisrICAgICAgICAgIGNvZGVjX2NvbnRleHRfLT5jaF9s YXlvdXQubmJfY2hhbm5lbHMpID09CisgICAgICAgQ0hBTk5FTF9MQVlPVVRfVU5TVVBQT1JURUQp IHsKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorIAorICAgLy8gU3RvcmUgaW5pdGlhbCB2YWx1 ZXMgdG8gZ3VhcmQgYWdhaW5zdCBtaWRzdHJlYW0gY29uZmlndXJhdGlvbiBjaGFuZ2VzLgorLSAg Y2hhbm5lbHNfID0gY29kZWNfY29udGV4dF8tPmNoYW5uZWxzOworKyAgY2hhbm5lbHNfID0gY29k ZWNfY29udGV4dF8tPmNoX2xheW91dC5uYl9jaGFubmVsczsKKyAgIGF1ZGlvX2NvZGVjXyA9IENv ZGVjSURUb0F1ZGlvQ29kZWMoY29kZWNfY29udGV4dF8tPmNvZGVjX2lkKTsKKyAgIHNhbXBsZV9y YXRlXyA9IGNvZGVjX2NvbnRleHRfLT5zYW1wbGVfcmF0ZTsKKyAgIGF2X3NhbXBsZV9mb3JtYXRf ID0gY29kZWNfY29udGV4dF8tPnNhbXBsZV9mbXQ7CitAQCAtMjIzLDcgKzIyNCw3IEBAIGJvb2wg QXVkaW9GaWxlUmVhZGVyOjpPbk5ld0ZyYW1lKAorICAgaWYgKGZyYW1lc19yZWFkIDwgMCkKKyAg ICAgcmV0dXJuIGZhbHNlOworIAorLSAgY29uc3QgaW50IGNoYW5uZWxzID0gZnJhbWUtPmNoYW5u ZWxzOworKyAgY29uc3QgaW50IGNoYW5uZWxzID0gZnJhbWUtPmNoX2xheW91dC5uYl9jaGFubmVs czsKKyAgIGlmIChmcmFtZS0+c2FtcGxlX3JhdGUgIT0gc2FtcGxlX3JhdGVfIHx8IGNoYW5uZWxz ICE9IGNoYW5uZWxzXyB8fAorICAgICAgIGZyYW1lLT5mb3JtYXQgIT0gYXZfc2FtcGxlX2Zvcm1h dF8pIHsKKyAgICAgRExPRyhFUlJPUikgPDwgIlVuc3VwcG9ydGVkIG1pZHN0cmVhbSBjb25maWd1 cmF0aW9uIGNoYW5nZSEiCitkaWZmIC0tZ2l0IGEvbWVkaWEvZmlsdGVycy9hdWRpb19maWxlX3Jl YWRlcl91bml0dGVzdC5jYyBiL21lZGlhL2ZpbHRlcnMvYXVkaW9fZmlsZV9yZWFkZXJfdW5pdHRl c3QuY2MKK2luZGV4IDJhYmE3OTI3YTMxLi4xZjQ1YTUwY2FjZSAxMDA2NDQKKy0tLSBhL21lZGlh L2ZpbHRlcnMvYXVkaW9fZmlsZV9yZWFkZXJfdW5pdHRlc3QuY2MKKysrKyBiL21lZGlhL2ZpbHRl cnMvYXVkaW9fZmlsZV9yZWFkZXJfdW5pdHRlc3QuY2MKK0BAIC0xMjEsMTEgKzEyMSwxMSBAQCBj bGFzcyBBdWRpb0ZpbGVSZWFkZXJUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworICAgICBF WFBFQ1RfRkFMU0UocmVhZGVyXy0+T3BlbigpKTsKKyAgIH0KKyAKKy0gIHZvaWQgUnVuVGVzdEZh aWxpbmdEZWNvZGUoY29uc3QgY2hhciogZm4pIHsKKysgIHZvaWQgUnVuVGVzdEZhaWxpbmdEZWNv ZGUoY29uc3QgY2hhciogZm4sIGludCBleHBlY3RfcmVhZCA9IDApIHsKKyAgICAgSW5pdGlhbGl6 ZShmbik7CisgICAgIEVYUEVDVF9UUlVFKHJlYWRlcl8tPk9wZW4oKSk7CisgICAgIHN0ZDo6dmVj dG9yPHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4+IGRlY29kZWRfYXVkaW9fcGFja2V0czsKKy0g ICAgRVhQRUNUX0VRKHJlYWRlcl8tPlJlYWQoJmRlY29kZWRfYXVkaW9fcGFja2V0cyksIDApOwor KyAgICBFWFBFQ1RfRVEocmVhZGVyXy0+UmVhZCgmZGVjb2RlZF9hdWRpb19wYWNrZXRzKSwgZXhw ZWN0X3JlYWQpOworICAgfQorIAorICAgdm9pZCBSdW5UZXN0UGFydGlhbERlY29kZShjb25zdCBj aGFyKiBmbikgeworQEAgLTIxOSw3ICsyMTksNyBAQCBURVNUX0YoQXVkaW9GaWxlUmVhZGVyVGVz dCwgQUFDX0FEVFMpIHsKKyB9CisgCisgVEVTVF9GKEF1ZGlvRmlsZVJlYWRlclRlc3QsIE1pZFN0 cmVhbUNvbmZpZ0NoYW5nZXNGYWlsKSB7CistICBSdW5UZXN0RmFpbGluZ0RlY29kZSgibWlkc3Ry ZWFtX2NvbmZpZ19jaGFuZ2UubXAzIik7CisrICBSdW5UZXN0RmFpbGluZ0RlY29kZSgibWlkc3Ry ZWFtX2NvbmZpZ19jaGFuZ2UubXAzIiwgNDI2MjQpOworIH0KKyAjZW5kaWYKKyAKK2RpZmYgLS1n aXQgYS9tZWRpYS9maWx0ZXJzL2F1ZGlvX3ZpZGVvX21ldGFkYXRhX2V4dHJhY3Rvci5jYyBiL21l ZGlhL2ZpbHRlcnMvYXVkaW9fdmlkZW9fbWV0YWRhdGFfZXh0cmFjdG9yLmNjCitpbmRleCAxODU4 MTllYjkzNi4uNjlmZjUwOGMyMjEgMTAwNjQ0CistLS0gYS9tZWRpYS9maWx0ZXJzL2F1ZGlvX3Zp ZGVvX21ldGFkYXRhX2V4dHJhY3Rvci5jYworKysrIGIvbWVkaWEvZmlsdGVycy9hdWRpb192aWRl b19tZXRhZGF0YV9leHRyYWN0b3IuY2MKK0BAIC0xMTMsNiArMTEzLDE1IEBAIGJvb2wgQXVkaW9W aWRlb01ldGFkYXRhRXh0cmFjdG9yOjpFeHRyYWN0KERhdGFTb3VyY2UqIHNvdXJjZSwKKyAgICAg aWYgKCFzdHJlYW0pCisgICAgICAgY29udGludWU7CisgCisrICAgIHZvaWQqIGRpc3BsYXlfbWF0 cml4ID0KKysgICAgICAgIGF2X3N0cmVhbV9nZXRfc2lkZV9kYXRhKHN0cmVhbSwgQVZfUEtUX0RB VEFfRElTUExBWU1BVFJJWCwgbnVsbHB0cik7CisrICAgIGlmIChkaXNwbGF5X21hdHJpeCkgewor KyAgICAgIHJvdGF0aW9uXyA9IFZpZGVvVHJhbnNmb3JtYXRpb246OkZyb21GRm1wZWdEaXNwbGF5 TWF0cml4KAorKyAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90Kj4oZGlz cGxheV9tYXRyaXgpKQorKyAgICAgICAgICAgICAgICAgICAgICAucm90YXRpb247CisrICAgICAg aW5mby50YWdzWyJyb3RhdGUiXSA9IGJhc2U6Ok51bWJlclRvU3RyaW5nKHJvdGF0aW9uXyk7Cisr ICAgIH0KKysKKyAgICAgLy8gRXh0cmFjdCBkaWN0aW9uYXJ5IGZyb20gc3RyZWFtcyBhbHNvLiBO ZWVkZWQgZm9yIGNvbnRhaW5lcnMgdGhhdCBhdHRhY2gKKyAgICAgLy8gbWV0YWRhdGEgdG8gY29u dGFpbmVkIHN0cmVhbXMgaW5zdGVhZCB0aGUgY29udGFpbmVyIGl0c2VsZiwgbGlrZSBPR0cuCisg ICAgIEV4dHJhY3REaWN0aW9uYXJ5KHN0cmVhbS0+bWV0YWRhdGEsICZpbmZvLnRhZ3MpOworQEAg LTI1NSw4ICsyNjQsNiBAQCB2b2lkIEF1ZGlvVmlkZW9NZXRhZGF0YUV4dHJhY3Rvcjo6RXh0cmFj dERpY3Rpb25hcnkoQVZEaWN0aW9uYXJ5KiBtZXRhZGF0YSwKKyAgICAgaWYgKHJhd190YWdzLT5m aW5kKHRhZy0+a2V5KSA9PSByYXdfdGFncy0+ZW5kKCkpCisgICAgICAgKCpyYXdfdGFncylbdGFn LT5rZXldID0gdGFnLT52YWx1ZTsKKyAKKy0gICAgaWYgKEV4dHJhY3RJbnQodGFnLCAicm90YXRl IiwgJnJvdGF0aW9uXykpCistICAgICAgY29udGludWU7CisgICAgIGlmIChFeHRyYWN0U3RyaW5n KHRhZywgImFsYnVtIiwgJmFsYnVtXykpCisgICAgICAgY29udGludWU7CisgICAgIGlmIChFeHRy YWN0U3RyaW5nKHRhZywgImFydGlzdCIsICZhcnRpc3RfKSkKK2RpZmYgLS1naXQgYS9tZWRpYS9m aWx0ZXJzL2ZmbXBlZ19hYWNfYml0c3RyZWFtX2NvbnZlcnRlci5jYyBiL21lZGlhL2ZpbHRlcnMv ZmZtcGVnX2FhY19iaXRzdHJlYW1fY29udmVydGVyLmNjCitpbmRleCA2ZjIzMWM4NTcyOS4uY2E1 ZTVmYjkyN2QgMTAwNjQ0CistLS0gYS9tZWRpYS9maWx0ZXJzL2ZmbXBlZ19hYWNfYml0c3RyZWFt X2NvbnZlcnRlci5jYworKysrIGIvbWVkaWEvZmlsdGVycy9mZm1wZWdfYWFjX2JpdHN0cmVhbV9j b252ZXJ0ZXIuY2MKK0BAIC0xOTUsMTQgKzE5NSwxNSBAQCBib29sIEZGbXBlZ0FBQ0JpdHN0cmVh bUNvbnZlcnRlcjo6Q29udmVydFBhY2tldChBVlBhY2tldCogcGFja2V0KSB7CisgICBpZiAoIWhl YWRlcl9nZW5lcmF0ZWRfIHx8IGNvZGVjXyAhPSBzdHJlYW1fY29kZWNfcGFyYW1ldGVyc18tPmNv ZGVjX2lkIHx8CisgICAgICAgYXVkaW9fcHJvZmlsZV8gIT0gc3RyZWFtX2NvZGVjX3BhcmFtZXRl cnNfLT5wcm9maWxlIHx8CisgICAgICAgc2FtcGxlX3JhdGVfaW5kZXhfICE9IHNhbXBsZV9yYXRl X2luZGV4IHx8CistICAgICAgY2hhbm5lbF9jb25maWd1cmF0aW9uXyAhPSBzdHJlYW1fY29kZWNf cGFyYW1ldGVyc18tPmNoYW5uZWxzIHx8CisrICAgICAgY2hhbm5lbF9jb25maWd1cmF0aW9uXyAh PQorKyAgICAgICAgICBzdHJlYW1fY29kZWNfcGFyYW1ldGVyc18tPmNoX2xheW91dC5uYl9jaGFu bmVscyB8fAorICAgICAgIGZyYW1lX2xlbmd0aF8gIT0gaGVhZGVyX3BsdXNfcGFja2V0X3NpemUp IHsKKyAgICAgaGVhZGVyX2dlbmVyYXRlZF8gPQorICAgICAgICAgR2VuZXJhdGVBZHRzSGVhZGVy KHN0cmVhbV9jb2RlY19wYXJhbWV0ZXJzXy0+Y29kZWNfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwgIC8vIGxheWVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFt X2NvZGVjX3BhcmFtZXRlcnNfLT5wcm9maWxlLCBzYW1wbGVfcmF0ZV9pbmRleCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAwLCAgLy8gcHJpdmF0ZSBzdHJlYW0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJlYW1fY29kZWNfcGFyYW1ldGVyc18tPmNoYW5uZWxzLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9jb2RlY19wYXJhbWV0ZXJzXy0+Y2hfbGF5b3V0 Lm5iX2NoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAvLyBvcmlnaW5h bGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAvLyBob21lCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMCwgIC8vIGNvcHlyaWdodGVkX3N0cmVhbQorQEAgLTIxNCw3ICsy MTUsNyBAQCBib29sIEZGbXBlZ0FBQ0JpdHN0cmVhbUNvbnZlcnRlcjo6Q29udmVydFBhY2tldChB VlBhY2tldCogcGFja2V0KSB7CisgICAgIGNvZGVjXyA9IHN0cmVhbV9jb2RlY19wYXJhbWV0ZXJz Xy0+Y29kZWNfaWQ7CisgICAgIGF1ZGlvX3Byb2ZpbGVfID0gc3RyZWFtX2NvZGVjX3BhcmFtZXRl cnNfLT5wcm9maWxlOworICAgICBzYW1wbGVfcmF0ZV9pbmRleF8gPSBzYW1wbGVfcmF0ZV9pbmRl eDsKKy0gICAgY2hhbm5lbF9jb25maWd1cmF0aW9uXyA9IHN0cmVhbV9jb2RlY19wYXJhbWV0ZXJz Xy0+Y2hhbm5lbHM7CisrICAgIGNoYW5uZWxfY29uZmlndXJhdGlvbl8gPSBzdHJlYW1fY29kZWNf cGFyYW1ldGVyc18tPmNoX2xheW91dC5uYl9jaGFubmVsczsKKyAgICAgZnJhbWVfbGVuZ3RoXyA9 IGhlYWRlcl9wbHVzX3BhY2tldF9zaXplOworICAgfQorIAorZGlmZiAtLWdpdCBhL21lZGlhL2Zp bHRlcnMvZmZtcGVnX2FhY19iaXRzdHJlYW1fY29udmVydGVyX3VuaXR0ZXN0LmNjIGIvbWVkaWEv ZmlsdGVycy9mZm1wZWdfYWFjX2JpdHN0cmVhbV9jb252ZXJ0ZXJfdW5pdHRlc3QuY2MKK2luZGV4 IDFmZDRjNWNjZDdkLi5mNTliY2Q4ZmRhZiAxMDA2NDQKKy0tLSBhL21lZGlhL2ZpbHRlcnMvZmZt cGVnX2FhY19iaXRzdHJlYW1fY29udmVydGVyX3VuaXR0ZXN0LmNjCisrKysgYi9tZWRpYS9maWx0 ZXJzL2ZmbXBlZ19hYWNfYml0c3RyZWFtX2NvbnZlcnRlcl91bml0dGVzdC5jYworQEAgLTM0LDcg KzM0LDcgQEAgY2xhc3MgRkZtcGVnQUFDQml0c3RyZWFtQ29udmVydGVyVGVzdCA6IHB1YmxpYyB0 ZXN0aW5nOjpUZXN0IHsKKyAgICAgbWVtc2V0KCZ0ZXN0X3BhcmFtZXRlcnNfLCAwLCBzaXplb2Yo QVZDb2RlY1BhcmFtZXRlcnMpKTsKKyAgICAgdGVzdF9wYXJhbWV0ZXJzXy5jb2RlY19pZCA9IEFW X0NPREVDX0lEX0FBQzsKKyAgICAgdGVzdF9wYXJhbWV0ZXJzXy5wcm9maWxlID0gRkZfUFJPRklM RV9BQUNfTUFJTjsKKy0gICAgdGVzdF9wYXJhbWV0ZXJzXy5jaGFubmVscyA9IDI7CisrICAgIHRl c3RfcGFyYW1ldGVyc18uY2hfbGF5b3V0Lm5iX2NoYW5uZWxzID0gMjsKKyAgICAgdGVzdF9wYXJh bWV0ZXJzXy5leHRyYWRhdGEgPSBleHRyYWRhdGFfaGVhZGVyXzsKKyAgICAgdGVzdF9wYXJhbWV0 ZXJzXy5leHRyYWRhdGFfc2l6ZSA9IHNpemVvZihleHRyYWRhdGFfaGVhZGVyXyk7CisgICB9Citk aWZmIC0tZ2l0IGEvbWVkaWEvZmlsdGVycy9mZm1wZWdfYXVkaW9fZGVjb2Rlci5jYyBiL21lZGlh L2ZpbHRlcnMvZmZtcGVnX2F1ZGlvX2RlY29kZXIuY2MKK2luZGV4IDZhNTZjNjc1ZjdkLi40NjE1 ZmRlYjNmYiAxMDA2NDQKKy0tLSBhL21lZGlhL2ZpbHRlcnMvZmZtcGVnX2F1ZGlvX2RlY29kZXIu Y2MKKysrKyBiL21lZGlhL2ZpbHRlcnMvZmZtcGVnX2F1ZGlvX2RlY29kZXIuY2MKK0BAIC0yOCw3 ICsyOCw3IEBAIG5hbWVzcGFjZSBtZWRpYSB7CisgCisgLy8gUmV0dXJuIHRoZSBudW1iZXIgb2Yg Y2hhbm5lbHMgZnJvbSB0aGUgZGF0YSBpbiB8ZnJhbWV8LgorIHN0YXRpYyBpbmxpbmUgaW50IERl dGVybWluZUNoYW5uZWxzKEFWRnJhbWUqIGZyYW1lKSB7CistICByZXR1cm4gZnJhbWUtPmNoYW5u ZWxzOworKyAgcmV0dXJuIGZyYW1lLT5jaF9sYXlvdXQubmJfY2hhbm5lbHM7CisgfQorIAorIC8v IENhbGxlZCBieSBGRm1wZWcncyBhbGxvY2F0aW9uIHJvdXRpbmUgdG8gYWxsb2NhdGUgYSBidWZm ZXIuIFVzZXMKK0BAIC0yMzEsNyArMjMxLDcgQEAgYm9vbCBGRm1wZWdBdWRpb0RlY29kZXI6Ok9u TmV3RnJhbWUoY29uc3QgRGVjb2RlckJ1ZmZlciYgYnVmZmVyLAorICAgLy8gVHJhbnNsYXRlIHVu c3VwcG9ydGVkIGludG8gZGlzY3JldGUgbGF5b3V0cyBmb3IgZGlzY3JldGUgY29uZmlndXJhdGlv bnM7CisgICAvLyBmZm1wZWcgZG9lcyBub3QgaGF2ZSBhIGxhYmVsZWQgZGlzY3JldGUgY29uZmln dXJhdGlvbiBpbnRlcm5hbGx5LgorICAgQ2hhbm5lbExheW91dCBjaGFubmVsX2xheW91dCA9IENo YW5uZWxMYXlvdXRUb0Nocm9tZUNoYW5uZWxMYXlvdXQoCistICAgICAgY29kZWNfY29udGV4dF8t PmNoYW5uZWxfbGF5b3V0LCBjb2RlY19jb250ZXh0Xy0+Y2hhbm5lbHMpOworKyAgICAgIGNvZGVj X2NvbnRleHRfLT5jaF9sYXlvdXQudS5tYXNrLCBjb2RlY19jb250ZXh0Xy0+Y2hfbGF5b3V0Lm5i X2NoYW5uZWxzKTsKKyAgIGlmIChjaGFubmVsX2xheW91dCA9PSBDSEFOTkVMX0xBWU9VVF9VTlNV UFBPUlRFRCAmJgorICAgICAgIGNvbmZpZ18uY2hhbm5lbF9sYXlvdXQoKSA9PSBDSEFOTkVMX0xB WU9VVF9ESVNDUkVURSkgeworICAgICBjaGFubmVsX2xheW91dCA9IENIQU5ORUxfTEFZT1VUX0RJ U0NSRVRFOworQEAgLTM0OCwxMSArMzQ4LDExIEBAIGJvb2wgRkZtcGVnQXVkaW9EZWNvZGVyOjpD b25maWd1cmVEZWNvZGVyKGNvbnN0IEF1ZGlvRGVjb2RlckNvbmZpZyYgY29uZmlnKSB7CisgICAv LyBTdWNjZXNzIQorICAgYXZfc2FtcGxlX2Zvcm1hdF8gPSBjb2RlY19jb250ZXh0Xy0+c2FtcGxl X2ZtdDsKKyAKKy0gIGlmIChjb2RlY19jb250ZXh0Xy0+Y2hhbm5lbHMgIT0gY29uZmlnLmNoYW5u ZWxzKCkpIHsKKysgIGlmIChjb2RlY19jb250ZXh0Xy0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzICE9 IGNvbmZpZy5jaGFubmVscygpKSB7CisgICAgIE1FRElBX0xPRyhFUlJPUiwgbWVkaWFfbG9nXykK KyAgICAgICAgIDw8ICJBdWRpbyBjb25maWd1cmF0aW9uIHNwZWNpZmllZCAiIDw8IGNvbmZpZy5j aGFubmVscygpCisgICAgICAgICA8PCAiIGNoYW5uZWxzLCBidXQgRkZtcGVnIHRoaW5rcyB0aGUg ZmlsZSBjb250YWlucyAiCistICAgICAgICA8PCBjb2RlY19jb250ZXh0Xy0+Y2hhbm5lbHMgPDwg IiBjaGFubmVscyI7CisrICAgICAgICA8PCBjb2RlY19jb250ZXh0Xy0+Y2hfbGF5b3V0Lm5iX2No YW5uZWxzIDw8ICIgY2hhbm5lbHMiOworICAgICBSZWxlYXNlRkZtcGVnUmVzb3VyY2VzKCk7Cisg ICAgIHN0YXRlXyA9IERlY29kZXJTdGF0ZTo6a1VuaW5pdGlhbGl6ZWQ7CisgICAgIHJldHVybiBm YWxzZTsKK0BAIC00MDMsNyArNDAzLDcgQEAgaW50IEZGbXBlZ0F1ZGlvRGVjb2Rlcjo6R2V0QXVk aW9CdWZmZXIoc3RydWN0IEFWQ29kZWNDb250ZXh0KiBzLAorICAgaWYgKGZyYW1lLT5uYl9zYW1w bGVzIDw9IDApCisgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisgCistICBpZiAocy0+Y2hh bm5lbHMgIT0gY2hhbm5lbHMpIHsKKysgIGlmIChzLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgIT0g Y2hhbm5lbHMpIHsKKyAgICAgRExPRyhFUlJPUikgPDwgIkFWQ29kZWNDb250ZXh0IGFuZCBBVkZy YW1lIGRpc2FncmVlIG9uIGNoYW5uZWwgY291bnQuIjsKKyAgICAgcmV0dXJuIEFWRVJST1IoRUlO VkFMKTsKKyAgIH0KK0BAIC00MzYsNyArNDM2LDggQEAgaW50IEZGbXBlZ0F1ZGlvRGVjb2Rlcjo6 R2V0QXVkaW9CdWZmZXIoc3RydWN0IEFWQ29kZWNDb250ZXh0KiBzLAorICAgQ2hhbm5lbExheW91 dCBjaGFubmVsX2xheW91dCA9CisgICAgICAgY29uZmlnXy5jaGFubmVsX2xheW91dCgpID09IENI QU5ORUxfTEFZT1VUX0RJU0NSRVRFCisgICAgICAgICAgID8gQ0hBTk5FTF9MQVlPVVRfRElTQ1JF VEUKKy0gICAgICAgICAgOiBDaGFubmVsTGF5b3V0VG9DaHJvbWVDaGFubmVsTGF5b3V0KHMtPmNo YW5uZWxfbGF5b3V0LCBzLT5jaGFubmVscyk7CisrICAgICAgICAgIDogQ2hhbm5lbExheW91dFRv Q2hyb21lQ2hhbm5lbExheW91dChzLT5jaF9sYXlvdXQudS5tYXNrLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxz KTsKKyAKKyAgIGlmIChjaGFubmVsX2xheW91dCA9PSBDSEFOTkVMX0xBWU9VVF9VTlNVUFBPUlRF RCkgeworICAgICBETE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgY2hhbm5lbCBsYXlvdXQuIjsK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLVJF VkVSVC1yb2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwMi5wYXRjaC5hcmdzIGIvc3JjcGtn cy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tUkVWRVJULXJvbGwtc3JjLXRoaXJk X3BhcnR5LWZmbXBlZy1tMTAyLnBhdGNoLmFyZ3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uOGJiYmJlOTQ4MzYzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv ZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLVJFVkVSVC1yb2xsLXNyYy10aGlyZF9w YXJ0eS1mZm1wZWctbTEwMi5wYXRjaC5hcmdzCkBAIC0wLDAgKzEgQEAKKy1STnAxCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1SRVZFUlQtcm9s bC1zcmMtdGhpcmRfcGFydHktZmZtcGVnLW0xMDYucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMjgv ZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1SRVZFUlQtcm9sbC1zcmMtdGhpcmRfcGFydHktZmZtcGVn LW0xMDYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYjJh MTEzNzkxNzM0YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9w YXRjaGVzL2Nocm9taXVtLVJFVkVSVC1yb2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwNi5w YXRjaApAQCAtMCwwICsxLDU1IEBACitGcm9tIGRlZDM3OTgyNGY1ZGUzOTM1N2I2YjE4OTQ1Nzgx MDFhYmE1Y2RmMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFdWdlbmUgWmVtdHNv diA8ZXVnZW5lQGNocm9taXVtLm9yZz4KK0RhdGU6IEZyaSwgMjkgSnVsIDIwMjIgMDQ6NDE6MDQg KzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gUm9sbCBzcmMvdGhpcmRfcGFydHkvZmZtcGVnLyA4ODBk ZjVlZGUuLmI3MWVjZDAyYiAoMjc5CisgY29tbWl0cykKKworaHR0cHM6Ly9jaHJvbWl1bS5nb29n bGVzb3VyY2UuY29tL2Nocm9taXVtL3RoaXJkX3BhcnR5L2ZmbXBlZy5naXQvK2xvZy84ODBkZjVl ZGU1MGEuLmI3MWVjZDAyYjQ3OQorCiskIGdpdCBsb2cgODgwZGY1ZWRlLi5iNzFlY2QwMmIgLS1k YXRlPXNob3J0IC0tbm8tbWVyZ2VzIC0tZm9ybWF0PSclYWQgJWFlICVzJworMjAyMi0wNy0yNyBl dWdlbmUgUm9sbCBmb3IgTTEwNgorMjAyMi0wNy0yNSBhbmRyZWFzLnJoZWluaGFyZHQgYXZjb2Rl Yy94ODYvcG5nZHNwOiBSZW1vdmUgb2Jzb2xldGUgZmZfYWRkX2J5dGVzX2wyX21teCgpCisyMDIy LTA3LTIyIGFuZHJlYXMucmhlaW5oYXJkdCBhdmNvZGVjL2hldmNkZWM6IE91dHB1dCBNRDUtbWVz c2FnZSBpbiBvbmUgcGllY2UKKzIwMjItMDctMjQgZXBpcmF0MDcgY29uZmlndXJlOiBwcm9wZXJs eSByZXF1aXJlIGxpYngyNjQgaWYgZW5hYmxlZAorMjAyMi0wNy0yNCB6YW5lIGF2Zm9ybWF0L2Fy Z29fY3ZnOiBleHBvc2UgbG9vcC9yZXZlcmIvY2hlY2tzdW0gdmlhIG1ldGFkYXRhCisoLi4uKQor MjAyMi0wNS0wMyBsZW8uaXplbiBhdmNvZGVjL2xpYmp4bGRlYzogcHJvcGVybHkgdGFnIG91dHB1 dCBjb2xvcnNwYWNlCisyMDIyLTA2LTI1IGZmbXBlZyBhdmZpbHRlci9NYWtlZmlsZTogYWx3YXlz IG1ha2UgY29sb3JzcGFjZS5vCisyMDIyLTAzLTAyIGJyYWQgYXZ1dGlsL3BwYy9jcHU6IFVzZSBw cm9wZXIgaGVhZGVyIGZvciBPcGVuQlNEIFBQQyBDUFUgZGV0ZWN0aW9uCisyMDIyLTA2LTI0IGph bXJpYWwgYXZmb3JtYXQvaHR0cDogaW5jbHVkZSB2ZXJzaW9uLmgKKzIwMjItMDUtMTYgbWJvbmRh LWF0LW52aWRpYS5jb20gQVYxIFZEUEFVIGh3YWNjZWwgRGVjb2RlIHN1cHBvcnQKKworQ3JlYXRl ZCB3aXRoOgorICByb2xsLWRlcCBzcmMvdGhpcmRfcGFydHkvZmZtcGVnCisKK2ZmbXBlZyB1c2Fn ZSBmaXg6CisgU3dpdGNoIGZyb20gQVZGcmFtZTo6cGt0X2R1cmF0aW9uIHRvIEFWRnJhbWU6OmR1 cmF0aW9uLAorIEFWRnJhbWU6OnBrdF9kdXJhdGlvbiBpcyBkZXByZWNhdGVkCisKK0J1ZzogMTM0 NDY0NgorQ2hhbmdlLUlkOiBJYWEzYWJmNDhlZjgxZGFlNmQyODJiY2E4ZjBmYTJhOGRmZmVlYmEy NQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20v Yy9jaHJvbWl1bS9zcmMvKy8zNzg4NjM4CitSZXZpZXdlZC1ieTogV2lsbCBDYXNzZWxsYSA8Y2Fz c2V3QGNocm9taXVtLm9yZz4KK0NvbW1pdC1RdWV1ZTogRXVnZW5lIFplbXRzb3YgPGV1Z2VuZUBj aHJvbWl1bS5vcmc+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFpbkB7IzEwMjk2 MjN9CistLS0KKyBtZWRpYS9maWx0ZXJzL2F1ZGlvX2ZpbGVfcmVhZGVyLmNjIHwgNCArKy0tCisg MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL21lZGlhL2ZpbHRlcnMvYXVkaW9fZmlsZV9yZWFkZXIuY2MgYi9tZWRpYS9maWx0ZXJz L2F1ZGlvX2ZpbGVfcmVhZGVyLmNjCitpbmRleCBlMWJlNWFhOWE1Yi4uOTUxYzAwMzk1NmYgMTAw NjQ0CistLS0gYS9tZWRpYS9maWx0ZXJzL2F1ZGlvX2ZpbGVfcmVhZGVyLmNjCisrKysgYi9tZWRp YS9maWx0ZXJzL2F1ZGlvX2ZpbGVfcmVhZGVyLmNjCitAQCAtMjQzLDEwICsyNDMsMTAgQEAgYm9v bCBBdWRpb0ZpbGVSZWFkZXI6Ok9uTmV3RnJhbWUoCisgICAvLyBzaWxlbmNlIGZyb20gYmVpbmcg b3V0cHV0LiBJbiB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgYWxzbyBkaXNjYXJkaW5nIHNvbWUKKyAg IC8vIHBvcnRpb24gb2YgdGhlIHBhY2tldCAoYXMgaW5kaWNhdGVkIGJ5IGEgbmVnYXRpdmUgcHRz KSwgd2UgZnVydGhlciB3YW50IHRvCisgICAvLyBhZGp1c3QgdGhlIGR1cmF0aW9uIGRvd253YXJk IGJ5IGhvd2V2ZXIgbXVjaCBleGlzdHMgYmVmb3JlIHplcm8uCistICBpZiAoYXVkaW9fY29kZWNf ID09IEF1ZGlvQ29kZWM6OmtBQUMgJiYgZnJhbWUtPnBrdF9kdXJhdGlvbikgeworKyAgaWYgKGF1 ZGlvX2NvZGVjXyA9PSBBdWRpb0NvZGVjOjprQUFDICYmIGZyYW1lLT5kdXJhdGlvbikgeworICAg ICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgcGt0X2R1cmF0aW9uID0gQ29udmVydEZyb21UaW1lQmFz ZSgKKyAgICAgICAgIGdsdWVfLT5mb3JtYXRfY29udGV4dCgpLT5zdHJlYW1zW3N0cmVhbV9pbmRl eF9dLT50aW1lX2Jhc2UsCistICAgICAgICBmcmFtZS0+cGt0X2R1cmF0aW9uICsgc3RkOjptaW4o c3RhdGljX2Nhc3Q8aW50NjRfdD4oMCksIGZyYW1lLT5wdHMpKTsKKysgICAgICAgIGZyYW1lLT5k dXJhdGlvbiArIHN0ZDo6bWluKHN0YXRpY19jYXN0PGludDY0X3Q+KDApLCBmcmFtZS0+cHRzKSk7 CisgICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBmcmFtZV9kdXJhdGlvbiA9CisgICAgICAgICBi YXNlOjpTZWNvbmRzKGZyYW1lc19yZWFkIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihzYW1wbGVfcmF0 ZV8pKTsKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLVJFVkVSVC1yb2xsLXNyYy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwNi5wYXRjaC5hcmdz IGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tUkVWRVJULXJvbGwt c3JjLXRoaXJkX3BhcnR5LWZmbXBlZy1tMTA2LnBhdGNoLmFyZ3MKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOGJiYmJlOTQ4MzYzMgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLVJFVkVSVC1yb2xsLXNy Yy10aGlyZF9wYXJ0eS1mZm1wZWctbTEwNi5wYXRjaC5hcmdzCkBAIC0wLDAgKzEgQEAKKy1STnAx CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1h bmdsZS13YXlsYW5kLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1hbmdsZS13YXlsYW5kLWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNjU3NzBiOTQzOWM1OQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWFuZ2xlLXdheWxh bmQtaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDM5IEBACitQYXRjaC1Tb3VyY2U6IGh0dHBzOi8v Z2l0aHViLmNvbS9hcmNobGludXgvc3ZudG9naXQtcGFja2FnZXMvYmxvYi9hMzUzODMzYTVhNzMx YWJmYWE0NjViNjU4ZjYxODk0YTUxNmFhNDliL3RydW5rL2FuZ2xlLXdheWxhbmQtaW5jbHVkZS1w cm90b2NvbC5wYXRjaAorZGlmZiAtdXByIHRoaXJkX3BhcnR5L2FuZ2xlLm9yaWcvQlVJTEQuZ24g dGhpcmRfcGFydHkvYW5nbGUvQlVJTEQuZ24KKy0tLSBhL3RoaXJkX3BhcnR5L2FuZ2xlLm9yaWcv QlVJTEQuZ24JMjAyMi0wOC0xNyAxOTozODoxMS4wMDAwMDAwMDAgKzAwMDAKKysrKyBiL3RoaXJk X3BhcnR5L2FuZ2xlL0JVSUxELmduCTIwMjItMDgtMTggMTE6MDQ6MDkuMDYxNzUxMTExICswMDAw CitAQCAtNDg5LDYgKzQ4OSwxMiBAQCBjb25maWcoImFuZ2xlX3Z1bGthbl93YXlsYW5kX2NvbmZp ZyIpIHsKKyAgIGlmIChhbmdsZV9lbmFibGVfdnVsa2FuICYmIGFuZ2xlX3VzZV93YXlsYW5kICYm CisgICAgICAgZGVmaW5lZCh2dWxrYW5fd2F5bGFuZF9pbmNsdWRlX2RpcnMpKSB7CisgICAgIGlu Y2x1ZGVfZGlycyA9IHZ1bGthbl93YXlsYW5kX2luY2x1ZGVfZGlycworKyAgfSBlbHNlIGlmIChh bmdsZV9lbmFibGVfdnVsa2FuICYmIGFuZ2xlX3VzZV93YXlsYW5kKSB7CisrICAgIGluY2x1ZGVf ZGlycyA9IFsKKysgICAgICAiJHdheWxhbmRfZ25fZGlyL3NyYy9zcmMiLAorKyAgICAgICIkd2F5 bGFuZF9nbl9kaXIvaW5jbHVkZS9zcmMiLAorKyAgICAgICIkd2F5bGFuZF9nbl9kaXIvaW5jbHVk ZS9wcm90b2NvbCIsCisrICAgIF0KKyAgIH0KKyB9CisgCitAQCAtMTA3Myw2ICsxMDc5LDcgQEAg aWYgKGFuZ2xlX3VzZV93YXlsYW5kKSB7CisgICAgIGluY2x1ZGVfZGlycyA9IFsKKyAgICAgICAi JHdheWxhbmRfZGlyL2VnbCIsCisgICAgICAgIiR3YXlsYW5kX2Rpci9zcmMiLAorKyAgICAgICIk d2F5bGFuZF9nbl9kaXIvaW5jbHVkZS9wcm90b2NvbCIsCisgICAgIF0KKyAgIH0KKyAKK2RpZmYg LXVwciB0aGlyZF9wYXJ0eS9hbmdsZS5vcmlnL3NyYy90aGlyZF9wYXJ0eS92b2xrL0JVSUxELmdu IHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy90aGlyZF9wYXJ0eS92b2xrL0JVSUxELmduCistLS0gYS90 aGlyZF9wYXJ0eS9hbmdsZS5vcmlnL3NyYy90aGlyZF9wYXJ0eS92b2xrL0JVSUxELmduCTIwMjIt MDgtMTcgMTk6Mzg6MTIuMDAwMDAwMDAwICswMDAwCisrKysgYi90aGlyZF9wYXJ0eS9hbmdsZS9z cmMvdGhpcmRfcGFydHkvdm9say9CVUlMRC5nbgkyMDIyLTA4LTE4IDExOjA0OjM2LjQ5OTgyODAw NiArMDAwMAorQEAgLTIxLDYgKzIxLDkgQEAgc291cmNlX3NldCgidm9sayIpIHsKKyAgIGNvbmZp Z3MgKz0gWyAiJGFuZ2xlX3Jvb3Q6YW5nbGVfbm9fY2ZpX2ljYWxsIiBdCisgICBwdWJsaWNfZGVw cyA9IFsgIiRhbmdsZV92dWxrYW5faGVhZGVyc19kaXI6dnVsa2FuX2hlYWRlcnMiIF0KKyAgIGlm IChhbmdsZV91c2Vfd2F5bGFuZCkgeworLSAgICBpbmNsdWRlX2RpcnMgPSBbICIkd2F5bGFuZF9k aXIvc3JjIiBdCisrICAgIGluY2x1ZGVfZGlycyA9IFsKKysgICAgICAiJHdheWxhbmRfZGlyL3Ny YyIsCisrICAgICAgIiR3YXlsYW5kX2duX2Rpci9pbmNsdWRlL3Byb3RvY29sIiwKKysgICAgXQor ICAgfQorIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLWI3NGQ1ZTZiOTFjY2RmOGIyNTE4ZWY3MzNkNzVjMDQ4MjM5NzlkMTgucGF0Y2ggYi9z cmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1iNzRkNWU2YjkxY2NkZjhi MjUxOGVmNzMzZDc1YzA0ODIzOTc5ZDE4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAuLmE2YTdmYTNjY2M5NjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1iNzRkNWU2YjkxY2NkZjhiMjUxOGVm NzMzZDc1YzA0ODIzOTc5ZDE4LnBhdGNoCkBAIC0wLDAgKzEsNjEgQEAKK0Zyb20gYjc0ZDVlNmI5 MWNjZGY4YjI1MThlZjczM2Q3NWMwNDgyMzk3OWQxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IExlaSBaaGFuZyA8dGhlc3RpZ0BjaHJvbWl1bS5vcmc+CitEYXRlOiBGcmksIDEwIE5v diAyMDIzIDE3OjUxOjM5ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFtQQV0gVXNlIHN0ZDo6bnVs bHB0cl90IGluc3RlYWQgb2YgbnVsbHB0cl90CisKK251bGxwdHJfdCBpcyBub3QgcGFydCBvZiBD IHVudGlsIEMyMywgd2hpbGUgc3RkOjpudWxscHRyX3QgaXMgcGFydCBvZgorQysrMTEuIE1lYW53 aGlsZSwgdGhlIEdOIGNmbGFnc19jIHZhbHVlIGlzIHNldCB0byBDMTEuCisKK0J1ZzogOTU3NTE5 LHBkZml1bToyMDk3CitDaGFuZ2UtSWQ6IEliM2RiNzkwZWQxMzY4ZThmMzM1Yzk1NTYxZmU5MDY3 ODBhZGQ3NDVjCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291 cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzUwMTQ1MjIKK1Jldmlld2VkLWJ5OiBCZW5vaXQgTGl6 ZSA8bGl6ZWJAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBMZWkgWmhhbmcgPHRoZXN0aWdA Y2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyMxMjIz MDAyfQorLS0tCisgLi4uL3BhcnRpdGlvbl9hbGxvY19iYXNlL3N0cmluZ3Mvc2FmZV9zcHJpbnRm LmggICB8IDE1ICsrKysrKysrKy0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRp b25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2MvcGFydGl0aW9uX2FsbG9jX2Jhc2Uvc3Ry aW5ncy9zYWZlX3NwcmludGYuaCBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Iv c3JjL3BhcnRpdGlvbl9hbGxvYy9wYXJ0aXRpb25fYWxsb2NfYmFzZS9zdHJpbmdzL3NhZmVfc3By aW50Zi5oCitpbmRleCBhMmY2MmFjOTM0Mjg0Yi4uMmQ2MmY2NWUwMTFlNWEgMTAwNjQ0CistLS0g YS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0aXRpb25fYWxsb2Mv cGFydGl0aW9uX2FsbG9jX2Jhc2Uvc3RyaW5ncy9zYWZlX3NwcmludGYuaAorKysrIGIvYmFzZS9h bGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3BhcnRpdGlv bl9hbGxvY19iYXNlL3N0cmluZ3Mvc2FmZV9zcHJpbnRmLmgKK0BAIC01LDEwICs1LDExIEBACisg I2lmbmRlZiBCQVNFX0FMTE9DQVRPUl9QQVJUSVRJT05fQUxMT0NBVE9SX1NSQ19QQVJUSVRJT05f QUxMT0NfUEFSVElUSU9OX0FMTE9DX0JBU0VfU1RSSU5HU19TQUZFX1NQUklOVEZfSF8KKyAjZGVm aW5lIEJBU0VfQUxMT0NBVE9SX1BBUlRJVElPTl9BTExPQ0FUT1JfU1JDX1BBUlRJVElPTl9BTExP Q19QQVJUSVRJT05fQUxMT0NfQkFTRV9TVFJJTkdTX1NBRkVfU1BSSU5URl9IXworIAorLSNpbmNs dWRlIDxzdGRkZWYuaD4KKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPHN0ZGxpYi5o PgorIAorKyNpbmNsdWRlIDxjc3RkZGVmPgorKworICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25m aWcuaCIKKyAKKyAjaWYgQlVJTERGTEFHKElTX1BPU0lYKSB8fCBCVUlMREZMQUcoSVNfRlVDSFNJ QSkKK0BAIC0xNzgsMTggKzE3OSwyMCBAQCBzdHJ1Y3QgQXJnIHsKKyAgICAgaW50ZWdlci53aWR0 aCA9IHNpemVvZihsb25nIGxvbmcpOworICAgfQorIAorLSAgLy8gbnVsbHB0cl90IHdvdWxkIGJl IGFtYmlndW91cyBiZXR3ZWVuIGNoYXIqIGFuZCBjb25zdCBjaGFyKjsgdG8gZ2V0CisrICAvLyBz dGQ6Om51bGxwdHJfdCB3b3VsZCBiZSBhbWJpZ3VvdXMgYmV0d2VlbiBjaGFyKiBhbmQgY29uc3Qg Y2hhcio7IHRvIGdldAorICAgLy8gY29uc2lzdGVudCBiZWhhdmlvciB3aXRoIE5VTEwsIHdoaWNo IHByaW50cyB3aXRoIGFsbCB0aHJlZSBvZiAlZCwgJXAsIGFuZAorICAgLy8gJXMsIHRyZWF0IGl0 IGFzIGFuIGludGVnZXIgemVybyBpbnRlcm5hbGx5LgorICAgLy8KKyAgIC8vIFdhcm5pbmc6IGRv bid0IGp1c3QgZG8gQXJnKE5VTEwpIGhlcmUgYmVjYXVzZSBpbiBzb21lIGxpYmNzLCBOVUxMIGlz IGFuCistICAvLyBhbGlhcyBmb3IgbnVsbHB0ciEKKy0gIEFyZyhudWxscHRyX3QgcCkgOiB0eXBl KElOVCkgeworKyAgLy8gYWxpYXMgZm9yIHN0ZDo6bnVsbHB0ciEKKysgIC8vCisrICAvLyBOT0xJ TlRORVhUTElORShydW50aW1lL2V4cGxpY2l0KQorKyAgQXJnKHN0ZDo6bnVsbHB0cl90IHApIDog dHlwZShJTlQpIHsKKyAgICAgaW50ZWdlci5pID0gMDsKKyAgICAgLy8gSW50ZXJuYWxseSwgU2Fm ZVNwcmludGYgZXhwZWN0cyB0byByZXByZXNlbnQgbnVsbHMgYXMgaW50ZWdlcnMgd2hvc2UKKyAg ICAgLy8gd2lkdGggaXMgZXF1YWwgdG8gc2l6ZW9mKE5VTEwpLCB3aGljaCBpcyBub3QgbmVjZXNz YXJpbHkgZXF1YWwgdG8KKy0gICAgLy8gc2l6ZW9mKG51bGxwdHJfdCkgLSBlZywgb24gV2luZG93 cywgTlVMTCBpcyBkZWZpbmVkIHRvIDAgKHdpdGggc2l6ZSA0KQorLSAgICAvLyB3aGlsZSBudWxs cHRyX3QgaXMgb2Ygc2l6ZSA4LgorKyAgICAvLyBzaXplb2Yoc3RkOjpudWxscHRyX3QpIC0gZWcs IG9uIFdpbmRvd3MsIE5VTEwgaXMgZGVmaW5lZCB0byAwICh3aXRoIHNpemUKKysgICAgLy8gNCkg d2hpbGUgc3RkOjpudWxscHRyX3QgaXMgb2Ygc2l6ZSA4LgorICAgICBpbnRlZ2VyLndpZHRoID0g c2l6ZW9mKE5VTEwpOworICAgfQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tYnJvd3Nlci1zaXplX3QucGF0Y2ggYi9zcmNwa2dzL2VsZWN0 cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1icm93c2VyLXNpemVfdC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi4zNmFmMGVjNmM0YTdmCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tYnJv d3Nlci1zaXplX3QucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvY2hyb21lL2Jyb3dzZXIv c2VhcmNoL2JhY2tncm91bmQvbnRwX2JhY2tncm91bmRzLmgJMjAyMC0wOC0xMCAyMDozOToyMC4w MDAwMDAwMDAgKzAyMDAKKysrKyBiL2Nocm9tZS9icm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250 cF9iYWNrZ3JvdW5kcy5oCTIwMjAtMDktMDQgMTM6NDg6MjIuNjQwMDIzMjU2ICswMjAwCitAQCAt Niw2ICs2LDcgQEAKKyAjZGVmaW5lIENIUk9NRV9CUk9XU0VSX1NFQVJDSF9CQUNLR1JPVU5EX05U UF9CQUNLR1JPVU5EU19IXworIAorICNpbmNsdWRlIDxhcnJheT4KKysjaW5jbHVkZSA8Y3N0ZGRl Zj4KKyAKKyBjbGFzcyBHVVJMOworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tY3Jvc3MtYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9u MjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi41M2RmNDkwYmFjOTdhCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tY3Jvc3MtYnVp bGQucGF0Y2gKQEAgLTAsMCArMSw2NSBAQAorLS0tIGEvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JV SUxELmduLm9yaWcKKysrKyBiL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgorQEAgLTU1 LDYgKzU1LDEwIEBACisgfQorIAorIGRlY2xhcmVfYXJncygpIHsKKysgIGlzX211c2wgPSBmYWxz ZQorK30KKysKKytkZWNsYXJlX2FyZ3MoKSB7CisgICAjIE5vcm1hbGx5LCBBbmRyb2lkIGJ1aWxk cyBhcmUgbGlnaHRseSBvcHRpbWl6ZWQsIGV2ZW4gZm9yIGRlYnVnIGJ1aWxkcywgdG8KKyAgICMg a2VlcCBiaW5hcnkgc2l6ZSBkb3duLiBTZXR0aW5nIHRoaXMgZmxhZyB0byB0cnVlIGRpc2FibGVz IHN1Y2ggb3B0aW1pemF0aW9uCisgICBhbmRyb2lkX2Z1bGxfZGVidWcgPSBmYWxzZQorQEAgLTkx Nyw4ICs5MTcsMTMgQEAKKyAgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7 CisgICAgICAgaWYgKGlzX2NsYW5nICYmICFpc19hbmRyb2lkICYmICFpc19uYWNsICYmICFpc19m dWNoc2lhICYmCisgICAgICAgICAgICEoaXNfY2hyb21lb3NfbGFjcm9zICYmIGlzX2Nocm9tZW9z X2RldmljZSkpIHsKKy0gICAgICAgIGNmbGFncyArPSBbICItLXRhcmdldD1hYXJjaDY0LWxpbnV4 LWdudSIgXQorLSAgICAgICAgbGRmbGFncyArPSBbICItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdu dSIgXQorKyAgICAgICAgaWYgKGlzX211c2wpIHsKKysgICAgICAgICAgY2ZsYWdzICs9IFsgIi0t dGFyZ2V0PWFhcmNoNjQtbGludXgtbXVzbCIgXQorKyAgICAgICAgICBsZGZsYWdzICs9IFsgIi0t dGFyZ2V0PWFhcmNoNjQtbGludXgtbXVzbCIgXQorKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAg ICAgY2ZsYWdzICs9IFsgIi0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IiBdCisrICAgICAgICAg IGxkZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUiIF0KKysgICAgICAgIH0K KyAgICAgICB9CisgICAgICAgaWYgKGlzX2FuZHJvaWQpIHsKKyAgICAgICAgICMgT3V0bGluZSBh dG9taWNzIGNyYXNoIG9uIEV4eW5vcyA5ODEwLiBodHRwOi8vY3JidWcuY29tLzEyNzI3OTUKKy0t LSBhL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZS9CVUlMRC5nbi5vcmlnCisrKysgYi9i dWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGUvQlVJTEQuZ24KK0BAIC0zOSwzICszOSwyMiBA QAorICAgICBjdXJyZW50X29zID0gaG9zdF9vcworICAgfQorIH0KKysKKytnY2NfdG9vbGNoYWlu KCJ2OF9zbmFwc2hvdF9jcm9zcyIpIHsKKysgIGNjID0gZ2V0ZW52KCJCVUlMRF9DQyIpCisrICBj eHggPSBnZXRlbnYoIkJVSUxEX0NYWCIpCisrICBhciA9IGdldGVudigiQlVJTERfQVIiKQorKyAg bm0gPSBnZXRlbnYoIkJVSUxEX05NIikKKysgIGxkID0gY3h4CisrCisrICBleHRyYV9jZmxhZ3Mg PSBnZXRlbnYoIkJVSUxEX0NGTEFHUyIpCisrICBleHRyYV9jcHBmbGFncyA9IGdldGVudigiQlVJ TERfQ1BQRkxBR1MiKQorKyAgZXh0cmFfY3h4ZmxhZ3MgPSBnZXRlbnYoIkJVSUxEX0NYWEZMQUdT IikKKysgIGV4dHJhX2xkZmxhZ3MgPSBnZXRlbnYoIkJVSUxEX0xERkxBR1MiKQorKworKyAgdG9v bGNoYWluX2FyZ3MgPSB7CisrICAgIGN1cnJlbnRfY3B1ID0gaG9zdF9jcHUKKysgICAgY3VycmVu dF9vcyA9IGhvc3Rfb3MKKysgICAgdjhfY3VycmVudF9jcHUgPSB0YXJnZXRfY3B1CisrICB9Cisr fQorLS0tIGEvYnVpbGQvY29uZmlnL2xpbnV4L3BrZ19jb25maWcuZ25pLm9yaWcKKysrKyBiL2J1 aWxkL2NvbmZpZy9saW51eC9wa2dfY29uZmlnLmduaQorQEAgLTkxLDcgKzkxLDcgQEAKKyAgIGFz c2VydChkZWZpbmVkKGludm9rZXIucGFja2FnZXMpLAorICAgICAgICAgICJWYXJpYWJsZSB8cGFj a2FnZXN8IG11c3QgYmUgZGVmaW5lZCB0byBiZSBhIGxpc3QgaW4gcGtnX2NvbmZpZy4iKQorICAg Y29uZmlnKHRhcmdldF9uYW1lKSB7CistICAgIGlmIChob3N0X3Rvb2xjaGFpbiA9PSBjdXJyZW50 X3Rvb2xjaGFpbikgeworKyAgICBpZiAoY3VycmVudF9jcHUgIT0gdGFyZ2V0X2NwdSkgeworICAg ICAgIGFyZ3MgPSBjb21tb25fcGtnX2NvbmZpZ19hcmdzICsgaG9zdF9wa2dfY29uZmlnX2FyZ3Mg KyBpbnZva2VyLnBhY2thZ2VzCisgICAgIH0gZWxzZSB7CisgICAgICAgYXJncyA9IGNvbW1vbl9w a2dfY29uZmlnX2FyZ3MgKyBwa2dfY29uZmlnX2FyZ3MgKyBpbnZva2VyLnBhY2thZ2VzCmRpZmYg LS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1mYy1jYWNo ZS12ZXJzaW9uLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tZmMtY2FjaGUtdmVyc2lvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwLi4zYjc2ODk3OGE0M2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZmMtY2FjaGUtdmVyc2lvbi5wYXRjaApAQCAt MCwwICsxLDEzIEBACitpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgdGhlIHZlcnNpb24sIHVzZSB0aGUg ZGVmaW5lZCBtYWNyby4KKy0tCistLS0gYS90aGlyZF9wYXJ0eS90ZXN0X2ZvbnRzL2ZvbnRjb25m aWcvZ2VuZXJhdGVfZm9udGNvbmZpZ19jYWNoZXMuY2MKKysrKyBiL3RoaXJkX3BhcnR5L3Rlc3Rf Zm9udHMvZm9udGNvbmZpZy9nZW5lcmF0ZV9mb250Y29uZmlnX2NhY2hlcy5jYworQEAgLTU2LDcg KzU2LDcgQEAKKyAgIEZjRmluaSgpOworIAorICAgLy8gQ2hlY2sgZXhpc3RlbmNlIG9mIGludGVu ZGVkIGZvbnRjb25maWcgY2FjaGUgZmlsZS4KKy0gIGF1dG8gY2FjaGUgPSBmb250Y29uZmlnX2Nh Y2hlcyArICIvIiArIGtDYWNoZUtleSArICItbGU2NC5jYWNoZS05IjsKKysgIGF1dG8gY2FjaGUg PSBmb250Y29uZmlnX2NhY2hlcyArICIvIiArIGtDYWNoZUtleSArICItbGU2NC5jYWNoZS0iICsg RkNfQ0FDSEVfVkVSU0lPTjsKKyAgIGJvb2wgY2FjaGVfZXhpc3RzID0gYWNjZXNzKGNhY2hlLmNf c3RyKCksIEZfT0spID09IDA7CisgICByZXR1cm4gIWNhY2hlX2V4aXN0czsKKyB9CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtYWFyY2g2 NC1tdXNsLW1lbW9yeS10YWdnaW5nLW1hY3Jvcy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1hYXJjaDY0LW11c2wtbWVtb3J5LXRhZ2dpbmctbWFj cm9zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmIzZGQy YzMzZjBmMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0 Y2hlcy9jaHJvbWl1bS1maXgtYWFyY2g2NC1tdXNsLW1lbW9yeS10YWdnaW5nLW1hY3Jvcy5wYXRj aApAQCAtMCwwICsxLDI5IEBACistLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2Nh dG9yL3NyYy9wYXJ0aXRpb25fYWxsb2MvdGFnZ2luZy5jYworKysrIGIvYmFzZS9hbGxvY2F0b3Iv cGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3RhZ2dpbmcuY2MKK0BAIC0y OCwxMyArMjgsMjUgQEAKKyAjZW5kaWYKKyAjZW5kaWYKKyAKKy0jaWZuZGVmIEhBU19QUl9NVEVf TUFDUk9TCisrI2lmbmRlZiBQUl9NVEVfVENGX1NISUZUCisgI2RlZmluZSBQUl9NVEVfVENGX1NI SUZUIDEKKysjZW5kaWYKKysjaWZuZGVmIFBSX01URV9UQ0ZfTk9ORQorICNkZWZpbmUgUFJfTVRF X1RDRl9OT05FICgwVUwgPDwgUFJfTVRFX1RDRl9TSElGVCkKKysjZW5kaWYKKysjaWZuZGVmIFBS X01URV9UQ0ZfU1lOQworICNkZWZpbmUgUFJfTVRFX1RDRl9TWU5DICgxVUwgPDwgUFJfTVRFX1RD Rl9TSElGVCkKKysjZW5kaWYKKysjaWZuZGVmIFBSX01URV9UQ0ZfQVNZTkMKKyAjZGVmaW5lIFBS X01URV9UQ0ZfQVNZTkMgKDJVTCA8PCBQUl9NVEVfVENGX1NISUZUKQorKyNlbmRpZgorKyNpZm5k ZWYgUFJfTVRFX1RDRl9NQVNLCisgI2RlZmluZSBQUl9NVEVfVENGX01BU0sgKDNVTCA8PCBQUl9N VEVfVENGX1NISUZUKQorKyNlbmRpZgorKyNpZm5kZWYgUFJfTVRFX1RBR19TSElGVAorICNkZWZp bmUgUFJfTVRFX1RBR19TSElGVCAzCisrI2VuZGlmCisrI2lmbmRlZiBQUl9NVEVfVEFHX01BU0sK KyAjZGVmaW5lIFBSX01URV9UQUdfTUFTSyAoMHhmZmZmVUwgPDwgUFJfTVRFX1RBR19TSElGVCkK KyAjZW5kaWYKKyAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9w YXRjaGVzL2Nocm9taXVtLWZpeC1hcmd1bWVudF9zcGVjLWlzbmFuLWlzaW5mLnBhdGNoIGIvc3Jj cGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LWFyZ3VtZW50X3NwZWMt aXNuYW4taXNpbmYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MC4uODM3YTAzMTJkY2JjYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9m aWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1hcmd1bWVudF9zcGVjLWlzbmFuLWlzaW5mLnBhdGNo CkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBhL2V4dGVuc2lvbnMvcmVuZGVyZXIvYmluZGluZ3MvYXJn dW1lbnRfc3BlYy5jYworKysrIGIvZXh0ZW5zaW9ucy9yZW5kZXJlci9iaW5kaW5ncy9hcmd1bWVu dF9zcGVjLmNjCitAQCAtMiw2ICsyLDggQEAKKyAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisgLy8gZm91bmQg aW4gdGhlIExJQ0VOU0UgZmlsZS4KKyAKKysjaW5jbHVkZSA8Y21hdGg+CisrCisgI2luY2x1ZGUg ImV4dGVuc2lvbnMvcmVuZGVyZXIvYmluZGluZ3MvYXJndW1lbnRfc3BlYy5oIgorIAorICNpbmNs dWRlICJiYXNlL2NoZWNrLmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaCBiL3NyY3BrZ3Mv ZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1jb25zdGV4cHItbmFycm93aW5n LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjU3MGNhNmU2 OWE4MDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaApAQCAtMCwwICsxLDIxIEBA CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9tZWRpYS93ZWJfbWVk aWFfcGxheWVyX2ltcGwuY2Mub3JpZworKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vbWVkaWEvd2ViX21lZGlhX3BsYXllcl9pbXBsLmNjCitAQCAtMzg4MSwxNSArMzg4 MSwxNSBAQAorICAgICBjb25zdCBUJi4uLiB2YWx1ZXMpIHsKKyAgIHN0ZDo6c3RyaW5nIHN0cmtl eSA9IHN0ZDo6c3RyaW5nKGtleSk7CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga0VuY3J5 cHRlZCkgeworKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtFbmNyeXB0ZWQgIT0gMCkgeworICAg ICBpZiAoaXNfZW5jcnlwdGVkXykKKyAgICAgICBVbWFGdW5jdGlvbihzdHJrZXkgKyAiLkVNRSIs IHZhbHVlcy4uLik7CisgICB9CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1RvdGFsKQor KyAgaWYgY29uc3RleHByIChGbGFncyAmIGtUb3RhbCAhPSAwKQorICAgICBVbWFGdW5jdGlvbihz dHJrZXkgKyAiLkFsbCIsIHZhbHVlcy4uLik7CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYg a1BsYXliYWNrVHlwZSkgeworKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtQbGF5YmFja1R5cGUg IT0gMCkgeworICAgICBhdXRvIGRlbXV4ZXJfdHlwZSA9IEdldERlbXV4ZXJUeXBlKCk7CisgICAg IGlmICghZGVtdXhlcl90eXBlLmhhc192YWx1ZSgpKQorICAgICAgIHJldHVybjsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1kYXduLXBs YXRmb3JtLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t Zml4LWRhd24tcGxhdGZvcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMC4uOTM2MzEyOTRmYzc3MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ry b24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1kYXduLXBsYXRmb3JtLnBhdGNoCkBAIC0w LDAgKzEsNjIgQEAKK0Zyb20gZjgxNWU4MzNjOTQ2YTU5NjIwYTJjYTlkZjM3YTFkYTc0NmY2MTQ2 MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CitEYXRlOiBTYXQsIDEgT2N0IDIwMjIgMDA6MjE6MDkgKzAwMDAKK1N1YmplY3Q6IFtQQVRD SF0gZml4IGRhd24gYnVpbGQgZm9yIHBwYzY0CisKKy0tLQorIHRoaXJkX3BhcnR5L2Rhd24vc3Jj L2Rhd24vY29tbW9uL0Fzc2VydC5jcHAgfCAgNCArKy0tCisgdGhpcmRfcGFydHkvZGF3bi9zcmMv ZGF3bi9jb21tb24vUGxhdGZvcm0uaCB8IDEwICsrKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQs IDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L2Rhd24vc3JjL2Rhd24vY29tbW9uL0Fzc2VydC5jcHAgYi90aGlyZF9wYXJ0eS9kYXduL3Ny Yy9kYXduL2NvbW1vbi9Bc3NlcnQuY3BwCitpbmRleCBlY2M5MmRmYy4uOGVlOTFhOTAgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9kYXduL3NyYy9kYXduL2NvbW1vbi9Bc3NlcnQuY3BwCisrKysg Yi90aGlyZF9wYXJ0eS9kYXduL3NyYy9kYXduL2NvbW1vbi9Bc3NlcnQuY3BwCitAQCAtMzEsOSAr MzEsOSBAQCB2b2lkIEJyZWFrUG9pbnQoKSB7CisgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCJl YnJlYWsiKTsKKyAjZWxpZiBEQVdOX1BMQVRGT1JNX0lTKE1JUFMpCisgICAgIF9fYXNtX18gX192 b2xhdGlsZV9fKCJicmVhayIpOworLSNlbGlmIERBV05fUExBVEZPUk1fSVMoUzM5MCkgfHwgREFX Tl9QTEFURk9STV9JU18oUzM5MFgpCisrI2VsaWYgREFXTl9QTEFURk9STV9JUyhTMzkwKSB8fCBE QVdOX1BMQVRGT1JNX0lTKFMzOTBYKQorICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiLndvcmQg MHgwMDAxIik7CistI2VsaWYgREFXTl9QTEFURk9STV9JUyhQUEMpIHx8IERBV05fUExBVEZPUk1f SVNfKFBQQzY0KQorKyNlbGlmIERBV05fUExBVEZPUk1fSVMoUFBDKSB8fCBEQVdOX1BMQVRGT1JN X0lTKFBQQzY0KQorICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygidHdnZSAyLDIiKTsKKyAjZWxz ZQorICNlcnJvciAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0iCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvZGF3bi9zcmMvZGF3bi9jb21tb24vUGxhdGZvcm0uaCBiL3RoaXJkX3BhcnR5L2Rhd24vc3Jj L2Rhd24vY29tbW9uL1BsYXRmb3JtLmgKK2luZGV4IDM5ZDVlYjQxLi4yMDExMzY3ZCAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L2Rhd24vc3JjL2Rhd24vY29tbW9uL1BsYXRmb3JtLmgKKysrKyBi L3RoaXJkX3BhcnR5L2Rhd24vc3JjL2Rhd24vY29tbW9uL1BsYXRmb3JtLmgKK0BAIC0xMjQsMTUg KzEyNCwxNSBAQAorICNkZWZpbmUgREFXTl9QTEFURk9STV9JU19NSVBTNjQgMQorICNlbmRpZgor IAorLSNlbGlmIGRlZmllbmQoX19zMzkwX18pCisrI2VsaWYgZGVmaW5lZChfX3MzOTBfXykKKyAj ZGVmaW5lIERBV05fUExBVEZPUk1fSVNfUzM5MCAxCistI2VsaWYgZGVmaWVuZChfX3MzOTB4X18p CisrI2VsaWYgZGVmaW5lZChfX3MzOTB4X18pCisgI2RlZmluZSBEQVdOX1BMQVRGT1JNX0lTX1Mz OTBYIDEKKyAKKy0jZWxpZiBkZWZpbmVkKF9fUFBDX18pCistI2RlZmluZSBEQVdOX1BMQVRGT1JN X0lTX1BQQyAxCisgI2VsaWYgZGVmaW5lZChfX1BQQzY0X18pCisgI2RlZmluZSBEQVdOX1BMQVRG T1JNX0lTX1BQQzY0IDEKKysjZWxpZiBkZWZpbmVkKF9fUFBDX18pCisrI2RlZmluZSBEQVdOX1BM QVRGT1JNX0lTX1BQQyAxCisgCisgI2Vsc2UKKyAjZXJyb3IgIlVuc3VwcG9ydGVkIHBsYXRmb3Jt LiIKK0BAIC0xNDksNyArMTQ5LDcgQEAKKyBzdGF0aWNfYXNzZXJ0KHNpemVvZihzaXplb2YoY2hh cikpID09IDgsICJFeHBlY3Qgc2l6ZW9mKHNpemVfdCkgPT0gOCIpOworICNlbGlmIGRlZmluZWQo REFXTl9QTEFURk9STV9JU19JMzg2KSB8fCBkZWZpbmVkKERBV05fUExBVEZPUk1fSVNfQVJNMzIp IHx8ICAgXAorICAgICBkZWZpbmVkKERBV05fUExBVEZPUk1fSVNfUklTQ1YzMikgfHwgZGVmaW5l ZChEQVdOX1BMQVRGT1JNX0lTX01JUFMzMikgfHwgXAorLSAgICBkZWZpbmVkKERBV05fUExBVEZP Uk1fSVNfUzM5MCkgfHwgZGVmaW5lZChEQVdOX1BMQVRGT1JNX0lTX1BQQzMyKSB8fCAgICAgXAor KyAgICBkZWZpbmVkKERBV05fUExBVEZPUk1fSVNfUzM5MCkgfHwgZGVmaW5lZChEQVdOX1BMQVRG T1JNX0lTX1BQQykgfHwgICAgIFwKKyAgICAgZGVmaW5lZChEQVdOX1BMQVRGT1JNX0lTX0VNU0NS SVBURU4pIHx8IGRlZmluZWQoREFXTl9QTEFURk9STV9JU19MT09OR0FSQ0gzMikKKyAjZGVmaW5l IERBV05fUExBVEZPUk1fSVNfMzJfQklUIDEKKyBzdGF0aWNfYXNzZXJ0KHNpemVvZihzaXplb2Yo Y2hhcikpID09IDQsICJFeHBlY3Qgc2l6ZW9mKHNpemVfdCkgPT0gNCIpOworLS0gCisyLjM0LjEK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t Zml4LWxpYmMtdmVyc2lvbi1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tZml4LWxpYmMtdmVyc2lvbi1pbmNsdWRlLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmQ5NGRjZjZkZWFjNTYKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgt bGliYy12ZXJzaW9uLWluY2x1ZGUucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorLS0tIGEvY2hyb21l L2Jyb3dzZXIvbWV0cmljcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3Mu Y2MKKysrKyBiL2Nocm9tZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRy YV9wYXJ0c19tZXRyaWNzLmNjCitAQCAtNjEsOCArNjEsMTEgQEAKKyAKKyAvLyBUT0RPKGNyYnVn LmNvbS8xMDUyMzk3KTogUmV2aXNpdCB0aGUgbWFjcm8gZXhwcmVzc2lvbiBvbmNlIGJ1aWxkIGZs YWcgc3dpdGNoCisgLy8gb2YgbGFjcm9zLWNocm9tZSBpcyBjb21wbGV0ZS4KKy0jaWYgZGVmaW5l ZChfX0dMSUJDX18pICYmIChCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJP TUVPU19MQUNST1MpKQorKyNpZiBCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19D SFJPTUVPU19MQUNST1MpCisrCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxn bnUvbGliYy12ZXJzaW9uLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgImJhc2UvbGludXhfdXRp bC5oIgorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3NwbGl0LmgiCmRpZmYgLS1naXQg YS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtbWlzc2luZy1U RU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1maXgtbWlzc2luZy1URU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8ucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYjU2NzE3YjljZTMy ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLWZpeC1taXNzaW5nLVRFTVBfRkFJTFVSRV9SRVRSWS1tYWNyby5wYXRjaApAQCAtMCww ICsxLDIxIEBACitUaGlzIG1hY3JvIGlzIGRlZmluZWQgaW4gZ2xpYmMsIGJ1dCBub3QgbXVzbC4K KworLS0tIGEvc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oLm9yaWcKKysrKyBiL3Nh bmRib3gvbGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaAorQEAgLTExLDYgKzExLDE2IEBACisgI2lu Y2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAKKysvLyBTb21lIGFk ZGl0aW9uYWwgZnVuY3Rpb25zCisrI2lmICFkZWZpbmVkKFRFTVBfRkFJTFVSRV9SRVRSWSkKKysj IGRlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkoZXhwcmVzc2lvbikgXAorKwkoX19leHRlbnNpb25f XwkJCVwKKysJICh7IGxvbmcgaW50IF9fcmVzdWx0OwkJXAorKwkgIGRvIF9fcmVzdWx0ID0gKGxv bmcgaW50KSAoZXhwcmVzc2lvbik7IFwKKysJICB3aGlsZSAoX19yZXN1bHQgPT0gLTFMICYmIGVy cm5vID09IEVJTlRSKTsgXAorKwkgIF9fcmVzdWx0OyB9KSkKKysjZW5kaWYKKysKKyAvLyBUaGlz IGFkanVzdHMgL3Byb2MvcHJvY2Vzcy9vb21fc2NvcmVfYWRqIHNvIHRoZSBMaW51eCBPT00ga2ls bGVyCisgLy8gd2lsbCBwcmVmZXIgY2VydGFpbiBwcm9jZXNzIHR5cGVzIG92ZXIgb3RoZXJzLiBU aGUgcmFuZ2UgZm9yIHRoZQorIC8vIGFkanVzdG1lbnQgaXMgWy0xMDAwLCAxMDAwXSwgd2l0aCBb MCwgMTAwMF0gYmVpbmcgdXNlciBhY2Nlc3NpYmxlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVj dHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LW1pc3NpbmctY3N0ZGludC1pbmNsdWRl LW11c2wucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1m aXgtbWlzc2luZy1jc3RkaW50LWluY2x1ZGUtbXVzbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAwLi42Y2EyODk3ZjNkZDI5Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LW1pc3NpbmctY3N0 ZGludC1pbmNsdWRlLW11c2wucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvbmV0L3RoaXJk X3BhcnR5L3F1aWNoZS9zcmMvcXVpY2hlL2h0dHAyL2FkYXB0ZXIvd2luZG93X21hbmFnZXIuaAor KysrIGIvbmV0L3RoaXJkX3BhcnR5L3F1aWNoZS9zcmMvcXVpY2hlL2h0dHAyL2FkYXB0ZXIvd2lu ZG93X21hbmFnZXIuaAorQEAgLTMsNiArMyw3IEBACisgCisgI2luY2x1ZGUgPHN0ZGRlZi5oPgor IAorKyNpbmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorIAorICNpbmNs dWRlICJxdWljaGUvY29tbW9uL3BsYXRmb3JtL2FwaS9xdWljaGVfZXhwb3J0LmgiCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1maXgtbXVzbC1t aXNzaW5nLXVuaXN0ZF9oLWluY2x1ZGUucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1maXgtbXVzbC1taXNzaW5nLXVuaXN0ZF9oLWluY2x1ZGUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZTE0ZDAwOWE5ZTBiYQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLWZpeC1tdXNsLW1pc3NpbmctdW5pc3RkX2gtaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDEw IEBACistLS0gYS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmgKKysrKyBiL3Nh bmRib3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuaAorQEAgLTEzLDYgKzEzLDcgQEAKKyAK KyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDx2ZWN0b3I+CisrI2luY2x1ZGUgPHVuaXN0 ZC5oPgorIAorICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2NhcGFiaWxp dHkuaCIKKyAjaW5jbHVkZSAic2FuZGJveC9zYW5kYm94X2V4cG9ydC5oIgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tZml4LXBlcmZldHRvLUdl dFRocmVhZE5hbWUtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVz L2Nocm9taXVtLWZpeC1wZXJmZXR0by1HZXRUaHJlYWROYW1lLW11c2wucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNDAxNGQxZWU1ZTY5MQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1w ZXJmZXR0by1HZXRUaHJlYWROYW1lLW11c2wucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorLS0tIGEv dGhpcmRfcGFydHkvcGVyZmV0dG8vaW5jbHVkZS9wZXJmZXR0by9leHQvYmFzZS90aHJlYWRfdXRp bHMuaAorKysrIGIvdGhpcmRfcGFydHkvcGVyZmV0dG8vaW5jbHVkZS9wZXJmZXR0by9leHQvYmFz ZS90aHJlYWRfdXRpbHMuaAorQEAgLTMwLDcgKzMwLDggQEAKKyAjaW5jbHVkZSA8YWxnb3JpdGht PgorICNlbmRpZgorIAorLSNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVSRkVUVE9fT1NfQU5EUk9J RCkKKysjaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09TX0FORFJPSUQpIHx8IFwKKysg ICAgKFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19PU19MSU5VWCkgJiYgIWRlZmluZWQoX19H TElCQ19fKSkKKyAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CisgI2VuZGlmCisgCitAQCAtNTgsNyAr NTksOCBAQAorIAorIGlubGluZSBib29sIEdldFRocmVhZE5hbWUoc3RkOjpzdHJpbmcmIG91dF9y ZXN1bHQpIHsKKyAgIGNoYXIgYnVmWzE2XSA9IHt9OworLSNpZiBQRVJGRVRUT19CVUlMREZMQUco UEVSRkVUVE9fT1NfQU5EUk9JRCkKKysjaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRPX09T X0FORFJPSUQpIHx8IFwKKysgICAgKFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19PU19MSU5V WCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAgIGlmIChwcmN0bChQUl9HRVRfTkFNRSwgYnVm KSAhPSAwKQorICAgICByZXR1cm4gZmFsc2U7CisgI2Vsc2UKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWZpeC1zd2lmdHNoYWRlci1sbHZtLW11 c2wtY29uZmlnLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21p dW0tZml4LXN3aWZ0c2hhZGVyLWxsdm0tbXVzbC1jb25maWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZApkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlz c2l2ZS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWk2 ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMC4uNzdjMGI1OGM5NGUxMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0 Y2gKQEAgLTAsMCArMSwyMyBAQAorLS0tIGEvbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmduLm9yaWcK KysrKyBiL21lZGlhL2dwdS92YWFwaS9CVUlMRC5nbgorQEAgLTE0LDYgKzE0LDEyIEBACisgYXNz ZXJ0KGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zKQorIGFzc2VydCh1c2VfdmFhcGkpCisgCisrY29u ZmlnKCJ2YWFwaV9wZXJtaXNzaXZlIikgeworKyAgaWYgKHRhcmdldF9jcHUgPT0gIng4NiIpIHsK KysgICAgY2ZsYWdzID0gWyAiLWZwZXJtaXNzaXZlIiBdCisrICB9CisrfQorKworIGdlbmVyYXRl X3N0dWJzKCJsaWJ2YV9zdHVicyIpIHsKKyAgIGV4dHJhX2hlYWRlciA9ICJ2YV9zdHViX2hlYWRl ci5mcmFnbWVudCIKKyAgIHNpZ3MgPSBbICJ2YS5zaWdzIiBdCitAQCAtOTAsNiArOTYsNyBAQAor ICAgY29uZmlncyArPSBbCisgICAgICIvL2J1aWxkL2NvbmZpZy9saW51eC9saWJ2YSIsCisgICAg ICIvL3RoaXJkX3BhcnR5L2xpYnZweDpsaWJ2cHhfY29uZmlnIiwKKysgICAgIjp2YWFwaV9wZXJt aXNzaXZlIiwKKyAgIF0KKyAKKyAgIGRlcHMgPSBbCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0 cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1saWJjX21hbGxvYy5wYXRjaCBiL3NyY3BrZ3Mv ZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLWxpYmNfbWFsbG9jLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjQxNGYyODc2NWQ2OWMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1s aWJjX21hbGxvYy5wYXRjaApAQCAtMCwwICsxLDM0IEBACistLS0gYS9iYXNlL3Byb2Nlc3MvbWVt b3J5X2xpbnV4LmNjCisrKysgYi9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCitAQCAtMTgs NiArMTgsMTMgQEAKKyAjaW5jbHVkZSAiYmFzZS90aHJlYWRpbmcvdGhyZWFkX3Jlc3RyaWN0aW9u cy5oIgorICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKKyAKKysjaWYgZGVmaW5lZChM SUJDX0dMSUJDKQorK2V4dGVybiAiQyIgeworK2V4dGVybiB2b2lkICpfX2xpYmNfbWFsbG9jKHNp emVfdCBzaXplKTsKKytleHRlcm4gdm9pZCAqX19saWJjX2ZyZWUodm9pZCAqcHRyKTsKKyt9Cisr I2VuZGlmCisrCisgbmFtZXNwYWNlIGJhc2UgeworIAorIG5hbWVzcGFjZSB7CitAQCAtMTExLDcg KzExOCw3IEBACisgI2VsaWYgZGVmaW5lZChNRU1PUllfVE9PTF9SRVBMQUNFU19BTExPQ0FUT1Ip IHx8ICFkZWZpbmVkKExJQkNfR0xJQkMpCisgICAqcmVzdWx0ID0gbWFsbG9jKHNpemUpOworICNl bGlmIGRlZmluZWQoTElCQ19HTElCQykKKy0gICpyZXN1bHQgPSBfX2xpYmNfbWFsbG9jKHNpemUp OworKyAgKnJlc3VsdCA9IDo6X19saWJjX21hbGxvYyhzaXplKTsKKyAjZW5kaWYKKyAgIHJldHVy biAqcmVzdWx0ICE9IG51bGxwdHI7CisgfQorQEAgLTEyMiw3ICsxMjksNyBAQAorICNlbGlmIGRl ZmluZWQoTUVNT1JZX1RPT0xfUkVQTEFDRVNfQUxMT0NBVE9SKSB8fCAhZGVmaW5lZChMSUJDX0dM SUJDKQorICAgZnJlZShwdHIpOworICNlbGlmIGRlZmluZWQoTElCQ19HTElCQykKKy0gIF9fbGli Y19mcmVlKHB0cik7CisrICA6Ol9fbGliY19mcmVlKHB0cik7CisgI2VuZGlmCisgfQorIApkaWZm IC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbXVzbC1u by1leGVjaW5mby5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9t aXVtLW11c2wtbm8tZXhlY2luZm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMC4uNzQwN2YxYjlkYjM4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW11c2wtbm8tZXhlY2luZm8ucGF0Y2gKQEAg LTAsMCArMSw4NSBAQAorU291cmNlOiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRz L3BsYWluL2NvbW11bml0eS9jaHJvbWl1bS9uby1leGVjaW5mby5wYXRjaAorbXVzbCBkb2VzIG5v dCBoYXZlIGV4ZWNpbmZvLmgsIGFuZCBoZW5jZSBubyBpbXBsZW1lbnRhdGlvbiBvZgorLiBiYWNr dHJhY2UoKQorLiBiYWNrdHJhY2Vfc3ltYm9scygpCitmb3IgZGlzY3Vzc2lvbiBhYm91dCB0aGlz LCBzZWUgaHR0cHM6Ly93d3cub3BlbndhbGwuY29tL2xpc3RzL211c2wvMjAyMS8wNy8xNi8xCist LQorLS0tIGEvdjgvc3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmNjCisrKysg Yi92OC9zcmMvY29kZWdlbi9leHRlcm5hbC1yZWZlcmVuY2UtdGFibGUuY2MKK0BAIC0xMSw3ICsx MSw5IEBACisKKyAjaWYgZGVmaW5lZChERUJVRykgJiYgZGVmaW5lZChWOF9PU19MSU5VWCkgJiYg IWRlZmluZWQoVjhfT1NfQU5EUk9JRCkKKyAjZGVmaW5lIFNZTUJPTElaRV9GVU5DVElPTgorKyNp ZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KKysjZW5kaWYKKwor ICNpbmNsdWRlIDx2ZWN0b3I+CisKK0BAIC05Niw3ICs5OCw3IEBACisgfQorCisgY29uc3QgY2hh ciogRXh0ZXJuYWxSZWZlcmVuY2VUYWJsZTo6UmVzb2x2ZVN5bWJvbCh2b2lkKiBhZGRyZXNzKSB7 CistI2lmZGVmIFNZTUJPTElaRV9GVU5DVElPTgorKyNpZiBkZWZpbmVkKFNZTUJPTElaRV9GVU5D VElPTikgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgICBjaGFyKiogbmFtZXMgPSBiYWNrdHJhY2Vf c3ltYm9scygmYWRkcmVzcywgMSk7CisgICBjb25zdCBjaGFyKiBuYW1lID0gbmFtZXNbMF07Cisg ICAvLyBUaGUgYXJyYXkgb2YgbmFtZXMgaXMgbWFsbG9jJ2VkLiBIb3dldmVyLCBlYWNoIG5hbWUg c3RyaW5nIGlzIHN0YXRpYworLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFy dHkvbGx2bS1zdWJ6ZXJvL2J1aWxkL0xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgK KysrKyBiL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9i dWlsZC9MaW51eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oCitAQCAtMTcsNyArMTcsMTEg QEAKKyAjZGVmaW5lIEVOQUJMRV9DUkFTSF9PVkVSUklERVMgMAorIAorIC8qIERlZmluZSB0byAx IGlmIHlvdSBoYXZlIHRoZSBgYmFja3RyYWNlJyBmdW5jdGlvbi4gKi8KKysjaWZkZWYgX19HTElC Q19fCisgI2RlZmluZSBIQVZFX0JBQ0tUUkFDRSAxCisrI2Vsc2UKKysjZGVmaW5lIEhBVkVfQkFD S1RSQUNFIDAKKysjZW5kaWYKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPENy YXNoUmVwb3J0ZXJDbGllbnQuaD4gaGVhZGVyIGZpbGUuICovCisgLyogI3VuZGVmIEhBVkVfQ1JB U0hSRVBPUlRFUkNMSUVOVF9IICovCitAQCAtNTgsNyArNjIsMTEgQEAKKyAjZGVmaW5lIEhBVkVf RVJSTk9fSCAxCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxleGVjaW5mby5o PiBoZWFkZXIgZmlsZS4gKi8KKysjaWZkZWYgX19HTElCQ19fCisgI2RlZmluZSBIQVZFX0VYRUNJ TkZPX0ggMQorKyNlbHNlCisrI2RlZmluZSBIQVZFX0VYRUNJTkZPX0ggMAorKyNlbmRpZgorIAor IC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICov CisgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQorLS0tIGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5j YworKysrIGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZS5jYworQEAgLTI1MSw3ICsyNTMsOSBAQAor IH0KKyAKKyB2b2lkIFN0YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtKHN0ZDo6b3N0cmVhbSogb3Mp IGNvbnN0IHsKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBP dXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgob3MsIG51bGxwdHIpOworKyNlbmRpZgorIH0KKyAKKyBz dGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNvbnN0IHsKK0BAIC0yODEsNyArMjgx LDcgQEAKKyB9Cisgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9TdHJpbmdXaXRoUHJlZml4KGNv bnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKKyAgIHN0ZDo6c3RyaW5nc3RyZWFtIHN0 cmVhbTsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYg ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICBPdXRwdXRUb1N0cmVhbVdp dGhQcmVmaXgoJnN0cmVhbSwgcHJlZml4X3N0cmluZyk7CisgI2VuZGlmCisgICByZXR1cm4gc3Ry ZWFtLnN0cigpOworLS0tIGEvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV91bml0dGVzdC5jYworKysr IGIvYmFzZS9kZWJ1Zy9zdGFja190cmFjZV91bml0dGVzdC5jYworQEAgLTMzLDcgKzMzLDcgQEAK KyB0eXBlZGVmIHRlc3Rpbmc6OlRlc3QgU3RhY2tUcmFjZVRlc3Q7CisgI2VuZGlmCisgCistI2lm ICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmICFkZWZpbmVkKF9f VUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpICYmIGRlZmluZWQoX19HTElCQ19fKQorIC8vIFN0 YWNrVHJhY2U6Ok91dHB1dFRvU3RyZWFtKCkgaXMgbm90IGltcGxlbWVudGVkIHVuZGVyIHVjbGli Yywgbm9yIEFJWC4KKyAvLyBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NzI4CisgCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tdXNsLW5vLW1h bGxpbmZvLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t bXVzbC1uby1tYWxsaW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi5hNThlZTA4YTQzNWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJv bjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbXVzbC1uby1tYWxsaW5mby5wYXRjaApAQCAtMCww ICsxLDEyNSBAQAorU291cmNlOiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL3Bs YWluL2NvbW11bml0eS9jaHJvbWl1bS9uby1tYWxsaW5mby5wYXRjaAorbXVzbCBkb2VzIG5vdCBp bXBsZW1lbnQgbWFsbGluZm8oKS9tYWxsaW5mbzIoKQorKG9yIHJhdGhlciwgbWFsbG9jLW5nLCBt dXNsJ3MgYWxsb2NhdG9yLCBkb2Vzbid0KQorLS0KKy0tLSBhL2Jhc2UvdHJhY2VfZXZlbnQvbWFs bG9jX2R1bXBfcHJvdmlkZXIuY2MKKysrKyBiL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBf cHJvdmlkZXIuY2MKK0BAIC0xODUsNyArMTg1LDYgQEAKKyAjZGVmaW5lIE1BTExJTkZPMl9GT1VO RF9JTl9MSUJDCisgICBzdHJ1Y3QgbWFsbGluZm8yIGluZm8gPSBtYWxsaW5mbzIoKTsKKyAjZW5k aWYKKy0jZW5kaWYgIC8vIGRlZmluZWQoX19HTElCQ19fKSAmJiBkZWZpbmVkKF9fR0xJQkNfUFJF UkVRKQorICNpZiAhZGVmaW5lZChNQUxMSU5GTzJfRk9VTkRfSU5fTElCQykKKyAgIHN0cnVjdCBt YWxsaW5mbyBpbmZvID0gbWFsbGluZm8oKTsKKyAjZW5kaWYKK0BAIC0yMDUsNiArMjA0LDcgQEAK KyAgICAgc3lzX2FsbG9jX2R1bXAtPkFkZFNjYWxhcihNZW1vcnlBbGxvY2F0b3JEdW1wOjprTmFt ZVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5QWxsb2NhdG9yRHVt cDo6a1VuaXRzQnl0ZXMsIGluZm8udW9yZGJsa3MpOworICAgfQorKyNlbmRpZiAgLy8gZGVmaW5l ZChfX0dMSUJDX18pICYmIGRlZmluZWQoX19HTElCQ19QUkVSRVEpCisgfQorICNlbmRpZgorIAor QEAgLTMzOSw3ICszNDAsNyBAQAorICAgICAgICAgICAgICAgICAgICAgICZhbGxvY2F0ZWRfb2Jq ZWN0c19jb3VudCk7CisgI2VsaWYgQlVJTERGTEFHKElTX0ZVQ0hTSUEpCisgLy8gVE9ETyhmdWNo c2lhKTogUG9ydCwgc2VlIGh0dHBzOi8vY3JidWcuY29tLzcwNjU5Mi4KKy0jZWxzZQorKyNlbGlm IGRlZmluZWQoX19HTElCQ19fKQorICAgUmVwb3J0TWFsbGluZm9TdGF0cygvKnBtZD0qL251bGxw dHIsICZ0b3RhbF92aXJ0dWFsX3NpemUsICZyZXNpZGVudF9zaXplLAorICAgICAgICAgICAgICAg ICAgICAgICAmYWxsb2NhdGVkX29iamVjdHNfc2l6ZSwgJmFsbG9jYXRlZF9vYmplY3RzX2NvdW50 KTsKKyAjZW5kaWYKKy0tLSBhL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MK KysrKyBiL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKK0BAIC0xMDUsNyAr MTA1LDcgQEAKKyAKKyAjZW5kaWYgIC8vICFCVUlMREZMQUcoSVNfRlVDSFNJQSkKKyAKKy0jaWYg QlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJVSUxERkxB RyhJU19BTkRST0lEKQorKyNpZiAoQlVJTERGTEFHKElTX0xJTlVYKSAmJiBkZWZpbmVkKF9fR0xJ QkNfXykpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwgQlVJTERGTEFHKElTX0FORFJPSUQp CisgbmFtZXNwYWNlIHsKKyAKKyBzaXplX3QgR2V0TWFsbG9jVXNhZ2VNYWxsaW5mbygpIHsKK0BA IC0xMjMsNyArMTIzLDcgQEAKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlCistI2VuZGlmICAvLyBC VUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwKKysjZW5kaWYg IC8vIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgQlVJTERG TEFHKElTX0NIUk9NRU9TKSB8fAorICAgICAgICAgLy8gQlVJTERGTEFHKElTX0FORFJPSUQpCisg Cisgc2l6ZV90IFByb2Nlc3NNZXRyaWNzOjpHZXRNYWxsb2NVc2FnZSgpIHsKK0BAIC0xMzEsOSAr MTMxLDkgQEAKKyAgIG1hbGxvY19zdGF0aXN0aWNzX3Qgc3RhdHMgPSB7MH07CisgICBtYWxsb2Nf em9uZV9zdGF0aXN0aWNzKG51bGxwdHIsICZzdGF0cyk7CisgICByZXR1cm4gc3RhdHMuc2l6ZV9p bl91c2U7CistI2VsaWYgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01F T1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQorKyNlbGlmIChCVUlMREZMQUcoSVNfTElOVVgp ICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TKSB8fCBCVUlM REZMQUcoSVNfQU5EUk9JRCkKKyAgIHJldHVybiBHZXRNYWxsb2NVc2FnZU1hbGxpbmZvKCk7Cist I2VsaWYgQlVJTERGTEFHKElTX0ZVQ0hTSUEpCisrI2Vsc2UKKyAgIC8vIFRPRE8oZnVjaHNpYSk6 IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6Ly9jcmJ1Zy5jb20vNzM1MDg3LgorICAgcmV0 dXJuIDA7CisgI2VuZGlmCistLS0gLi90aGlyZF9wYXJ0eS90ZmxpdGUvc3JjL3RlbnNvcmZsb3cv bGl0ZS9wcm9maWxpbmcvbWVtb3J5X2luZm8uY2Mub3JpZworKysrIC4vdGhpcmRfcGFydHkvdGZs aXRlL3NyYy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5nL21lbW9yeV9pbmZvLmNjCitAQCAtMzUs NyArMzUsNyBAQAorIAorIE1lbW9yeVVzYWdlIEdldE1lbW9yeVVzYWdlKCkgeworICAgTWVtb3J5 VXNhZ2UgcmVzdWx0OworLSNpZmRlZiBfX2xpbnV4X18KKysjaWYgZGVmaW5lZChfX2xpbnV4X18p ICYmIGRlZmluZWQoX19HTElCQ19fKQorICAgcnVzYWdlIHJlczsKKyAgIGlmIChnZXRydXNhZ2Uo UlVTQUdFX1NFTEYsICZyZXMpID09IDApIHsKKyAgICAgcmVzdWx0Lm1heF9yc3Nfa2IgPSByZXMu cnVfbWF4cnNzOworLS0tIC4vdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2 bS1zdWJ6ZXJvL2xpYi9TdXBwb3J0L1VuaXgvUHJvY2Vzcy5pbmMKKysrKyAuL3RoaXJkX3BhcnR5 L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tc3ViemVyby9saWIvU3VwcG9ydC9Vbml4L1By b2Nlc3MuaW5jLm9yaWcKK0BAIC04NiwxMSArODYsMTEgQEAKKyB9CisKKyBzaXplX3QgUHJvY2Vz czo6R2V0TWFsbG9jVXNhZ2UoKSB7CistI2lmIGRlZmluZWQoSEFWRV9NQUxMSU5GTzIpCisrI2lm IGRlZmluZWQoSEFWRV9NQUxMSU5GTzIpICYmIGRlZmluZWQoX19HTElCQ19fKQorICAgc3RydWN0 IG1hbGxpbmZvMiBtaTsKKyAgIG1pID0gOjptYWxsaW5mbzIoKTsKKyAgIHJldHVybiBtaS51b3Jk YmxrczsKKy0jZWxpZiBkZWZpbmVkKEhBVkVfTUFMTElORk8pCisrI2VsaWYgZGVmaW5lZChIQVZF X01BTExJTkZPKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHN0cnVjdCBtYWxsaW5mbyBtaTsK KyAgIG1pID0gOjptYWxsaW5mbygpOworICAgcmV0dXJuIG1pLnVvcmRibGtzOworCistLS0gLi90 aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvY29uZmlncy9saW51 eC9pbmNsdWRlL2xsdm0vQ29uZmlnL2NvbmZpZy5oLm9yaWcJMjAxOS0wOS0zMCAxMzowMzo0Mi41 NTY4ODA1MzcgLTA0MDAKKysrKyAuL3RoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5 L2xsdm0tMTAuMC9jb25maWdzL2xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgJMjAx OS0wOS0zMCAxMzowNzoyNy45ODk4MjEyMjcgLTA0MDAKK0BAIC0xMjIsNyArMTIyLDkgQEAKKyAv KiAjdW5kZWYgSEFWRV9NQUxMQ1RMICovCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIGBtYWxsaW5mbycgZnVuY3Rpb24uICovCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICNk ZWZpbmUgSEFWRV9NQUxMSU5GTyAxCisrI2VuZGlmCisgCisgLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDxtYWxsb2MuaD4gaGVhZGVyIGZpbGUuICovCisgI2RlZmluZSBIQVZFX01BTExP Q19IIDEKKy0tLSBhL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3Ivc3JjL3BhcnRp dGlvbl9hbGxvYy9zaGltL2FsbG9jYXRvcl9zaGltX2RlZmF1bHRfZGlzcGF0Y2hfdG9fcGFydGl0 aW9uX2FsbG9jLmNjCisrKysgYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3Ny Yy9wYXJ0aXRpb25fYWxsb2Mvc2hpbS9hbGxvY2F0b3Jfc2hpbV9kZWZhdWx0X2Rpc3BhdGNoX3Rv X3BhcnRpdGlvbl9hbGxvYy5jYworQEAgLTcxNyw3ICs3MTcsNyBAQAorIAorICNlbmRpZiAgLy8g IUJVSUxERkxBRyhJU19BUFBMRSkgJiYgIUJVSUxERkxBRyhJU19BTkRST0lEKQorIAorLSNpZiBC VUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykKKysjaWYgMAorIFNI SU1fQUxXQVlTX0VYUE9SVCBzdHJ1Y3QgbWFsbGluZm8gbWFsbGluZm8odm9pZCkgX19USFJPVyB7 CisgICBiYXNlOjpTaW1wbGVQYXJ0aXRpb25TdGF0c0R1bXBlciBhbGxvY2F0b3JfZHVtcGVyOwor ICAgQWxsb2NhdG9yKCktPkR1bXBTdGF0cygibWFsbG9jIiwgdHJ1ZSwgJmFsbG9jYXRvcl9kdW1w ZXIpOworLS0tIGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0 aW9uX2FsbG9jL3NoaW0vYWxsb2NhdG9yX3NoaW1fZGVmYXVsdF9kaXNwYXRjaF90b19wYXJ0aXRp b25fYWxsb2NfdW5pdHRlc3QuY2MKKysrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxv Y2F0b3Ivc3JjL3BhcnRpdGlvbl9hbGxvYy9zaGltL2FsbG9jYXRvcl9zaGltX2RlZmF1bHRfZGlz cGF0Y2hfdG9fcGFydGl0aW9uX2FsbG9jX3VuaXR0ZXN0LmNjCitAQCAtMjQsNyArMjQsNyBAQAor ICNpZiBCVUlMREZMQUcoVVNFX1BBUlRJVElPTl9BTExPQ19BU19NQUxMT0MpCisgCisgLy8gUGxh dGZvcm1zIG9uIHdoaWNoIHdlIG92ZXJyaWRlIHdlYWsgbGliYyBzeW1ib2xzLgorLSNpZiBCVUlM REZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykKKysjaWYgKEJVSUxERkxB RyhJU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBCVUlMREZMQUcoSVNfQ0hST01F T1MpCisgCisgTk9JTkxJTkUgdm9pZCBGcmVlRm9yVGVzdCh2b2lkKiBkYXRhKSB7CisgICBmcmVl KGRhdGEpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hy b21pdW0tbXVzbC1wYXJ0aXRpb24tYXRmb3JrLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tbXVzbC1wYXJ0aXRpb24tYXRmb3JrLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjM1ZDgxMDA1NWZiYjUKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1tdXNs LXBhcnRpdGlvbi1hdGZvcmsucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvYmFzZS9hbGxv Y2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9zcmMvcGFydGl0aW9uX2FsbG9jL3BhcnRpdGlvbl9y b290LmNjCisrKysgYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3NyYy9wYXJ0 aXRpb25fYWxsb2MvcGFydGl0aW9uX3Jvb3QuY2MKK0BAIC0yMzksNyArMjM5LDcgQEAKKyAgIGlm ICghZ19nbG9iYWxfaW5pdF9jYWxsZWQuY29tcGFyZV9leGNoYW5nZV9zdHJvbmcoZXhwZWN0ZWQs IHRydWUpKQorICAgICByZXR1cm47CisgCistI2lmIEJVSUxERkxBRyhJU19MSU5VWCkgfHwgQlVJ TERGTEFHKElTX0NIUk9NRU9TKQorKyNpZiAoQlVJTERGTEFHKElTX0xJTlVYKSAmJiBkZWZpbmVk KF9fR0xJQkNfXykpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykKKyAgIC8vIFdoZW4gZm9yaygp IGlzIGNhbGxlZCwgb25seSB0aGUgY3VycmVudCB0aHJlYWQgY29udGludWVzIHRvIGV4ZWN1dGUg aW4gdGhlCisgICAvLyBjaGlsZCBwcm9jZXNzLiBJZiB0aGUgbG9jayBpcyBoZWxkLCBidXQgKm5v dCogYnkgdGhpcyB0aHJlYWQgd2hlbiBmb3JrKCkgaXMKKyAgIC8vIGNhbGxlZCwgd2UgaGF2ZSBh IGRlYWRsb2NrLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tbXVzbC12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaCBi L3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW11c2wtdjgtbW9ub3Rv bmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMC4uNTZhNGFkMWM4MDdlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW11c2wtdjgtbW9ub3RvbmljLXB0 aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorVXNlIG1vbm90b25p YyBjbG9jayBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCB3aXRoIG11c2wgdG9vLgorCitkaWZm IC0tZ2l0IGEvdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjIGIvdjgv c3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCitpbmRleCA1ZWE3MDgzLi5j MTMwMjdlIDEwMDY0NAorLS0tIGEvdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlh YmxlLmNjCisrKysgYi92OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MK K0BAIC0xNiw3ICsxNiw3IEBAIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBDb25kaXRpb25WYXJpYWJs ZTo6Q29uZGl0aW9uVmFyaWFibGUoKSB7CisgI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05F VEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKKy0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJD X0dMSUJDKSkKKysgICAgIFY4X09TX0xJTlVYKQorICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBh bmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCisgICAvLyBzb3VyY2Ug Zm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4K KyAgIHB0aHJlYWRfY29uZGF0dHJfdCBhdHRyOworQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBDb25k aXRpb25WYXJpYWJsZTo6V2FpdEZvcihNdXRleCogbXV0ZXgsIGNvbnN0IFRpbWVEZWx0YSYgcmVs X3RpbWUpIHsKKyAgICAgICAmbmF0aXZlX2hhbmRsZV8sICZtdXRleC0+bmF0aXZlX2hhbmRsZSgp LCAmdHMpOworICNlbHNlCisgI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8fCBW OF9PU19PUEVOQlNEIHx8IFwKKy0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJDKSkK KysgICAgIFY4X09TX0xJTlVYKQorICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGludXgg d2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCisgICAvLyBzb3VyY2UgZm9yIHB0aHJl YWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KKyAgIHJlc3Vs dCA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tbm8tZ2V0Y29udGV4dC5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW5vLWdldGNvbnRl eHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZjliYzJl MDJkMjQ1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRj aGVzL2Nocm9taXVtLW5vLWdldGNvbnRleHQucGF0Y2gKQEAgLTAsMCArMSwyNyBAQAorLS0tIGEv dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4 Y2VwdGlvbl9oYW5kbGVyLmNjCTIwMTUtMTItMDYgMDk6NTk6NTUuNTU0NTM2NjQ2ICswMTAwCisr KysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRs ZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MJMjAxNS0xMi0wNiAxMDowMToxNi44MTgyMzgwMzUgKzAx MDAKK0BAIC00NzcsNyArNDc3LDkgQEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpTaW11bGF0ZVNp Z25hbERlbAorICAgc2lnaW5mby5zaV9jb2RlID0gU0lfVVNFUjsKKyAgIHNpZ2luZm8uc2lfcGlk ID0gZ2V0cGlkKCk7CisgICB1Y29udGV4dF90IGNvbnRleHQ7CisrI2lmIGRlZmluZWQoX19HTElC Q19fKQorICAgZ2V0Y29udGV4dCgmY29udGV4dCk7CisrI2VuZGlmCisgICByZXR1cm4gSGFuZGxl U2lnbmFsKHNpZywgJnNpZ2luZm8sICZjb250ZXh0KTsKKyB9CisgCitAQCAtNjQ3LDkgKzY0OSwx NCBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7CisgICBzeXNfcHJj dGwoUFJfU0VUX0RVTVBBQkxFLCAxLCAwLCAwLCAwKTsKKyAKKyAgIENyYXNoQ29udGV4dCBjb250 ZXh0OworKworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGludCBnZXRjb250ZXh0X3Jlc3Vs dCA9IGdldGNvbnRleHQoJmNvbnRleHQuY29udGV4dCk7CisgICBpZiAoZ2V0Y29udGV4dF9yZXN1 bHQpCisgICAgIHJldHVybiBmYWxzZTsKKysjZWxzZQorKyAgcmV0dXJuIGZhbHNlOworKyNlbmRp ZgorIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAgLy8gSW4gQ1BVRmlsbEZyb21VQ29udGV4 dCBpbiBtaW5pZHVtcHdyaXRlci5jYyB0aGUgc3RhY2sgcG9pbnRlciBpcyByZXRyaWV2ZWQKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW9sZC1j bGFuZy5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLW9s ZC1jbGFuZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5i NzczZDA5ZmJkN2RmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVz L3BhdGNoZXMvY2hyb21pdW0tb2xkLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBh L2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgorKysrIGIvYnVpbGQvY29uZmlnL2NvbXBp bGVyL0JVSUxELmduCitAQCAtMTI4OCw3ICsxMjg4LDcgQEAKKyAgICAgfSBlbHNlIHsKKyAgICAg ICAjIC1mZmlsZS1jb21waWxhdGlvbi1kaXIgaXMgYW4gYWxpYXMgZm9yIGJvdGggLWZkZWJ1Zy1j b21waWxhdGlvbi1kaXI9CisgICAgICAgIyBhbmQgLWZjb3ZlcmFnZS1jb21waWxhdGlvbi1kaXI9 LgorLSAgICAgIGNmbGFncyArPSBbICItZmZpbGUtY29tcGlsYXRpb24tZGlyPS4iIF0KKysgICAg ICBjZmxhZ3MgKz0gWyAiLWZkZWJ1Zy1jb21waWxhdGlvbi1kaXI9LiIgXQorICAgICAgIHN3aWZ0 ZmxhZ3MgKz0gWyAiLWZpbGUtY29tcGlsYXRpb24tZGlyPS4iIF0KKyAgICAgfQorICAgICBpZiAo IWlzX3dpbikgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMv Y2hyb21pdW0tcGVyZmV0dG8tbGlic3RkYysrLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2Zp bGVzL3BhdGNoZXMvY2hyb21pdW0tcGVyZmV0dG8tbGlic3RkYysrLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjMxZmY5ZDk1YmI1MmEKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1wZXJmZXR0 by1saWJzdGRjKysucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIGEvdGhpcmRfcGFydHkvcGVy ZmV0dG8vc3JjL3RyYWNlX3Byb2Nlc3Nvci9wZXJmZXR0b19zcWwvZW5naW5lL2NyZWF0ZWRfZnVu Y3Rpb24uY2MKKysrKyBiL3RoaXJkX3BhcnR5L3BlcmZldHRvL3NyYy90cmFjZV9wcm9jZXNzb3Iv cGVyZmV0dG9fc3FsL2VuZ2luZS9jcmVhdGVkX2Z1bmN0aW9uLmNjCitAQCAtMTA3LDcgKzEwNyw3 IEBACisgICAvLyB0aGUgZGVzdHJ1Y3RvcnMgcnVuIGNvcnJlY3RseSBmb3Igbm9uLXRyaXZpYWwg bWVtYmVycyBvZiB0aGUKKyAgIC8vIHVuaW9uLgorICAgdXNpbmcgRGF0YSA9CistICAgICAgc3Rk Ojp2YXJpYW50PGludDY0X3QsIGRvdWJsZSwgT3duZWRTdHJpbmcsIE93bmVkQnl0ZXMsIG51bGxw dHJfdD47CisrICAgICAgc3RkOjp2YXJpYW50PGludDY0X3QsIGRvdWJsZSwgT3duZWRTdHJpbmcs IE93bmVkQnl0ZXMsIHN0ZDo6bnVsbHB0cl90PjsKKyAKKyAgIFN0b3JlZFNxbFZhbHVlKFNxbFZh bHVlIHZhbHVlKSB7CisgICAgIHN3aXRjaCAodmFsdWUudHlwZSkgeworQEAgLTEzMiw3ICsxMzIs NyBAQAorICAgfQorIAorICAgU3FsVmFsdWUgQXNTcWxWYWx1ZSgpIHsKKy0gICAgaWYgKHN0ZDo6 aG9sZHNfYWx0ZXJuYXRpdmU8bnVsbHB0cl90PihkYXRhKSkgeworKyAgICBpZiAoc3RkOjpob2xk c19hbHRlcm5hdGl2ZTxzdGQ6Om51bGxwdHJfdD4oZGF0YSkpIHsKKyAgICAgICByZXR1cm4gU3Fs VmFsdWUoKTsKKyAgICAgfSBlbHNlIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPGludDY0X3Q+ KGRhdGEpKSB7CisgICAgICAgcmV0dXJuIFNxbFZhbHVlOjpMb25nKHN0ZDo6Z2V0PGludDY0X3Q+ KGRhdGEpKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLXJlZW5hYmxlLWxpbnV4LWk2ODYtYnVpbGRzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJv bjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tcmVlbmFibGUtbGludXgtaTY4Ni1idWlsZHMucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uYjE4NzE4ZTQzNjQ5 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLXJlZW5hYmxlLWxpbnV4LWk2ODYtYnVpbGRzLnBhdGNoCkBAIC0wLDAgKzEsMTkgQEAK Ky0tLSBhL0JVSUxELmduLm9yaWcKKysrKyBiL0JVSUxELmduCitAQCAtMTYxNiwxNiArMTYxNiw2 IEBACisgICB9CisgfQorIAorLSMgVE9ETyhjYXNzZXcpOiBBZGQgbW9yZSBPUydzIHRoYXQgZG9u J3Qgc3VwcG9ydCB4ODYuCistaXNfdmFsaWRfeDg2X3RhcmdldCA9CistICAgIHRhcmdldF9vcyAh PSAiaW9zIiAmJiB0YXJnZXRfb3MgIT0gIm1hYyIgJiYKKy0gICAgKHRhcmdldF9vcyAhPSAibGlu dXgiIHx8IHVzZV9saWJmdXp6ZXIgfHwgIWJ1aWxkX3dpdGhfY2hyb21pdW0pCistCistIyBOb3Rl OiB2OF90YXJnZXRfY3B1ID09IGFybSBhbGxvd3MgdXNpbmcgdGhlIFY4IGFybSBzaW11bGF0b3Ig b24geDg2IGZvciBmdXp6aW5nLgorLWFzc2VydCgKKy0gICAgaXNfdmFsaWRfeDg2X3RhcmdldCB8 fCB0YXJnZXRfY3B1ICE9ICJ4ODYiIHx8IHY4X3RhcmdldF9jcHUgPT0gImFybSIsCistICAgICIn dGFyZ2V0X2NwdT14ODYnIGlzIG5vdCBzdXBwb3J0ZWQgZm9yICd0YXJnZXRfb3M9JHRhcmdldF9v cycuIENvbnNpZGVyIG9taXR0aW5nICd0YXJnZXRfY3B1JyAoZGVmYXVsdCkgb3IgdXNpbmcgJ3Rh cmdldF9jcHU9eDY0JyBpbnN0ZWFkLiIpCistCisgZ3JvdXAoImNocm9taXVtX2J1aWxkZXJfcGVy ZiIpIHsKKyAgIHRlc3Rvbmx5ID0gdHJ1ZQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJv bjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tcmVtb3ZlLXN5cy1jZGVmcy1pbmNsdWRlcy5wYXRj aCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXJlbW92ZS1zeXMt Y2RlZnMtaW5jbHVkZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwMC4uMDAzNDQwNzNmNDYxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24y OC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXJlbW92ZS1zeXMtY2RlZnMtaW5jbHVkZXMucGF0Y2gK QEAgLTAsMCArMSwzOSBAQAorLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29t cGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvY29tcGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorQEAgLTE3LDggKzE3LDYgQEAKKyAKKyAjaW5j bHVkZV9uZXh0IDxzeXMvcHRyYWNlLmg+CisgCistI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorLQor IC8vIGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIyNDMz CisgI2lmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmICFkZWZpbmVkKFBUX0dF VF9USFJFQURfQVJFQSkgJiYgXAorICAgICBkZWZpbmVkKF9fR0xJQkNfXykKKy0tLSBhL3RoaXJk X3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKKysrKyBiL3RoaXJkX3BhcnR5 L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKK0BAIC0xOSwxMiArMTksMTMgQEAKKyAj aWZuZGVmIF9fU1lTX0NPUkVfU1lOQ19ICisgI2RlZmluZSBfX1NZU19DT1JFX1NZTkNfSAorIAor LSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisgI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+CisgCistX19CRUdJTl9ERUNMUworKyNpZmRlZiBfX2NwbHVzcGx1 cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorIAorIHN0cnVjdCBzeW5jX2xlZ2FjeV9tZXJnZV9k YXRhIHsKKyAgaW50MzJfdCBmZDI7CitAQCAtMTU4LDYgKzE1OSw4IEBACisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzeW5jX3B0X2luZm8gKml0cik7Cisgdm9pZCBz eW5jX2ZlbmNlX2luZm9fZnJlZShzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEgKmluZm8pOwor IAorLV9fRU5EX0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorIAorICNl bmRpZiAvKiBfX1NZU19DT1JFX1NZTkNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJv bjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0 Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1yZXZlcnQtZHJv cC1vZi1zeXN0ZW0tamF2YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwLi4xMTdhNTBmOGU0ZjYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJv bjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0 Y2gKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB3YXMgZHJvcHBlZCBmb3Igc29tZSByZWFzb24gaW4g Njk1MWMzN2NlY2QwNTk3OWIyMzJhMzllNWMxMGU2MzQ2YTBmNzRlZgorLS0tIGEvdGhpcmRfcGFy dHkvY2xvc3VyZV9jb21waWxlci9jb21waWxlci5weQkyMDIxLTA1LTIwIDA0OjE3OjUzLjAwMDAw MDAwMCArMDIwMAorKysrIGIvdGhpcmRfcGFydHkvY2xvc3VyZV9jb21waWxlci9jb21waWxlci5w eQkyMDIxLTA1LTIwIDA0OjE3OjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTEzLDggKzEzLDkgQEAK KyAKKyAKKyBfQ1VSUkVOVF9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmls ZV9fKSkKKy1fSkFWQV9QQVRIID0gb3MucGF0aC5qb2luKF9DVVJSRU5UX0RJUiwgIi4uIiwgImpk ayIsICJjdXJyZW50IiwgImJpbiIsICJqYXZhIikKKy1hc3NlcnQgb3MucGF0aC5pc2ZpbGUoX0pB VkFfUEFUSCksICJqYXZhIG9ubHkgYWxsb3dlZCBpbiBhbmRyb2lkIGJ1aWxkcyIKKytfSkFWQV9C SU4gPSAiamF2YSIKKytfSkRLX1BBVEggPSBvcy5wYXRoLmpvaW4oX0NVUlJFTlRfRElSLCAiLi4i LCAiamRrIiwgImN1cnJlbnQiLCAiYmluIiwgImphdmEiKQorK19KQVZBX1BBVEggPSBfSkRLX1BB VEggaWYgb3MucGF0aC5pc2ZpbGUoX0pES19QQVRIKSBlbHNlIF9KQVZBX0JJTgorIAorIGNsYXNz IENvbXBpbGVyKG9iamVjdCk6CisgICAiIiJSdW5zIHRoZSBDbG9zdXJlIGNvbXBpbGVyIG9uIGdp dmVuIHNvdXJjZSBmaWxlcyB0byB0eXBlY2hlY2sgdGhlbQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9l bGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNo IGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tc2FuZGJveC1tZW1i YXJyaWVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjU1 ZWYyNTE2MTk0YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKQEAgLTAsMCArMSwxMCBA QAorLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YworKysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5j YworQEAgLTM3MCw2ICszNzAsNyBAQAorICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9f TlJfZXhpdDoKKyAgICAgY2FzZSBfX05SX2V4aXRfZ3JvdXA6CisrICAgIGNhc2UgX19OUl9tZW1i YXJyaWVyOgorICAgICBjYXNlIF9fTlJfd2FpdDQ6CisgICAgIGNhc2UgX19OUl93YWl0aWQ6Cisg I2lmIGRlZmluZWQoX19pMzg2X18pCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmls ZXMvcGF0Y2hlcy9jaHJvbWl1bS1zbmRpby5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxl cy9wYXRjaGVzL2Nocm9taXVtLXNuZGlvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAuLjA3N2NlYWE4YWNiY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zbmRpby5wYXRjaApAQCAtMCwwICsx LDg3NyBAQAorZGlmZiAtTmF1ciBjaHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9CVUlM RC5nbiBjaHJvbWl1bS04My4wLjQxMDMuOTcvbWVkaWEvQlVJTEQuZ24KKy0tLSBhL21lZGlhL0JV SUxELmduCTIwMjAtMDYtMDMgMjA6NDA6MjYuMDAwMDAwMDAwICswMjAwCisrKysgYi9tZWRpYS9C VUlMRC5nbgkyMDIxLTA2LTEzIDE3OjMyOjI4LjUxMDM5NTk3NSArMDIwMAorQEAgLTY1LDYgKzY1 LDkgQEAKKyAgICAgICBkZWZpbmVzICs9IFsgIkRMT1BFTl9QVUxTRUFVRElPIiBdCisgICAgIH0K KyAgIH0KKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgZGVmaW5lcyArPSBbICJVU0VfU05ESU8i IF0KKysgIH0KKyAgIGlmICh1c2VfY3JhcykgeworICAgICBkZWZpbmVzICs9IFsgIlVTRV9DUkFT IiBdCisgICB9CitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1 ZGlvL0JVSUxELmduIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9CVUlMRC5nbgor LS0tIGEvbWVkaWEvYXVkaW8vQlVJTEQuZ24JMjAyMC0wNi0wMyAyMDozOTozNy4wMDAwMDAwMDAg KzAyMDAKKysrKyBiL21lZGlhL2F1ZGlvL0JVSUxELmduCTIwMjAtMDYtMTMgMTc6MzI6MjguNTEx Mzk1OTY5ICswMjAwCitAQCAtMjM2LDYgKzIzNiwxNyBAQAorICAgICBzb3VyY2VzICs9IFsgImxp bnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MiIF0KKyAgIH0KKyAKKysgIGlmICh1c2Vfc25kaW8p IHsKKysgICAgbGlicyArPSBbICJzbmRpbyIgXQorKyAgICBzb3VyY2VzICs9IFsKKysgICAgICAi c25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0 LmNjIiwKKysgICAgICAic25kaW8vc25kaW9faW5wdXQuaCIsCisrICAgICAgInNuZGlvL3NuZGlv X291dHB1dC5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5oIgorKyAgICBdCisrICB9 CisrCisgICBpZiAodXNlX2Fsc2EpIHsKKyAgICAgbGlicyArPSBbICJhc291bmQiIF0KKyAgICAg c291cmNlcyArPSBbCitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlh L2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MgY2hyb21pdW0tODMuMC40MTAzLjk3 L21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKKy0tLSBhL21lZGlhL2F1 ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MJMjAyMC0wNi0wMyAyMDozOTozNy4wMDAw MDAwMDAgKzAyMDAKKysrKyBiL21lZGlhL2F1ZGlvL2xpbnV4L2F1ZGlvX21hbmFnZXJfbGludXgu Y2MJMjAyMC0wNi0xMyAxODowOTo0My42MjMzMzMxNjcgKzAyMDAKK0BAIC0xOSw2ICsxOSwxMSBA QAorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9hdWRpb19tYW5hZ2VyX3B1bHNlLmgiCisg I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3B1bHNlL3B1bHNlX3V0aWwuaCIKKyAjZW5kaWYKKysjaWYg ZGVmaW5lZChVU0VfU05ESU8pCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21h bmFnZXJfc25kaW8uaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQu aCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrI2VuZGlm CisgCisgbmFtZXNwYWNlIG1lZGlhIHsKKyAKKyBzdGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlv TWFuYWdlcj4gQ3JlYXRlQXVkaW9NYW5hZ2VyKAorQEAgLTM5LDYgKzQ1LDE2IEBACisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5 KTsKKyAgIH0KKyAKKysjaWYgZGVmaW5lZChVU0VfU05ESU8pCisrICBzdHJ1Y3Qgc2lvX2hkbCAq aGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1BMQVksIDApOworKyAgaWYgKGhkbCAhPSBO VUxMKSB7CisrICAgIHNpb19jbG9zZShoZGwpOworKyAgICBVTUFfSElTVE9HUkFNX0VOVU1FUkFU SU9OKCJNZWRpYS5MaW51eEF1ZGlvSU8iLCBrU25kaW8sIGtBdWRpb0lPTWF4ICsgMSk7CisrICAg IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvTWFuYWdlclNuZGlvPihzdGQ6Om1vdmUoYXVk aW9fdGhyZWFkKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KTsKKysgIH0KKysjZW5kaWYKKysKKyAjaWYgZGVmaW5l ZChVU0VfQ1JBUykKKyAgIGlmIChiYXNlOjpDb21tYW5kTGluZTo6Rm9yQ3VycmVudFByb2Nlc3Mo KS0+SGFzU3dpdGNoKHN3aXRjaGVzOjprVXNlQ3JhcykpIHsKKyAgICAgVU1BX0hJU1RPR1JBTV9F TlVNRVJBVElPTigiTWVkaWEuTGludXhBdWRpb0lPIiwga0NyYXMsIGtBdWRpb0lPTWF4ICsgMSk7 CitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL3NuZGlv L2F1ZGlvX21hbmFnZXJfc25kaW8uY2MgY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlv L3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uY2MKKy0tLSBhL21lZGlhL2F1ZGlvL3NuZGlvL2F1 ZGlvX21hbmFnZXJfc25kaW8uY2MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBiL21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uY2MJMjAyMC0wNi0x MyAxNzozMjoyOC41MTEzOTU5NjkgKzAyMDAKK0BAIC0wLDAgKzEsMTQ4IEBACisrLy8gQ29weXJp Z2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNp bmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrCisrI2lu Y2x1ZGUgImJhc2UvbWV0cmljcy9oaXN0b2dyYW1fbWFjcm9zLmgiCisrI2luY2x1ZGUgImJhc2Uv bWVtb3J5L3B0cl91dGlsLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9k ZXNjcmlwdGlvbi5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19vdXRwdXRfZGlzcGF0 Y2hlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorKyNp bmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuaCIKKysjaW5jbHVkZSAibWVk aWEvYmFzZS9saW1pdHMuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9zd2l0Y2hlcy5o IgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrCisrLy8gTWF4aW11bSBudW1iZXIgb2Ygb3V0 cHV0IHN0cmVhbXMgdGhhdCBjYW4gYmUgb3BlbiBzaW11bHRhbmVvdXNseS4KKytzdGF0aWMgY29u c3QgaW50IGtNYXhPdXRwdXRTdHJlYW1zID0gNDsKKysKKysvLyBEZWZhdWx0IHNhbXBsZSByYXRl IGZvciBpbnB1dCBhbmQgb3V0cHV0IHN0cmVhbXMuCisrc3RhdGljIGNvbnN0IGludCBrRGVmYXVs dFNhbXBsZVJhdGUgPSA0ODAwMDsKKysKKyt2b2lkIEFkZERlZmF1bHREZXZpY2UoQXVkaW9EZXZp Y2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisrICBEQ0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0eSgp KTsKKysgIGRldmljZV9uYW1lcy0+cHVzaF9mcm9udChBdWRpb0RldmljZU5hbWU6OkNyZWF0ZURl ZmF1bHQoKSk7CisrfQorKworK2Jvb2wgQXVkaW9NYW5hZ2VyU25kaW86Okhhc0F1ZGlvT3V0cHV0 RGV2aWNlcygpIHsKKysgIHJldHVybiB0cnVlOworK30KKysKKytib29sIEF1ZGlvTWFuYWdlclNu ZGlvOjpIYXNBdWRpb0lucHV0RGV2aWNlcygpIHsKKysgIHJldHVybiB0cnVlOworK30KKysKKyt2 b2lkIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRBdWRpb0lucHV0RGV2aWNlTmFtZXMoCisrICAgIEF1 ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgRENIRUNLKGRldmljZV9uYW1lcy0+ ZW1wdHkoKSk7CisrICBBZGREZWZhdWx0RGV2aWNlKGRldmljZV9uYW1lcyk7CisrfQorKworK3Zv aWQgQXVkaW9NYW5hZ2VyU25kaW86OkdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoCisrICAgIEF1 ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgeworKyAgQWRkRGVmYXVsdERldmljZShkZXZp Y2VfbmFtZXMpOworK30KKysKKytjb25zdCBjaGFyKiBBdWRpb01hbmFnZXJTbmRpbzo6R2V0TmFt ZSgpIHsKKysgIHJldHVybiAiU05ESU8iOworK30KKysKKytBdWRpb1BhcmFtZXRlcnMgQXVkaW9N YW5hZ2VyU25kaW86OkdldElucHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgY29uc3Qgc3RkOjpz dHJpbmcmIGRldmljZV9pZCkgeworKyAgc3RhdGljIGNvbnN0IGludCBrRGVmYXVsdElucHV0QnVm ZmVyU2l6ZSA9IDEwMjQ7CisrCisrICBpbnQgdXNlcl9idWZmZXJfc2l6ZSA9IEdldFVzZXJCdWZm ZXJTaXplKCk7CisrICBpbnQgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplID8KKysgICAg ICB1c2VyX2J1ZmZlcl9zaXplIDoga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemU7CisrCisrICByZXR1 cm4gQXVkaW9QYXJhbWV0ZXJzKAorKyAgICAgIEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xP V19MQVRFTkNZLCBDSEFOTkVMX0xBWU9VVF9TVEVSRU8sCisrICAgICAga0RlZmF1bHRTYW1wbGVS YXRlLCBidWZmZXJfc2l6ZSk7CisrfQorKworK0F1ZGlvTWFuYWdlclNuZGlvOjpBdWRpb01hbmFn ZXJTbmRpbyhzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVhZCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSogYXVk aW9fbG9nX2ZhY3RvcnkpCisrICAgIDogQXVkaW9NYW5hZ2VyQmFzZShzdGQ6Om1vdmUoYXVkaW9f dGhyZWFkKSwKKysgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KSB7Cisr ICBETE9HKFdBUk5JTkcpIDw8ICJBdWRpb01hbmFnZXJTbmRpbyI7CisrICBTZXRNYXhPdXRwdXRT dHJlYW1zQWxsb3dlZChrTWF4T3V0cHV0U3RyZWFtcyk7CisrfQorKworK0F1ZGlvTWFuYWdlclNu ZGlvOjp+QXVkaW9NYW5hZ2VyU25kaW8oKSB7CisrICBTaHV0ZG93bigpOworK30KKysKKytBdWRp b091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMaW5lYXJPdXRwdXRTdHJlYW0o CisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBMb2dDYWxs YmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJ T19QQ01fTElORUFSLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VPdXRwdXRTdHJl YW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlv OjpNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBwYXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0 IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERMT0dfSUYoRVJST1IsICFkZXZpY2Vf aWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworKyAgRENIRUNLX0VRKEF1ZGlvUGFy YW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0 dXJuIE1ha2VPdXRwdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVhbSog QXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMaW5lYXJJbnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVk aW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQs CisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShB dWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIsIHBhcmFtcy5mb3JtYXQoKSk7CisrICBy ZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0q IEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAgICBjb25z dCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmlj ZV9pZCwKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNL X0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBwYXJhbXMuZm9ybWF0 KCkpOworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb1Bh cmFtZXRlcnMgQXVkaW9NYW5hZ2VyU25kaW86OkdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBhcmFt ZXRlcnMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkLAorKyAgICBj b25zdCBBdWRpb1BhcmFtZXRlcnMmIGlucHV0X3BhcmFtcykgeworKyAgLy8gVE9ETyh0b21taSk6 IFN1cHBvcnQgfG91dHB1dF9kZXZpY2VfaWR8LgorKyAgRExPR19JRihFUlJPUiwgIW91dHB1dF9k ZXZpY2VfaWQuZW1wdHkoKSkgPDwgIk5vdCBpbXBsZW1lbnRlZCEiOworKyAgc3RhdGljIGNvbnN0 IGludCBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemUgPSAyMDQ4OworKworKyAgQ2hhbm5lbExheW91 dCBjaGFubmVsX2xheW91dCA9IENIQU5ORUxfTEFZT1VUX1NURVJFTzsKKysgIGludCBzYW1wbGVf cmF0ZSA9IGtEZWZhdWx0U2FtcGxlUmF0ZTsKKysgIGludCBidWZmZXJfc2l6ZSA9IGtEZWZhdWx0 T3V0cHV0QnVmZmVyU2l6ZTsKKysgIGlmIChpbnB1dF9wYXJhbXMuSXNWYWxpZCgpKSB7CisrICAg IHNhbXBsZV9yYXRlID0gaW5wdXRfcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICAgIGNoYW5uZWxf bGF5b3V0ID0gaW5wdXRfcGFyYW1zLmNoYW5uZWxfbGF5b3V0KCk7CisrICAgIGJ1ZmZlcl9zaXpl ID0gc3RkOjptaW4oYnVmZmVyX3NpemUsIGlucHV0X3BhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigp KTsKKysgIH0KKysKKysgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZlclNpemUo KTsKKysgIGlmICh1c2VyX2J1ZmZlcl9zaXplKQorKyAgICBidWZmZXJfc2l6ZSA9IHVzZXJfYnVm ZmVyX3NpemU7CisrCisrICByZXR1cm4gQXVkaW9QYXJhbWV0ZXJzKAorKyAgICAgIEF1ZGlvUGFy YW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZLCBjaGFubmVsX2xheW91dCwKKysgICAgICBz YW1wbGVfcmF0ZSwgYnVmZmVyX3NpemUpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRp b01hbmFnZXJTbmRpbzo6TWFrZUlucHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRl cnMmIHBhcmFtcykgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZUlucHV0U3RyZWFtIjsKKysg IHJldHVybiBuZXcgU25kaW9BdWRpb0lucHV0U3RyZWFtKHRoaXMsCisrICAgICAgICAgICAgIEF1 ZGlvRGV2aWNlRGVzY3JpcHRpb246OmtEZWZhdWx0RGV2aWNlSWQsIHBhcmFtcyk7CisrfQorKwor K0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZU91dHB1dFN0cmVhbSgK KysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERMT0coV0FSTklORykg PDwgIk1ha2VPdXRwdXRTdHJlYW0iOworKyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtKHBhcmFtcywgdGhpcyk7CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorZGlmZiAt TmF1ciBjaHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19t YW5hZ2VyX3NuZGlvLmggY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL3NuZGlvL2F1 ZGlvX21hbmFnZXJfc25kaW8uaAorLS0tIGEvbWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdl cl9zbmRpby5oCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgYi9tZWRp YS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgJMjAyMC0wNi0xMyAxNzozMjoyOC41 MTEzOTU5NjkgKzAyMDAKK0BAIC0wLDAgKzEsNjUgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIg VGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRo aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNh biBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9B VURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19T TkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCisrCisrI2luY2x1ZGUgPHNldD4KKysKKysjaW5j bHVkZSAiYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5o IgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS9yZWZfY291bnRlZC5oIgorKyNpbmNsdWRlICJiYXNl L3RocmVhZGluZy90aHJlYWQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdl cl9iYXNlLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBNRURJQV9FWFBPUlQg QXVkaW9NYW5hZ2VyU25kaW8gOiBwdWJsaWMgQXVkaW9NYW5hZ2VyQmFzZSB7CisrIHB1YmxpYzoK KysgIEF1ZGlvTWFuYWdlclNuZGlvKHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9f dGhyZWFkLAorKyAgICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19m YWN0b3J5KTsKKysgIH5BdWRpb01hbmFnZXJTbmRpbygpIG92ZXJyaWRlOworKworKyAgLy8gSW1w bGVtZW50YXRpb24gb2YgQXVkaW9NYW5hZ2VyLgorKyAgYm9vbCBIYXNBdWRpb091dHB1dERldmlj ZXMoKSBvdmVycmlkZTsKKysgIGJvb2wgSGFzQXVkaW9JbnB1dERldmljZXMoKSBvdmVycmlkZTsK KysgIHZvaWQgR2V0QXVkaW9JbnB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmlj ZV9uYW1lcykgb3ZlcnJpZGU7CisrICB2b2lkIEdldEF1ZGlvT3V0cHV0RGV2aWNlTmFtZXMoQXVk aW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsKKysgIEF1ZGlvUGFyYW1ldGVy cyBHZXRJbnB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRl dmljZV9pZCkgb3ZlcnJpZGU7CisrICBjb25zdCBjaGFyKiBHZXROYW1lKCkgb3ZlcnJpZGU7Cisr CisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb01hbmFnZXJCYXNlLgorKyAgQXVkaW9PdXRw dXRTdHJlYW0qIE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJh bWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykg b3ZlcnJpZGU7CisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJl YW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qg c3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2Nh bGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VMaW5lYXJJbnB1dFN0 cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25z dCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2df Y2FsbGJhY2spIG92ZXJyaWRlOworKyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUxvd0xhdGVuY3lJ bnB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAg ICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNr JiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKworKyBwcm90ZWN0ZWQ6CisrICBBdWRpb1BhcmFt ZXRlcnMgR2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgICBjb25zdCBz dGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCwKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRl cnMmIGlucHV0X3BhcmFtcykgb3ZlcnJpZGU7CisrCisrIHByaXZhdGU6CisrICAvLyBDYWxsZWQg YnkgTWFrZUxpbmVhck91dHB1dFN0cmVhbSBhbmQgTWFrZUxvd0xhdGVuY3lPdXRwdXRTdHJlYW0u CisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZU91dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFt ZXRlcnMmIHBhcmFtcyk7CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlSW5wdXRTdHJlYW0oY29u c3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworKworKyAgRElTQUxMT1dfQ09QWV9BTkRfQVNT SUdOKEF1ZGlvTWFuYWdlclNuZGlvKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQor KworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19IXwor ZGlmZiAtTmF1ciBjaHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9hdWRpby9zbmRpby9z bmRpb19pbnB1dC5jYyBjaHJvbWl1bS04My4wLjQxMDMuOTcvbWVkaWEvYXVkaW8vc25kaW8vc25k aW9faW5wdXQuY2MKKy0tLSBhL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgYi9tZWRpYS9hdWRpby9zbmRpby9z bmRpb19pbnB1dC5jYwkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAs MCArMSwyMDAgQEAKKysvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs IHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJ Q0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAiYmFzZS9iaW5kLmgiCisrI2luY2x1ZGUgImJhc2Uv bG9nZ2luZy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJtZWRpYS9i YXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25k aW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19t YW5hZ2VyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisr CisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1w bGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3Ry ZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkKKyt7CisrICBTbmRpb0F1 ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0q PihhcmcpOworKworKyAgc2VsZi0+aHdfZGVsYXkgKz0gZGVsdGE7CisrfQorKworK3ZvaWQgKlNu ZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7CisrICBTbmRpb0F1 ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvSW5wdXRTdHJlYW0q PihhcmcpOworKworKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJuIE5VTEw7CisrfQor KworK1NuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U25kaW9BdWRpb0lucHV0U3RyZWFtKEF1ZGlvTWFu YWdlckJhc2UqIG1hbmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFy YW1zKQorKyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAgICAgcGFyYW1zKHBhcmFtcyksCisr ICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisrICAgICAgc3RhdGUo a0Nsb3NlZCkgeworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06On5TbmRpb0F1ZGlvSW5w dXRTdHJlYW0oKSB7CisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAgQ2xvc2UoKTsKKyt9 CisrCisrYm9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9wZW4oKSB7CisrICBzdHJ1Y3Qgc2lv X3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAg IHJldHVybiBmYWxzZTsKKysKKysgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0 ZXJzOjpBVURJT19QQ01fTElORUFSICYmCisrICAgICAgcGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlv UGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisrICAgIExPRyhXQVJOSU5HKSA8 PCAiVW5zdXBwb3J0ZWQgYXVkaW8gZm9ybWF0LiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0K KysKKysgIHNpb19pbml0cGFyKCZwYXIpOworKyAgcGFyLnJhdGUgPSBwYXJhbXMuc2FtcGxlX3Jh dGUoKTsKKysgIHBhci5yY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworKyAgcGFyLmJpdHMgPSBT YW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOworKyAgcGFyLmJwcyA9 IHBhci5iaXRzIC8gODsKKysgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAhPSA4ID8gMSA6IDA7 CisrICBwYXIubGUgPSBTSU9fTEVfTkFUSVZFOworKyAgcGFyLmFwcGJ1ZnN6ID0gcGFyYW1zLmZy YW1lc19wZXJfYnVmZmVyKCk7CisrCisrICBoZGwgPSBzaW9fb3BlbihTSU9fREVWQU5ZLCBTSU9f UkVDLCAwKTsKKysKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0coRVJST1IpIDw8ICJD b3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9Cisr CisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBhcihoZGwsICZwYXIp KSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7 CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKworKyAgaWYgKHBhci5yYXRlICAhPSAodW5z aWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFyLnJjaGFuICE9ICh1 bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIuYml0cyAgIT0gKHVu c2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpIHx8 CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisrICAgICAgKHBhci5i cHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAgIChwYXIuYml0cyAh PSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8g cGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysgIHN0YXRlID0ga1N0 b3BwZWQ7CisrICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1z LkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29ubW92ZShoZGwsICZP bk1vdmVDYWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4gdHJ1ZTsKKytiYWRfY2xvc2U6CisrICBz aW9fY2xvc2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlv SW5wdXRTdHJlYW06OlN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2IpIHsKKysKKysgIFN0YXJ0 QWdjKCk7CisrCisrICBzdGF0ZSA9IGtSdW5uaW5nOworKyAgaHdfZGVsYXkgPSAwOworKyAgY2Fs bGJhY2sgPSBjYjsKKysgIHNpb19zdGFydChoZGwpOworKyAgaWYgKHB0aHJlYWRfY3JlYXRlKCZ0 aHJlYWQsIE5VTEwsICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgeworKyAgICBMT0coRVJST1Ip IDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQgZm9yIHJlY29yZGluZy4iOwor KyAgICBzaW9fc3RvcChoZGwpOworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30KKysK Kyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RvcCgpIHsKKysKKysgIGlmIChzdGF0ZSA9 PSBrU3RvcHBlZCkKKysgICAgcmV0dXJuOworKworKyAgc3RhdGUgPSBrU3RvcFdhaXQ7CisrICBw dGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7CisrICBzdGF0ZSA9 IGtTdG9wcGVkOworKworKyAgU3RvcEFnYygpOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1 dFN0cmVhbTo6Q2xvc2UoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0 dXJuOworKworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorKyAgICBTdG9wKCk7CisrCisrICBz dGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVyOworKyAgc2lvX2Nsb3NlKGhkbCk7 CisrCisrICBtYW5hZ2VyLT5SZWxlYXNlSW5wdXRTdHJlYW0odGhpcyk7CisrfQorKworK2RvdWJs ZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldE1heFZvbHVtZSgpIHsKKysgIC8vIE5vdCBzdXBw b3J0ZWQKKysgIHJldHVybiAwLjA7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFt OjpTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4gRG8gbm90 aGluZy4KKyt9CisrCisrZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6R2V0Vm9sdW1lKCkg eworKyAgLy8gTm90IHN1cHBvcnRlZC4KKysgIHJldHVybiAwLjA7CisrfQorKworK2Jvb2wgU25k aW9BdWRpb0lucHV0U3RyZWFtOjpJc011dGVkKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4KKysg IHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNldE91 dHB1dERldmljZUZvckFlYygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2Vf aWQpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0 U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIHNpemVfdCB0b2RvLCBuOworKyAgY2hhciAq ZGF0YTsKKysgIHVuc2lnbmVkIGludCBuZnJhbWVzOworKyAgZG91YmxlIG5vcm1hbGl6ZWRfdm9s dW1lID0gMC4wOworKworKyAgbmZyYW1lcyA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisrCisrICB3 aGlsZSAoc3RhdGUgPT0ga1J1bm5pbmcgJiYgIXNpb19lb2YoaGRsKSkgeworKworKyAgICBHZXRB Z2NWb2x1bWUoJm5vcm1hbGl6ZWRfdm9sdW1lKTsKKysKKysgICAgLy8gcmVhZCBvbmUgYmxvY2sK KysgICAgdG9kbyA9IG5mcmFtZXMgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9y bWF0KTsKKysgICAgZGF0YSA9IGJ1ZmZlcjsKKysgICAgd2hpbGUgKHRvZG8gPiAwKSB7CisrICAg ICAgbiA9IHNpb19yZWFkKGhkbCwgZGF0YSwgdG9kbyk7CisrICAgICAgaWYgKG4gPT0gMCkKKysg ICAgICAgIHJldHVybjsJLy8gdW5yZWNvdmVyYWJsZSBJL08gZXJyb3IKKysgICAgICB0b2RvIC09 IG47CisrICAgICAgZGF0YSArPSBuOworKyAgICB9CisrICAgIGh3X2RlbGF5IC09IG5mcmFtZXM7 CisrCisrICAgIC8vIGNvbnZlcnQgZnJhbWVzIGNvdW50IHRvIFRpbWVEZWx0YQorKyAgICBjb25z dCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBlcjo6RnJhbWVzVG9U aW1lKGh3X2RlbGF5LAorKyAgICAgIHBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKysKKysgICAgLy8g cHVzaCBpbnRvIGJ1cworKyAgICBhdWRpb19idXMtPkZyb21JbnRlcmxlYXZlZDxTaWduZWRJbnQx NlNhbXBsZVR5cGVUcmFpdHM+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50MTZfdCo+KGJ1ZmZlciksIG5m cmFtZXMpOworKworKyAgICAvLyBpbnZva2UgY2FsbGJhY2sKKysgICAgY2FsbGJhY2stPk9uRGF0 YShhdWRpb19idXMuZ2V0KCksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCkgLSBkZWxheSwgMS4pOwor KyAgfQorK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKK2RpZmYgLU5hdXIgY2hyb21pdW0t ODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCBjaHJvbWl1 bS04My4wLjQxMDMuOTcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaAorLS0tIGEvbWVk aWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysrIGIvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaAkyMDIwLTA2LTEz IDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSw5MSBAQAorKy8vIENvcHlyaWdo dCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVz ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2Ug dGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYg TUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NO RElPX1NORElPX0lOUFVUX0hfCisrCisrI2luY2x1ZGUgPHN0ZGludC5oPgorKyNpbmNsdWRlIDxz dHJpbmc+CisrI2luY2x1ZGUgPHNuZGlvLmg+CisrCisrI2luY2x1ZGUgImJhc2UvY29tcGlsZXJf c3BlY2lmaWMuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFzZS9t ZW1vcnkvd2Vha19wdHIuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1lL3RpbWUuaCIKKysjaW5jbHVk ZSAibWVkaWEvYXVkaW8vYWdjX2F1ZGlvX3N0cmVhbS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRp by9hdWRpb19pby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3Jp cHRpb24uaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb19wYXJhbWV0ZXJzLmgiCisrCisr bmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBBdWRpb01hbmFnZXJCYXNlOworKworKy8vIElt cGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5nIHNuZGlvKDcpCisrY2xhc3Mg U25kaW9BdWRpb0lucHV0U3RyZWFtIDogcHVibGljIEFnY0F1ZGlvU3RyZWFtPEF1ZGlvSW5wdXRT dHJlYW0+IHsKKysgcHVibGljOgorKyAgLy8gUGFzcyB0aGlzIHRvIHRoZSBjb25zdHJ1Y3RvciBp ZiB5b3Ugd2FudCB0byBhdHRlbXB0IGF1dG8tc2VsZWN0aW9uCisrICAvLyBvZiB0aGUgYXVkaW8g cmVjb3JkaW5nIGRldmljZS4KKysgIHN0YXRpYyBjb25zdCBjaGFyIGtBdXRvU2VsZWN0RGV2aWNl W107CisrCisrICAvLyBDcmVhdGUgYSBQQ00gT3V0cHV0IHN0cmVhbSBmb3IgdGhlIFNORElPIGRl dmljZSBpZGVudGlmaWVkIGJ5CisrICAvLyB8ZGV2aWNlX25hbWV8LiBJZiB1bnN1cmUgb2Ygd2hh dCB0byB1c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVzZQorKyAgLy8gfGtBdXRvU2VsZWN0RGV2aWNl fC4KKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBhdWRpb19tYW5h Z2VyLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfbmFt ZSwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcyk7 CisrCisrICB+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJbXBs ZW1lbnRhdGlvbiBvZiBBdWRpb0lucHV0U3RyZWFtLgorKyAgYm9vbCBPcGVuKCkgb3ZlcnJpZGU7 CisrICB2b2lkIFN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2FsbGJhY2spIG92ZXJyaWRlOwor KyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIENsb3NlKCkgb3ZlcnJpZGU7CisrICBk b3VibGUgR2V0TWF4Vm9sdW1lKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldFZvbHVtZShkb3VibGUg dm9sdW1lKSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRWb2x1bWUoKSBvdmVycmlkZTsKKysgIGJv b2wgSXNNdXRlZCgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRPdXRwdXREZXZpY2VGb3JBZWMoY29u c3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIG92ZXJyaWRlOworKworKyBwcml2YXRl OgorKworKyAgZW51bSBTdHJlYW1TdGF0ZSB7CisrICAgIGtDbG9zZWQsICAgICAgICAgICAgLy8g Tm90IG9wZW5lZCB5ZXQKKysgICAga1N0b3BwZWQsICAgICAgICAgICAvLyBEZXZpY2Ugb3BlbmVk LCBidXQgbm90IHN0YXJ0ZWQgeWV0CisrICAgIGtSdW5uaW5nLCAgICAgICAgICAgLy8gU3RhcnRl ZCwgZGV2aWNlIHBsYXlpbmcKKysgICAga1N0b3BXYWl0ICAgICAgICAgICAvLyBTdG9wcGluZywg d2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8gZXhpdAorKyAgfTsKKysKKysgIC8v IEMtc3R5bGUgY2FsbC1iYWNrcworKyAgc3RhdGljIHZvaWQgT25Nb3ZlQ2FsbGJhY2sodm9pZCAq YXJnLCBpbnQgZGVsdGEpOworKyAgc3RhdGljIHZvaWQqIFRocmVhZEVudHJ5KHZvaWQgKmFyZyk7 CisrCisrICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9tIHRoZSBkZXZpY2UgdG8gdGhl IGNvbnN1bWVyCisrICB2b2lkIFRocmVhZExvb3AoKTsKKysgIC8vIE91ciBjcmVhdG9yLCB0aGUg YXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVuIHdlIGNsb3NlLgorKyAgQXVk aW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRlcnMgb2YgdGhlIHNvdXJjZQor KyAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKysgIC8vIFdlIHN0b3JlIGRhdGEgaGVyZSBmb3Ig Y29uc3VtZXIKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8g Q2FsbC1iYWNrIHRoYXQgY29uc3VtZXMgcmVjb3JkZWQgZGF0YQorKyAgQXVkaW9JbnB1dENhbGxi YWNrKiBjYWxsYmFjazsgIC8vIFZhbGlkIGR1cmluZyBhIHJlY29yZGluZyBzZXNzaW9uLgorKyAg Ly8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVjdCBzaW9faGRsKiBoZGw7Cisr ICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVudW0gU3RyZWFtU3RhdGUgc3Rh dGU7CisrICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5nIFRocmVhZExvb3AoKQorKyAg cHRocmVhZF90IHRocmVhZDsKKysgIC8vIE51bWJlciBvZiBmcmFtZXMgYnVmZmVyZWQgaW4gdGhl IGhhcmR3YXJlCisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1wb3JhcnkgYnVmZmVyIHdoZXJl IGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0CisrICBjaGFyKiBidWZmZXI7 CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9BdWRpb0lucHV0U3RyZWFtKTsK Kyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVE SU9fU05ESU9fU05ESU9fSU5QVVRfSF8KK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3 Lm9yaWcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNjIGNocm9taXVtLTgzLjAuNDEw My45Ny9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuY2MKKy0tLSBhL21lZGlhL2F1ZGlv L3NuZGlvL3NuZGlvX291dHB1dC5jYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIGIvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNjCTIwMjAtMDYtMTMgMTc6 MzI6MjguNTExMzk1OTY5ICswMjAwCitAQCAtMCwwICsxLDE4MyBAQAorKy8vIENvcHlyaWdodCAo YykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVk ZSAiYmFzZS9sb2dnaW5nLmgiCisrI2luY2x1ZGUgImJhc2UvdGltZS90aW1lLmgiCisrI2luY2x1 ZGUgImJhc2UvdGltZS9kZWZhdWx0X3RpY2tfY2xvY2suaCIKKysjaW5jbHVkZSAibWVkaWEvYXVk aW8vYXVkaW9fbWFuYWdlcl9iYXNlLmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvYXVkaW9fdGlt ZXN0YW1wX2hlbHBlci5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRw dXQuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEgeworKworK3N0YXRpYyBjb25zdCBTYW1wbGVGb3Jt YXQga1NhbXBsZUZvcm1hdCA9IGtTYW1wbGVGb3JtYXRTMTY7CisrCisrdm9pZCBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkgeworKyAg U25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRw dXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+aHdfZGVsYXkgLT0gZGVsdGE7CisrfQorKwor K3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Wb2xDYWxsYmFjayh2b2lkICphcmcsIHVu c2lnbmVkIGludCB2b2wpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0 aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPnZvbCA9 IHZvbDsKKyt9CisrCisrdm9pZCAqU25kaW9BdWRpb091dHB1dFN0cmVhbTo6VGhyZWFkRW50cnko dm9pZCAqYXJnKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nh c3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT5UaHJlYWRMb29w KCk7CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U25k aW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlckJh c2UqIG1hbmFnZXIpCisrICAgIDogbWFuYWdlcihtYW5hZ2VyKSwKKysgICAgICBwYXJhbXMocGFy YW1zKSwKKysgICAgICBhdWRpb19idXMoQXVkaW9CdXM6OkNyZWF0ZShwYXJhbXMpKSwKKysgICAg ICBzdGF0ZShrQ2xvc2VkKSwKKysgICAgICBtdXRleChQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVS KSB7CisrfQorKworK1NuZGlvQXVkaW9PdXRwdXRTdHJlYW06On5TbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtKCkgeworKyAgaWYgKHN0YXRlICE9IGtDbG9zZWQpCisrICAgIENsb3NlKCk7CisrfQorKwor K2Jvb2wgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T3BlbigpIHsKKysgIHN0cnVjdCBzaW9fcGFy IHBhcjsKKysgIGludCBzaWc7CisrCisrICBpZiAocGFyYW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFy YW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorKyAgICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBB dWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSkgeworKyAgICBMT0coV0FSTklO RykgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4iOworKyAgICByZXR1cm4gZmFsc2U7Cisr ICB9CisrICBzaW9faW5pdHBhcigmcGFyKTsKKysgIHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9y YXRlKCk7CisrICBwYXIucGNoYW4gPSBwYXJhbXMuY2hhbm5lbHMoKTsKKysgIHBhci5iaXRzID0g U2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KTsKKysgIHBhci5icHMg PSBwYXIuYml0cyAvIDg7CisrICBwYXIuc2lnID0gc2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAw OworKyAgcGFyLmxlID0gU0lPX0xFX05BVElWRTsKKysgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5m cmFtZXNfcGVyX2J1ZmZlcigpOworKworKyAgaGRsID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lP X1BMQVksIDApOworKyAgaWYgKGhkbCA9PSBOVUxMKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNv dWxkbid0IG9wZW4gYXVkaW8gZGV2aWNlLiI7CisrICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysg IGlmICghc2lvX3NldHBhcihoZGwsICZwYXIpIHx8ICFzaW9fZ2V0cGFyKGhkbCwgJnBhcikpIHsK KysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgc2V0IGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysg ICAgZ290byBiYWRfY2xvc2U7CisrICB9CisrICBpZiAocGFyLnJhdGUgICE9ICh1bnNpZ25lZCBp bnQpcGFyYW1zLnNhbXBsZV9yYXRlKCkgfHwKKysgICAgICBwYXIucGNoYW4gIT0gKHVuc2lnbmVk IGludClwYXJhbXMuY2hhbm5lbHMoKSB8fAorKyAgICAgIHBhci5iaXRzICAhPSAodW5zaWduZWQg aW50KVNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCkgfHwKKysgICAg ICBwYXIuc2lnICAgIT0gKHVuc2lnbmVkIGludClzaWcgfHwKKysgICAgICAocGFyLmJwcyA+IDEg JiYgcGFyLmxlICE9IFNJT19MRV9OQVRJVkUpIHx8CisrICAgICAgKHBhci5iaXRzICE9IHBhci5i cHMgKiA4KSkgeworKyAgICBMT0coRVJST1IpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBwYXJhbWV0 ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgc3RhdGUgPSBrU3RvcHBlZDsK KysgIHZvbHBlbmRpbmcgPSAwOworKyAgdm9sID0gMDsKKysgIGJ1ZmZlciA9IG5ldyBjaGFyW2F1 ZGlvX2J1cy0+ZnJhbWVzKCkgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0 KV07CisrICBzaW9fb25tb3ZlKGhkbCwgJk9uTW92ZUNhbGxiYWNrLCB0aGlzKTsKKysgIHNpb19v bnZvbChoZGwsICZPblZvbENhbGxiYWNrLCB0aGlzKTsKKysgIHJldHVybiB0cnVlOworKyBiYWRf Y2xvc2U6CisrICBzaW9fY2xvc2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9p ZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpDbG9zZSgpIHsKKysgIGlmIChzdGF0ZSA9PSBrQ2xv c2VkKQorKyAgICByZXR1cm47CisrICBpZiAoc3RhdGUgPT0ga1J1bm5pbmcpCisrICAgIFN0b3Ao KTsKKysgIHN0YXRlID0ga0Nsb3NlZDsKKysgIGRlbGV0ZSBbXSBidWZmZXI7CisrICBzaW9fY2xv c2UoaGRsKTsKKysgIG1hbmFnZXItPlJlbGVhc2VPdXRwdXRTdHJlYW0odGhpcyk7ICAvLyBDYWxs cyB0aGUgZGVzdHJ1Y3RvcgorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0 YXJ0KEF1ZGlvU291cmNlQ2FsbGJhY2sqIGNhbGxiYWNrKSB7CisrICBzdGF0ZSA9IGtSdW5uaW5n OworKyAgaHdfZGVsYXkgPSAwOworKyAgc291cmNlID0gY2FsbGJhY2s7CisrICBzaW9fc3RhcnQo aGRsKTsKKysgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnks IHRoaXMpICE9IDApIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFs LXRpbWUgdGhyZWFkLiI7CisrICAgIHNpb19zdG9wKGhkbCk7CisrICAgIHN0YXRlID0ga1N0b3Bw ZWQ7CisrICB9CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6U3RvcCgpIHsK KysgIGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKysgICAgcmV0dXJuOworKyAgc3RhdGUgPSBrU3Rv cFdhaXQ7CisrICBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7 CisrICBzdGF0ZSA9IGtTdG9wcGVkOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJl YW06OlNldFZvbHVtZShkb3VibGUgdikgeworKyAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7 CisrICB2b2wgPSB2ICogU0lPX01BWFZPTDsKKysgIHZvbHBlbmRpbmcgPSAxOworKyAgcHRocmVh ZF9tdXRleF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtOjpHZXRWb2x1bWUoZG91YmxlKiB2KSB7CisrICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4 KTsKKysgICp2ID0gdm9sICogKDEuIC8gU0lPX01BWFZPTCk7CisrICBwdGhyZWFkX211dGV4X3Vu bG9jaygmbXV0ZXgpOworK30KKysKKysvLyBUaGlzIHN0cmVhbSBpcyBhbHdheXMgdXNlZCB3aXRo IHN1YiBzZWNvbmQgYnVmZmVyIHNpemVzLCB3aGVyZSBpdCdzCisrLy8gc3VmZmljaWVudCB0byBz aW1wbHkgYWx3YXlzIGZsdXNoIHVwb24gU3RhcnQoKS4KKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRT dHJlYW06OkZsdXNoKCkge30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVh ZExvb3Aodm9pZCkgeworKyAgaW50IGF2YWlsLCBjb3VudCwgcmVzdWx0OworKworKyAgd2hpbGUg KHN0YXRlID09IGtSdW5uaW5nKSB7CisrICAgIC8vIFVwZGF0ZSB2b2x1bWUgaWYgbmVlZGVkCisr ICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgICBpZiAodm9scGVuZGluZykgewor KyAgICAgIHZvbHBlbmRpbmcgPSAwOworKyAgICAgIHNpb19zZXR2b2woaGRsLCB2b2wpOworKyAg ICB9CisrICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrCisrICAgIC8vIEdldCBk YXRhIHRvIHBsYXkKKysgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVkaW9UaW1l c3RhbXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKKysJcGFyYW1zLnNhbXBsZV9yYXRl KCkpOworKyAgICBjb3VudCA9IHNvdXJjZS0+T25Nb3JlRGF0YShkZWxheSwgYmFzZTo6VGltZVRp Y2tzOjpOb3coKSwgMCwgYXVkaW9fYnVzLmdldCgpKTsKKysgICAgYXVkaW9fYnVzLT5Ub0ludGVy bGVhdmVkPFNpZ25lZEludDE2U2FtcGxlVHlwZVRyYWl0cz4oY291bnQsIHJlaW50ZXJwcmV0X2Nh c3Q8aW50MTZfdCo+KGJ1ZmZlcikpOworKyAgICBpZiAoY291bnQgPT0gMCkgeworKyAgICAgIC8v IFdlIGhhdmUgdG8gc3VibWl0IHNvbWV0aGluZyB0byB0aGUgZGV2aWNlCisrICAgICAgY291bnQg PSBhdWRpb19idXMtPmZyYW1lcygpOworKyAgICAgIG1lbXNldChidWZmZXIsIDAsIGNvdW50ICog cGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCkpOworKyAgICAgIExPRyhXQVJO SU5HKSA8PCAiTm8gZGF0YSB0byBwbGF5LCBydW5uaW5nIGVtcHR5IGN5Y2xlLiI7CisrICAgIH0K KysKKysgICAgLy8gU3VibWl0IGRhdGEgdG8gdGhlIGRldmljZQorKyAgICBhdmFpbCA9IGNvdW50 ICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisrICAgIHJlc3VsdCA9 IHNpb193cml0ZShoZGwsIGJ1ZmZlciwgYXZhaWwpOworKyAgICBpZiAocmVzdWx0ID09IDApIHsK KysgICAgICBMT0coV0FSTklORykgPDwgIkF1ZGlvIGRldmljZSBkaXNjb25uZWN0ZWQuIjsKKysg ICAgICBicmVhazsKKysgICAgfQorKworKyAgICAvLyBVcGRhdGUgaGFyZHdhcmUgcG9pbnRlcgor KyAgICBod19kZWxheSArPSBjb3VudDsKKysgIH0KKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIG1l ZGlhCitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL3Nu ZGlvL3NuZGlvX291dHB1dC5oIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRp by9zbmRpb19vdXRwdXQuaAorLS0tIGEvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBiL21lZGlhL2F1ZGlvL3Nu ZGlvL3NuZGlvX291dHB1dC5oCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5ICswMjAwCitA QCAtMCwwICsxLDg2IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRo b3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz IGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBp biB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9f T1VUUFVUX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKysK KysjaW5jbHVkZSA8cHRocmVhZC5oPgorKyNpbmNsdWRlIDxzbmRpby5oPgorKworKyNpbmNsdWRl ICJiYXNlL3RpbWUvdGlja19jbG9jay5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7 CisrCisrY2xhc3MgQXVkaW9NYW5hZ2VyQmFzZTsKKysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBB dWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorK2NsYXNzIFNuZGlvQXVkaW9PdXRwdXRT dHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRwdXRTdHJlYW0geworKyBwdWJsaWM6CisrICAvLyBUaGUg bWFuYWdlciBpcyBjcmVhdGluZyB0aGlzIG9iamVjdAorKyAgU25kaW9BdWRpb091dHB1dFN0cmVh bShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICAgICAgICAgICAgICAgICAg ICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcik7CisrICB2aXJ0dWFsIH5TbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtKCk7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVh bS4KKysgIGJvb2wgT3BlbigpIG92ZXJyaWRlOworKyAgdm9pZCBDbG9zZSgpIG92ZXJyaWRlOwor KyAgdm9pZCBTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7Cisr ICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUp IG92ZXJyaWRlOworKyAgdm9pZCBHZXRWb2x1bWUoZG91YmxlKiB2b2x1bWUpIG92ZXJyaWRlOwor KyAgdm9pZCBGbHVzaCgpIG92ZXJyaWRlOworKworKyAgZnJpZW5kIHZvaWQgc25kaW9fb25tb3Zl KHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIGZyaWVuZCB2b2lkIHNuZGlvX29udm9sKHZvaWQg KmFyZywgdW5zaWduZWQgaW50IHZvbCk7CisrICBmcmllbmQgdm9pZCAqc25kaW9fdGhyZWFkc3Rh cnQodm9pZCAqYXJnKTsKKysKKysgcHJpdmF0ZToKKysgIGVudW0gU3RyZWFtU3RhdGUgeworKyAg ICBrQ2xvc2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisrICAgIGtTdG9wcGVkLCAg ICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAorKyAgICBrUnVu bmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisrICAgIGtTdG9wV2Fp dCAgICAgICAgICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFk IHRvIGV4aXQKKysgIH07CisrCisrICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKysgIHN0YXRpYyB2 b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIHN0YXRpYyB2b2lk IE9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKysgIHN0YXRpYyB2 b2lkKiBUaHJlYWRFbnRyeSh2b2lkICphcmcpOworKworKyAgLy8gQ29udGludW91c2x5IG1vdmVz IGRhdGEgZnJvbSB0aGUgcHJvZHVjZXIgdG8gdGhlIGRldmljZQorKyAgdm9pZCBUaHJlYWRMb29w KHZvaWQpOworKworKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRv IGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2Vy OworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisrICBBdWRpb1BhcmFtZXRlcnMgcGFy YW1zOworKyAgLy8gU291cmNlIHN0b3JlcyBkYXRhIGhlcmUKKysgIHN0ZDo6dW5pcXVlX3B0cjxB dWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgcHJvZHVjZXMgZGF0YSB0 byBwbGF5CisrICBBdWRpb1NvdXJjZUNhbGxiYWNrKiBzb3VyY2U7CisrICAvLyBIYW5kbGUgb2Yg dGhlIGF1ZGlvIGRldmljZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQg c3RhdGUgb2YgdGhlIHN0cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhp Z2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhy ZWFkOworKyAgLy8gUHJvdGVjdHMgdm9sLCB2b2xwZW5kaW5nIGFuZCBod19kZWxheQorKyAgcHRo cmVhZF9tdXRleF90IG11dGV4OworKyAgLy8gQ3VycmVudCB2b2x1bWUgaW4gdGhlIDAuLlNJT19N QVhWT0wgcmFuZ2UKKysgIGludCB2b2w7CisrICAvLyBTZXQgdG8gMSBpZiB2b2x1bWVzIG11c3Qg YmUgcmVmcmVzaGVkIGluIHRoZSByZWFsdGltZSB0aHJlYWQKKysgIGludCB2b2xwZW5kaW5nOwor KyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGludCBo d19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQgc25k aW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9XX0NP UFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5h bWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VU UFVUX0hfCitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL21lZGlh X29wdGlvbnMuZ25pIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9tZWRpYV9vcHRpb25zLmdu aQorLS0tIGEvbWVkaWEvbWVkaWFfb3B0aW9ucy5nbmkKKysrKyBiL21lZGlhL21lZGlhX29wdGlv bnMuZ25pCitAQCAtMTU4LDYgKzE1OCw5IEBACisgICAjIEVuYWJsZXMgcnVudGltZSBzZWxlY3Rp b24gb2YgQUxTQSBsaWJyYXJ5IGZvciBhdWRpby4KKyAgIHVzZV9hbHNhID0gZmFsc2UKKyAKKysg ICMgRW5hYmxlIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIHNuZGlvKDcpCisrICB1c2Vfc25kaW8gPSBm YWxzZQorKworICAgIyBBbHNhIHNob3VsZCBiZSB1c2VkIG9uIGFsbCBub24tQW5kcm9pZCwgbm9u LU1hYyBQT1NJWCBzeXN0ZW1zIC0gd2l0aCB0aGUKKyAgICMgZXhjZXB0aW9uIG9mIENhc3RPUyBk ZXNrdG9wIGJ1aWxkcy4KKyAgICMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxl cy9wYXRjaGVzL2Nocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9u MjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjgzZThiOTNiOWZjZmYKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zeXN0ZW0t bm9kZWpzLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL3RoaXJkX3BhcnR5L25vZGUvbm9k ZS5weQorKysrIGIvdGhpcmRfcGFydHkvbm9kZS9ub2RlLnB5CitAQCAtMTMsMTEgKzEzLDEyIEBA CisgZGVmIEdldEJpbmFyeVBhdGgoKToKKyAgIGRhcndpbl9uYW1lID0gKCdub2RlLWRhcndpbi1h cm02NCcgaWYgcGxhdGZvcm0ubWFjaGluZSgpID09ICdhcm02NCcgZWxzZQorICAgICAgICAgICAg ICAgICAgJ25vZGUtZGFyd2luLXg2NCcpCistICByZXR1cm4gb3NfcGF0aC5qb2luKG9zX3BhdGgu ZGlybmFtZShfX2ZpbGVfXyksICp7CistICAgICdEYXJ3aW4nOiAoJ21hYycsIGRhcndpbl9uYW1l LCAnYmluJywgJ25vZGUnKSwKKy0gICAgJ0xpbnV4JzogKCdsaW51eCcsICdub2RlLWxpbnV4LXg2 NCcsICdiaW4nLCAnbm9kZScpLAorLSAgICAnV2luZG93cyc6ICgnd2luJywgJ25vZGUuZXhlJyks CistICB9W3BsYXRmb3JtLnN5c3RlbSgpXSkKKysgICNyZXR1cm4gb3NfcGF0aC5qb2luKG9zX3Bh dGguZGlybmFtZShfX2ZpbGVfXyksICp7CisrICAjICAnRGFyd2luJzogKCdtYWMnLCBkYXJ3aW5f bmFtZSwgJ2JpbicsICdub2RlJyksCisrICAjICAnTGludXgnOiAoJ2xpbnV4JywgJ25vZGUtbGlu dXgteDY0JywgJ2JpbicsICdub2RlJyksCisrICAjICAnV2luZG93cyc6ICgnd2luJywgJ25vZGUu ZXhlJyksCisrICAjfVtwbGF0Zm9ybS5zeXN0ZW0oKV0pCisrICByZXR1cm4gIi91c3IvYmluL25v ZGUiCisgCisgCisgZGVmIFJ1bk5vZGUoY21kX3BhcnRzLCBzdGRvdXQ9Tm9uZSk6CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS1zeXN0eXBlcy5w YXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXN5c3R5cGVz LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjFjY2ViYmQy ZjJiMzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hl cy9jaHJvbWl1bS1zeXN0eXBlcy5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9iYXNlL3Ro aXJkX3BhcnR5L3N5bWJvbGl6ZS9zeW1ib2xpemUuaAorKysrIGIvYmFzZS90aGlyZF9wYXJ0eS9z eW1ib2xpemUvc3ltYm9saXplLmgKK0BAIC01OCw2ICs1OCw4IEBACisgI2luY2x1ZGUgImNvbmZp Zy5oIgorICNpbmNsdWRlICJnbG9nL2xvZ2dpbmcuaCIKKyAKKysjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CisrCisgI2lmZGVmIEhBVkVfU1lNQk9MSVpFCisgCisgI2lmIGRlZmluZWQoX19FTEZfXykg IC8vIGRlZmluZWQgYnkgZ2NjCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMv cGF0Y2hlcy9jaHJvbWl1bS11bmJ1bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMu cGF0Y2ggYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11bmJ1bmRs ZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uZGFlMWFkZGUwYmM2NgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXVuYnVuZGxlLWZmbXBl Zy1hdl9zdHJlYW1fZ2V0X2ZpcnN0X2R0cy5wYXRjaApAQCAtMCwwICsxLDEyIEBACitkaWZmIC0t Z2l0IGEvYnVpbGQvbGludXgvdW5idW5kbGUvZmZtcGVnLmduIGIvYnVpbGQvbGludXgvdW5idW5k bGUvZmZtcGVnLmduCitpbmRleCAxNmUyMDc0NDcwNi4uNmEwNzliMzIyMjEgMTAwNjQ0CistLS0g YS9idWlsZC9saW51eC91bmJ1bmRsZS9mZm1wZWcuZ24KKysrKyBiL2J1aWxkL2xpbnV4L3VuYnVu ZGxlL2ZmbXBlZy5nbgorQEAgLTEyLDYgKzEyLDcgQEAgcGtnX2NvbmZpZygic3lzdGVtX2ZmbXBl ZyIpIHsKKyAgICAgImxpYmF2Zm9ybWF0IiwKKyAgICAgImxpYmF2dXRpbCIsCisgICBdCisrICBk ZWZpbmVzID0gWyAiYXZfc3RyZWFtX2dldF9maXJzdF9kdHMoc3RyZWFtKT1zdHJlYW0tPmZpcnN0 X2R0cyIgXQorIH0KKyAKKyBidWlsZGZsYWdfaGVhZGVyKCJmZm1wZWdfZmVhdHVyZXMiKSB7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9jaHJvbWl1bS11bmJ1 bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0tdW5idW5kbGVkLWNyb3NzLXRvb2xjaGFpbi5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5jM2YyMjk0YWM0YjJjCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0tdW5idW5k bGVkLWNyb3NzLXRvb2xjaGFpbi5wYXRjaApAQCAtMCwwICsxLDEyIEBACistLS0gYS9idWlsZC90 b29sY2hhaW4vbGludXgvdW5idW5kbGUvQlVJTEQuZ24ub3JpZworKysrIGIvYnVpbGQvdG9vbGNo YWluL2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCitAQCAtMzUsNyArMzUsNyBAQAorICAgZXh0cmFf bGRmbGFncyA9IGdldGVudigiQlVJTERfTERGTEFHUyIpCisgCisgICB0b29sY2hhaW5fYXJncyA9 IHsKKy0gICAgY3VycmVudF9jcHUgPSBjdXJyZW50X2NwdQorLSAgICBjdXJyZW50X29zID0gY3Vy cmVudF9vcworKyAgICBjdXJyZW50X2NwdSA9IGhvc3RfY3B1CisrICAgIGN1cnJlbnRfb3MgPSBo b3N0X29zCisgICB9CisgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3Bh dGNoZXMvY2hyb21pdW0td2ViYXV0aG4tdmFyaWFudC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24y OC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXdlYmF1dGhuLXZhcmlhbnQucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uMmVlMDJmNWU1ZmUxYgotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXdlYmF1 dGhuLXZhcmlhbnQucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorUGF0Y2gtU291cmNlOiBodHRwczov L2dpdGh1Yi5jb20vYXJjaGxpbnV4L3N2bnRvZ2l0LXBhY2thZ2VzL2Jsb2IvNzliNzc0YWVkZWFl Y2Q0ZDMxYjJhZGI4NGUzZTRiOTAxZGM5ODBhYS90cnVuay93ZWJhdXRobi12YXJpYW50LnBhdGNo CistLQorZGlmZiAtLWdpdCBhL2Nocm9tZS9icm93c2VyL3dlYmF1dGhuL2F1dGhlbnRpY2F0b3Jf cmVxdWVzdF9kaWFsb2dfbW9kZWwuaCBiL2Nocm9tZS9icm93c2VyL3dlYmF1dGhuL2F1dGhlbnRp Y2F0b3JfcmVxdWVzdF9kaWFsb2dfbW9kZWwuaAoraW5kZXggZjQ5OTJhNzRiZDYuLjQ1Y2FiZTM5 OTc0IDEwMDY0NAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvd2ViYXV0aG4vYXV0aGVudGljYXRvcl9y ZXF1ZXN0X2RpYWxvZ19tb2RlbC5oCisrKysgYi9jaHJvbWUvYnJvd3Nlci93ZWJhdXRobi9hdXRo ZW50aWNhdG9yX3JlcXVlc3RfZGlhbG9nX21vZGVsLmgKK0BAIC03LDYgKzcsNyBAQAorIAorICNp bmNsdWRlIDxtZW1vcnk+CisgI2luY2x1ZGUgPHN0cmluZz4KKysjaW5jbHVkZSA8dmFyaWFudD4K KyAjaW5jbHVkZSA8dmVjdG9yPgorIAorICNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5o IgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvY2hyb21pdW0t d2VicnRjLXNpemVfdC5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2No cm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMC4uZGQ0NmZlMTRjZDJiMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZWxl Y3Ryb24yOC9maWxlcy9wYXRjaGVzL2Nocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2gKQEAgLTAs MCArMSwxMCBAQAorLS0tIGEvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vz c2luZy9hZWMzL2Nsb2NrZHJpZnRfZGV0ZWN0b3IuaAkyMDIwLTA4LTEwIDIwOjQyOjI5LjAwMDAw MDAwMCArMDIwMAorKysrIGIvdGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vz c2luZy9hZWMzL2Nsb2NrZHJpZnRfZGV0ZWN0b3IuaAkyMDIwLTA5LTA0IDEyOjQ3OjA3LjAxNDgz MzYzMyArMDIwMAorQEAgLTEyLDYgKzEyLDcgQEAKKyAjZGVmaW5lIE1PRFVMRVNfQVVESU9fUFJP Q0VTU0lOR19BRUMzX0NMT0NLRFJJRlRfREVURUNUT1JfSF8KKyAKKyAjaW5jbHVkZSA8YXJyYXk+ CisrI2luY2x1ZGUgPGNzdGRkZWY+CisgCisgbmFtZXNwYWNlIHdlYnJ0YyB7CisgCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1BZGQtYS1zY3Jp cHQtdG8tbGlzdC1wYXRjaC10YXJnZXRzLnBhdGNoLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4 L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0 cy5wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi40 MjU4YjY1ZWNjMzZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVz L3BhdGNoZXMvZWxlY3Ryb24tQWRkLWEtc2NyaXB0LXRvLWxpc3QtcGF0Y2gtdGFyZ2V0cy5wYXRj aC5wYXRjaApAQCAtMCwwICsxLDQyIEBACitGcm9tIGZmNDEyMmYyMzZiNzBjMjcyYzc0NmQwYzMz NmNkYmQ1ODhkNzhjZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFbHZpcyBQcmFu c2tldmljaHVzIDxlbHZpc0BtYWdpYy5pbz4KK0RhdGU6IFRodSwgMTIgRGVjIDIwMTkgMTY6MTI6 MTggLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gQWRkIGEgc2NyaXB0IHRvIGxpc3QgcGF0Y2ggdGFy Z2V0cworCistLS0KKyBzY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5IHwgMjMgKysrKysrKysr KysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKQorIGNyZWF0 ZSBtb2RlIDEwMDc1NSBzY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5CisKK2RpZmYgLS1naXQg YS9zY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5IGIvc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0 cy5weQorbmV3IGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IDAwMDAwMDAwMC4uNTUxNzNiYWM5Cist LS0gL2Rldi9udWxsCisrKysgYi9zY3JpcHQvbGlzdF9wYXRjaF90YXJnZXRzLnB5CitAQCAtMCww ICsxLDIzIEBACisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisrCisraW1wb3J0IGFyZ3BhcnNlCisr aW1wb3J0IGpzb24KKysKKysKKytkZWYgcGFyc2VfYXJncygpOgorKyAgcGFyc2VyID0gYXJncGFy c2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0FwcGx5IEVsZWN0cm9uIHBhdGNoZXMnKQor KyAgcGFyc2VyLmFkZF9hcmd1bWVudCgnY29uZmlnJywgbmFyZ3M9JysnLAorKyAgICAgICAgICAg ICAgICAgICAgICB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCdyJyksCisrICAgICAgICAgICAgICAg ICAgICAgIGhlbHA9J3BhdGNoZXNcJyBjb25maWcocykgaW4gdGhlIEpTT04gZm9ybWF0JykKKysg IHJldHVybiBwYXJzZXIucGFyc2VfYXJncygpCisrCisrCisrZGVmIG1haW4oKToKKysgIGNvbmZp Z3MgPSBwYXJzZV9hcmdzKCkuY29uZmlnCisrICBmb3IgY29uZmlnX2pzb24gaW4gY29uZmlnczoK KysgICAgZm9yIHBhdGNoX2RpciwgcmVwbyBpbiBqc29uLmxvYWQoY29uZmlnX2pzb24pLml0ZW1z KCk6CisrICAgICAgcHJpbnQocmVwbykKKysKKysKKytpZiBfX25hbWVfXyA9PSAnX19tYWluX18n OgorKyAgbWFpbigpCistLSAKKzIuMjMuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9u MjgvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaCBiL3NyY3Br Z3MvZWxlY3Ryb24yOC9maWxlcy9wYXRjaGVzL2VsZWN0cm9uLUJ1aWxkLWZpeGVzLnBhdGNoLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmE5OGVlMDIwZDM0 YWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9l bGVjdHJvbi1CdWlsZC1maXhlcy5wYXRjaC5wYXRjaApAQCAtMCwwICsxLDEyIEBACitkaWZmIC0t Z2l0IGEvYnVpbGQvbnBtLmduaSBiL2J1aWxkL25wbS5nbmkKK2luZGV4IGExOTg3ZDA5NS4uZmIz M2ExNGMzIDEwMDY0NAorLS0tIGEvYnVpbGQvbnBtLmduaQorKysrIGIvYnVpbGQvbnBtLmduaQor QEAgLTM1LDcgKzM1LDYgQEAgdGVtcGxhdGUoIm5wbV9hY3Rpb24iKSB7CisgICAgIGlmICghZGVm aW5lZChkZXBzKSkgeworICAgICAgIGRlcHMgPSBbXQorICAgICB9CistICAgIGRlcHMgKz0gWyAi Om5wbV9wcmVfZmxpZ2h0XyIgKyB0YXJnZXRfbmFtZSBdCisgCisgICAgIHNjcmlwdCA9ICIvL2Vs ZWN0cm9uL2J1aWxkL25wbS1ydW4ucHkiCisgICAgIGFyZ3MgPSBbCmRpZmYgLS1naXQgYS9zcmNw a2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1leGNsdWRlLWNvbnRlbnQtdGVz dC1wYXRjaGVzLnBhdGNoIGIvc3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvZWxlY3Ry b24tZXhjbHVkZS1jb250ZW50LXRlc3QtcGF0Y2hlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAwLi4wNDlmZjRiZGQwNDBlCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9lbGVjdHJvbjI4L2ZpbGVzL3BhdGNoZXMvZWxlY3Ryb24tZXhjbHVkZS1jb250ZW50 LXRlc3QtcGF0Y2hlcy5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zY3JpcHQvYXBwbHlf YWxsX3BhdGNoZXMucHkJMjAyMy0wNS0wMyAxNToyNzo1Mi4wMDAwMDAwMDAgKzAyMDAKKysrKyAt CTIwMjMtMDUtMDQgMjM6MTI6MDEuNDMwNjE5MDUwICswMjAwCitAQCAtMTQsNiArMTQsNyBAQAor ICAgICBpZiBvcy5wYXRoLmV4aXN0cyhyZXBvKToKKyAgICAgICBnaXQuaW1wb3J0X3BhdGNoZXMo cmVwbz1yZXBvLCBwYXRjaF9kYXRhPXBhdGNoX2Zyb21fZGlyKHBhdGNoX2RpciksCisgICAgICAg ICB0aHJlZXdheT10aHJlZXdheSBpcyBub3QgTm9uZSwKKysgICAgICAgIGV4Y2x1ZGU9Wyd0aGly ZF9wYXJ0eS9ibGluay90b29scy8qKicsICd0ZXN0L21qc3VuaXQvKionLCAnY29udGVudC90ZXN0 LyoqJywgJ3Rlc3QvY2N0ZXN0LyoqJywgJ3Rlc3QvdW5pdHRlc3RzLyoqJywgJ3RoaXJkX3BhcnR5 L2JsaW5rL3dlYl90ZXN0cy8qKicsICcuZ2l0aWdub3JlJ10sCisgICAgICAgICBjb21taXR0ZXJf bmFtZT0iRWxlY3Ryb24gU2NyaXB0cyIsIGNvbW1pdHRlcl9lbWFpbD0ic2NyaXB0c0BlbGVjdHJv biIpCisgCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9l bGVjdHJvbi1uby1uZWVkLWZvci1odXNreS5wYXRjaCBiL3NyY3BrZ3MvZWxlY3Ryb24yOC9maWxl cy9wYXRjaGVzL2VsZWN0cm9uLW5vLW5lZWQtZm9yLWh1c2t5LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjBiMDc0MjU0YzQzY2EKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvZmlsZXMvcGF0Y2hlcy9lbGVjdHJvbi1uby1uZWVkLWZv ci1odXNreS5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9wYWNrYWdlLmpzb24JMjAyMi0w Ny0wNiAxNzozMTo1MC4wMDAwMDAwMDAgKzAyMDAKKysrKyAtCTIwMjItMDctMDggMjM6MDQ6NDMu NjU0ODEyOTU3ICswMjAwCitAQCAtOTgsNyArOTgsNiBAQAorICAgICAicHJlY29tbWl0IjogImxp bnQtc3RhZ2VkIiwKKyAgICAgInByZWluc3RhbGwiOiAibm9kZSAtZSAncHJvY2Vzcy5leGl0KDAp JyIsCisgICAgICJwcmVwYWNrIjogImNoZWNrLWZvci1sZWFrcyIsCistICAgICJwcmVwYXJlIjog Imh1c2t5IGluc3RhbGwiLAorICAgICAicmVwbCI6ICJub2RlIC4vc2NyaXB0L3N0YXJ0LmpzIC0t aW50ZXJhY3RpdmUiLAorICAgICAic3RhcnQiOiAibm9kZSAuL3NjcmlwdC9zdGFydC5qcyIsCisg ICAgICJ0ZXN0IjogIm5vZGUgLi9zY3JpcHQvc3BlYy1ydW5uZXIuanMiLApkaWZmIC0tZ2l0IGEv c3JjcGtncy9lbGVjdHJvbjI4L3RlbXBsYXRlIGIvc3JjcGtncy9lbGVjdHJvbjI4L3RlbXBsYXRl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmM5MWExNGIwMTJlYTIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2VsZWN0cm9uMjgvdGVtcGxhdGUKQEAgLTAsMCAr MSw0NzcgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VsZWN0cm9uMjgnCitwa2duYW1lPWVsZWN0 cm9uMjgKK3ZlcnNpb249MjguMi4yCityZXZpc2lvbj0xCitfbm9kZXZlcj0xOC4xOC4yCitfY2hy b21pdW12ZXI9MTIwLjAuNjA5OS4yNzIKK2FyY2hzPSJ4ODZfNjQqIGFhcmNoNjQqIgorY3JlYXRl X3dya3NyYz15ZXMKK2J1aWxkX3dya3NyYz0ic3JjIgoraG9zdG1ha2VkZXBlbmRzPSIkKHZvcHRf aWYgY2xhbmcgImNsYW5nIGxsZCBsbHZtMTUiKSBwa2ctY29uZmlnIHBlcmwKKyBncGVyZiBiaXNv biBuaW5qYSBub2RlanMgaHdpZHMgd2hpY2ggZ2l0IHlhcm4gb3BlbmpkayBqcSBweXRob24zLjEx CisgbGliZXBveHktZGV2ZWwgbGliZXZlbnQtZGV2ZWwgbGliZ2xpYi1kZXZlbCIKK21ha2VkZXBl bmRzPSJsaWJwbmctZGV2ZWwgZ3RrKzMtZGV2ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCisg bGliWGktZGV2ZWwgbGliZ2NyeXB0LWRldmVsIGxpYmdub21lLWtleXJpbmctZGV2ZWwgY3Vwcy1k ZXZlbCBlbGZ1dGlscy1kZXZlbAorIGxpYlhjb21wb3NpdGUtZGV2ZWwgc3BlZWNoLWRpc3BhdGNo ZXItZGV2ZWwgbGliWHJhbmRyLWRldmVsIG1pdC1rcmI1LWRldmVsCisgbGliWFNjcm5TYXZlci1k ZXZlbCBhbHNhLWxpYi1kZXZlbCBzbmFwcHktZGV2ZWwgbGliZHJtLWRldmVsCisgbGlieG1sMi1k ZXZlbCBsaWJ4c2x0LWRldmVsICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwp IGxpYmV4aWYtZGV2ZWwKKyBsaWJYY3Vyc29yLWRldmVsIGxpYmZsYWMtZGV2ZWwgc3BlZXgtZGV2 ZWwgbGlibXRwLWRldmVsIGxpYndlYnAtZGV2ZWwKKyBsaWJqcGVnLXR1cmJvLWRldmVsIGxpYmV2 ZW50LWRldmVsIGpzb24tYy1kZXZlbCBtaW5pemlwLWRldmVsIGpzb25jcHAtZGV2ZWwKKyB6bGli LWRldmVsIGxpYmNhcC1kZXZlbCBsaWJYZGFtYWdlLWRldmVsIGZvbnRjb25maWctZGV2ZWwgZnJl ZXR5cGUtZGV2ZWwgb3B1cy1kZXZlbCBsaWJmZmktZGV2ZWwKKyAkKHZvcHRfaWYgc25kaW8gc25k aW8tZGV2ZWwpIGZmbXBlZy1kZXZlbCBsaWJ2YS1kZXZlbCBsaWJ1di1kZXZlbCBjLWFyZXMtZGV2 ZWwgbGlibm90aWZ5LWRldmVsCisgJCh2b3B0X2lmIHBpcGV3aXJlIHBpcGV3aXJlLWRldmVsKSB3 YXlsYW5kLWRldmVsIGxpYmN1cmwtZGV2ZWwgbGlieHNobWZlbmNlLWRldmVsIgorc2hvcnRfZGVz Yz0iQ3Jvc3MgcGxhdGZvcm0gYXBwbGljYXRpb24gZnJhbWV3b3JrIGJhc2VkIG9uIHdlYiB0ZWNo bm9sb2dpZXMiCittYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5z ZT0iQlNELTMtQ2xhdXNlIgoraG9tZXBhZ2U9Imh0dHBzOi8vZWxlY3Ryb25qcy5vcmciCitkaXN0 ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9lbGVjdHJvbi9lbGVjdHJvbi9hcmNoaXZlL3YkdmVy c2lvbi50YXIuZ3o+ZWxlY3Ryb24tJHt2ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL2NvbW1vbmRh dGFzdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Nocm9taXVtLWJyb3dzZXItb2ZmaWNpYWwvY2hyb21p dW0tJF9jaHJvbWl1bXZlci50YXIueHoKKyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUv YXJjaGl2ZS92JF9ub2RldmVyLnRhci5nej5ub2RlLSRfbm9kZXZlci50YXIuZ3oiCitjaGVja3N1 bT0iN2EyMGM5ODEyNWViMWFmZGU2M2JlMDkyMzVlMmRjZjE0OGIyMWU0ZWNhNmNlMDZhOWI5ZTcz ZDVjNmVjOGQxZgorIDBjZjJlZWMxNDRiY2NiNGNhNjY4Y2EzYjY1NTE3NjQ3YTA1ODIyNTk5MWIx ZDI1NDNjYjQ2MjZmYjQyMWNiYTcKKyBiMWMyMDA3MGVjMmNmYzkzMDU3MmU4ZDNjM2YxZGU0YmU4 YmM3ZTIyNTk5NTYwMzFkYjAwNzA5Yjc3NzVhMGRhIgorCitpZiBbICIkWEJQU19MSUJDIiA9IG11 c2wgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitmaQor CitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCW1ha2VkZXBlbmRz Kz0iIG11c2wtbGVnYWN5LWNvbXBhdCIKK2ZpCisKK25vX2dlbmVyaWNfcGtnY29uZmlnX2xpbms9 eWVzCitsaWIzMmRpc2FibGVkPXllcworCitidWlsZF9vcHRpb25zPSJjbGFuZyBsaWJjeHggZGVi dWcgdmFhcGkgcHVsc2VhdWRpbyBzbmRpbyBwaXBld2lyZSIKK2J1aWxkX29wdGlvbnNfZGVmYXVs dD0iY2xhbmcgbGliY3h4IHZhYXBpIHB1bHNlYXVkaW8gcGlwZXdpcmUiCitkZXNjX29wdGlvbl9j bGFuZz0iVXNlIGNsYW5nIHRvIGJ1aWxkIgorZGVzY19vcHRpb25fbGliY3h4PSJVc2UgYnVuZGxl ZCBsaWJjKysiCitkZXNjX29wdGlvbl9kZWJ1Zz0iQnVpbGQgd2l0aCBkZWJ1ZyBzeW1ib2xzIgor ZGVzY19vcHRpb25fcGlwZXdpcmU9IkVuYWJsZSBzdXBwb3J0IGZvciBzY3JlZW4gc2hhcmluZyBm b3IgV2ViUlRDIHZpYSBQaXBlV2lyZSIKKworCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K Kwlob3N0bWFrZWRlcGVuZHMrPSIgbGliWDExLWRldmVsIGxpYnhjYi1kZXZlbCBwY2l1dGlscy1k ZXZlbCBsaWJYZXh0LWRldmVsIGxpYmdsdm5kLWRldmVsCisJIGxpYmpwZWctdHVyYm8tZGV2ZWwg bGliWGktZGV2ZWwgbnNzLWRldmVsIGxpYnBuZy1kZXZlbCBsaWJ3ZWJwLWRldmVsCisJIGxpYnht bDItZGV2ZWwgJCh2b3B0X2lmIHB1bHNlYXVkaW8gcHVsc2VhdWRpby1kZXZlbCkgbGlieHNsdC1k ZXZlbCBsaWJ4a2Jjb21tb24tZGV2ZWwKKwkgJCh2b3B0X2lmIHBpcGV3aXJlIHBpcGV3aXJlLWRl dmVsKSBmZm1wZWctZGV2ZWwgb3B1cy1kZXZlbCBwYW5nby1kZXZlbCBsaWJ2YS1kZXZlbAorCSBs aWJjdXJsLWRldmVsIHNuYXBweS1kZXZlbCBsaWJYcmFuZHItZGV2ZWwgbGliWGNvbXBvc2l0ZS1k ZXZlbCBjdXBzLWRldmVsCisJIG1pdC1rcmI1LWRldmVsIGFsc2EtbGliLWRldmVsIGxpYlhkYW1h Z2UtZGV2ZWwgbGliZXBveHktZGV2ZWwgbGliZXZkZXYtZGV2ZWwKKwkgbGliYXZpZi1kZXZlbCBs aWJhb20tZGV2ZWwgbGliZGF2MWQtZGV2ZWwgbGliZmxhYy1kZXZlbAorCSBsaWJkcm0tZGV2ZWwg bGliZ2JtLWRldmVsIgorZmkKKworaWYgWyAhICIkWEJQU19XT1JEU0laRSIgPSAiJFhCUFNfVEFS R0VUX1dPUkRTSVpFIiBdOyB0aGVuCisJYnJva2VuPSJjaHJvbWl1bSAodjgpIGNhbiBvbmx5IGJl IGNyb3NzIGNvbXBpbGVkIGlmIHdvcmQgc2l6ZSBtYXRjaGVzIgorZmkKKworaWYgWyAiJENST1NT X0JVSUxEIiBdOyB0aGVuCisJY2FzZSAiJHtYQlBTX1RBUkdFVF9NQUNISU5FfSIgaW4KKwkJI2Fh cmNoNjQqKSA7OworCQkqKSBub2Nyb3NzPSJjaHJvbWl1bSBjYW4gbm90IGJlIGNyb3NzIGNvbXBp bGVkIGZvciB0aGlzIGFyY2hpdGVjdHVyZSIgOzsKKwllc2FjCitmaQorCitfYnVpbGR0eXBlPVJl bGVhc2UKKworX3NldHVwX2NsYW5nKCkgeworCWV4cG9ydCBDQz1jbGFuZworCWV4cG9ydCBDWFg9 Y2xhbmcrKworCWV4cG9ydCBBUj1sbHZtLWFyCisJZXhwb3J0IE5NPWxsdm0tbm0KKwlleHBvcnQg Q0ZMQUdTPSItV25vLXVua25vd24td2FybmluZy1vcHRpb24gLWZkZWJ1Zy1wcmVmaXgtbWFwPSR3 cmtzcmM9LiIKKwlleHBvcnQgQ1hYRkxBR1M9Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbiAt ZmRlYnVnLXByZWZpeC1tYXA9JHdya3NyYz0uIgorCWV4cG9ydCBMREZMQUdTPSIiCisJZXhwb3J0 IEJVSUxEX0NDPWNsYW5nCisJZXhwb3J0IEJVSUxEX0NYWD1jbGFuZysrCisJZXhwb3J0IEJVSUxE X0FSPWxsdm0tYXIKKwlleHBvcnQgQlVJTERfTk09bGx2bS1ubQorCWV4cG9ydCBCVUlMRF9DRkxB R1M9Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbiIKKwlleHBvcnQgQlVJTERfQ1hYRkxBR1M9 Ii1Xbm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbiIKKwlpZiBbWyAtbiAiJENST1NTX0JVSUxEIiBd XTsgdGhlbgorCQlDRkxBR1MrPSIgLS1zeXNyb290PSR7WEJQU19DUk9TU19CQVNFfSIKKwkJQ1hY RkxBR1MrPSIgLS1zeXNyb290PSR7WEJQU19DUk9TU19CQVNFfSIKKwkJTERGTEFHUys9IiAtLXN5 c3Jvb3Q9JHtYQlBTX0NST1NTX0JBU0V9IgorCQlpZiBbWyAteiAiJGJ1aWxkX29wdGlvbl9saWJj eHgiIF1dOyB0aGVuCisJCQlsb2NhbCBnY2NfdmVyc2lvbj0kKGdjYyAtZHVtcHZlcnNpb24pCisJ CQlsb2NhbCBjbGFuZ192ZXJzaW9uPSQoY2xhbmcgLWR1bXB2ZXJzaW9uKQorCQkJQ0ZMQUdTKz0i IC0tZ2NjLXRvb2xjaGFpbj0vdXNyIgorCQkJQ0ZMQUdTKz0iIC1ub3N0ZGluYyIKKwkJCUNGTEFH Uys9IiAtaXN5c3RlbSAke1hCUFNfQ1JPU1NfQkFTRX0vdXNyL2luY2x1ZGUiCisJCQlDRkxBR1Mr PSIgLWlzeXN0ZW0gL3Vzci9saWIvY2xhbmcvJHtjbGFuZ192ZXJzaW9ufS9pbmNsdWRlIgorCQkJ Q1hYRkxBR1MrPSIgLS1nY2MtdG9vbGNoYWluPS91c3IiCisJCQlDWFhGTEFHUys9IiAtbm9zdGRp bmMrKyIKKwkJCUNYWEZMQUdTKz0iIC1pc3lzdGVtICR7WEJQU19DUk9TU19CQVNFfS91c3IvaW5j bHVkZS9jKysvJHtnY2NfdmVyc2lvbiUuKn0iCisJCQlDWFhGTEFHUys9IiAtaXN5c3RlbSAke1hC UFNfQ1JPU1NfQkFTRX0vdXNyL2luY2x1ZGUvYysrLyR7Z2NjX3ZlcnNpb24lLip9LyR7WEJQU19D Uk9TU19UUklQTEVUfSIKKwkJCUNYWEZMQUdTKz0iIC1pc3lzdGVtICR7WEJQU19DUk9TU19CQVNF fS91c3IvaW5jbHVkZS9jKysvJHtnY2NfdmVyc2lvbiUuKn0vYmFja3dhcmQiCisJCQlDWFhGTEFH Uys9IiAtbm9zdGRpbmMiCisJCQlDWFhGTEFHUys9IiAtaXN5c3RlbSAke1hCUFNfQ1JPU1NfQkFT RX0vdXNyL2luY2x1ZGUiCisJCQlDWFhGTEFHUys9IiAtaXN5c3RlbSAvdXNyL2xpYi9jbGFuZy8k e2NsYW5nX3ZlcnNpb259L2luY2x1ZGUiCisJCQlMREZMQUdTKz0iIC0tZ2NjLXRvb2xjaGFpbj0v dXNyIgorCQlmaQorCWZpCit9CisKK19zZXR1cF90b29sY2hhaW4oKSB7CisJaWYgWyAiJGJ1aWxk X29wdGlvbl9jbGFuZyIgXTsgdGhlbgorCQlfc2V0dXBfY2xhbmcKKwlmaQorfQorCitfYXBwbHlf cGF0Y2goKSB7CisJbG9jYWwgYXJncz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKKworCWlm IFsgISAtZiAiLiR7cG5hbWV9X2RvbmUiIF07IHRoZW4KKwkJaWYgWyAtZiAiJHsyfS5hcmdzIiBd OyB0aGVuCisJCQlhcmdzPSQoPCIkezJ9LmFyZ3MiKQorCQlmaQorCQltc2dfbm9ybWFsICIkcGtn dmVyOiBwYXRjaGluZzogJHtwbmFtZX0uXG4iCisJCXBhdGNoIC1OICRhcmdzIC1pICQyCisJCXRv dWNoIC4ke3BuYW1lfV9kb25lCisJZmkKK30KKworX2dpdF9hbSgpIHsKKwlsb2NhbCBwbmFtZT0i JChiYXNlbmFtZSAkMSkiCisKKwlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCisJ CW1zZ19ub3JtYWwgIiRwa2d2ZXI6IHBhdGNoaW5nOiAke3BuYW1lfS5cbiIKKwkJZ2l0IC1jICd1 c2VyLm5hbWU9RWxlY3Ryb24gYnVpbGQnIC1jICd1c2VyLmVtYWlsPWVsZWN0cm9uQGVidWlsZCcg XAorCQkJYW0gLS1leGNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay90b29scy8qKiIgXAorCQkJLS1l eGNsdWRlICJ0ZXN0L21qc3VuaXQvKioiIC0tZXhjbHVkZSAiY29udGVudC90ZXN0LyoqIiBcCisJ CQktLWV4Y2x1ZGUgInRlc3QvY2N0ZXN0LyoqIiAtLWV4Y2x1ZGUgInRlc3QvdW5pdHRlc3RzLyoq IiBcCisJCQktLWV4Y2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3dlYl90ZXN0cy8qKiIgXAorCQkJ LS1leGNsdWRlICJjaHJvbWUvdGVzdC8qKiIgXAorCQkJJDEKKwkJdG91Y2ggLiR7cG5hbWV9X2Rv bmUKKwlmaQorfQorCisKK19nZXRfY2hyb21pdW1fYXJjaCgpIHsKKwljYXNlICIkMSIgaW4KKwkJ eDg2XzY0KikgZWNobyB4NjQgOzsKKwkJaTY4NiopIGVjaG8geDg2IDs7CisJCWFybSopIGVjaG8g YXJtIDs7CisJCWFhcmNoNjQqKSBlY2hvIGFybTY0IDs7CisJCXBwYzY0KikgZWNobyBwcGM2NCA7 OworCQlwcGMqKSBlY2hvIHBwYyA7OworCQltaXBzZWwqKSBlY2hvIG1pcHNlbCA7OworCQltaXBz KikgZWNobyBtaXBzIDs7CisJCSopIG1zZ19lcnJvciAiJHBrZ3ZlcjogY2Fubm90IGJlIGNvbXBp bGVkIGZvciAke1hCUFNfVEFSR0VUX01BQ0hJTkV9LlxuIiA7OworCWVzYWMKK30KKworcG9zdF9l eHRyYWN0KCkgeworCW12IGNocm9taXVtLSR7X2Nocm9taXVtdmVyfSBzcmMKKwlta2RpciAtcCBz cmMvdGhpcmRfcGFydHkvCisJbXYgbm9kZS0kX25vZGV2ZXIgc3JjL3RoaXJkX3BhcnR5L2VsZWN0 cm9uX25vZGUKKwltdiBlbGVjdHJvbi0ke3ZlcnNpb259IHNyYy9lbGVjdHJvbgorfQorCitfZ2l0 X2luaXQoKSB7CisJcmVwb3BhdGg9IiQxIgorCWNkICIkd3Jrc3JjIi8iJHJlcG9wYXRoIgorCWdp dCBpbml0IC1xCisJZ2l0IGNvbmZpZyAiZ2MuYXV0byIgMAorCWlmIFsgIiRyZXBvcGF0aCIgIT0g InNyYyIgXTsgdGhlbgorCQllY2hvICIvJHtyZXBvcGF0aCNzcmMvfSIgPj4gIiR3cmtzcmMvJGJ1 aWxkX3dya3NyYy8uZ2l0aWdub3JlIgorCWZpCisJZ2l0IGFkZCAuCisJZ2l0IC1jICd1c2VyLm5h bWU9RWxlY3Ryb24gYnVpbGQnIC1jICd1c2VyLmVtYWlsPWVsZWN0cm9uQGVidWlsZCcgXAorCQlj b21taXQgLXEgLW0gIi4iIHx8IHRydWUKKworfQorCitwb3N0X3BhdGNoKCkgeworCWNkICR3cmtz cmMKKwlmb3IgeCBpbiAkRklMRVNESVIvcGF0Y2hlcy8qLnBhdGNoOyBkbworCQljYXNlICIke3gj IyovfSIgaW4KKwkJCWVsZWN0cm9uKi5wYXRjaCkKKwkJCQljZCBzcmMvZWxlY3Ryb24KKwkJCQlf YXBwbHlfcGF0Y2ggLXAxICIkeCIKKwkJCQljZCAiJHdya3NyYyI7OworCQllc2FjCisJZG9uZQor CisJIyBTaWdoLCBlbGVjdHJvbiB1c2VzIGdpdCBhbS4uLgorCWlmIFsgISAtZiAiLmVsZWN0cm9u X3BhdGNoZXNfZG9uZSIgXTsgdGhlbgorCW12IHNyYy9lbGVjdHJvbi9wYXRjaGVzL2NvbmZpZy5q c29uIGNvbmZpZy5qc29uLm9sZAorCWpxICdkZWwoLiJzcmMvZWxlY3Ryb24vcGF0Y2hlcy9NYW50 bGUiLCAuInNyYy9lbGVjdHJvbi9wYXRjaGVzL1JlYWN0aXZlT2JqQyIsCisJCS4ic3JjL2VsZWN0 cm9uL3BhdGNoZXMvc3F1aXJyZWwubWFjIiwgLiJzcmMvZWxlY3Ryb24vcGF0Y2hlcy9uYW4iKScg XAorCQljb25maWcuanNvbi5vbGQgPiBzcmMvZWxlY3Ryb24vcGF0Y2hlcy9jb25maWcuanNvbgor CisJcHl0aG9uMy4xMSBzcmMvZWxlY3Ryb24vc2NyaXB0L2xpc3RfcGF0Y2hfdGFyZ2V0cy5weSBz cmMvZWxlY3Ryb24vcGF0Y2hlcy9jb25maWcuanNvbiB8IHdoaWxlIHJlYWQgLXIgcmVwb3BhdGg7 IGRvCisJCV9naXRfaW5pdCAkcmVwb3BhdGgKKwlkb25lCisJX2dpdF9pbml0IHNyYy9lbGVjdHJv bgorCWNkICR3cmtzcmMKKworCWZvciB4IGluICRGSUxFU0RJUi9jaHJvbWl1bS11cHN0cmVhbS1w YXRjaGVzLyoucGF0Y2g7IGRvCisJCVsgLWYgJHggXSB8fCBjb250aW51ZQorCQljZCBzcmMKKwkJ X2dpdF9hbSAiJHgiCisJCWNkICIkd3Jrc3JjIgorCWRvbmUKKworCXB5dGhvbjMuMTEgc3JjL2Vs ZWN0cm9uL3NjcmlwdC9hcHBseV9hbGxfcGF0Y2hlcy5weSBzcmMvZWxlY3Ryb24vcGF0Y2hlcy9j b25maWcuanNvbgorCXRvdWNoIC5lbGVjdHJvbl9wYXRjaGVzX2RvbmUKKwlmaQorCisJZm9yIHgg aW4gJEZJTEVTRElSL3BhdGNoZXMvKjsgZG8KKwkJY2FzZSAiJHt4IyMqL30iIGluCisJCQljaHJv bWl1bSoucGF0Y2gpCisJCQkJY2Qgc3JjCisJCQkJX2FwcGx5X3BhdGNoIC1wMSAiJHgiCisJCQkJ Y2QgIiR3cmtzcmMiOzsKKwkJZXNhYworCWRvbmUKKworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJD IiA9ICJtdXNsIiBdOyB0aGVuCisJZm9yIHggaW4gJEZJTEVTRElSL211c2wtcGF0Y2hlcy8qOyBk bworCQljYXNlICIke3gjIyovfSIgaW4KKwkJCWNocm9taXVtKi5wYXRjaCkKKwkJCQljZCBzcmMK KwkJCQlfYXBwbHlfcGF0Y2ggLXAxICIkeCIKKwkJCQljZCAiJHdya3NyYyI7OworCQkJZWxlY3Ry b24qLnBhdGNoKQorCQkJCWNkIHNyYy9lbGVjdHJvbgorCQkJCV9hcHBseV9wYXRjaCAtcDEgIiR4 IgorCQkJCWNkICIkd3Jrc3JjIjs7CisJCWVzYWMKKwlkb25lCisJZmkKKwlpZiBbICIkYnVpbGRf b3B0aW9uX3NuZGlvIiBdOyB0aGVuCisJCW1rZGlyIC1wICR7d3Jrc3JjfS8ke2J1aWxkX3dya3Ny Y30vbWVkaWEvYXVkaW8ve3NuZGlvLG9wZW5ic2R9CisJCWNwICR7RklMRVNESVJ9L3NuZGlvLWZp bGVzL3NuZGlvXypwdXQuKiBcCisJCQkke3dya3NyY30vJHtidWlsZF93cmtzcmN9L21lZGlhL2F1 ZGlvL3NuZGlvCisJCWNwICR7RklMRVNESVJ9L3NuZGlvLWZpbGVzL2F1ZGlvX21hbmFnZXJfb3Bl bmJzZC4qIFwKKwkJCSR7d3Jrc3JjfS8ke2J1aWxkX3dya3NyY30vbWVkaWEvYXVkaW8vb3BlbmJz ZAorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL3NuZGlvLXBhdGNoZXMvKi5wYXRjaDsgZG8KKwkJ CWNkIHNyYworCQkJX2FwcGx5X3BhdGNoIC1wMCAiJGYiCisJCQljZCAiJHdya3NyYyIKKwkJZG9u ZQorCWZpCisJdnNlZCAtaSAncy9PRkZJQ0lBTF9CVUlMRC9HT09HTEVfQ0hST01FX0JVSUxELycg XAorCQlzcmMvdG9vbHMvZ2VuZXJhdGVfc2hpbV9oZWFkZXJzL2dlbmVyYXRlX3NoaW1faGVhZGVy cy5weQorfQorCitwcmVfY29uZmlndXJlKCkgeworCWxuIC1zZiAiL3Vzci9iaW4vcHl0aG9uMy4x MSIgIiR7WEJQU19XUkFQUEVSRElSfS9weXRob24zIgorCWNkICIkd3Jrc3JjLyRidWlsZF93cmtz cmMiCisKKwkjIGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vYS9jaHJvbWl1bS5vcmcvZC90b3Bp Yy9jaHJvbWl1bS1wYWNrYWdlcnMvOUpYMU4ybmY0UFUvZGlzY3Vzc2lvbgorCXRvdWNoIGNocm9t ZS90ZXN0L2RhdGEvd2VidWkvaTE4bl9wcm9jZXNzX2Nzc190ZXN0Lmh0bWwKKwkjIFVzZSB0aGUg ZmlsZSBhdCBydW4gdGltZSBpbnN0ZWFkIG9mIGVmZmVjdGl2ZWx5IGNvbXBpbGluZyBpdCBpbgor CXNlZCAnc3wvL3RoaXJkX3BhcnR5L3VzYl9pZHMvdXNiLmlkc3wvdXNyL3NoYXJlL2h3ZGF0YS91 c2IuaWRzfGcnIFwKKwkJLWkgc2VydmljZXMvZGV2aWNlL3B1YmxpYy9jcHAvdXNiL0JVSUxELmdu CisKKwl2c2VkIC1lICdzfHB5dGhvbjMuMTB8cHl0aG9uMy4xMXxnJyAtaSB0aGlyZF9wYXJ0eS9l bGVjdHJvbl9ub2RlL2NvbmZpZ3VyZQorCXZzZWQgLWUgInN8KDMsIDEwKXwoMywgMTEpfCIgLWkg dGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZS9jb25maWd1cmUKKworCW1rZGlyIC1wIHRoaXJkX3Bh cnR5L25vZGUvbGludXgvbm9kZS1saW51eC14NjQvYmluCisJbG4gLXNmIC91c3IvYmluL25vZGUg dGhpcmRfcGFydHkvbm9kZS9saW51eC9ub2RlLWxpbnV4LXg2NC9iaW4vCisJcm0gLWYgdGhpcmRf cGFydHkvZGV2dG9vbHMtZnJvbnRlbmQvc3JjL3RoaXJkX3BhcnR5L2VzYnVpbGQvZXNidWlsZAor CisJIyBjb21waWxlIGduIGVhcmx5LCBzbyBpdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBnbmkg c3R1ZmYKKwltc2dfbm9ybWFsICJCb290c3RyYXBwaW5nIEdOXG4iCisJQ0M9ImNsYW5nIiBDWFg9 IiR7Q1hYX0ZPUl9CVUlMRDotJENYWH0iIExEPSIke0xEX0ZPUl9CVUlMRDotJExEfSIgXAorCUNG TEFHUz0iJHtDRkxBR1NfRk9SX0JVSUxEOi0kQ0ZMQUdTfSAtV25vLWVycm9yPXJlZHVuZGFudC1t b3ZlIiBcCisJQ1hYRkxBR1M9IiR7Q1hYRkxBR1NfRk9SX0JVSUxEOi0kQ1hYRkxBR1N9IC1Xbm8t ZXJyb3I9cmVkdW5kYW50LW1vdmUiIFwKKwlMREZMQUdTPSIke1hCUFNfTERGTEFHU30iIFwKKwkJ cHl0aG9uMy4xMSB0b29scy9nbi9ib290c3RyYXAvYm9vdHN0cmFwLnB5IC1zIC12IC0tc2tpcC1n ZW5lcmF0ZS1idWlsZGZpbGVzCisKKwkjIHJldXNhYmxlIHN5c3RlbSBsaWJyYXJ5IHNldHRpbmdz CisJbG9jYWwgdXNlX3N5c3RlbT0iCisJCWZmbXBlZworCQlmbGFjCisJCWZvbnRjb25maWcKKwkJ ZnJlZXR5cGUKKwkJbGliZHJtCisJCWxpYmV2ZW50CisJCWxpYmpwZWcKKwkJbGlicG5nCisJCWxp YndlYnAKKwkJbGlieG1sCisJCWxpYnhzbHQKKwkJb3B1cworCQlzbmFwcHkKKwkJIgorCWZvciBf bGliIGluICR1c2Vfc3lzdGVtIGxpYmpwZWdfdHVyYm87IGRvCisJCW1zZ19ub3JtYWwgIlJlbW92 aW5nIGJ1aWxkc2NyaXB0cyBmb3Igc3lzdGVtIHByb3ZpZGVkICRfbGliXG4iCisJCWZpbmQgLXR5 cGUgZiAtcGF0aCAiKnRoaXJkX3BhcnR5LyRfbGliLyoiIFwKKwkJCVwhIC1wYXRoICIqdGhpcmRf cGFydHkvJF9saWIvY2hyb21pdW0vKiIgXAorCQkJXCEgLXBhdGggIip0aGlyZF9wYXJ0eS8kX2xp Yi9nb29nbGUvKiIgXAorCQkJXCEgLXBhdGggJy4vYmFzZS90aGlyZF9wYXJ0eS9pY3UvKicgXAor CQkJXCEgLXBhdGggJy4vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2ZyZWV0eXBlL2lu Y2x1ZGUvcHN0YWJsZXMuaCcgXAorCQkJXCEgLXJlZ2V4ICcuKlwuXChnblx8Z25pXHxpc29sYXRl XHxweVwpJyBcCisJCQktZGVsZXRlCisJZG9uZQorCisKKwltc2dfbm9ybWFsICJSZXBsYWNpbmcg Z24gZmlsZXNcbiIKKwlweXRob24zLjExIGJ1aWxkL2xpbnV4L3VuYnVuZGxlL3JlcGxhY2VfZ25f ZmlsZXMucHkgXAorCQktLXN5c3RlbS1saWJyYXJpZXMgJHVzZV9zeXN0ZW0KKwl0aGlyZF9wYXJ0 eS9saWJhZGRyZXNzaW5wdXQvY2hyb21pdW0vdG9vbHMvdXBkYXRlLXN0cmluZ3MucHkKKworCSMg U2F0aXNmeSBzb21lIHNjcmlwdHMgdGhhdCB1c2UgZ2l0IGRlc2NyaWJlIHRvIGZpZ3VyZSBvdXQg dGhlIGVsZWN0cm9uIHZlcnNpb24KKwljZCAke3dya3NyY30vc3JjL2VsZWN0cm9uCisJZ2l0IHRh ZyAtZiAidiR7dmVyc2lvbn0iCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlsb2NhbCB0YXJnZXRf YXJjaD0iJChfZ2V0X2Nocm9taXVtX2FyY2ggJHtYQlBTX1RBUkdFVF9NQUNISU5FfSkiCisJbG9j YWwgaG9zdF9hcmNoPSIkKF9nZXRfY2hyb21pdW1fYXJjaCAke1hCUFNfTUFDSElORX0pIgorCWxv Y2FsIGNvbmY9KCkKKwljZCB0aGlyZF9wYXJ0eS9lbGVjdHJvbl9ub2RlCisJaWYgWyAiJENST1NT X0JVSUxEIiBdOyB0aGVuCisJCWNvbmZfYXJncz0iIC0tZGVzdC1jcHU9JHt0YXJnZXRfYXJjaH0g LS1jcm9zcy1jb21waWxpbmciCisJZmkKKwkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIFwKKwkJ LS1zaGFyZWQtemxpYiBcCisJCS0tc2hhcmVkLWxpYnV2IFwKKwkJLS1zaGFyZWQtb3BlbnNzbCBc CisJCS0tc2hhcmVkLWNhcmVzIFwKKwkJLS1vcGVuc3NsLXVzZS1kZWYtY2Etc3RvcmUgXAorCQkt LXdpdGhvdXQtbnBtIFwKKwkJLS13aXRob3V0LWR0cmFjZSBcCisJCS0td2l0aG91dC1idW5kbGVk LXY4IFwKKwkJJHtjb25mX2FyZ3N9CisKKwljZCAiJHdya3NyYy8kYnVpbGRfd3Jrc3JjIi9lbGVj dHJvbgorCXlhcm4gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZQorCWNkICIkd3Jrc3JjLyRidWls ZF93cmtzcmMiCisKKwljb25mKz0oCisJCSdpbXBvcnQoIi8vZWxlY3Ryb24vYnVpbGQvYXJncy9y ZWxlYXNlLmduIiknCisJCSJvdmVycmlkZV9lbGVjdHJvbl92ZXJzaW9uPVwiJHt2ZXJzaW9ufVwi IgorCSkKKwljb25mKz0oCisJCSdlbmFibGVfbmFjbD1mYWxzZScKKwkJJ2VuYWJsZV9ydXN0PWZh bHNlJworCisJCSd1c2Vfc3lzcm9vdD1mYWxzZScKKworCQknaG9zdF9wa2dfY29uZmlnPSIvdXNy L2Jpbi9wa2ctY29uZmlnIicKKworCQkiaXNfY2xhbmc9JCh2b3B0X2lmIGNsYW5nIHRydWUgZmFs c2UpIgorCQkidXNlX2xsZD0kKHZvcHRfaWYgY2xhbmcgdHJ1ZSBmYWxzZSkiCisJCSdjbGFuZ191 c2VfY2hyb21lX3BsdWdpbnM9ZmFsc2UnCisJCSdjbGFuZ19iYXNlX3BhdGg9Ii91c3IiJworCisJ CSJnb2xkX3BhdGg9XCIke1hCUFNfQ1JPU1NfQkFTRX0vdXNyL2Jpbi9sZC5nb2xkXCIiCisJCSJ1 c2VfY3VzdG9tX2xpYmN4eD0kKHZvcHRfaWYgbGliY3h4IHRydWUgZmFsc2UpIiAjIGh0dHBzOi8v Z2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9pc3N1ZXMvNjE3MDUKKwkJJ3VzZV9nb2xkPWZh bHNlJworCisJCSdydXN0X3N5c3Jvb3RfYWJzb2x1dGU9Ii91c3IiJworCisJCSMgaXNfZGVidWcg bWFrZXMgdGhlIGJ1aWxkIGEgZGVidWcgYnVpbGQsIGNoYW5nZXMgc29tZSB0aGluZ3MuCisJCSMg bWlnaHQgYmUgdXNlZnVsIGZvciByZWFsIGRlYnVnZ2luZyB2cyBqdXN0IGRlYnVnIHN5bWJvbHMu CisJCSJpc19kZWJ1Zz1mYWxzZSIKKwkJImJsaW5rX3N5bWJvbF9sZXZlbD0kKHZvcHRfaWYgZGVi dWcgMSAwKSIKKwkJInN5bWJvbF9sZXZlbD0kKHZvcHRfaWYgZGVidWcgMSAwKSIKKworCQknaWN1 X3VzZV9kYXRhX2ZpbGU9dHJ1ZScKKworCQknZW5hYmxlX3dpZGV2aW5lPWZhbHNlJworCQknZW5h YmxlX2hhbmdvdXRfc2VydmljZXNfZXh0ZW5zaW9uPXRydWUnCisKKwkJJ3VzZV9zeXN0ZW1faGFy ZmJ1eno9ZmFsc2UnCisJCSd1c2Vfc3lzdGVtX2xpYmZmaT10cnVlJworCisJCSd1c2VfcXQ9ZmFs c2UnCisKKwkJJ3VzZV9jdXBzPXRydWUnCisKKwkJInVzZV92YWFwaT0kKHZvcHRfaWYgdmFhcGkg dHJ1ZSBmYWxzZSkiCisKKwkJInVzZV9wdWxzZWF1ZGlvPSQodm9wdF9pZiBwdWxzZWF1ZGlvIHRy dWUgZmFsc2UpIgorCQkibGlua19wdWxzZWF1ZGlvPSQodm9wdF9pZiBwdWxzZWF1ZGlvIHRydWUg ZmFsc2UpIgorCisJCSJydGNfdXNlX3BpcGV3aXJlPSQodm9wdF9pZiBwaXBld2lyZSB0cnVlIGZh bHNlKSIKKworCQkidXNlX3NuZGlvPSQodm9wdF9pZiBzbmRpbyB0cnVlIGZhbHNlKSIKKworCQkj IEFsd2F5cyBzdXBwb3J0IHByb3ByaWV0YXJ5IGNvZGVjcy4KKwkJIyBFbmFibGUgSC4yNjQgc3Vw cG9ydCBpbiBidW5kbGVkIGZmbXBlZy4KKwkJJ3Byb3ByaWV0YXJ5X2NvZGVjcz10cnVlJworCQkn ZmZtcGVnX2JyYW5kaW5nPSJDaHJvbWUiJworCisJCSMgTWFrZSBzdXJlIHRoYXQgLVdlcnJvciBk b2Vzbid0IGdldCBhZGRlZCB0byBDRkxBR1MgYnkgdGhlIGJ1aWxkIHN5c3RlbS4KKwkJIyBEZXBl bmRpbmcgb24gR0NDIHZlcnNpb24gdGhlIHdhcm5pbmdzIGFyZSBkaWZmZXJlbnQgYW5kIHdlIGRv bid0IHdhbnQKKwkJIyB0aGUgYnVpbGQgdG8gZmFpbCBiZWNhdXNlIG9mIHRoYXQuCisJCSd0cmVh dF93YXJuaW5nc19hc19lcnJvcnM9ZmFsc2UnCisJCSdmYXRhbF9saW5rZXJfd2FybmluZ3M9ZmFs c2UnCisKKwkJIyBTYXZlIHNwYWNlIGJ5IHJlbW92aW5nIERMT0cgYW5kIERDSEVDSyBtZXNzYWdl cyAoYWJvdXQgNiUgcmVkdWN0aW9uKS4KKwkJIyAnbG9nZ2luZ19saWtlX29mZmljaWFsX2J1aWxk PXRydWUnCisJCSdkaXNhYmxlX2ZpZWxkdHJpYWxfdGVzdGluZ19jb25maWc9dHJ1ZScKKworCQkn aXNfb2ZmaWNpYWxfYnVpbGQ9dHJ1ZScKKworCQkjIHNlZ2ZhdWx0cyB3aXRoIGxsdm0tMTIuMC4x CisJCSdpc19jZmk9ZmFsc2UnCisJCSd1c2VfdGhpbl9sdG89ZmFsc2UnCisJCSd1c2VfY2ZpX2lj YWxsPWZhbHNlJworCQknY2hyb21lX3Bnb19waGFzZT0wJworCSkKKworCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWNvbmYrPSggJ2lzX211c2w9dHJ1ZScgKQor CWZpCisKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJY29uZis9KAorCQkJJ2N1c3Rv bV90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlOmRlZmF1bHQiJwor CQkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZTpob3N0 IicKKwkJCSd2OF9zbmFwc2hvdF90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3Vu YnVuZGxlOnY4X3NuYXBzaG90X2Nyb3NzIicKKwkJKQorCWVsc2UKKwkJY29uZis9KAorCQkJJ2N1 c3RvbV90b29sY2hhaW49Ii8vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlOmRlZmF1bHQi JworCQkJJ2hvc3RfdG9vbGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZTpk ZWZhdWx0IicKKwkJKQorCWZpCisKKwljb25mKz0oCisJCSJ0YXJnZXRfY3B1PVwiJHRhcmdldF9h cmNoXCIiCisJCSJob3N0X2NwdT1cIiRob3N0X2FyY2hcIiIKKwkpCisKKwlfc2V0dXBfdG9vbGNo YWluCisJbXNnX25vcm1hbCAiQ29uZmlndXJpbmcgYnVpbGRcbiIKKwlvdXQvUmVsZWFzZS9nbiBn ZW4gb3V0LyRfYnVpbGR0eXBlIC0tYXJncz0iJHtjb25mWypdfSIKK30KKworZG9fYnVpbGQoKSB7 CisJX3NldHVwX3Rvb2xjaGFpbgorCW1zZ19ub3JtYWwgIk5pbmphIHR1cnRsZXMgR08hXG4iCisJ bmluamEgJHttYWtlam9ic30gLUMgb3V0LyRfYnVpbGR0eXBlIG5vZGVfZ3lwaV9oZWFkZXJzIG5v ZGVfdmVyc2lvbl9oZWFkZXIgZWxlY3Ryb25fZGlzdF96aXAKKwljcCAtdmYgb3V0L1JlbGVhc2Uv Z2VuL25vZGVfaGVhZGVycy9pbmNsdWRlL25vZGUvY29uZmlnLmd5cGkgdGhpcmRfcGFydHkvZWxl Y3Ryb25fbm9kZS9jb25maWcuZ3lwaQorfQorCitkb19pbnN0YWxsKCkgeworCXZta2RpciAvdXNy L2xpYi8kcGtnbmFtZQorCXZta2RpciAvdXNyL2luY2x1ZGUvJHBrZ25hbWUKKwlic2R0YXIgLXhm IG91dC8kX2J1aWxkdHlwZS9kaXN0LnppcCAtQyAiJERFU1RESVIvdXNyL2xpYi8kcGtnbmFtZSIK KworCSgKKwkJY2QgdGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZQorCQlIRUFERVJTX09OTFk9MSBw eXRob24zLjExIC4vdG9vbHMvaW5zdGFsbC5weSBpbnN0YWxsICIkcGtnZGlyIiAiJHtERVNURElS fS91c3IvaW5jbHVkZS8ke3BrZ25hbWV9L25vZGVfaGVhZGVycyIKKwkpCisJdmxpY2Vuc2UgJHt3 cmtzcmN9L3NyYy9MSUNFTlNFIGNocm9taXVtLkxJQ0VOU0UKKwl2bGljZW5zZSAke3dya3NyY30v c3JjL2VsZWN0cm9uL0xJQ0VOU0UgZWxlY3Ryb24uTElDRU5TRQorCXZsaWNlbnNlICR7d3Jrc3Jj fS9zcmMvdGhpcmRfcGFydHkvZWxlY3Ryb25fbm9kZS9MSUNFTlNFIG5vZGUuTElDRU5TRQorCisJ dm1rZGlyIC91c3IvYmluCisJbG4gLXMgLi4vbGliLyRwa2duYW1lL2VsZWN0cm9uICIkREVTVERJ UiIvdXNyL2Jpbi8kcGtnbmFtZQorfQorCitlbGVjdHJvbjI4LWRldmVsX3BhY2thZ2UoKSB7CisJ ZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rl c2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNy L2luY2x1ZGUKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2VsZWN0cm9uMjgvdXBkYXRlIGIv c3JjcGtncy9lbGVjdHJvbjI4L3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwLi4zYWY4ZTU4YjUzNTgwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9lbGVj dHJvbjI4L3VwZGF0ZQpAQCAtMCwwICsxLDIgQEAKK3NpdGU9aHR0cHM6Ly93d3cuZWxlY3Ryb25q cy5vcmcvcmVsZWFzZXMvc3RhYmxlP3ZlcnNpb249JHt2ZXJzaW9uJSUuKn0KK3BhdHRlcm49J3Rh Zy92XEtbXGRcLl0rKD89IiknCg== --===============1057702484096055038==--