From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Grulich To: git-commits@fedoraproject.org Subject: [rpms/firefox] f45: WebRTC backport: video_capture - implement buffer stride support for PipeWire Date: Tue, 18 Aug 2026 13:30:43 GMT Message-ID: <178705984383.1.18373842319191627553.rpms-firefox-7dcfa2b5fe27@fedoraproject.org> List-ID: X-Git-Repo: rpms/firefox X-Git-Branch: f45 X-Git-Rev: 7dcfa2b5fe27a5262f4b64f70d069020aff20df4 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZmlyZWZveApCcmFu Y2ggOiBmNDUKQ29tbWl0IDogN2RjZmEyYjVmZTI3YTUyNjJmNGI2NGY3MGQwNjkwMjBhZmYyMGRm NApBdXRob3IgOiBKYW4gR3J1bGljaCA8amdydWxpY2hAcmVkaGF0LmNvbT4KRGF0ZSAgIDogMjAy Ni0wOC0xOFQxNToyODowOCswMjowMApTdGF0cyAgOiArNzA2Ly0xIGluIDIgZmlsZShzKQpVUkwg ICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2ZpcmVmb3gvYy83ZGNmYTJi NWZlMjdhNTI2MmY0YjY0ZjcwZDA2OTAyMGFmZjIwZGY0P2JyYW5jaD1mNDUKCkxvZzoKV2ViUlRD IGJhY2twb3J0OiB2aWRlb19jYXB0dXJlIC0gaW1wbGVtZW50IGJ1ZmZlciBzdHJpZGUgc3VwcG9y dCBmb3IgUGlwZVdpcmUKCi0tLQpkaWZmIC0tZ2l0IGEvZmlyZWZveC5zcGVjIGIvZmlyZWZveC5z cGVjCmluZGV4IGEwM2NiMzIuLmQ5NDAzMWQgMTAwNjQ0Ci0tLSBhL2ZpcmVmb3guc3BlYworKysg Yi9maXJlZm94LnNwZWMKQEAgLTE4Niw3ICsxODYsNyBAQCBFeGNsdWRlQXJjaDogaTY4NgogU3Vt bWFyeTogICAgICAgIE1vemlsbGEgRmlyZWZveCBXZWIgYnJvd3NlcgogTmFtZTogICAgICAgICAg IGZpcmVmb3gKIFZlcnNpb246ICAgICAgICAxNTQuMAotUmVsZWFzZTogICAgICAgIDIlez9wcmVf dGFnfSV7P2Rpc3R9CitSZWxlYXNlOiAgICAgICAgMyV7P3ByZV90YWd9JXs/ZGlzdH0KIFVSTDog ICAgICAgICAgICBodHRwczovL3d3dy5tb3ppbGxhLm9yZy9maXJlZm94LwogIyBBdXRvbWF0aWNh bGx5IGNvbnZlcnRlZCBmcm9tIG9sZCBmb3JtYXQ6IE1QTHYxLjEgb3IgR1BMdjIrIG9yIExHUEx2 MisgLSByZXZpZXcgaXMgaGlnaGx5IHJlY29tbWVuZGVkLgogTGljZW5zZTogICAgICAgIExpY2Vu c2VSZWYtQ2FsbGF3YXktTVBMdjEuMSBPUiBHUEwtMi4wLW9yLWxhdGVyIE9SIExpY2Vuc2VSZWYt Q2FsbGF3YXktTEdQTHYyKwpAQCAtMjU2LDYgKzI1NiwxMCBAQCBQYXRjaDI0MjogICAgICAgIDAw MjYtQWRkLUtERS1pbnRlZ3JhdGlvbi10by1GaXJlZm94LnBhdGNoCiBQYXRjaDQwMDogICAgICAg IG1vemlsbGEtMTE5Njc3Ny5wYXRjaAogUGF0Y2g0MDE6ICAgICAgICBtb3ppbGxhLTE2NjcwOTYu cGF0Y2gKIAorIyBodHRwczovL3BoYWJyaWNhdG9yLnNlcnZpY2VzLm1vemlsbGEuY29tL0QzMTI4 NzEKKyMgRHJvcCB3aXRoIEZpcmVmb3ggMTU2CitQYXRjaDQxMDogICAgICAgIGxpYndlYnJ0Yy12 aWRlby1jYXB0dXJlLWltcGxlbWVudC1idWZmZXItc3RyaWRlLXN1cHBvcnQtZm9yLXBpcGV3aXJl LnBhdGNoCisKICMgUEdPL0xUTyBwYXRjaGVzCiBQYXRjaDYwMDogICAgICAgIHBnby5wYXRjaAog UGF0Y2g2MDI6ICAgICAgICBtb3ppbGxhLTE1MTY4MDMucGF0Y2gKQEAgLTUzOSw2ICs1NDMsOCBA QCBjYXQgJXtTT1VSQ0U0OX0gfCBzZWQgLWUgInN8TElCQ0xBTkdfUlRfUExBQ0VIT0xERVJ8YHB3 ZGAvd2FzaS1zZGstMzAvYnVpbGQvc3lzcgogJXBhdGNoIC1QNDAwIC1wMSAtYiAuMTE5Njc3Nwog JXBhdGNoIC1QNDAxIC1wMSAtYiAuMTY2NzA5NgogCislcGF0Y2ggLVA0MTAgLXAxIC1iIC5saWJ3 ZWJydGMtdmlkZW8tY2FwdHVyZS1pbXBsZW1lbnQtYnVmZmVyLXN0cmlkZS1zdXBwb3J0LWZvci1w aXBld2lyZQorCiAjIFBHTyBwYXRjaGVzCiAlaWYgJXtidWlsZF93aXRoX3Bnb30KICVpZiAhJXt3 aXRoIGJ1aWxkX3dpdGhfY2xhbmd9CkBAIC0xMjA1LDYgKzEyMTEsOSBAQCBmaQogIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogCiAlY2hhbmdlbG9nCisqIFR1ZSBBdWcgMTggMjAyNiBKYW4gR3J1bGljaCA8amdydWxp Y2hAcmVkaGF0LmNvbT4gLSAxNTQuMC0zCistIFdlYlJUQyBiYWNrcG9ydDogdmlkZW9fY2FwdHVy ZSAtIGltcGxlbWVudCBidWZmZXIgc3RyaWRlIHN1cHBvcnQgZm9yIFBpcGVXaXJlCisKICogTW9u IEF1ZyAxNyAyMDI2IE1hcnRpbiBTdHJhbnNreSA8c3RyYW5za3lAcmVkaGF0LmNvbT4gLSAxNTQu MC0yCiAtIERpc2FibGVkIHNlc3Npb24gcmVzdG9yZSBvbiBGZWRvcmEgNDUrIGR1ZXMgdG8gY3Jh c2hlcy4KIAoKZGlmZiAtLWdpdCBhL2xpYndlYnJ0Yy12aWRlby1jYXB0dXJlLWltcGxlbWVudC1i dWZmZXItc3RyaWRlLXN1cHBvcnQtZm9yLXBpcGV3aXJlLnBhdGNoIGIvbGlid2VicnRjLXZpZGVv LWNhcHR1cmUtaW1wbGVtZW50LWJ1ZmZlci1zdHJpZGUtc3VwcG9ydC1mb3ItcGlwZXdpcmUucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNmOGExYgotLS0gL2Rldi9u dWxsCisrKyBiL2xpYndlYnJ0Yy12aWRlby1jYXB0dXJlLWltcGxlbWVudC1idWZmZXItc3RyaWRl LXN1cHBvcnQtZm9yLXBpcGV3aXJlLnBhdGNoCkBAIC0wLDAgKzEsNjk2IEBACitGcm9tIDk1OGNj OWRhNWYxMDFjMWI0MTE4Y2Y2MDEzZTVhOWNhMTU5MjUwMTkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBSb2JlcnQgTWFkZXIgPHJvYmVydC5tYWRlckBjb2xsYWJvcmEuY29tPgorRGF0 ZTogTW9uLCAxNyBBdWcgMjAyNiAxMzo0MzoxMCArMDAwMAorU3ViamVjdDogW1BBVENIXSBCdWcg MjA1NjAyOSAtIFdlYlJUQyBiYWNrcG9ydDogdmlkZW9fY2FwdHVyZTogSW1wbGVtZW50CisgYnVm ZmVyIHN0cmlkZSBzdXBwb3J0IGZvciBQaXBld2lyZSByPXBlaHJzb25zLGdydWxqYQorCitTaW1w bGUgYmFja3BvcnQgb2YgaHR0cHM6Ly93ZWJydGMtcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9z cmMvKy80OTE2ODAKKworVXBzdHJlYW0gY29tbWl0OiA1ZGE1YTZlNGUwMGM2OWVmNjBjNzY0M2U5 OWVmMzRmNjVmN2FmNTFhCisKK0Zyb20gdGhlIGNvbW1pdCBtZXNzYWdlOgorQWRkIG9wdGlvbmFs IGJ1ZmZlciBzdHJpZGUgc3VwcG9ydCB0byBWaWRlb0NhcHR1cmVJbXBsIGFuZCB1c2UgaXQgaW4K K1ZpZGVvQ2FwdHVyZU1vZHVsZVBpcGVXaXJlLCBhbGxvd2luZyB1cyB0byBkcm9wIHRoZSByZXF1 aXJlbWVudCBmb3IKK3VucGFkZGVkIGJ1ZmZlcnMuIFRoaXMgbm90YWJseSBpbXByb3ZlcyBjb21w YXRpYmlsaXR5IHdpdGggbGliY2FtZXJhLAord2hpY2ggc3VwcG9ydHMgYSB3aWRlciByYW5nZSBv ZiBkZXZpY2VzIHRoYW4gdGhlIFY0TDIgYmFja2VuZCAtIHNvbWUKK2hhdmluZyBoYXJkd2FyZSBy ZXF1aXJlbWVudHMgZm9yIHN0cmlkZS1hbGlnbm1lbnQuCisKK0V4dGVuZGluZyBgQ29udmVydFRv STQyMCgpYCBpbiBsaWJ5dXYgd2FzIHJlamVjdGVkIG9uIHRoZSBncm91bmRzIHRoYXQKK3RoZXJl IGFyZSB2YXJpb3VzIGFwcHJvYWNoZXMgdG8gc3RyaWRlIGhhbmRsaW5nIC0gdXNpbmcgYSBzaW5n bGUgc3RyaWRlCit2YWx1ZSBmb3IgbXVsdGlwbGUgcGxhbmVzLCBoYXZpbmcgZXhwbGljaXQgdmFs dWVzIGZvciBlYWNoIG9uZSBldGMuIC0gYXMKK3dlbGwgYXMgdGhlIGZhY3QgdGhhdCB3ZSBtaWdo dCB3ZWxsIHdhbnQgdG8gZXh0ZW5kIHRoZSBoZWxwZXIgZnVydGhlciBpbgordGhlIGZ1dHVyZSAt IGUuZy4gaW4gb3JkZXIgdG8gYmV0dGVyIGhhbmRsZSBjb2xvciBzcGFjZXMgc3VjaCBhcyBCVDcw OQorKGluc3RlYWQgb2YgYWx3YXlzIGFzc3VtaW5nIEJUNjAxKS4KKworVGh1cyB0aGlzIHBhdGNo IG5vdyBhZGRzIGEgbG9jYWwgY29weSBvZiBgQ29udmVydFRvSTQyMCgpYCwgc3VwcG9ydGluZwor aW1wbGljaXQgYW5kIGEgc2luZ2xlIGV4cGxpY2l0IHN0cmlkZSB2YWx1ZSBmb3Igbm93LgorCitE aWZmZXJlbnRpYWwgUmV2aXNpb246IGh0dHBzOi8vcGhhYnJpY2F0b3Iuc2VydmljZXMubW96aWxs YS5jb20vRDMxMjg3MQorLS0tCisgdGhpcmRfcGFydHkvbGlid2VicnRjL2NvbW1vbl92aWRlby9C VUlMRC5nbiAgIHwgICA0ICsKKyAuLi4vY29tbW9uX3ZpZGVvL2NvbW1vbl92aWRlb19nbi9tb3ou YnVpbGQgICAgfCAgIDEgKworIC4uLi9saWJ5dXYvaW5jbHVkZS93ZWJydGNfbGlieXV2LmggICAg ICAgICAgICB8ICAxNiArCisgLi4uL2NvbW1vbl92aWRlby9saWJ5dXYvbGlieXV2X3VuaXR0ZXN0 LmNjICAgIHwgIDMwICstCisgLi4uL2NvbW1vbl92aWRlby9saWJ5dXYvd2VicnRjX2xpYnl1di5j YyAgICAgIHwgMzIwICsrKysrKysrKysrKysrKysrKworIC4uLi9saW51eC92aWRlb19jYXB0dXJl X3BpcGV3aXJlLmNjICAgICAgICAgICB8ICA1NCArLS0KKyAuLi4vbW9kdWxlcy92aWRlb19jYXB0 dXJlL3ZpZGVvX2NhcHR1cmUuaCAgICAgfCAgIDMgKworIC4uLi92aWRlb19jYXB0dXJlL3ZpZGVv X2NhcHR1cmVfaW1wbC5jYyAgICAgICB8ICAxOCArLQorIC4uLi92aWRlb19jYXB0dXJlL3ZpZGVv X2NhcHR1cmVfaW1wbC5oICAgICAgICB8ICAgNiArCisgLi4uLzVkYTVhNmU0ZTAubm8tb3AtY2hl cnJ5LXBpY2stbXNnICAgICAgICAgIHwgICAxICsKKyAxMCBmaWxlcyBjaGFuZ2VkLCAzOTMgaW5z ZXJ0aW9ucygrKSwgNjAgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRoaXJkX3Bh cnR5L2xpYndlYnJ0Yy9tb3otcGF0Y2gtc3RhY2svNWRhNWE2ZTRlMC5uby1vcC1jaGVycnktcGlj ay1tc2cKKworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9jb21tb25fdmlkZW8v QlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9saWJ3ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduCitp bmRleCA4NjhkMDlhMmViMWVhLi5lYjNjYzA3Zjk0OGFkIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvbGlid2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbgorKysrIGIvdGhpcmRfcGFydHkvbGli d2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbgorQEAgLTk3LDYgKzk3LDEwIEBAIHJ0Y19saWJy YXJ5KCJjb21tb25fdmlkZW8iKSB7CisgICAgICAgIi4uL3J0Y19iYXNlL2NvbnRhaW5lcnM6Zmxh dF9tYXAiLAorICAgICBdCisgICB9CisrCisrICBpZiAoIWlzX2lvcykgeworKyAgICBkZWZpbmVz ID0gWyAiSEFWRV9MSUJZVVZfSlBFRyIgXQorKyAgfQorIH0KKyAKKyBydGNfc291cmNlX3NldCgi ZnJhbWVfY291bnRzIikgeworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9jb21t b25fdmlkZW8vY29tbW9uX3ZpZGVvX2duL21vei5idWlsZCBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0 Yy9jb21tb25fdmlkZW8vY29tbW9uX3ZpZGVvX2duL21vei5idWlsZAoraW5kZXggNzMxYTY4ZDMz MjNjMy4uMTY2NDVjZTJkMTkyYyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9j b21tb25fdmlkZW8vY29tbW9uX3ZpZGVvX2duL21vei5idWlsZAorKysrIGIvdGhpcmRfcGFydHkv bGlid2VicnRjL2NvbW1vbl92aWRlby9jb21tb25fdmlkZW9fZ24vbW96LmJ1aWxkCitAQCAtMjAs NiArMjAsNyBAQCBERUZJTkVTWyJXRUJSVENfTElCUkFSWV9JTVBMIl0gPSBUcnVlCisgREVGSU5F U1siV0VCUlRDX01PWklMTEFfQlVJTEQiXSA9IFRydWUKKyBERUZJTkVTWyJXRUJSVENfTk9OX1NU QVRJQ19UUkFDRV9FVkVOVF9IQU5ETEVSUyJdID0gIjAiCisgREVGSU5FU1siV0VCUlRDX1NUUklD VF9GSUVMRF9UUklBTFMiXSA9ICIwIgorK0RFRklORVNbIkhBVkVfTElCWVVWX0pQRUciXSA9IFRy dWUKKyAKKyBGSU5BTF9MSUJSQVJZID0gInh1bCIKKyAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9saWJ3ZWJydGMvY29tbW9uX3ZpZGVvL2xpYnl1di9pbmNsdWRlL3dlYnJ0Y19saWJ5dXYuaCBi L3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9jb21tb25fdmlkZW8vbGlieXV2L2luY2x1ZGUvd2VicnRj X2xpYnl1di5oCitpbmRleCBiMTg5NTdiNmJlNjg2Li5hMTg5OWRiYTg4YjFjIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvbGlid2VicnRjL2NvbW1vbl92aWRlby9saWJ5dXYvaW5jbHVkZS93ZWJy dGNfbGlieXV2LmgKKysrKyBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9jb21tb25fdmlkZW8vbGli eXV2L2luY2x1ZGUvd2VicnRjX2xpYnl1di5oCitAQCAtODQsNiArODQsMjIgQEAgaW50IENvbnZl cnRGcm9tSTQyMChjb25zdCBWaWRlb0ZyYW1lJiBzcmNfZnJhbWUsCisgICAgICAgICAgICAgICAg ICAgICBpbnQgZHN0X3NhbXBsZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgdWludDhfdCog ZHN0X2ZyYW1lKTsKKyAKKytpbnQgQ29udmVydFRvSTQyMChjb25zdCB1aW50OF90KiBzYW1wbGUs CisrICAgICAgICAgICAgICAgICAgc2l6ZV90IHNhbXBsZV9zaXplLAorKyAgICAgICAgICAgICAg ICAgIHVpbnQ4X3QqIGRzdF95LAorKyAgICAgICAgICAgICAgICAgIGludCBkc3Rfc3RyaWRlX3ks CisrICAgICAgICAgICAgICAgICAgdWludDhfdCogZHN0X3UsCisrICAgICAgICAgICAgICAgICAg aW50IGRzdF9zdHJpZGVfdSwKKysgICAgICAgICAgICAgICAgICB1aW50OF90KiBkc3RfdiwKKysg ICAgICAgICAgICAgICAgICBpbnQgZHN0X3N0cmlkZV92LAorKyAgICAgICAgICAgICAgICAgIGlu dCBzcmNfd2lkdGgsCisrICAgICAgICAgICAgICAgICAgaW50IHNyY19oZWlnaHQsCisrICAgICAg ICAgICAgICAgICAgaW50IHNyY19zdHJpZGUsCisrICAgICAgICAgICAgICAgICAgaW50IGRzdF93 aWR0aCwKKysgICAgICAgICAgICAgICAgICBpbnQgZHN0X2hlaWdodCwKKysgICAgICAgICAgICAg ICAgICB1aW50MzJfdCByb3RhdGlvbiwKKysgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmb3Vy Y2MpOworKworIHNjb3BlZF9yZWZwdHI8STQyMEJ1ZmZlckludGVyZmFjZT4gU2NhbGVWaWRlb0Zy YW1lQnVmZmVyKAorICAgICBjb25zdCBJNDIwQnVmZmVySW50ZXJmYWNlJiBzb3VyY2UsCisgICAg IGludCBkc3Rfd2lkdGgsCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbGlid2VicnRjL2NvbW1v bl92aWRlby9saWJ5dXYvbGlieXV2X3VuaXR0ZXN0LmNjIGIvdGhpcmRfcGFydHkvbGlid2VicnRj L2NvbW1vbl92aWRlby9saWJ5dXYvbGlieXV2X3VuaXR0ZXN0LmNjCitpbmRleCA2YjQ3ZWM2NWVh MDFlLi40NDhhY2U4ZGZjZWExIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbGlid2VicnRjL2Nv bW1vbl92aWRlby9saWJ5dXYvbGlieXV2X3VuaXR0ZXN0LmNjCisrKysgYi90aGlyZF9wYXJ0eS9s aWJ3ZWJydGMvY29tbW9uX3ZpZGVvL2xpYnl1di9saWJ5dXZfdW5pdHRlc3QuY2MKK0BAIC0xNzIs MTIgKzE3MiwxMiBAQCBURVNUX0YoVGVzdExpYll1diwgQ29udmVydFRlc3QpIHsKKyAgIEVYUEVD VF9FUSgwLCBDb252ZXJ0RnJvbUk0MjAoKm9yaWdfZnJhbWVfLCBWaWRlb1R5cGU6OmtSR0IyNCwg MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzX3JnYl9idWZmZXIyLmdldCgp KSk7CisgCistICByZXQgPSBsaWJ5dXY6OkNvbnZlcnRUb0k0MjAoCisrICByZXQgPSBDb252ZXJ0 VG9JNDIwKAorICAgICAgIHJlc19yZ2JfYnVmZmVyMi5nZXQoKSwgMCwgcmVzX2k0MjBfYnVmZmVy LT5NdXRhYmxlRGF0YVkoKSwKKyAgICAgICByZXNfaTQyMF9idWZmZXItPlN0cmlkZVkoKSwgcmVz X2k0MjBfYnVmZmVyLT5NdXRhYmxlRGF0YVUoKSwKKyAgICAgICByZXNfaTQyMF9idWZmZXItPlN0 cmlkZVUoKSwgcmVzX2k0MjBfYnVmZmVyLT5NdXRhYmxlRGF0YVYoKSwKKy0gICAgICByZXNfaTQy MF9idWZmZXItPlN0cmlkZVYoKSwgMCwgMCwgd2lkdGhfLCBoZWlnaHRfLAorLSAgICAgIHJlc19p NDIwX2J1ZmZlci0+d2lkdGgoKSwgcmVzX2k0MjBfYnVmZmVyLT5oZWlnaHQoKSwgbGlieXV2Ojpr Um90YXRlMCwKKysgICAgICByZXNfaTQyMF9idWZmZXItPlN0cmlkZVYoKSwgd2lkdGhfLCBoZWln aHRfLCAwLCByZXNfaTQyMF9idWZmZXItPndpZHRoKCksCisrICAgICAgcmVzX2k0MjBfYnVmZmVy LT5oZWlnaHQoKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxpYnl1djo6a1JvdGF0ZTApLAorICAg ICAgIENvbnZlcnRWaWRlb1R5cGUoVmlkZW9UeXBlOjprUkdCMjQpKTsKKyAKKyAgIEVYUEVDVF9F USgwLCByZXQpOworQEAgLTE5NiwxMiArMTk2LDEyIEBAIFRFU1RfRihUZXN0TGliWXV2LCBDb252 ZXJ0VGVzdCkgeworICAgRVhQRUNUX0VRKDAsIENvbnZlcnRGcm9tSTQyMCgqb3JpZ19mcmFtZV8s IFZpZGVvVHlwZTo6a1VZVlksIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91 dF91eXZ5X2J1ZmZlci5nZXQoKSkpOworIAorLSAgcmV0ID0gbGlieXV2OjpDb252ZXJ0VG9JNDIw KAorKyAgcmV0ID0gQ29udmVydFRvSTQyMCgKKyAgICAgICBvdXRfdXl2eV9idWZmZXIuZ2V0KCks IDAsIHJlc19pNDIwX2J1ZmZlci0+TXV0YWJsZURhdGFZKCksCisgICAgICAgcmVzX2k0MjBfYnVm ZmVyLT5TdHJpZGVZKCksIHJlc19pNDIwX2J1ZmZlci0+TXV0YWJsZURhdGFVKCksCisgICAgICAg cmVzX2k0MjBfYnVmZmVyLT5TdHJpZGVVKCksIHJlc19pNDIwX2J1ZmZlci0+TXV0YWJsZURhdGFW KCksCistICAgICAgcmVzX2k0MjBfYnVmZmVyLT5TdHJpZGVWKCksIDAsIDAsIHdpZHRoXywgaGVp Z2h0XywKKy0gICAgICByZXNfaTQyMF9idWZmZXItPndpZHRoKCksIHJlc19pNDIwX2J1ZmZlci0+ aGVpZ2h0KCksIGxpYnl1djo6a1JvdGF0ZTAsCisrICAgICAgcmVzX2k0MjBfYnVmZmVyLT5TdHJp ZGVWKCksIHdpZHRoXywgaGVpZ2h0XywgMCwgcmVzX2k0MjBfYnVmZmVyLT53aWR0aCgpLAorKyAg ICAgIHJlc19pNDIwX2J1ZmZlci0+aGVpZ2h0KCksIHN0YXRpY19jYXN0PHVpbnQzMl90PihsaWJ5 dXY6OmtSb3RhdGUwKSwKKyAgICAgICBDb252ZXJ0VmlkZW9UeXBlKFZpZGVvVHlwZTo6a1VZVlkp KTsKKyAKKyAgIEVYUEVDVF9FUSgwLCByZXQpOworQEAgLTIxOCwxMiArMjE4LDEyIEBAIFRFU1Rf RihUZXN0TGliWXV2LCBDb252ZXJ0VGVzdCkgeworICAgRVhQRUNUX0VRKDAsIENvbnZlcnRGcm9t STQyMCgqb3JpZ19mcmFtZV8sIFZpZGVvVHlwZTo6a1lVWTIsIDAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG91dF95dXkyX2J1ZmZlci5nZXQoKSkpOworIAorLSAgcmV0ID0gbGli eXV2OjpDb252ZXJ0VG9JNDIwKAorKyAgcmV0ID0gQ29udmVydFRvSTQyMCgKKyAgICAgICBvdXRf eXV5Ml9idWZmZXIuZ2V0KCksIDAsIHJlc19pNDIwX2J1ZmZlci0+TXV0YWJsZURhdGFZKCksCisg ICAgICAgcmVzX2k0MjBfYnVmZmVyLT5TdHJpZGVZKCksIHJlc19pNDIwX2J1ZmZlci0+TXV0YWJs ZURhdGFVKCksCisgICAgICAgcmVzX2k0MjBfYnVmZmVyLT5TdHJpZGVVKCksIHJlc19pNDIwX2J1 ZmZlci0+TXV0YWJsZURhdGFWKCksCistICAgICAgcmVzX2k0MjBfYnVmZmVyLT5TdHJpZGVWKCks IDAsIDAsIHdpZHRoXywgaGVpZ2h0XywKKy0gICAgICByZXNfaTQyMF9idWZmZXItPndpZHRoKCks IHJlc19pNDIwX2J1ZmZlci0+aGVpZ2h0KCksIGxpYnl1djo6a1JvdGF0ZTAsCisrICAgICAgcmVz X2k0MjBfYnVmZmVyLT5TdHJpZGVWKCksIHdpZHRoXywgaGVpZ2h0XywgMCwgcmVzX2k0MjBfYnVm ZmVyLT53aWR0aCgpLAorKyAgICAgIHJlc19pNDIwX2J1ZmZlci0+aGVpZ2h0KCksIHN0YXRpY19j YXN0PHVpbnQzMl90PihsaWJ5dXY6OmtSb3RhdGUwKSwKKyAgICAgICBDb252ZXJ0VmlkZW9UeXBl KFZpZGVvVHlwZTo6a1lVWTIpKTsKKyAKKyAgIEVYUEVDVF9FUSgwLCByZXQpOworQEAgLTI0Miwx MiArMjQyLDEyIEBAIFRFU1RfRihUZXN0TGliWXV2LCBDb252ZXJ0VGVzdCkgeworICAgRVhQRUNU X0VRKDAsIENvbnZlcnRGcm9tSTQyMCgqb3JpZ19mcmFtZV8sIFZpZGVvVHlwZTo6a1JHQjU2NSwg MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0X3JnYjU2NV9idWZmZXIuZ2V0 KCkpKTsKKyAKKy0gIHJldCA9IGxpYnl1djo6Q29udmVydFRvSTQyMCgKKysgIHJldCA9IENvbnZl cnRUb0k0MjAoCisgICAgICAgb3V0X3JnYjU2NV9idWZmZXIuZ2V0KCksIDAsIHJlc19pNDIwX2J1 ZmZlci0+TXV0YWJsZURhdGFZKCksCisgICAgICAgcmVzX2k0MjBfYnVmZmVyLT5TdHJpZGVZKCks IHJlc19pNDIwX2J1ZmZlci0+TXV0YWJsZURhdGFVKCksCisgICAgICAgcmVzX2k0MjBfYnVmZmVy LT5TdHJpZGVVKCksIHJlc19pNDIwX2J1ZmZlci0+TXV0YWJsZURhdGFWKCksCistICAgICAgcmVz X2k0MjBfYnVmZmVyLT5TdHJpZGVWKCksIDAsIDAsIHdpZHRoXywgaGVpZ2h0XywKKy0gICAgICBy ZXNfaTQyMF9idWZmZXItPndpZHRoKCksIHJlc19pNDIwX2J1ZmZlci0+aGVpZ2h0KCksIGxpYnl1 djo6a1JvdGF0ZTAsCisrICAgICAgcmVzX2k0MjBfYnVmZmVyLT5TdHJpZGVWKCksIHdpZHRoXywg aGVpZ2h0XywgMCwgcmVzX2k0MjBfYnVmZmVyLT53aWR0aCgpLAorKyAgICAgIHJlc19pNDIwX2J1 ZmZlci0+aGVpZ2h0KCksIHN0YXRpY19jYXN0PHVpbnQzMl90PihsaWJ5dXY6OmtSb3RhdGUwKSwK KyAgICAgICBDb252ZXJ0VmlkZW9UeXBlKFZpZGVvVHlwZTo6a1JHQjU2NSkpOworIAorICAgRVhQ RUNUX0VRKDAsIHJldCk7CitAQCAtMjY5LDEyICsyNjksMTIgQEAgVEVTVF9GKFRlc3RMaWJZdXYs IENvbnZlcnRUZXN0KSB7CisgICBFWFBFQ1RfRVEoMCwgQ29udmVydEZyb21JNDIwKCpvcmlnX2Zy YW1lXywgVmlkZW9UeXBlOjprQVJHQiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb3V0X2FyZ2I4ODg4X2J1ZmZlci5nZXQoKSkpOworIAorLSAgcmV0ID0gbGlieXV2OjpDb252 ZXJ0VG9JNDIwKAorKyAgcmV0ID0gQ29udmVydFRvSTQyMCgKKyAgICAgICBvdXRfYXJnYjg4ODhf YnVmZmVyLmdldCgpLCAwLCByZXNfaTQyMF9idWZmZXItPk11dGFibGVEYXRhWSgpLAorICAgICAg IHJlc19pNDIwX2J1ZmZlci0+U3RyaWRlWSgpLCByZXNfaTQyMF9idWZmZXItPk11dGFibGVEYXRh VSgpLAorICAgICAgIHJlc19pNDIwX2J1ZmZlci0+U3RyaWRlVSgpLCByZXNfaTQyMF9idWZmZXIt Pk11dGFibGVEYXRhVigpLAorLSAgICAgIHJlc19pNDIwX2J1ZmZlci0+U3RyaWRlVigpLCAwLCAw LCB3aWR0aF8sIGhlaWdodF8sCistICAgICAgcmVzX2k0MjBfYnVmZmVyLT53aWR0aCgpLCByZXNf aTQyMF9idWZmZXItPmhlaWdodCgpLCBsaWJ5dXY6OmtSb3RhdGUwLAorKyAgICAgIHJlc19pNDIw X2J1ZmZlci0+U3RyaWRlVigpLCB3aWR0aF8sIGhlaWdodF8sIDAsIHJlc19pNDIwX2J1ZmZlci0+ d2lkdGgoKSwKKysgICAgICByZXNfaTQyMF9idWZmZXItPmhlaWdodCgpLCBzdGF0aWNfY2FzdDx1 aW50MzJfdD4obGlieXV2OjprUm90YXRlMCksCisgICAgICAgQ29udmVydFZpZGVvVHlwZShWaWRl b1R5cGU6OmtBUkdCKSk7CisgCisgICBFWFBFQ1RfRVEoMCwgcmV0KTsKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9saWJ3ZWJydGMvY29tbW9uX3ZpZGVvL2xpYnl1di93ZWJydGNfbGlieXV2LmNj IGIvdGhpcmRfcGFydHkvbGlid2VicnRjL2NvbW1vbl92aWRlby9saWJ5dXYvd2VicnRjX2xpYnl1 di5jYworaW5kZXggOWRkMTJiNDJmMjIzZi4uODUyN2YzNDE2M2I0ZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L2xpYndlYnJ0Yy9jb21tb25fdmlkZW8vbGlieXV2L3dlYnJ0Y19saWJ5dXYuY2MK KysrKyBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9jb21tb25fdmlkZW8vbGlieXV2L3dlYnJ0Y19s aWJ5dXYuY2MKK0BAIC0xMCw4ICsxMCwxMCBAQAorIAorICNpbmNsdWRlICJjb21tb25fdmlkZW8v bGlieXV2L2luY2x1ZGUvd2VicnRjX2xpYnl1di5oIgorIAorKyNpbmNsdWRlIDxjbGltaXRzPgor ICNpbmNsdWRlIDxjc3RkZGVmPgorICNpbmNsdWRlIDxjc3RkaW50PgorKyNpbmNsdWRlIDxjc3Rk bGliPgorIAorICNpbmNsdWRlICJhcGkvc2NvcGVkX3JlZnB0ci5oIgorICNpbmNsdWRlICJhcGkv dmlkZW8vaTQyMF9idWZmZXIuaCIKK0BAIC0yMyw2ICsyNSw3IEBACisgI2luY2x1ZGUgInRoaXJk X3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1di9jb252ZXJ0LmgiCisgI2luY2x1ZGUgInRoaXJk X3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1di9jb252ZXJ0X2Zyb20uaCIKKyAjaW5jbHVkZSAi dGhpcmRfcGFydHkvbGlieXV2L2luY2x1ZGUvbGlieXV2L3BsYW5hcl9mdW5jdGlvbnMuaCIKKysj aW5jbHVkZSAidGhpcmRfcGFydHkvbGlieXV2L2luY2x1ZGUvbGlieXV2L3JvdGF0ZS5oIgorICNp bmNsdWRlICJ0aGlyZF9wYXJ0eS9saWJ5dXYvaW5jbHVkZS9saWJ5dXYvc2NhbGUuaCIKKyAjaW5j bHVkZSAidGhpcmRfcGFydHkvbGlieXV2L2luY2x1ZGUvbGlieXV2L3ZpZGVvX2NvbW1vbi5oIgor IAorQEAgLTE0Niw2ICsxNDksMzIzIEBAIGludCBDb252ZXJ0RnJvbUk0MjAoY29uc3QgVmlkZW9G cmFtZSYgc3JjX2ZyYW1lLAorICAgICAgIENvbnZlcnRWaWRlb1R5cGUoZHN0X3ZpZGVvX3R5cGUp KTsKKyB9CisgCisraW50IENvbnZlcnRUb0k0MjAoY29uc3QgdWludDhfdCogc2FtcGxlLAorKyAg ICAgICAgICAgICAgICAgIHNpemVfdCBzYW1wbGVfc2l6ZSwKKysgICAgICAgICAgICAgICAgICB1 aW50OF90KiBkc3RfeSwKKysgICAgICAgICAgICAgICAgICBpbnQgZHN0X3N0cmlkZV95LAorKyAg ICAgICAgICAgICAgICAgIHVpbnQ4X3QqIGRzdF91LAorKyAgICAgICAgICAgICAgICAgIGludCBk c3Rfc3RyaWRlX3UsCisrICAgICAgICAgICAgICAgICAgdWludDhfdCogZHN0X3YsCisrICAgICAg ICAgICAgICAgICAgaW50IGRzdF9zdHJpZGVfdiwKKysgICAgICAgICAgICAgICAgICBpbnQgc3Jj X3dpZHRoLAorKyAgICAgICAgICAgICAgICAgIGludCBzcmNfaGVpZ2h0LAorKyAgICAgICAgICAg ICAgICAgIGludCBzcmNfc3RyaWRlLAorKyAgICAgICAgICAgICAgICAgIGludCBkc3Rfd2lkdGgs CisrICAgICAgICAgICAgICAgICAgaW50IGRzdF9oZWlnaHQsCisrICAgICAgICAgICAgICAgICAg dWludDMyX3Qgcm90YXRpb24sCisrICAgICAgICAgICAgICAgICAgdWludDMyX3QgZm91cmNjKSB7 CisrICBpZiAoc3JjX2hlaWdodCA9PSBJTlRfTUlOIHx8IGRzdF9oZWlnaHQgPT0gSU5UX01JTikg eworKyAgICByZXR1cm4gLTE7CisrICB9CisrCisrICBjb25zdCBpbnQgYWJzX3NyY19oZWlnaHQg PSAoc3JjX2hlaWdodCA8IDApID8gLXNyY19oZWlnaHQgOiBzcmNfaGVpZ2h0OworKyAgY29uc3Qg aW50IGFic19kc3RfaGVpZ2h0ID0gKGRzdF9oZWlnaHQgPCAwKSA/IC1kc3RfaGVpZ2h0IDogZHN0 X2hlaWdodDsKKysKKysgIGlmICghZHN0X3kgfHwgIWRzdF91IHx8ICFkc3RfdiB8fCAhc2FtcGxl IHx8IHNyY193aWR0aCA8PSAwIHx8CisrICAgICAgc3JjX3dpZHRoID4gSU5UX01BWCAvIDQgfHwg ZHN0X3dpZHRoIDw9IDAgfHwgc3JjX2hlaWdodCA9PSAwIHx8CisrICAgICAgZHN0X2hlaWdodCA9 PSAwIHx8IGRzdF93aWR0aCA+IHNyY193aWR0aCB8fAorKyAgICAgIGFic19kc3RfaGVpZ2h0ID4g YWJzX3NyY19oZWlnaHQpIHsKKysgICAgcmV0dXJuIC0xOworKyAgfQorKworKyAgdWludDMyX3Qg Zm9ybWF0ID0gbGlieXV2OjpDYW5vbmljYWxGb3VyQ0MoZm91cmNjKTsKKysKKysgIC8vIENhbGN1 bGF0ZSB0aGUgdW5wYWRkZWQgc3RyaWRlIGlmIG5vIGV4cGxpY2l0IHZhbHVlIGlzIHNldC4KKysg IGlmIChzcmNfc3RyaWRlID09IDApIHsKKysgICAgc3dpdGNoIChmb3JtYXQpIHsKKysgICAgICBj YXNlIGxpYnl1djo6Rk9VUkNDX1lVWTI6CisrICAgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19VWVZZ OgorKyAgICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfUkdCUDoKKysgICAgICBjYXNlIGxpYnl1djo6 Rk9VUkNDX1JHQk86CisrICAgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19SNDQ0OgorKyAgICAgICAg c3JjX3N0cmlkZSA9IHNyY193aWR0aCAqIDI7CisrICAgICAgICBicmVhazsKKysgICAgICBjYXNl IGxpYnl1djo6Rk9VUkNDXzI0Qkc6CisrICAgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19SQVc6Cisr ICAgICAgICBzcmNfc3RyaWRlID0gc3JjX3dpZHRoICogMzsKKysgICAgICAgIGJyZWFrOworKyAg ICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfQVJHQjoKKysgICAgICBjYXNlIGxpYnl1djo6Rk9VUkND X0JHUkE6CisrICAgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19BQkdSOgorKyAgICAgIGNhc2UgbGli eXV2OjpGT1VSQ0NfUkdCQToKKysgICAgICAgIHNyY19zdHJpZGUgPSBzcmNfd2lkdGggKiA0Owor KyAgICAgICAgYnJlYWs7CisrICAgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19JNDAwOgorKyAgICAg IGNhc2UgbGlieXV2OjpGT1VSQ0NfTlYxMjoKKysgICAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX05W MjE6CisrICAgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19JNDIwOgorKyAgICAgIGNhc2UgbGlieXV2 OjpGT1VSQ0NfWVYxMjoKKysgICAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX0k0MjI6CisrICAgICAg Y2FzZSBsaWJ5dXY6OkZPVVJDQ19ZVjE2OgorKyAgICAgICAgLy8gRm9sbG93IHRoZSBWNEwyIGRl ZmluaXRpb24gZm9yIHN0cmlkZXMgb2Ygc3Vic2FtcGxlZCBmb3JtYXRzOgorKyAgICAgICAgLy8g PiBUbyBhdm9pZCBhbWJpZ3VpdGllcyBkcml2ZXJzIG11c3QgcmV0dXJuIGEgYnl0ZXNwZXJsaW5l IHZhbHVlCisrICAgICAgICAvLyA+IHJvdW5kZWQgdXAgdG8gYSBtdWx0aXBsZSBvZiB0aGUgc2Nh bGUgZmFjdG9yLgorKyAgICAgICAgLy8gaHR0cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvaHRtbC92 Ny4xL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3BpeGZtdC12NGwyLmh0bWwKKysgICAgICAgIHNy Y19zdHJpZGUgPSAoc3JjX3dpZHRoICsgMSkgJiB+MTsKKysgICAgICAgIGJyZWFrOworKyAgICAg IGNhc2UgbGlieXV2OjpGT1VSQ0NfSTQ0NDoKKysgICAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX1lW MjQ6CisrICAgICAgICBzcmNfc3RyaWRlID0gc3JjX3dpZHRoOworKyAgICAgICAgYnJlYWs7Cisr ICAgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19NSlBHOgorKyAgICAgICAgYnJlYWs7CisrICAgICAg ZGVmYXVsdDoKKysgICAgICAgIHJldHVybiAtMTsKKysgICAgfQorKyAgfSBlbHNlIHsKKysgICAg c3dpdGNoIChmb3JtYXQpIHsKKysgICAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX1lVWTI6CisrICAg ICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19VWVZZOgorKyAgICAgIGNhc2UgbGlieXV2OjpGT1VSQ0Nf STQwMDoKKysgICAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX05WMTI6CisrICAgICAgY2FzZSBsaWJ5 dXY6OkZPVVJDQ19OVjIxOgorKyAgICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfSTQyMDoKKysgICAg ICBjYXNlIGxpYnl1djo6Rk9VUkNDX1lWMTI6CisrICAgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19J NDIyOgorKyAgICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfWVYxNjoKKysgICAgICAgIC8vIEZvbGxv dyB0aGUgVjRMMiBkZWZpbml0aW9uIGZvciBzdHJpZGVzIG9mIHN1YnNhbXBsZWQgZm9ybWF0czoK KysgICAgICAgIC8vID4gVG8gYXZvaWQgYW1iaWd1aXRpZXMgZHJpdmVycyBtdXN0IHJldHVybiBh IGJ5dGVzcGVybGluZSB2YWx1ZQorKyAgICAgICAgLy8gPiByb3VuZGVkIHVwIHRvIGEgbXVsdGlw bGUgb2YgdGhlIHNjYWxlIGZhY3Rvci4KKysgICAgICAgIC8vIGh0dHBzOi8vd3d3Lmtlcm5lbC5v cmcvZG9jL2h0bWwvdjcuMS91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9waXhmbXQtdjRsMi5odG1s CisrICAgICAgICBpZiAoKHNyY19zdHJpZGUgJSAyKSAhPSAwKQorKyAgICAgICAgICByZXR1cm4g LTE7CisrICAgICAgICBicmVhazsKKysgICAgICBkZWZhdWx0OgorKyAgICAgICAgYnJlYWs7Cisr ICAgIH0KKysgIH0KKysKKysgIGludCByID0gMDsKKysgIGNvbnN0IGJvb2wgbmVlZF9idWYgPQor KyAgICAgIChyb3RhdGlvbiAmJiBmb3JtYXQgIT0gbGlieXV2OjpGT1VSQ0NfSTQyMCAmJgorKyAg ICAgICBmb3JtYXQgIT0gbGlieXV2OjpGT1VSQ0NfTlYxMiAmJiBmb3JtYXQgIT0gbGlieXV2OjpG T1VSQ0NfTlYyMSAmJgorKyAgICAgICBmb3JtYXQgIT0gbGlieXV2OjpGT1VSQ0NfWVYxMikgfHwK KysgICAgICBkc3RfeSA9PSBzYW1wbGU7CisrICBjb25zdCBpbnQgaW52X2RzdF9oZWlnaHQgPQor KyAgICAgIChzcmNfaGVpZ2h0IDwgMCkgPyAtYWJzX2RzdF9oZWlnaHQgOiBhYnNfZHN0X2hlaWdo dDsKKysgIHVpbnQ4X3QqIHJvdGF0ZV9idWZmZXIgPSBOVUxMOworKyAgdWludDhfdCogdG1wX3k7 CisrICB1aW50OF90KiB0bXBfdTsKKysgIHVpbnQ4X3QqIHRtcF92OworKyAgaW50IHRtcF95X3N0 cmlkZTsKKysgIGludCB0bXBfdV9zdHJpZGU7CisrICBpbnQgdG1wX3Zfc3RyaWRlOworKworKyAg Ly8gT25lIHBhc3Mgcm90YXRpb24gaXMgYXZhaWxhYmxlIGZvciBzb21lIGZvcm1hdHMuIEZvciB0 aGUgcmVzdCwgY29udmVydAorKyAgLy8gdG8gSTQyMCAod2l0aCBvcHRpb25hbCB2ZXJ0aWNhbCBm bGlwcGluZykgaW50byBhIHRlbXBvcmFyeSBJNDIwIGJ1ZmZlciwKKysgIC8vIGFuZCB0aGVuIHJv dGF0ZSB0aGUgSTQyMCB0byB0aGUgZmluYWwgZGVzdGluYXRpb24gYnVmZmVyLgorKyAgLy8gRm9y IGluLXBsYWNlIGNvbnZlcnNpb24sIGlmIGRlc3RpbmF0aW9uIGRzdF95IGlzIHNhbWUgYXMgc291 cmNlIHNhbXBsZSwKKysgIC8vIGFsc28gZW5hYmxlIHRlbXBvcmFyeSBidWZmZXIuCisrICBpZiAo bmVlZF9idWYpIHsKKysgICAgc2l6ZV90IHlfc2l6ZSA9IChzaXplX3QpZHN0X3dpZHRoICogYWJz X2RzdF9oZWlnaHQ7CisrICAgIHNpemVfdCB1dl9zaXplID0gKHNpemVfdCkoKGRzdF93aWR0aCAr IDEpIC8gMikgKiAoKGFic19kc3RfaGVpZ2h0ICsgMSkgLyAyKTsKKysgICAgaWYgKHV2X3NpemUg PiBTSVpFX01BWCAvIDIgfHwgeV9zaXplID4gU0laRV9NQVggLSB1dl9zaXplICogMikgeworKyAg ICAgIHJldHVybiAtMTsgIC8vIEludmFsaWQgc2l6ZS4KKysgICAgfQorKyAgICBjb25zdCBzaXpl X3Qgcm90YXRlX2J1ZmZlcl9zaXplID0geV9zaXplICsgdXZfc2l6ZSAqIDI7CisrICAgIHJvdGF0 ZV9idWZmZXIgPSBuZXcgdWludDhfdFtyb3RhdGVfYnVmZmVyX3NpemVdOworKyAgICBpZiAoIXJv dGF0ZV9idWZmZXIpIHsKKysgICAgICByZXR1cm4gMTsgIC8vIE91dCBvZiBtZW1vcnkgcnVudGlt ZSBlcnJvci4KKysgICAgfQorKyAgICB0bXBfeSA9IGRzdF95OworKyAgICB0bXBfdSA9IGRzdF91 OworKyAgICB0bXBfdiA9IGRzdF92OworKyAgICB0bXBfeV9zdHJpZGUgPSBkc3Rfc3RyaWRlX3k7 CisrICAgIHRtcF91X3N0cmlkZSA9IGRzdF9zdHJpZGVfdTsKKysgICAgdG1wX3Zfc3RyaWRlID0g ZHN0X3N0cmlkZV92OworKyAgICBkc3RfeSA9IHJvdGF0ZV9idWZmZXI7CisrICAgIGRzdF91ID0g ZHN0X3kgKyB5X3NpemU7CisrICAgIGRzdF92ID0gZHN0X3UgKyB1dl9zaXplOworKyAgICBkc3Rf c3RyaWRlX3kgPSBkc3Rfd2lkdGg7CisrICAgIGRzdF9zdHJpZGVfdSA9IGRzdF9zdHJpZGVfdiA9 ICgoZHN0X3dpZHRoICsgMSkgLyAyKTsKKysgIH0KKysKKysgIHN3aXRjaCAoZm9ybWF0KSB7Cisr ICAgIC8vIFNpbmdsZSBwbGFuZSBmb3JtYXRzCisrICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfWVVZ MjogeworKyAgICAgIHIgPSBsaWJ5dXY6OllVWTJUb0k0MjAoc2FtcGxlLCBzcmNfc3RyaWRlLCBk c3RfeSwgZHN0X3N0cmlkZV95LCBkc3RfdSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRzdF9zdHJpZGVfdSwgZHN0X3YsIGRzdF9zdHJpZGVfdiwgZHN0X3dpZHRoLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW52X2RzdF9oZWlnaHQpOworKyAgICAgIGJyZWFrOworKyAg ICB9CisrICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfVVlWWTogeworKyAgICAgIHIgPSBsaWJ5dXY6 OlVZVllUb0k0MjAoc2FtcGxlLCBzcmNfc3RyaWRlLCBkc3RfeSwgZHN0X3N0cmlkZV95LCBkc3Rf dSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9zdHJpZGVfdSwgZHN0X3YsIGRz dF9zdHJpZGVfdiwgZHN0X3dpZHRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52 X2RzdF9oZWlnaHQpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGNhc2UgbGlieXV2OjpG T1VSQ0NfUkdCUDoKKysgICAgICByID0gbGlieXV2OjpSR0I1NjVUb0k0MjAoc2FtcGxlLCBzcmNf c3RyaWRlLCBkc3RfeSwgZHN0X3N0cmlkZV95LCBkc3RfdSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZHN0X3N0cmlkZV91LCBkc3RfdiwgZHN0X3N0cmlkZV92LCBkc3Rfd2lkdGgs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludl9kc3RfaGVpZ2h0KTsKKysgICAg ICBicmVhazsKKysgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19SR0JPOgorKyAgICAgIHIgPSBsaWJ5 dXY6OkFSR0IxNTU1VG9JNDIwKHNhbXBsZSwgc3JjX3N0cmlkZSwgZHN0X3ksIGRzdF9zdHJpZGVf eSwgZHN0X3UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3N0cmlkZV91 LCBkc3RfdiwgZHN0X3N0cmlkZV92LCBkc3Rfd2lkdGgsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW52X2RzdF9oZWlnaHQpOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIGxp Ynl1djo6Rk9VUkNDX1I0NDQ6CisrICAgICAgciA9IGxpYnl1djo6QVJHQjQ0NDRUb0k0MjAoc2Ft cGxlLCBzcmNfc3RyaWRlLCBkc3RfeSwgZHN0X3N0cmlkZV95LCBkc3RfdSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3RyaWRlX3UsIGRzdF92LCBkc3Rfc3RyaWRlX3Ys IGRzdF93aWR0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZfZHN0X2hl aWdodCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfMjRCRzoKKysg ICAgICByID0gbGlieXV2OjpSR0IyNFRvSTQyMChzYW1wbGUsIHNyY19zdHJpZGUsIGRzdF95LCBk c3Rfc3RyaWRlX3ksIGRzdF91LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9z dHJpZGVfdSwgZHN0X3YsIGRzdF9zdHJpZGVfdiwgZHN0X3dpZHRoLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludl9kc3RfaGVpZ2h0KTsKKysgICAgICBicmVhazsKKysgICAgY2Fz ZSBsaWJ5dXY6OkZPVVJDQ19SQVc6CisrICAgICAgciA9IGxpYnl1djo6UkFXVG9JNDIwKHNhbXBs ZSwgc3JjX3N0cmlkZSwgZHN0X3ksIGRzdF9zdHJpZGVfeSwgZHN0X3UsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRzdF9zdHJpZGVfdSwgZHN0X3YsIGRzdF9zdHJpZGVfdiwgZHN0X3dp ZHRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZfZHN0X2hlaWdodCk7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfQVJHQjoKKysgICAgICByID0gbGli eXV2OjpBUkdCVG9JNDIwKHNhbXBsZSwgc3JjX3N0cmlkZSwgZHN0X3ksIGRzdF9zdHJpZGVfeSwg ZHN0X3UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3RyaWRlX3UsIGRzdF92 LCBkc3Rfc3RyaWRlX3YsIGRzdF93aWR0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludl9kc3RfaGVpZ2h0KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBsaWJ5dXY6OkZPVVJD Q19CR1JBOgorKyAgICAgIHIgPSBsaWJ5dXY6OkJHUkFUb0k0MjAoc2FtcGxlLCBzcmNfc3RyaWRl LCBkc3RfeSwgZHN0X3N0cmlkZV95LCBkc3RfdSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRzdF9zdHJpZGVfdSwgZHN0X3YsIGRzdF9zdHJpZGVfdiwgZHN0X3dpZHRoLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW52X2RzdF9oZWlnaHQpOworKyAgICAgIGJyZWFrOwor KyAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX0FCR1I6CisrICAgICAgciA9IGxpYnl1djo6QUJHUlRv STQyMChzYW1wbGUsIHNyY19zdHJpZGUsIGRzdF95LCBkc3Rfc3RyaWRlX3ksIGRzdF91LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3N0cmlkZV91LCBkc3RfdiwgZHN0X3N0cmlk ZV92LCBkc3Rfd2lkdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZfZHN0X2hl aWdodCk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfUkdCQToKKysg ICAgICByID0gbGlieXV2OjpSR0JBVG9JNDIwKHNhbXBsZSwgc3JjX3N0cmlkZSwgZHN0X3ksIGRz dF9zdHJpZGVfeSwgZHN0X3UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3Ry aWRlX3UsIGRzdF92LCBkc3Rfc3RyaWRlX3YsIGRzdF93aWR0aCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludl9kc3RfaGVpZ2h0KTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBs aWJ5dXY6OkZPVVJDQ19JNDAwOgorKyAgICAgIHIgPSBsaWJ5dXY6Okk0MDBUb0k0MjAoc2FtcGxl LCBzcmNfc3RyaWRlLCBkc3RfeSwgZHN0X3N0cmlkZV95LCBkc3RfdSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRzdF9zdHJpZGVfdSwgZHN0X3YsIGRzdF9zdHJpZGVfdiwgZHN0X3dp ZHRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52X2RzdF9oZWlnaHQpOworKyAg ICAgIGJyZWFrOworKyAgICAvLyBCaXBsYW5hciBmb3JtYXRzCisrICAgIGNhc2UgbGlieXV2OjpG T1VSQ0NfTlYxMjogeworKyAgICAgIGNvbnN0IHVpbnQ4X3QqIHNyY195ID0gc2FtcGxlOworKyAg ICAgIGNvbnN0IHVpbnQ4X3QqIHNyY191diA9IHNyY195ICsgKChwdHJkaWZmX3Qpc3JjX3N0cmlk ZSAqIGFic19zcmNfaGVpZ2h0KTsKKysgICAgICByID0gbGlieXV2OjpOVjEyVG9JNDIwUm90YXRl KHNyY195LCBzcmNfc3RyaWRlLCBzcmNfdXYsIHNyY19zdHJpZGUsIGRzdF95LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3N0cmlkZV95LCBkc3RfdSwgZHN0X3N0cmlk ZV91LCBkc3RfdiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9zdHJp ZGVfdiwgZHN0X3dpZHRoLCBpbnZfZHN0X2hlaWdodCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaWJ5dXY6OlJvdGF0aW9uTW9kZSlyb3RhdGlvbik7CisrICAgICAgYnJl YWs7CisrICAgIH0KKysgICAgY2FzZSBsaWJ5dXY6OkZPVVJDQ19OVjIxOiB7CisrICAgICAgY29u c3QgdWludDhfdCogc3JjX3kgPSBzYW1wbGU7CisrICAgICAgY29uc3QgdWludDhfdCogc3JjX3V2 ID0gc3JjX3kgKyAoKHB0cmRpZmZfdClzcmNfc3RyaWRlICogYWJzX3NyY19oZWlnaHQpOworKyAg ICAgIC8vIENhbGwgTlYxMiBidXQgd2l0aCBkc3RfdSBhbmQgZHN0X3YgcGFyYW1ldGVycyBzd2Fw cGVkLgorKyAgICAgIHIgPSBsaWJ5dXY6Ok5WMTJUb0k0MjBSb3RhdGUoc3JjX3ksIHNyY19zdHJp ZGUsIHNyY191diwgc3JjX3N0cmlkZSwgZHN0X3ksCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkc3Rfc3RyaWRlX3ksIGRzdF92LCBkc3Rfc3RyaWRlX3YsIGRzdF91LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3N0cmlkZV91LCBkc3Rfd2lkdGgs IGludl9kc3RfaGVpZ2h0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp Ynl1djo6Um90YXRpb25Nb2RlKXJvdGF0aW9uKTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAg ICAvLyBUcmlwbGFuYXIgZm9ybWF0cworKyAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX0k0MjA6Cisr ICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfWVYxMjogeworKyAgICAgIGNvbnN0IHVpbnQ4X3QqIHNy Y195ID0gc2FtcGxlOworKyAgICAgIGNvbnN0IHVpbnQ4X3QqIHNyY191OworKyAgICAgIGNvbnN0 IHVpbnQ4X3QqIHNyY192OworKyAgICAgIC8vIEZvbGxvdyB0aGUgVjRMMiBkZWZpbml0aW9uOgor KyAgICAgIC8vID4gV2hlbiB0aGUgaW1hZ2UgZm9ybWF0IGlzIHBsYW5hciB0aGUgYnl0ZXNwZXJs aW5lIHZhbHVlIGFwcGxpZXMgdG8gdGhlCisrICAgICAgLy8gPiBmaXJzdCBwbGFuZSBhbmQgaXMg ZGl2aWRlZCBieSB0aGUgc2FtZSBmYWN0b3IgYXMgdGhlIHdpZHRoIGZpZWxkIGZvcgorKyAgICAg IC8vID4gdGhlIG90aGVyIHBsYW5lcy4KKysgICAgICAvLyBodHRwczovL3d3dy5rZXJuZWwub3Jn L2RvYy9odG1sL3Y3LjEvdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvcGl4Zm10LXY0bDIuaHRtbAor KyAgICAgIGludCBoYWxmc3RyaWRlID0gc3JjX3N0cmlkZSAvIDI7CisrICAgICAgaW50IGhhbGZo ZWlnaHQgPSAoYWJzX3NyY19oZWlnaHQgKyAxKSAvIDI7CisrICAgICAgaWYgKGZvcm1hdCA9PSBs aWJ5dXY6OkZPVVJDQ19ZVjEyKSB7CisrICAgICAgICBzcmNfdiA9IHNyY195ICsgKHB0cmRpZmZf dClzcmNfc3RyaWRlICogYWJzX3NyY19oZWlnaHQ7CisrICAgICAgICBzcmNfdSA9IHNyY192ICsg aGFsZnN0cmlkZSAqIChwdHJkaWZmX3QpaGFsZmhlaWdodDsKKysgICAgICB9IGVsc2UgeworKyAg ICAgICAgc3JjX3UgPSBzcmNfeSArIChwdHJkaWZmX3Qpc3JjX3N0cmlkZSAqIGFic19zcmNfaGVp Z2h0OworKyAgICAgICAgc3JjX3YgPSBzcmNfdSArIGhhbGZzdHJpZGUgKiAocHRyZGlmZl90KWhh bGZoZWlnaHQ7CisrICAgICAgfQorKyAgICAgIHIgPSBsaWJ5dXY6Okk0MjBSb3RhdGUoc3JjX3ks IHNyY19zdHJpZGUsIHNyY191LCBoYWxmc3RyaWRlLCBzcmNfdiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGhhbGZzdHJpZGUsIGRzdF95LCBkc3Rfc3RyaWRlX3ksIGRzdF91LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3N0cmlkZV91LCBkc3RfdiwgZHN0X3N0cmlk ZV92LCBkc3Rfd2lkdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZfZHN0X2hl aWdodCwgKGxpYnl1djo6Um90YXRpb25Nb2RlKXJvdGF0aW9uKTsKKysgICAgICBicmVhazsKKysg ICAgfQorKyAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX0k0MjI6CisrICAgIGNhc2UgbGlieXV2OjpG T1VSQ0NfWVYxNjogeworKyAgICAgIGNvbnN0IHVpbnQ4X3QqIHNyY195ID0gc2FtcGxlOworKyAg ICAgIGNvbnN0IHVpbnQ4X3QqIHNyY191OworKyAgICAgIGNvbnN0IHVpbnQ4X3QqIHNyY192Owor KyAgICAgIC8vIEZvbGxvdyB0aGUgVjRMMiBkZWZpbml0aW9uOgorKyAgICAgIC8vID4gV2hlbiB0 aGUgaW1hZ2UgZm9ybWF0IGlzIHBsYW5hciB0aGUgYnl0ZXNwZXJsaW5lIHZhbHVlIGFwcGxpZXMg dG8gdGhlCisrICAgICAgLy8gPiBmaXJzdCBwbGFuZSBhbmQgaXMgZGl2aWRlZCBieSB0aGUgc2Ft ZSBmYWN0b3IgYXMgdGhlIHdpZHRoIGZpZWxkIGZvcgorKyAgICAgIC8vID4gdGhlIG90aGVyIHBs YW5lcy4KKysgICAgICAvLyBodHRwczovL3d3dy5rZXJuZWwub3JnL2RvYy9odG1sL3Y3LjEvdXNl cnNwYWNlLWFwaS9tZWRpYS92NGwvcGl4Zm10LXY0bDIuaHRtbAorKyAgICAgIGludCBoYWxmc3Ry aWRlID0gc3JjX3N0cmlkZSAvIDI7CisrICAgICAgaWYgKGZvcm1hdCA9PSBsaWJ5dXY6OkZPVVJD Q19ZVjE2KSB7CisrICAgICAgICBzcmNfdiA9IHNyY195ICsgKHB0cmRpZmZfdClzcmNfc3RyaWRl ICogYWJzX3NyY19oZWlnaHQ7CisrICAgICAgICBzcmNfdSA9IHNyY192ICsgaGFsZnN0cmlkZSAq IChwdHJkaWZmX3QpYWJzX3NyY19oZWlnaHQ7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIHNy Y191ID0gc3JjX3kgKyAocHRyZGlmZl90KXNyY19zdHJpZGUgKiBhYnNfc3JjX2hlaWdodDsKKysg ICAgICAgIHNyY192ID0gc3JjX3UgKyBoYWxmc3RyaWRlICogKHB0cmRpZmZfdClhYnNfc3JjX2hl aWdodDsKKysgICAgICB9CisrICAgICAgciA9IGxpYnl1djo6STQyMlRvSTQyMChzcmNfeSwgc3Jj X3N0cmlkZSwgc3JjX3UsIGhhbGZzdHJpZGUsIHNyY192LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGFsZnN0cmlkZSwgZHN0X3ksIGRzdF9zdHJpZGVfeSwgZHN0X3UsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkc3Rfc3RyaWRlX3UsIGRzdF92LCBkc3Rfc3RyaWRlX3Ys IGRzdF93aWR0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludl9kc3RfaGVpZ2h0 KTsKKysgICAgICBicmVhazsKKysgICAgfQorKyAgICBjYXNlIGxpYnl1djo6Rk9VUkNDX0k0NDQ6 CisrICAgIGNhc2UgbGlieXV2OjpGT1VSQ0NfWVYyNDogeworKyAgICAgIGNvbnN0IHVpbnQ4X3Qq IHNyY195ID0gc2FtcGxlOworKyAgICAgIGNvbnN0IHVpbnQ4X3QqIHNyY191OworKyAgICAgIGNv bnN0IHVpbnQ4X3QqIHNyY192OworKyAgICAgIGlmIChmb3JtYXQgPT0gbGlieXV2OjpGT1VSQ0Nf WVYyNCkgeworKyAgICAgICAgc3JjX3YgPSBzcmNfeSArIHNyY19zdHJpZGUgKiAocHRyZGlmZl90 KWFic19zcmNfaGVpZ2h0OworKyAgICAgICAgc3JjX3UgPSBzcmNfdiArIHNyY19zdHJpZGUgKiAo cHRyZGlmZl90KWFic19zcmNfaGVpZ2h0OworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBzcmNf dSA9IHNyY195ICsgc3JjX3N0cmlkZSAqIChwdHJkaWZmX3QpYWJzX3NyY19oZWlnaHQ7CisrICAg ICAgICBzcmNfdiA9IHNyY191ICsgc3JjX3N0cmlkZSAqIChwdHJkaWZmX3QpYWJzX3NyY19oZWln aHQ7CisrICAgICAgfQorKyAgICAgIHIgPSBsaWJ5dXY6Okk0NDRUb0k0MjAoc3JjX3ksIHNyY19z dHJpZGUsIHNyY191LCBzcmNfc3RyaWRlLCBzcmNfdiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNyY19zdHJpZGUsIGRzdF95LCBkc3Rfc3RyaWRlX3ksIGRzdF91LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZHN0X3N0cmlkZV91LCBkc3RfdiwgZHN0X3N0cmlkZV92LCBk c3Rfd2lkdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZfZHN0X2hlaWdodCk7 CisrICAgICAgYnJlYWs7CisrICAgIH0KKysjaWZkZWYgSEFWRV9MSUJZVVZfSlBFRworKyAgICBj YXNlIGxpYnl1djo6Rk9VUkNDX01KUEc6CisrICAgICAgciA9IGxpYnl1djo6TUpQR1RvSTQyMChz YW1wbGUsIHNhbXBsZV9zaXplLCBkc3RfeSwgZHN0X3N0cmlkZV95LCBkc3RfdSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRzdF9zdHJpZGVfdSwgZHN0X3YsIGRzdF9zdHJpZGVfdiwg c3JjX3dpZHRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzX3NyY19oZWlnaHQs IGRzdF93aWR0aCwgaW52X2RzdF9oZWlnaHQpOworKyAgICAgIGJyZWFrOworKyNlbmRpZgorKyAg ICBkZWZhdWx0OgorKyAgICAgIHIgPSAtMTsgIC8vIHVua25vd24gZm91cmNjIC0gcmV0dXJuIGZh aWx1cmUgY29kZS4KKysgIH0KKysKKysgIGlmIChuZWVkX2J1ZikgeworKyAgICBpZiAoIXIpIHsK KysgICAgICByID0gbGlieXV2OjpJNDIwUm90YXRlKGRzdF95LCBkc3Rfc3RyaWRlX3ksIGRzdF91 LCBkc3Rfc3RyaWRlX3UsIGRzdF92LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0 X3N0cmlkZV92LCB0bXBfeSwgdG1wX3lfc3RyaWRlLCB0bXBfdSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRtcF91X3N0cmlkZSwgdG1wX3YsIHRtcF92X3N0cmlkZSwgZHN0X3dpZHRo LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzX2RzdF9oZWlnaHQsIChsaWJ5dXY6 OlJvdGF0aW9uTW9kZSlyb3RhdGlvbik7CisrICAgIH0KKysgICAgZnJlZShyb3RhdGVfYnVmZmVy KTsKKysgIH0KKysKKysgIHJldHVybiByOworK30KKysKKyBzY29wZWRfcmVmcHRyPEk0MjBBQnVm ZmVySW50ZXJmYWNlPiBTY2FsZUk0MjBBQnVmZmVyKAorICAgICBjb25zdCBJNDIwQUJ1ZmZlcklu dGVyZmFjZSYgYnVmZmVyLAorICAgICBpbnQgdGFyZ2V0X3dpZHRoLAorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L2xpYndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NhcHR1cmUvbGludXgvdmlkZW9fY2Fw dHVyZV9waXBld2lyZS5jYyBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nh cHR1cmUvbGludXgvdmlkZW9fY2FwdHVyZV9waXBld2lyZS5jYworaW5kZXggODExOGY1ZTJiMmE2 Ny4uNWNhOTYxMDhlOWRkNyAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9tb2R1 bGVzL3ZpZGVvX2NhcHR1cmUvbGludXgvdmlkZW9fY2FwdHVyZV9waXBld2lyZS5jYworKysrIGIv dGhpcmRfcGFydHkvbGlid2VicnRjL21vZHVsZXMvdmlkZW9fY2FwdHVyZS9saW51eC92aWRlb19j YXB0dXJlX3BpcGV3aXJlLmNjCitAQCAtMzYzLDM2ICszNjMsNiBAQCB2b2lkIFZpZGVvQ2FwdHVy ZU1vZHVsZVBpcGVXaXJlOjpPbkZvcm1hdENoYW5nZWQoY29uc3Qgc3RydWN0IHNwYV9wb2QqIGZv cm1hdCkgeworICAgc3BhX3BvZF9idWlsZGVyX3B1c2hfb2JqZWN0KCZidWlsZGVyLCAmZnJhbWUs IFNQQV9UWVBFX09CSkVDVF9QYXJhbUJ1ZmZlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU1BBX1BBUkFNX0J1ZmZlcnMpOworIAorLSAgaWYgKG1lZGlhX3N1YnR5cGUgPT0gU1BB X01FRElBX1NVQlRZUEVfcmF3KSB7CistICAgIC8vIEVuZm9yY2Ugc3RyaWRlIHdpdGhvdXQgcGFk ZGluZy4KKy0gICAgc2l6ZV90IHN0cmlkZTsKKy0gICAgc3dpdGNoIChjb25maWd1cmVkX2NhcGFi aWxpdHlfLnZpZGVvVHlwZSkgeworLSAgICAgIGNhc2UgVmlkZW9UeXBlOjprSTQyMDoKKy0gICAg ICBjYXNlIFZpZGVvVHlwZTo6a05WMTI6CistICAgICAgICBzdHJpZGUgPSBjb25maWd1cmVkX2Nh cGFiaWxpdHlfLndpZHRoOworLSAgICAgICAgYnJlYWs7CistICAgICAgY2FzZSBWaWRlb1R5cGU6 OmtZVVkyOgorLSAgICAgIGNhc2UgVmlkZW9UeXBlOjprVVlWWToKKy0gICAgICBjYXNlIFZpZGVv VHlwZTo6a1JHQjU2NToKKy0gICAgICAgIHN0cmlkZSA9IGNvbmZpZ3VyZWRfY2FwYWJpbGl0eV8u d2lkdGggKiAyOworLSAgICAgICAgYnJlYWs7CistICAgICAgY2FzZSBWaWRlb1R5cGU6OmtSR0Iy NDoKKy0gICAgICBjYXNlIFZpZGVvVHlwZTo6a0JHUjI0OgorLSAgICAgICAgc3RyaWRlID0gY29u ZmlndXJlZF9jYXBhYmlsaXR5Xy53aWR0aCAqIDM7CistICAgICAgICBicmVhazsKKy0gICAgICBj YXNlIFZpZGVvVHlwZTo6a0FSR0I6CistICAgICAgY2FzZSBWaWRlb1R5cGU6OmtBQkdSOgorLSAg ICAgIGNhc2UgVmlkZW9UeXBlOjprQkdSQToKKy0gICAgICAgIHN0cmlkZSA9IGNvbmZpZ3VyZWRf Y2FwYWJpbGl0eV8ud2lkdGggKiA0OworLSAgICAgICAgYnJlYWs7CistICAgICAgZGVmYXVsdDoK Ky0gICAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJVbnN1cHBvcnRlZCB2aWRlbyBmb3JtYXQu IjsKKy0gICAgICAgIHJldHVybjsKKy0gICAgfQorLSAgICBzcGFfcG9kX2J1aWxkZXJfYWRkKCZi dWlsZGVyLCBTUEFfUEFSQU1fQlVGRkVSU19zdHJpZGUsIFNQQV9QT0RfSW50KHN0cmlkZSksCist ICAgICAgICAgICAgICAgICAgICAgICAgMCk7CistICB9CistCisgICBjb25zdCBpbnQgYnVmZmVy X3R5cGVzID0KKyAgICAgICAoMSA8PCBTUEFfREFUQV9EbWFCdWYpIHwgKDEgPDwgU1BBX0RBVEFf TWVtRmQpIHwgKDEgPDwgU1BBX0RBVEFfTWVtUHRyKTsKKyAgIHNwYV9wb2RfYnVpbGRlcl9hZGQo CitAQCAtNDcxLDE3ICs0NDEsNiBAQCB2b2lkIFZpZGVvQ2FwdHVyZU1vZHVsZVBpcGVXaXJlOjpQ cm9jZXNzQnVmZmVycygpIHsKKyAgICAgaCA9IHN0YXRpY19jYXN0PHN0cnVjdCBzcGFfbWV0YV9o ZWFkZXIqPigKKyAgICAgICAgIHNwYV9idWZmZXJfZmluZF9tZXRhX2RhdGEoc3BhQnVmZmVyLCBT UEFfTUVUQV9IZWFkZXIsIHNpemVvZigqaCkpKTsKKyAKKy0gICAgc3RydWN0IHNwYV9tZXRhX3Zp ZGVvdHJhbnNmb3JtKiB2aWRlb3RyYW5zZm9ybTsKKy0gICAgdmlkZW90cmFuc2Zvcm0gPQorLSAg ICAgICAgc3RhdGljX2Nhc3Q8c3RydWN0IHNwYV9tZXRhX3ZpZGVvdHJhbnNmb3JtKj4oc3BhX2J1 ZmZlcl9maW5kX21ldGFfZGF0YSgKKy0gICAgICAgICAgICBzcGFCdWZmZXIsIFNQQV9NRVRBX1Zp ZGVvVHJhbnNmb3JtLCBzaXplb2YoKnZpZGVvdHJhbnNmb3JtKSkpOworLSAgICBpZiAodmlkZW90 cmFuc2Zvcm0pIHsKKy0gICAgICBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uID0KKy0gICAgICAgICAg VmlkZW9yb3RhdGlvbkZyb21QaXBlV2lyZVRyYW5zZm9ybSh2aWRlb3RyYW5zZm9ybS0+dHJhbnNm b3JtKTsKKy0gICAgICBTZXRDYXB0dXJlUm90YXRpb24ocm90YXRpb24pOworLSAgICAgIFNldEFw cGx5Um90YXRpb24ocm90YXRpb24gIT0ga1ZpZGVvUm90YXRpb25fMCk7CistICAgIH0KKy0KKyAg ICAgaWYgKGgtPmZsYWdzICYgU1BBX01FVEFfSEVBREVSX0ZMQUdfQ09SUlVQVEVEKSB7CisgICAg ICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiRHJvcHBpbmcgY29ycnVwZWQgZnJhbWUuIjsKKyAgICAg ICBwd19zdHJlYW1fcXVldWVfYnVmZmVyKHN0cmVhbV8sIGJ1ZmZlcik7CitAQCAtNDk2LDYgKzQ1 NSwxOSBAQCB2b2lkIFZpZGVvQ2FwdHVyZU1vZHVsZVBpcGVXaXJlOjpQcm9jZXNzQnVmZmVycygp IHsKKyAgICAgICBjb250aW51ZTsKKyAgICAgfQorIAorKyAgICBTZXRTdHJpZGUoc3BhQnVmZmVy LT5kYXRhc1swXS5jaHVuay0+c3RyaWRlKTsKKysKKysgICAgc3RydWN0IHNwYV9tZXRhX3ZpZGVv dHJhbnNmb3JtKiB2aWRlb3RyYW5zZm9ybTsKKysgICAgdmlkZW90cmFuc2Zvcm0gPQorKyAgICAg ICAgc3RhdGljX2Nhc3Q8c3RydWN0IHNwYV9tZXRhX3ZpZGVvdHJhbnNmb3JtKj4oc3BhX2J1ZmZl cl9maW5kX21ldGFfZGF0YSgKKysgICAgICAgICAgICBzcGFCdWZmZXIsIFNQQV9NRVRBX1ZpZGVv VHJhbnNmb3JtLCBzaXplb2YoKnZpZGVvdHJhbnNmb3JtKSkpOworKyAgICBpZiAodmlkZW90cmFu c2Zvcm0pIHsKKysgICAgICBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uID0KKysgICAgICAgICAgVmlk ZW9yb3RhdGlvbkZyb21QaXBlV2lyZVRyYW5zZm9ybSh2aWRlb3RyYW5zZm9ybS0+dHJhbnNmb3Jt KTsKKysgICAgICBTZXRDYXB0dXJlUm90YXRpb24ocm90YXRpb24pOworKyAgICAgIFNldEFwcGx5 Um90YXRpb24ocm90YXRpb24gIT0ga1ZpZGVvUm90YXRpb25fMCk7CisrICAgIH0KKysKKyAgICAg aWYgKHNwYUJ1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBTUEFfREFUQV9EbWFCdWYgfHwKKyAgICAg ICAgIHNwYUJ1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBTUEFfREFUQV9NZW1GZCkgeworICAgICAg IFNjb3BlZEJ1ZiBmcmFtZTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJ3ZWJydGMvbW9k dWxlcy92aWRlb19jYXB0dXJlL3ZpZGVvX2NhcHR1cmUuaCBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0 Yy9tb2R1bGVzL3ZpZGVvX2NhcHR1cmUvdmlkZW9fY2FwdHVyZS5oCitpbmRleCBkODhiNjM0NjZl YjI4Li41NjNmMDBjM2RhNDYyIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbGlid2VicnRjL21v ZHVsZXMvdmlkZW9fY2FwdHVyZS92aWRlb19jYXB0dXJlLmgKKysrKyBiL3RoaXJkX3BhcnR5L2xp YndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NhcHR1cmUvdmlkZW9fY2FwdHVyZS5oCitAQCAtMTU1LDYg KzE1NSw5IEBAIGNsYXNzIFZpZGVvQ2FwdHVyZU1vZHVsZSA6IHB1YmxpYyBSZWZDb3VudEludGVy ZmFjZSB7CisgICAvLyBSZXR1cm4gd2hldGhlciB0aGUgcm90YXRpb24gaXMgYXBwbGllZCBvciBs ZWZ0IHBlbmRpbmcuCisgICB2aXJ0dWFsIGJvb2wgR2V0QXBwbHlSb3RhdGlvbigpID0gMDsKKyAK KysgIHZpcnR1YWwgdm9pZCBTZXRTdHJpZGUoaW50MzJfdCBzdHJpZGUpIHt9OworKyAgdmlydHVh bCBpbnQzMl90IEdldFN0cmlkZSgpIHsgcmV0dXJuIDA7IH07CisrCisgICAvLyBNb3ppbGxhOiBU cmFja2luZ0lkIHNldHRlciBmb3IgdXNlIGluIHByb2ZpbGVyIG1hcmtlcnMuCisgICB2aXJ0dWFs IHZvaWQgU2V0VHJhY2tpbmdJZCh1aW50MzJfdCBhVHJhY2tpbmdJZFByb2NJZCkge30KKyAKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJ3ZWJydGMvbW9kdWxlcy92aWRlb19jYXB0dXJlL3Zp ZGVvX2NhcHR1cmVfaW1wbC5jYyBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9tb2R1bGVzL3ZpZGVv X2NhcHR1cmUvdmlkZW9fY2FwdHVyZV9pbXBsLmNjCitpbmRleCBmNGY5ODI3ZWY1NWFkLi5lZDgz YWI2ZTU3YzQ4IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvbGlid2VicnRjL21vZHVsZXMvdmlk ZW9fY2FwdHVyZS92aWRlb19jYXB0dXJlX2ltcGwuY2MKKysrKyBiL3RoaXJkX3BhcnR5L2xpYndl YnJ0Yy9tb2R1bGVzL3ZpZGVvX2NhcHR1cmUvdmlkZW9fY2FwdHVyZV9pbXBsLmNjCitAQCAtMzEs NyArMzEsNiBAQAorICNpbmNsdWRlICJydGNfYmFzZS90aW1lX3V0aWxzLmgiCisgI2luY2x1ZGUg InJ0Y19iYXNlL3RyYWNlX2V2ZW50LmgiCisgI2luY2x1ZGUgInN5c3RlbV93cmFwcGVycy9pbmNs dWRlL2Nsb2NrLmgiCistI2luY2x1ZGUgInRoaXJkX3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1 di9jb252ZXJ0LmgiCisgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2xpYnl1di9pbmNsdWRlL2xpYnl1 di9yb3RhdGUuaCIKKyAKKyBuYW1lc3BhY2Ugd2VicnRjIHsKK0BAIC05NCw2ICs5Myw3IEBAIFZp ZGVvQ2FwdHVyZUltcGw6OlZpZGVvQ2FwdHVyZUltcGwoQ2xvY2sqIGNsb2NrKQorICAgICAgIF9s YXN0UHJvY2Vzc0ZyYW1lVGltZU5hbm9zKGNsb2NrLT5UaW1lSW5NaWNyb3NlY29uZHMoKSAqIDEw MDApLAorICAgICAgIF9yb3RhdGVGcmFtZShrVmlkZW9Sb3RhdGlvbl8wKSwKKyAgICAgICBhcHBs eV9yb3RhdGlvbl8oZmFsc2UpLAorKyAgICAgIHN0cmlkZV8oMCksCisgICAgICAgY2xvY2tfKGNs b2NrKSB7CisgICBfcmVxdWVzdGVkQ2FwYWJpbGl0eS53aWR0aCA9IGtEZWZhdWx0V2lkdGg7Cisg ICBfcmVxdWVzdGVkQ2FwYWJpbGl0eS5oZWlnaHQgPSBrRGVmYXVsdEhlaWdodDsKK0BAIC0yMzAs MTEgKzIzMCwxMSBAQCBpbnQzMl90IFZpZGVvQ2FwdHVyZUltcGw6OkluY29taW5nRnJhbWUodWlu dDhfdCogdmlkZW9GcmFtZSwKKyAgICAgc3RkOjpzd2FwKGRzdF93aWR0aCwgZHN0X2hlaWdodCk7 CisgICB9CisgCistICBjb25zdCBpbnQgY29udmVyc2lvblJlc3VsdCA9IGxpYnl1djo6Q29udmVy dFRvSTQyMCgKKysgIGNvbnN0IGludCBjb252ZXJzaW9uUmVzdWx0ID0gQ29udmVydFRvSTQyMCgK KyAgICAgICB2aWRlb0ZyYW1lLCB2aWRlb0ZyYW1lTGVuZ3RoLCBidWZmZXItPk11dGFibGVEYXRh WSgpLCBidWZmZXItPlN0cmlkZVkoKSwKKyAgICAgICBidWZmZXItPk11dGFibGVEYXRhVSgpLCBi dWZmZXItPlN0cmlkZVUoKSwgYnVmZmVyLT5NdXRhYmxlRGF0YVYoKSwKKy0gICAgICBidWZmZXIt PlN0cmlkZVYoKSwgMCwgMCwgIC8vIE5vIENyb3BwaW5nCistICAgICAgd2lkdGgsIGhlaWdodCwg ZHN0X3dpZHRoLCBkc3RfaGVpZ2h0LCByb3RhdGlvbl9tb2RlLAorKyAgICAgIGJ1ZmZlci0+U3Ry aWRlVigpLCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGVfLCBkc3Rfd2lkdGgsIGRzdF9oZWlnaHQsCisr ICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJvdGF0aW9uX21vZGUpLAorICAgICAgIENvbnZl cnRWaWRlb1R5cGUoZnJhbWVJbmZvLnZpZGVvVHlwZSkpOworICAgaWYgKGNvbnZlcnNpb25SZXN1 bHQgIT0gMCkgeworICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNvbnZlcnQg Y2FwdHVyZSBmcmFtZSBmcm9tIHR5cGUgIgorQEAgLTMwMCw2ICszMDAsMTYgQEAgYm9vbCBWaWRl b0NhcHR1cmVJbXBsOjpHZXRBcHBseVJvdGF0aW9uKCkgeworICAgcmV0dXJuIGFwcGx5X3JvdGF0 aW9uXzsKKyB9CisgCisrdm9pZCBWaWRlb0NhcHR1cmVJbXBsOjpTZXRTdHJpZGUoaW50MzJfdCBz dHJpZGUpIHsKKysgIE11dGV4TG9jayBsb2NrKCZhcGlfbG9ja18pOworKyAgc3RyaWRlXyA9IHN0 cmlkZTsKKyt9CisrCisraW50MzJfdCBWaWRlb0NhcHR1cmVJbXBsOjpHZXRTdHJpZGUoKSB7Cisr ICBNdXRleExvY2sgbG9jaygmYXBpX2xvY2tfKTsKKysgIHJldHVybiBzdHJpZGVfOworK30KKysK KyB2b2lkIFZpZGVvQ2FwdHVyZUltcGw6OlVwZGF0ZUZyYW1lQ291bnQoKSB7CisgICBSVENfQ0hF Q0tfUlVOU19TRVJJQUxJWkVEKCZjYXB0dXJlX2NoZWNrZXJfKTsKKyAKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9saWJ3ZWJydGMvbW9kdWxlcy92aWRlb19jYXB0dXJlL3ZpZGVvX2NhcHR1cmVf aW1wbC5oIGIvdGhpcmRfcGFydHkvbGlid2VicnRjL21vZHVsZXMvdmlkZW9fY2FwdHVyZS92aWRl b19jYXB0dXJlX2ltcGwuaAoraW5kZXggZWM0MDRmMDk4ZDRhMy4uM2FkMTE0OThiOTc2NyAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NhcHR1cmUvdmlk ZW9fY2FwdHVyZV9pbXBsLmgKKysrKyBiL3RoaXJkX3BhcnR5L2xpYndlYnJ0Yy9tb2R1bGVzL3Zp ZGVvX2NhcHR1cmUvdmlkZW9fY2FwdHVyZV9pbXBsLmgKK0BAIC03MCw2ICs3MCw4IEBAIGNsYXNz IFJUQ19FWFBPUlQgVmlkZW9DYXB0dXJlSW1wbCA6IHB1YmxpYyBWaWRlb0NhcHR1cmVNb2R1bGUg eworICAgaW50MzJfdCBTZXRDYXB0dXJlUm90YXRpb24oVmlkZW9Sb3RhdGlvbiByb3RhdGlvbikg b3ZlcnJpZGU7CisgICBib29sIFNldEFwcGx5Um90YXRpb24oYm9vbCBlbmFibGUpIG92ZXJyaWRl OworICAgYm9vbCBHZXRBcHBseVJvdGF0aW9uKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldFN0cmlk ZShpbnQzMl90IHN0cmlkZSkgb3ZlcnJpZGU7CisrICBpbnQzMl90IEdldFN0cmlkZSgpIG92ZXJy aWRlOworIAorICAgY29uc3QgY2hhciogQ3VycmVudERldmljZU5hbWUoKSBjb25zdCBvdmVycmlk ZTsKKyAKK0BAIC0xMzEsNiArMTMzLDEwIEBAIGNsYXNzIFJUQ19FWFBPUlQgVmlkZW9DYXB0dXJl SW1wbCA6IHB1YmxpYyBWaWRlb0NhcHR1cmVNb2R1bGUgeworICAgLy8gSW5kaWNhdGUgd2hldGhl ciByb3RhdGlvbiBzaG91bGQgYmUgYXBwbGllZCBiZWZvcmUgZGVsaXZlcmVkIGV4dGVybmFsbHku CisgICBib29sIGFwcGx5X3JvdGF0aW9uXyBSVENfR1VBUkRFRF9CWShhcGlfbG9ja18pOworIAor KyAgLy8gRXhwbGljaXQgaW5wdXQgYnVmZmVyIHN0cmlkZS4gTGVmdCB0byAwIGltcGxpZXMgaW1w bGljaXQgc3RyaWRlIGJhc2VkIG9uCisrICAvLyBmb3JtYXQgYW5kIHdpZHRoLgorKyAgaW50MzJf dCBzdHJpZGVfIFJUQ19HVUFSREVEX0JZKGFwaV9sb2NrXyk7CisrCisgICBDbG9jayogY29uc3Qg Y2xvY2tfOworIH07CisgfSAgLy8gbmFtZXNwYWNlIHZpZGVvY2FwdHVyZW1vZHVsZQo=