From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.131]) by sourceware.org (Postfix) with ESMTPS id 4056E3858C20 for ; Sun, 7 Jan 2024 19:20:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4056E3858C20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=net-b.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=net-b.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4056E3858C20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.126.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704655229; cv=none; b=DilexJyhCdtDpNn3DUxhNvsnFNt2wxHKQ/+poeIpYIPtLYVXYRQjawwy4R0FLjrPfSCj62225bFB8hw4R4wqXx3lAriJmEBCAsOSItmhV6Hc3HS1dRJ4soModTUVjqLsX6rW/5Szbys+SxfX/i9SWQInS4DAgIfsH1QzLDVyAbs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704655229; c=relaxed/simple; bh=nocfs5psuWe6sUxPAYR9N4fQVG8NTQf2x07I2/+W4w8=; h=Message-ID:Date:MIME-Version:To:From:Subject; b=lsj8oFOM/T3HaRjNPsYFMS8jvu6C5mynIjt/kFGV10YyDfeW4iR0EsWu4UOdG/LVfXRhLNCV2EnMivvCVzfJ2tlOe7LbZRrnex253Ne3Kgg+mRxqBIYBELrLhbH/+3SH59ox1I45WaCK3Y274/61dAApbvETod0AQ5zDskLtCjc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from [192.168.0.26] ([89.247.230.56]) by mrelayeu.kundenserver.de (mreue009 [213.165.67.97]) with ESMTPSA (Nemesis) id 1MRTEr-1rb38Y1WvF-00NP50; Sun, 07 Jan 2024 20:20:19 +0100 Content-Type: multipart/mixed; boundary="------------A1WhAssqawpZd0la03VuuBa9" Message-ID: Date: Sun, 7 Jan 2024 20:20:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gcc-patches , Andrew Stubbs From: Tobias Burnus Subject: [Patch] GCN: Add pre-initial support for gfx1100 X-Provags-ID: V03:K1:9eDzrCfOOFvUWV31Q0z3T8POdBip08kMHVkRLmmHMca7wGNoj+0 Est/zAS1y+KrRZBqMvzXZO63L8DKIVfXc6ttB4QYygfJzJim0rDSIELnJXFKG/B8sWc2a30 Kv1MF3+qIBeHnmXGTZtX94Mw9XdAGARwg9DyfTx7ra6j/JUykdiI4t/Kz93UYZ89uKKQs1s pjj4H/EOMuPIz+O/7gniQ== UI-OutboundReport: notjunk:1;M01:P0:tOvqx+YG0Ts=;6sD2pUAwU06sJxyw1uTdsXTRxH+ OaWSCC+ZcRooUrCrHDCmKx35zQPxjUXFGfc6umRUWIDrjVEDCPbQBAJzZRebJWCW79SVfrXJM 0hfdQw2feI4mknwz0Ns7oNWWCesTBdI0aYd8urHhOq4FEVx4f5y0+3XakUmR7UZsFNUllJ0du Q1VP5bvGP7rdodB3Iab7WcPSWK5jxhvzvAymOpjVMWUZYdaIMGGIr73yH/4Prj9On69sKXYs+ cP7wyVAxPuZfxXPP62JEXYRA/YwtRZPyvLSVKJf92W0f4PrMVdYTljmtUrNG3BE+xg5gDFOCo iNgb3FawvwhnqNVdSoPnweHx/ygHrH8sJpi8frEbUEi3FCL/v+ifSjY/k9xb85kPg9OWVKgDl fL3oZqS5zY4rIJWCOJxOyUiFmuWnOQtJaAA4VuZQTArMsTPeBaGXavVKs1O8DvTgfPIVXY9ZR tgRLIfLyCdFCvpuLH+qf8yL1ZtuQugHGWC6MbcBhgDRmB1O79JkUozNu9FsLIM/HHV9m3BCPE pWSgZz079ggIAPoYmKtiRIh8W45WTTnUOAFxxzj72A+3/bJxSJ54304lUbcnFk8+LrGIuKmSH ciejDVm+swQE7vAHCl9AwoY3hEN/1zE+q6HimVzwEVtLYA8X0WSbI6CCAjPYFMZnQGauQzlW7 hwC04fAKQXv6IKAZu9QmMiBXpIgYPiUWPew7HvFnqtoUozOukydc71orBFTKA/utGy84athRJ PKPwH3q7DQjP27yoAohdSQN5nbPnvEYcOyLble3on7L2/VxXIwkxhnphmZboqCyZvrCGifbKo 5gJMzVGlATVulRxFGFPyp/xCcgmw7Q+cG9i6LiWwZmJHJ/jEsg2/nchpLpTRdpIX7jdwvRXcj wjde6GPAI5pyW0Q== X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_NUMSUBJECT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------A1WhAssqawpZd0la03VuuBa9 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit ROCm meanwhile supports also some consumer cards; besides the semi-new gfx1030, support for gfx1100 was added more recently (in ROCm 5.7.1 for "Ubuntu 22.04 only" and without parenthesis since ROCm 6.0.0). GCC has already very limited support for gfx1030 - whose multlib support is - on purpose - not yet enabled by default and is WIP. The attached patch now adds gfx1100 on top of it, assuming that it mostly behaves the same as gfx1030. This is really WIP as there are known build (assembly) issues (see below) and not only "just" runtime issues. gfx1100 differs at least in the following aspects from the previously supported cards: * gfx1100 has an 'architected flat scratch' which is different from 'absolute flat scratch' which all others (but fiji: 'offset flat scratch') have. Hence, '.amdhsa_reserve_flat_scratch 0' has to be excluded to avoid assembly errors. * gfx1100 also does not support 'v_mov_b32_sdwa', failing to assembly libc/argz/libc_a-argz_stringify.o with: "sdwa variant of this instruction is not supported" → This has not been address in the patch, hence, specifying gfx1100 in --with-multilib-list= will fail to build when an in-tree newlib is build. * * * The attached patch fixes in addition one issue in libgomp (string-length len constant is too short for gfx1030 (and gfx1100) = 7 characters) and it includes the fix that __gfx1030__ is not defined, which I have submitted separately (yesterday). With the caveat that gfx1100 is even less usable than gfx1030 and it won't build newlib, is it nonetheless OK for mainline ? (As gfx1100 is not enabled by default in multilib, a regular build will will not fail and I think the *.md issue can be addressed separately.) Tobias --------------A1WhAssqawpZd0la03VuuBa9 Content-Type: text/x-patch; charset=UTF-8; name="gcn-gfx1100.diff" Content-Disposition: attachment; filename="gcn-gfx1100.diff" Content-Transfer-Encoding: base64 R0NOOiBBZGQgcHJlLWluaXRpYWwgc3VwcG9ydCBmb3IgZ2Z4MTEwMAoKUk9DbSBzaW5jZSA1 LjcuMSBzdXBwb3J0cyBnZngxMTAwIChSRE5BMykgY2FyZHMuIFRoaXMgY29tbWl0IGFkZHMg c3VwcG9ydApmb3IgaXQsIG1vc3RseSBieSBhc3N1bWluZyBnZngxMTAwIGJlaGF2ZXMgaWRl bnRpY2FsIHRvIGdmeDEwMzAuICBMaWtlIGdmeDEwMzAsCmdmeDExMDAgc3VwcG9ydCBpcyBu ZWl0aGVyIGRvY3VtZW50ZWQgbm9yIHRoZSBidWlsZCBvZiB0aGUgbXVsdGlsaWIgZW5hYmxl ZCBieQpkZWZhdWx0LgoKQnV0IGNvbnRyYXJ5IHRvIGdmeDEwMzAsIGdmeDExMDAgaGFzIGEg a25vd24gaXNzdWUgY2F1c2luZyBzb21lIGxpYnJhcmllcyBub3QKdG8gYnVpbGQsIGluY2x1 ZGluZyBuZXdsaWI6IFRoZSBzZHdhIHZhcmlhbnQgb2Ygdl9tb3ZfYjMyX3Nkd2EgaXMgbm90 IHN1cHBvcnRlZApieSB0aGUgaGFyZHdhcmUgYnV0IEdDQyBjdXJyZW50IGRvZXMgZ2VuZXJh dGVzIHRoaXMgaW5zdHJ1Y3Rpb24uClRoaXMgd2lsbCBiZSBhZGRyZXNzZWQgaW4gYSBsYXRl ciBjb21taXQuCgpnY2MvQ2hhbmdlTG9nOgoKCSogY29uZmlnLmdjYyAoYW1kZ2NuLSotYW1k aHNhKTogQWNjZXB0IC0td2l0aC1hcmNoPWdmeDExMDAuCgkqIGNvbmZpZy9nY24vZ2NuLWhz YS5oIChOT19YTkFDSyk6IEFkZCBnZngxMTAwOgoJKEFTTV9TUEVDKTogSGFuZGxlIGdmeDEx MDAuCgkqIGNvbmZpZy9nY24vZ2NuLW9wdHMuaCAoZW51bSBwcm9jZXNzb3JfdHlwZSk6IEFk ZCBQUk9DRVNTT1JfR0ZYMTEwMC4KCShlbnVtIGdjbl9pc2EpOiBBZGQgSVNBX1JETkEzLgoJ KFRBUkdFVF9HRlgxMTAwLCBUQVJHRVRfUkROQTJfUExVUywgVEFSR0VUX1JETkEzKTogRGVm aW5lLgoJKiBjb25maWcvZ2NuL2djbi12YWx1Lm1kOiBDaGFuZ2UgVEFSR0VUX1JETkEyIHRv IFRBUkdFVF9SRE5BMl9QTFVTLgoJKiBjb25maWcvZ2NuL2djbi5jYyAoZ2NuX29wdGlvbl9v dmVycmlkZSwKCWdjbl9vbXBfZGV2aWNlX2tpbmRfYXJjaF9pc2EsIG91dHB1dF9maWxlX3N0 YXJ0KTogSGFuZGxlIGdmeDExMDAuCgkoZ2NuX2dsb2JhbF9hZGRyZXNzX3AsIGdjbl9hZGRy X3NwYWNlX2xlZ2l0aW1hdGVfYWRkcmVzc19wKTogQ2hhbmdlCglUQVJHRVRfUkROQTIgdG8g VEFSR0VUX1JETkEyX1BMVVMuCgkoZ2NuX2hzYV9kZWNsYXJlX2Z1bmN0aW9uX25hbWUpOiBE b24ndCB1c2UgJy5hbWRoc2FfcmVzZXJ2ZV9mbGF0X3NjcmF0Y2gnCgl3aXRoIGdmeDExMDAu CgkqIGNvbmZpZy9nY24vZ2NuLmggKEFTU0VNQkxFUl9ESUFMRUNUKTogTGlrZXdpc2UuCgko VEFSR0VUX0NQVV9DUFBfQlVJTFRJTlMpOiBEZWZpbmUgX19SRE5BM19fLCBfX2dmeDEwMzBf XyBhbmQKCV9fZ2Z4MTEwMF9fLgoJKiBjb25maWcvZ2NuL2djbi5tZDogQ2hhbmdlIFRBUkdF VF9SRE5BMiB0byBUQVJHRVRfUkROQTJfUExVUy4KCSogY29uZmlnL2djbi9nY24ub3B0IChF bnVtIGdwdV90eXBlKTogQWRkIGdmeDExMDAuCgkqIGNvbmZpZy9nY24vbWtvZmZsb2FkLmNj IChFRl9BTURHUFVfTUFDSF9BTURHQ05fR0ZYMTEwMCk6IERlZmluZS4KCShpc2FfaGFzX2Nv bWJpbmVkX2F2Z3BycywgbWFpbik6IEhhbmRsZSBnZngxMTAwLgoJKiBjb25maWcvZ2NuL3Qt b21wLWRldmljZSAoaXNhKTogQWRkIGdmeDExMDAuCgpsaWJnb21wL0NoYW5nZUxvZzoKCgkq IHBsdWdpbi9wbHVnaW4tZ2NuLmMgKGdjbl9nZngxMTAwX3MpOiBOZXcgY29uc3Qgc3RyaW5n LgoJKGdjbl9pc2FfbmFtZV9sZW4pOiBGaXggbGVuZ3RoLgoJKGlzYV9oc2FfbmFtZSwgaXNh X2NvZGUsIG1heF9pc2FfdmdwcnMpOiBIYW5kbGUgZ2Z4MTEwMC4KCiBnY2MvY29uZmlnLmdj YyAgICAgICAgICAgICAgfCAgMiArLQogZ2NjL2NvbmZpZy9nY24vZ2NuLWhzYS5oICAgIHwg IDQgKystLQogZ2NjL2NvbmZpZy9nY24vZ2NuLW9wdHMuaCAgIHwgIDcgKysrKystCiBnY2Mv Y29uZmlnL2djbi9nY24tdmFsdS5tZCAgfCAxMCArKysrLS0tLQogZ2NjL2NvbmZpZy9nY24v Z2NuLmNjICAgICAgIHwgMjkgKysrKysrKysrKysrKysrKy0tLS0tLS0KIGdjYy9jb25maWcv Z2NuL2djbi5oICAgICAgICB8IDEwICsrKysrLS0tCiBnY2MvY29uZmlnL2djbi9nY24ubWQg ICAgICAgfCAzMiArKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBnY2MvY29uZmlnL2djbi9n Y24ub3B0ICAgICAgfCAgMyArKysKIGdjYy9jb25maWcvZ2NuL21rb2ZmbG9hZC5jYyB8ICA1 ICsrKysKIGdjYy9jb25maWcvZ2NuL3Qtb21wLWRldmljZSB8ICAyICstCiBnY2MvdHJlZS12 ZWN0LWxvb3AtbWFuaXAuY2MgfCAxNiArKysrKysrKysrKysrCiBnY2MvdHJlZS12ZWN0LWxv b3AuY2MgICAgICAgfCA1OCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIGxpYmdvbXAvcGx1Z2luL3BsdWdpbi1nY24uYyB8ICA5ICsrKysrKy0KIDEz IGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnLmdjYyBiL2djYy9jb25maWcuZ2NjCmluZGV4IGNlNDBi Nzc1OGRkLi43ZTU4MzM5MDAyNCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy5nY2MKKysrIGIv Z2NjL2NvbmZpZy5nY2MKQEAgLTQ1NDgsNyArNDU0OCw3IEBAIGNhc2UgIiR7dGFyZ2V0fSIg aW4KIAkJZm9yIHdoaWNoIGluIGFyY2ggdHVuZTsgZG8KIAkJCWV2YWwgInZhbD1cJHdpdGhf JHdoaWNoIgogCQkJY2FzZSAke3ZhbH0gaW4KLQkJCSIiIHwgZmlqaSB8IGdmeDkwMCB8IGdm eDkwNiB8IGdmeDkwOCB8IGdmeDkwYSB8IGdmeDEwMzApCisJCQkiIiB8IGZpamkgfCBnZng5 MDAgfCBnZng5MDYgfCBnZng5MDggfCBnZng5MGEgfCBnZngxMDMwIHwgZ2Z4MTEwMCkKIAkJ CQkjIE9LCiAJCQkJOzsKIAkJCSopCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2djbi9nY24t aHNhLmggYi9nY2MvY29uZmlnL2djbi9nY24taHNhLmgKaW5kZXggNDNiYmUwNDExYTMuLmJm NzA3OWZiYmM2IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2djbi9nY24taHNhLmgKKysrIGIv Z2NjL2NvbmZpZy9nY24vZ2NuLWhzYS5oCkBAIC03NSw3ICs3NSw3IEBAIGV4dGVybiB1bnNp Z25lZCBpbnQgZ2NuX2xvY2FsX3N5bV9oYXNoIChjb25zdCBjaGFyICpuYW1lKTsKICAgIHN1 cHBvcnRlZCBmb3IgZ2NuLiAgKi8KICNkZWZpbmUgR09NUF9TRUxGX1NQRUNTICIiCiAKLSNk ZWZpbmUgTk9fWE5BQ0sgIm1hcmNoPWZpamk6O21hcmNoPWdmeDEwMzA6OyIgXAorI2RlZmlu ZSBOT19YTkFDSyAibWFyY2g9ZmlqaTo7bWFyY2g9Z2Z4MTAzMDo7bWFyY2g9Z2Z4MTEwMDo7 IiBcCiAgICAgLyogVGhlc2UgbWF0Y2ggdGhlIGRlZmF1bHRzIHNldCBpbiBnY24uY2MuICAq LyBcCiAgICAgIiFteG5hY2sqfG14bmFjaz1kZWZhdWx0OiV7bWFyY2g9Z2Z4OTAwfG1hcmNo PWdmeDkwNnxtYXJjaD1nZng5MDg6LW1hdHRyPS14bmFja307IgogI2RlZmluZSBOT19TUkFN X0VDQyAiIW1hcmNoPSo6O21hcmNoPWZpamk6O21hcmNoPWdmeDkwMDo7bWFyY2g9Z2Z4OTA2 OjsiCkBAIC05MSw3ICs5MSw3IEBAIGV4dGVybiB1bnNpZ25lZCBpbnQgZ2NuX2xvY2FsX3N5 bV9oYXNoIChjb25zdCBjaGFyICpuYW1lKTsKIAkJICAiJXshbWFyY2g9KnxtYXJjaD1maWpp Oi0tYW1kaHNhLWNvZGUtb2JqZWN0LXZlcnNpb249M30gIiBcCiAJCSAgIiV7IiBOT19YTkFD SyBYTkFDS09QVCAifSIgXAogCQkgICIleyIgTk9fU1JBTV9FQ0MgU1JBTU9QVCAifSAiIFwK LQkJICAiJXttYXJjaD1nZngxMDMwOi1tYXR0cj0rd2F2ZWZyb250c2l6ZTY0fSAiIFwKKwkJ ICAiJXttYXJjaD1nZngxMDMwfG1hcmNoPWdmeDExMDA6LW1hdHRyPSt3YXZlZnJvbnRzaXpl NjR9ICIgXAogCQkgICItZmlsZXR5cGU9b2JqIgogI2RlZmluZSBMSU5LX1NQRUMgIi0tcGll IC0tZXhwb3J0LWR5bmFtaWMiCiAjZGVmaW5lIExJQl9TUEVDICAiLWxjIgpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9nY24vZ2NuLW9wdHMuaCBiL2djYy9jb25maWcvZ2NuL2djbi1vcHRz LmgKaW5kZXggOWE4MmNjODFlYTUuLjc5ZmJkYTNhYjI1IDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL2djbi9nY24tb3B0cy5oCisrKyBiL2djYy9jb25maWcvZ2NuL2djbi1vcHRzLmgKQEAg LTI1LDcgKzI1LDggQEAgZW51bSBwcm9jZXNzb3JfdHlwZQogICBQUk9DRVNTT1JfVkVHQTIw LCAgLy8gZ2Z4OTA2CiAgIFBST0NFU1NPUl9HRlg5MDgsCiAgIFBST0NFU1NPUl9HRlg5MGEs Ci0gIFBST0NFU1NPUl9HRlgxMDMwCisgIFBST0NFU1NPUl9HRlgxMDMwLAorICBQUk9DRVNT T1JfR0ZYMTEwMAogfTsKIAogI2RlZmluZSBUQVJHRVRfRklKSSAoZ2NuX2FyY2ggPT0gUFJP Q0VTU09SX0ZJSkkpCkBAIC0zNCw2ICszNSw3IEBAIGVudW0gcHJvY2Vzc29yX3R5cGUKICNk ZWZpbmUgVEFSR0VUX0dGWDkwOCAoZ2NuX2FyY2ggPT0gUFJPQ0VTU09SX0dGWDkwOCkKICNk ZWZpbmUgVEFSR0VUX0dGWDkwYSAoZ2NuX2FyY2ggPT0gUFJPQ0VTU09SX0dGWDkwYSkKICNk ZWZpbmUgVEFSR0VUX0dGWDEwMzAgKGdjbl9hcmNoID09IFBST0NFU1NPUl9HRlgxMDMwKQor I2RlZmluZSBUQVJHRVRfR0ZYMTEwMCAoZ2NuX2FyY2ggPT0gUFJPQ0VTU09SX0dGWDExMDAp CiAKIC8qIFNldCBpbiBnY25fb3B0aW9uX292ZXJyaWRlLiAgKi8KIGV4dGVybiBlbnVtIGdj bl9pc2EgewpAQCAtNDEsNiArNDMsNyBAQCBleHRlcm4gZW51bSBnY25faXNhIHsKICAgSVNB X0dDTjMsCiAgIElTQV9HQ041LAogICBJU0FfUkROQTIsCisgIElTQV9SRE5BMywKICAgSVNB X0NETkExLAogICBJU0FfQ0ROQTIKIH0gZ2NuX2lzYTsKQEAgLTU0LDYgKzU3LDggQEAgZXh0 ZXJuIGVudW0gZ2NuX2lzYSB7CiAjZGVmaW5lIFRBUkdFVF9DRE5BMiAoZ2NuX2lzYSA9PSBJ U0FfQ0ROQTIpCiAjZGVmaW5lIFRBUkdFVF9DRE5BMl9QTFVTIChnY25faXNhID49IElTQV9D RE5BMikKICNkZWZpbmUgVEFSR0VUX1JETkEyIChnY25faXNhID09IElTQV9SRE5BMikKKyNk ZWZpbmUgVEFSR0VUX1JETkEyX1BMVVMgKGdjbl9pc2EgPj0gSVNBX1JETkEyICYmIGdjbl9p c2EgPCBJU0FfQ0ROQTEpCisjZGVmaW5lIFRBUkdFVF9SRE5BMyAoZ2NuX2lzYSA9PSBJU0Ff UkROQTMpCiAKIAogI2RlZmluZSBUQVJHRVRfTTBfTERTX0xJTUlUIChUQVJHRVRfR0NOMykK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ2NuL2djbi12YWx1Lm1kIGIvZ2NjL2NvbmZpZy9n Y24vZ2NuLXZhbHUubWQKaW5kZXggNjE1ZTQ4NDcwZGQuLjNkNWI2MjcxZWU2IDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2djbi9nY24tdmFsdS5tZAorKysgYi9nY2MvY29uZmlnL2djbi9n Y24tdmFsdS5tZApAQCAtMTQxNyw3ICsxNDE3LDcgQEAKIAkgIFsobWF0Y2hfb3BlcmFuZDpW X25vSEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiB2IikKIAkgICAobWF0Y2hfb3BlcmFuZDpT SSAyICJjb25zdF9pbnRfb3BlcmFuZCIgICAgIiBuIildCiAJICBVTlNQRUNfTU9WX0RQUF9T SFIpKV0KLSAgIiFUQVJHRVRfUkROQTIiCisgICIhVEFSR0VUX1JETkEyX1BMVVMiCiAgIHsK ICAgICByZXR1cm4gZ2NuX2V4cGFuZF9kcHBfc2hyX2luc24gKDxNT0RFPm1vZGUsICJ2X21v dl9iMzIiLAogCQkJCSAgICBVTlNQRUNfTU9WX0RQUF9TSFIsIElOVFZBTCAob3BlcmFuZHNb Ml0pKTsKQEAgLTQyMTEsNyArNDIxMSw3IEBACiAJKHVuc3BlYzo8U0NBTEFSX01PREU+CiAJ ICBbKG1hdGNoX29wZXJhbmQ6Vl9BTEwgMSAicmVnaXN0ZXJfb3BlcmFuZCIpXQogCSAgUkVE VUNfVU5TUEVDKSldCi0gICIhVEFSR0VUX1JETkEyIgorICAiIVRBUkdFVF9SRE5BMl9QTFVT IgogICB7CiAgICAgcnR4IHRtcCA9IGdjbl9leHBhbmRfcmVkdWNfc2NhbGFyICg8TU9ERT5t b2RlLCBvcGVyYW5kc1sxXSwKIAkJCQkgICAgICAgPHJlZHVjX3Vuc3BlYz4pOwpAQCAtNDI2 NSw3ICs0MjY1LDcgQEAKICAgOyBHQ04zIHJlcXVpcmVzIGEgY2Fycnkgb3V0LCBHQ041IG5v dAogICAiIShUQVJHRVRfR0NOMyAmJiBTQ0FMQVJfSU5UX01PREVfUCAoPFNDQUxBUl9NT0RF Pm1vZGUpCiAgICAgICYmIDxyZWR1Y191bnNwZWM+ID09IFVOU1BFQ19QTFVTX0RQUF9TSFIp Ci0gICAmJiAhVEFSR0VUX1JETkEyIgorICAgJiYgIVRBUkdFVF9SRE5BMl9QTFVTIgogICB7 CiAgICAgcmV0dXJuIGdjbl9leHBhbmRfZHBwX3Nocl9pbnNuICg8TU9ERT5tb2RlLCAiPHJl ZHVjX2luc24+IiwKIAkJCQkgICAgPHJlZHVjX3Vuc3BlYz4sIElOVFZBTCAob3BlcmFuZHNb M10pKTsKQEAgLTQzMTAsNyArNDMxMCw3IEBACiAJICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAi Y29uc3RfaW50X29wZXJhbmQiCSAgIm4iKV0KIAkgIFVOU1BFQ19QTFVTX0NBUlJZX0RQUF9T SFIpKQogICAgKGNsb2JiZXIgKHJlZzpESSBWQ0NfUkVHKSldCi0gICIhVEFSR0VUX1JETkEy IgorICAiIVRBUkdFVF9SRE5BMl9QTFVTIgogICB7CiAgICAgcmV0dXJuIGdjbl9leHBhbmRf ZHBwX3Nocl9pbnNuICg8Vm5TST5tb2RlLCAidl9hZGQlXl91MzIiLAogCQkJCSAgICBVTlNQ RUNfUExVU19DQVJSWV9EUFBfU0hSLApAQCAtNDMyOCw3ICs0MzI4LDcgQEAKIAkgICAobWF0 Y2hfb3BlcmFuZDpESSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAgICJjViIpXQogCSAgVU5TUEVD X1BMVVNfQ0FSUllfSU5fRFBQX1NIUikpCiAgICAoY2xvYmJlciAocmVnOkRJIFZDQ19SRUcp KV0KLSAgIiFUQVJHRVRfUkROQTIiCisgICIhVEFSR0VUX1JETkEyX1BMVVMiCiAgIHsKICAg ICByZXR1cm4gZ2NuX2V4cGFuZF9kcHBfc2hyX2luc24gKDxNT0RFPm1vZGUsICJ2X2FkZGMl Xl91MzIiLAogCQkJCSAgICBVTlNQRUNfUExVU19DQVJSWV9JTl9EUFBfU0hSLApkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9nY24vZ2NuLmNjIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLmNjCmlu ZGV4IDc5ZDNhNjVjZTEzLi41MDQ2N2JjNmQzOSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9n Y24vZ2NuLmNjCisrKyBiL2djYy9jb25maWcvZ2NuL2djbi5jYwpAQCAtMTM5LDYgKzEzOSw3 IEBAIGdjbl9vcHRpb25fb3ZlcnJpZGUgKHZvaWQpCiAgICAgICA6IGdjbl9hcmNoID09IFBS T0NFU1NPUl9HRlg5MDggPyBJU0FfQ0ROQTEKICAgICAgIDogZ2NuX2FyY2ggPT0gUFJPQ0VT U09SX0dGWDkwYSA/IElTQV9DRE5BMgogICAgICAgOiBnY25fYXJjaCA9PSBQUk9DRVNTT1Jf R0ZYMTAzMCA/IElTQV9SRE5BMgorICAgICAgOiBnY25fYXJjaCA9PSBQUk9DRVNTT1JfR0ZY MTEwMCA/IElTQV9SRE5BMwogICAgICAgOiBJU0FfVU5LTk9XTik7CiAgIGdjY19hc3NlcnQg KGdjbl9pc2EgIT0gSVNBX1VOS05PV04pOwogCkBAIC0xNjAsMTUgKzE2MSwxNyBAQCBnY25f b3B0aW9uX292ZXJyaWRlICh2b2lkKQogCWFjY19sZHNfc2l6ZSA9IDMyNzY4OwogICAgIH0K IAotICAvKiBnZng4MDMgIkZpamkiIGFuZCBnZngxMDMwIGRvIG5vdCBzdXBwb3J0IFhOQUNL LiAgKi8KKyAgLyogZ2Z4ODAzICJGaWppIiwgZ2Z4MTAzMCBhbmQgZ2Z4MTEwMCBkbyBub3Qg c3VwcG9ydCBYTkFDSy4gICovCiAgIGlmIChnY25fYXJjaCA9PSBQUk9DRVNTT1JfRklKSQot ICAgICAgfHwgZ2NuX2FyY2ggPT0gUFJPQ0VTU09SX0dGWDEwMzApCisgICAgICB8fCBnY25f YXJjaCA9PSBQUk9DRVNTT1JfR0ZYMTAzMAorICAgICAgfHwgZ2NuX2FyY2ggPT0gUFJPQ0VT U09SX0dGWDExMDApCiAgICAgewogICAgICAgaWYgKGZsYWdfeG5hY2sgPT0gSFNBQ09fQVRU Ul9PTikKLQllcnJvciAoIi1teG5hY2s9b24gaXMgaW5jb21wYXRpYmxlIHdpdGggLW1hcmNo PSVzIiwKKwllcnJvciAoIiU8LW14bmFjaz1vbiU+IGlzIGluY29tcGF0aWJsZSB3aXRoICU8 LW1hcmNoPSVzJT4iLAogCSAgICAgICAoZ2NuX2FyY2ggPT0gUFJPQ0VTU09SX0ZJSkkgPyAi ZmlqaSIKLQkgICAgICAgIDogZ2NuX2FyY2ggPT0gUFJPQ0VTU09SX0dGWDEwMzAgPyAiZ2Z4 MTAzMCIKLQkgICAgICAgIDogTlVMTCkpOworCQk6IGdjbl9hcmNoID09IFBST0NFU1NPUl9H RlgxMDMwID8gImdmeDEwMzAiCisJCTogZ2NuX2FyY2ggPT0gUFJPQ0VTU09SX0dGWDExMDAg PyAiZ2Z4MTEwMCIKKwkJOiBOVUxMKSk7CiAgICAgICAvKiBBbGxvdyBIU0FDT19BVFRSX0FO WSBzaWxlbnRseSBiZWNhdXNlIHRoYXQncyB0aGUgZGVmYXVsdC4gICovCiAgICAgICBmbGFn X3huYWNrID0gSFNBQ09fQVRUUl9PRkY7CiAgICAgfQpAQCAtMTU5Miw3ICsxNTk1LDcgQEAg Z2NuX2dsb2JhbF9hZGRyZXNzX3AgKHJ0eCBhZGRyKQogICAgIHsKICAgICAgIHJ0eCBiYXNl ID0gWEVYUCAoYWRkciwgMCk7CiAgICAgICBydHggb2Zmc2V0ID0gWEVYUCAoYWRkciwgMSk7 Ci0gICAgICBpbnQgb2Zmc2V0Yml0cyA9IChUQVJHRVRfUkROQTIgPyAxMSA6IDEyKTsKKyAg ICAgIGludCBvZmZzZXRiaXRzID0gKFRBUkdFVF9SRE5BMl9QTFVTID8gMTEgOiAxMik7CiAg ICAgICBib29sIGltbWVkaWF0ZV9wID0gKENPTlNUX0lOVF9QIChvZmZzZXQpCiAJCQkgICYm IElOVFZBTCAob2Zmc2V0KSA+PSAtKDEgPDwgMTIpCiAJCQkgICYmIElOVFZBTCAob2Zmc2V0 KSA8ICgxIDw8IDEyKSk7CkBAIC0xNzI1LDcgKzE3MjgsNyBAQCBnY25fYWRkcl9zcGFjZV9s ZWdpdGltYXRlX2FkZHJlc3NfcCAobWFjaGluZV9tb2RlIG1vZGUsIHJ0eCB4LCBib29sIHN0 cmljdCwKIAkgIHJ0eCBiYXNlID0gWEVYUCAoeCwgMCk7CiAJICBydHggb2Zmc2V0ID0gWEVY UCAoeCwgMSk7CiAKLQkgIGludCBvZmZzZXRiaXRzID0gKFRBUkdFVF9SRE5BMiA/IDExIDog MTIpOworCSAgaW50IG9mZnNldGJpdHMgPSAoVEFSR0VUX1JETkEyX1BMVVMgPyAxMSA6IDEy KTsKIAkgIGJvb2wgaW1tZWRpYXRlX3AgPSAoR0VUX0NPREUgKG9mZnNldCkgPT0gQ09OU1Rf SU5UCiAJCQkgICAgICAvKiBTaWduZWQgMTIvMTMtYml0IGltbWVkaWF0ZS4gICovCiAJCQkg ICAgICAmJiBJTlRWQUwgKG9mZnNldCkgPj0gLSgxIDw8IG9mZnNldGJpdHMpCkBAIC0zMDQz LDYgKzMwNDYsOCBAQCBnY25fb21wX2RldmljZV9raW5kX2FyY2hfaXNhIChlbnVtIG9tcF9k ZXZpY2Vfa2luZF9hcmNoX2lzYSB0cmFpdCwKIAlyZXR1cm4gZ2NuX2FyY2ggPT0gUFJPQ0VT U09SX0dGWDkwYTsKICAgICAgIGlmIChzdHJjbXAgKG5hbWUsICJnZngxMDMwIikgPT0gMCkK IAlyZXR1cm4gZ2NuX2FyY2ggPT0gUFJPQ0VTU09SX0dGWDEwMzA7CisgICAgICBpZiAoc3Ry Y21wIChuYW1lLCAiZ2Z4MTEwMCIpID09IDApCisJcmV0dXJuIGdjbl9hcmNoID09IFBST0NF U1NPUl9HRlgxMTAwOwogICAgICAgcmV0dXJuIDA7CiAgICAgZGVmYXVsdDoKICAgICAgIGdj Y191bnJlYWNoYWJsZSAoKTsKQEAgLTY1MzksNiArNjU0NCwxMSBAQCBvdXRwdXRfZmlsZV9z dGFydCAodm9pZCkKICAgICAgIHhuYWNrID0gIiI7CiAgICAgICBzcmFtX2VjYyA9ICIiOwog ICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9DRVNTT1JfR0ZYMTEwMDoKKyAgICAgIGNwdSA9 ICJnZngxMTAwIjsKKyAgICAgIHhuYWNrID0gIiI7CisgICAgICBzcmFtX2VjYyA9ICIiOwor ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDogZ2NjX3VucmVhY2hhYmxlICgpOwogICAgIH0K IApAQCAtNjY2NCw3ICs2Njc0LDYgQEAgZ2NuX2hzYV9kZWNsYXJlX2Z1bmN0aW9uX25hbWUg KEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIgKm5hbWUsIHRyZWUgZGVjbCkKIAkgICAiXHQgIC5h bWRoc2FfbmV4dF9mcmVlX3ZncHJcdCVpXG4iCiAJICAgIlx0ICAuYW1kaHNhX25leHRfZnJl ZV9zZ3ByXHQlaVxuIgogCSAgICJcdCAgLmFtZGhzYV9yZXNlcnZlX3ZjY1x0MVxuIgotCSAg ICJcdCAgLmFtZGhzYV9yZXNlcnZlX2ZsYXRfc2NyYXRjaFx0MFxuIgogCSAgICJcdCAgLmFt ZGhzYV9yZXNlcnZlX3huYWNrX21hc2tcdCVpXG4iCiAJICAgIlx0ICAuYW1kaHNhX3ByaXZh dGVfc2VnbWVudF9maXhlZF9zaXplXHQwXG4iCiAJICAgIlx0ICAuYW1kaHNhX2dyb3VwX3Nl Z21lbnRfZml4ZWRfc2l6ZVx0JXVcbiIKQEAgLTY2NzQsNiArNjY4MywxMCBAQCBnY25faHNh X2RlY2xhcmVfZnVuY3Rpb25fbmFtZSAoRklMRSAqZmlsZSwgY29uc3QgY2hhciAqbmFtZSwg dHJlZSBkZWNsKQogCSAgIHNncHIsCiAJICAgeG5hY2tfZW5hYmxlZCwKIAkgICBMRFNfU0la RSk7CisgIC8qIE5vdCBzdXBwb3J0ZWQgd2l0aCAnYXJjaGl0ZWN0ZWQgZmxhdCBzY3JhdGNo Jy4gICovCisgIGlmIChnY25fYXJjaCAhPSBQUk9DRVNTT1JfR0ZYMTEwMCkKKyAgICBmcHJp bnRmIChmaWxlLAorCSAgICJcdCAgLmFtZGhzYV9yZXNlcnZlX2ZsYXRfc2NyYXRjaFx0MFxu Iik7CiAgIGlmIChnY25fYXJjaCA9PSBQUk9DRVNTT1JfR0ZYOTBhKQogICAgIGZwcmludGYg KGZpbGUsCiAJICAgICAiXHQgIC5hbWRoc2FfYWNjdW1fb2Zmc2V0XHQlaVxuIgpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9nY24vZ2NuLmggYi9nY2MvY29uZmlnL2djbi9nY24uaAppbmRl eCBjMzUwY2JiMDU0NS4uYzJhZmI1ZTkxNDAgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvZ2Nu L2djbi5oCisrKyBiL2djYy9jb25maWcvZ2NuL2djbi5oCkBAIC0zMCw2ICszMCw4IEBACiAJ YnVpbHRpbl9kZWZpbmUgKCJfX0NETkEyX18iKTsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgICBlbHNlIGlmIChUQVJHRVRfUkROQTIpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCWJ1aWx0 aW5fZGVmaW5lICgiX19SRE5BMl9fIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgZWxzZSBpZiAoVEFSR0VUX1JETkEzKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlidWlsdGluX2Rl ZmluZSAoIl9fUkROQTNfXyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgIGlmIChUQVJHRVRfRklKSSkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAJICBidWlsdGluX2RlZmluZSAoIl9fZmlqaV9fIik7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC00MSwxMSArNDMsMTMgQEAKIAlidWlsdGlu X2RlZmluZSAoIl9fZ2Z4OTA2X18iKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgIGVsc2UgaWYgKFRBUkdFVF9HRlg5MDgpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJYnVpbHRpbl9kZWZp bmUgKCJfX2dmeDkwOF9fIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgICBlbHNlIGlmIChUQVJHRVRfR0ZYOTBhKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCWJ1aWx0aW5fZGVmaW5lICgi X19nZng5MGFfXyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgZWxzZSBpZiAoVEFSR0VUX0dGWDEwMzApICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlidWlsdGluX2RlZmluZSAoIl9fZ2Z4 MTAzMCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgIGVsc2UgaWYgKFRBUkdFVF9HRlgxMTAwKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisJYnVpbHRpbl9kZWZpbmUgKCJfX2dmeDExMDBf XyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgIH0gd2hp bGUgKDApCiAKLSNkZWZpbmUgQVNTRU1CTEVSX0RJQUxFQ1QgKFRBUkdFVF9SRE5BMiA/IDEg OiAwKQorI2RlZmluZSBBU1NFTUJMRVJfRElBTEVDVCAoVEFSR0VUX1JETkEyX1BMVVMgPyAx IDogMCkKIAogLyogU3VwcG9ydCBmb3IgYSBjb21waWxlLXRpbWUgZGVmYXVsdCBhcmNoaXRl Y3R1cmUgYW5kIHR1bmluZy4KICAgIFRoZSBydWxlcyBhcmU6CmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2djbi9nY24ubWQgYi9nY2MvY29uZmlnL2djbi9nY24ubWQKaW5kZXggZTc4MTUz NDAwMDIuLjQ5MmI4MzNlMjU1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2djbi9nY24ubWQK KysrIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLm1kCkBAIC0yOTksMTAgKzI5OSwxMCBAQAogCiAo ZGVmaW5lX2F0dHIgImVuYWJsZWQiICIiCiAgIChjb25kIFsoYW5kIChlcV9hdHRyICJyZG5h IiAibm8iKQotCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1JETkEyIikgKGNvbnN0 X2ludCAwKSkpCisJICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfUkROQTJfUExVUyIp IChjb25zdF9pbnQgMCkpKQogCSAgIChjb25zdF9pbnQgMCkKIAkgKGFuZCAoZXFfYXR0ciAi cmRuYSIgInllcyIpCi0JICAgICAgKGVxIChzeW1ib2xfcmVmICJUQVJHRVRfUkROQTIiKSAo Y29uc3RfaW50IDApKSkKKwkgICAgICAoZXEgKHN5bWJvbF9yZWYgIlRBUkdFVF9SRE5BMl9Q TFVTIikgKGNvbnN0X2ludCAwKSkpCiAJICAgKGNvbnN0X2ludCAwKQogCSAoYW5kIChlcV9h dHRyICJnY25fdmVyc2lvbiIgImdjbjUiKQogCSAgICAgIChlcSAoc3ltYm9sX3JlZiAiVEFS R0VUX0dDTjVfUExVUyIpIChjb25zdF9pbnQgMCkpKQpAQCAtMjEwOSwxMyArMjEwOSwxMyBA QAogCSAgICByZXR1cm4gInNfbG9hZCVvMFx0JTAsICVBMSBnbGNcO3Nfd2FpdGNudFx0bGdr bWNudCgwKVw7IgogCQkgICAic19kY2FjaGVfd2Jfdm9sIjsKIAkgIGNhc2UgMToKLQkgICAg cmV0dXJuIChUQVJHRVRfUkROQTIKKwkgICAgcmV0dXJuIChUQVJHRVRfUkROQTJfUExVUwog CQkgICAgPyAiZmxhdF9sb2FkJW8wXHQlMCwgJUExJU8xIGdsY1w7c193YWl0Y250XHQwXDsi CiAJCSAgICAgICJidWZmZXJfZ2wwX2ludiIKIAkJICAgIDogImZsYXRfbG9hZCVvMFx0JTAs ICVBMSVPMSBnbGNcO3Nfd2FpdGNudFx0MFw7IgogCQkgICAgICAiYnVmZmVyX3diaW52bDFf dm9sIik7CiAJICBjYXNlIDI6Ci0JICAgIHJldHVybiAoVEFSR0VUX1JETkEyCisJICAgIHJl dHVybiAoVEFSR0VUX1JETkEyX1BMVVMKIAkJICAgID8gImdsb2JhbF9sb2FkJW8wXHQlMCwg JUExJU8xIGdsY1w7c193YWl0Y250XHR2bWNudCgwKVw7IgogCQkgICAgICAiYnVmZmVyX2ds MF9pbnYiCiAJCSAgICA6ICJnbG9iYWxfbG9hZCVvMFx0JTAsICVBMSVPMSBnbGNcO3Nfd2Fp dGNudFx0dm1jbnQoMClcOyIKQEAgLTIxMzEsMTMgKzIxMzEsMTMgQEAKIAkgICAgcmV0dXJu ICJzX2RjYWNoZV93Yl92b2xcO3NfbG9hZCVvMFx0JTAsICVBMSBnbGNcOyIKIAkJICAgInNf d2FpdGNudFx0bGdrbWNudCgwKVw7c19kY2FjaGVfaW52X3ZvbCI7CiAJICBjYXNlIDE6Ci0J ICAgIHJldHVybiAoVEFSR0VUX1JETkEyCisJICAgIHJldHVybiAoVEFSR0VUX1JETkEyX1BM VVMKIAkJICAgID8gImJ1ZmZlcl9nbDBfaW52XDtmbGF0X2xvYWQlbzBcdCUwLCAlQTElTzEg Z2xjXDsiCiAJCSAgICAgICJzX3dhaXRjbnRcdDBcO2J1ZmZlcl9nbDBfaW52IgogCQkgICAg OiAiYnVmZmVyX3diaW52bDFfdm9sXDtmbGF0X2xvYWQlbzBcdCUwLCAlQTElTzEgZ2xjXDsi CiAJCSAgICAgICJzX3dhaXRjbnRcdDBcO2J1ZmZlcl93YmludmwxX3ZvbCIpOwogCSAgY2Fz ZSAyOgotCSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMgorCSAgICByZXR1cm4gKFRBUkdFVF9S RE5BMl9QTFVTCiAJCSAgICA/ICJidWZmZXJfZ2wwX2ludlw7Z2xvYmFsX2xvYWQlbzBcdCUw LCAlQTElTzEgZ2xjXDsiCiAJCSAgICAgICJzX3dhaXRjbnRcdHZtY250KDApXDtidWZmZXJf Z2wwX2ludiIKIAkJICAgIDogImJ1ZmZlcl93YmludmwxX3ZvbFw7Z2xvYmFsX2xvYWQlbzBc dCUwLCAlQTElTzEgZ2xjXDsiCkBAIC0yMTgwLDExICsyMTgwLDExIEBACiAJICBjYXNlIDA6 CiAJICAgIHJldHVybiAic19kY2FjaGVfd2Jfdm9sXDtzX3N0b3JlJW8xXHQlMSwgJUEwIGds YyI7CiAJICBjYXNlIDE6Ci0JICAgIHJldHVybiAoVEFSR0VUX1JETkEyCisJICAgIHJldHVy biAoVEFSR0VUX1JETkEyX1BMVVMKIAkJICAgID8gImJ1ZmZlcl9nbDBfaW52XDtmbGF0X3N0 b3JlJW8xXHQlQTAsICUxJU8wIGdsYyIKIAkJICAgIDogImJ1ZmZlcl93YmludmwxX3ZvbFw7 ZmxhdF9zdG9yZSVvMVx0JUEwLCAlMSVPMCBnbGMiKTsKIAkgIGNhc2UgMjoKLQkgICAgcmV0 dXJuIChUQVJHRVRfUkROQTIKKwkgICAgcmV0dXJuIChUQVJHRVRfUkROQTJfUExVUwogCQkg ICAgPyAiYnVmZmVyX2dsMF9pbnZcO2dsb2JhbF9zdG9yZSVvMVx0JUEwLCAlMSVPMCBnbGMi CiAJCSAgICA6ICJidWZmZXJfd2JpbnZsMV92b2xcO2dsb2JhbF9zdG9yZSVvMVx0JUEwLCAl MSVPMCBnbGMiKTsKIAkgIH0KQEAgLTIxOTgsMTMgKzIxOTgsMTMgQEAKIAkgICAgcmV0dXJu ICJzX2RjYWNoZV93Yl92b2xcO3Nfc3RvcmUlbzFcdCUxLCAlQTAgZ2xjXDsiCiAJCSAgICJz X3dhaXRjbnRcdGxna21jbnQoMClcO3NfZGNhY2hlX2ludl92b2wiOwogCSAgY2FzZSAxOgot CSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMgorCSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMl9Q TFVTCiAJCSAgICA/ICJidWZmZXJfZ2wwX2ludlw7ZmxhdF9zdG9yZSVvMVx0JUEwLCAlMSVP MCBnbGNcOyIKIAkJICAgICAgInNfd2FpdGNudFx0MFw7YnVmZmVyX2dsMF9pbnYiCiAJCSAg ICA6ICJidWZmZXJfd2JpbnZsMV92b2xcO2ZsYXRfc3RvcmUlbzFcdCVBMCwgJTElTzAgZ2xj XDsiCiAJCSAgICAgICJzX3dhaXRjbnRcdDBcO2J1ZmZlcl93YmludmwxX3ZvbCIpOwogCSAg Y2FzZSAyOgotCSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMgorCSAgICByZXR1cm4gKFRBUkdF VF9SRE5BMl9QTFVTCiAJCSAgICA/ICJidWZmZXJfZ2wwX2ludlw7Z2xvYmFsX3N0b3JlJW8x XHQlQTAsICUxJU8wIGdsY1w7IgogCQkgICAgICAic193YWl0Y250XHR2bWNudCgwKVw7YnVm ZmVyX2dsMF9pbnYiCiAJCSAgICA6ICJidWZmZXJfd2JpbnZsMV92b2xcO2dsb2JhbF9zdG9y ZSVvMVx0JUEwLCAlMSVPMCBnbGNcOyIKQEAgLTIyNTIsMTMgKzIyNTIsMTMgQEAKIAkgICAg cmV0dXJuICJzX2F0b21pY19zd2FwPFg+XHQlMCwgJTEsICUyIGdsY1w7c193YWl0Y250XHRs Z2ttY250KDApXDsiCiAJCSAgICJzX2RjYWNoZV93Yl92b2xcO3NfZGNhY2hlX2ludl92b2wi OwogCSAgY2FzZSAxOgotCSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMgorCSAgICByZXR1cm4g KFRBUkdFVF9SRE5BMl9QTFVTCiAJCSAgICA/ICJmbGF0X2F0b21pY19zd2FwPFg+XHQlMCwg JTEsICUyIGdsY1w7c193YWl0Y250XHQwXDsiCiAJCSAgICAgICJidWZmZXJfZ2wwX2ludiIK IAkJICAgIDogImZsYXRfYXRvbWljX3N3YXA8WD5cdCUwLCAlMSwgJTIgZ2xjXDtzX3dhaXRj bnRcdDBcOyIKIAkJICAgICAgImJ1ZmZlcl93YmludmwxX3ZvbCIpOwogCSAgY2FzZSAyOgot CSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMgorCSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMl9Q TFVTCiAJCSAgICA/ICJnbG9iYWxfYXRvbWljX3N3YXA8WD5cdCUwLCAlQTEsICUyJU8xIGds Y1w7IgogCQkgICAgICAic193YWl0Y250XHR2bWNudCgwKVw7YnVmZmVyX2dsMF9pbnYiCiAJ CSAgICA6ICJnbG9iYWxfYXRvbWljX3N3YXA8WD5cdCUwLCAlQTEsICUyJU8xIGdsY1w7IgpA QCAtMjI3MywxMyArMjI3MywxMyBAQAogCSAgICByZXR1cm4gInNfZGNhY2hlX3diX3ZvbFw7 c19hdG9taWNfc3dhcDxYPlx0JTAsICUxLCAlMiBnbGNcOyIKIAkJICAgInNfd2FpdGNudFx0 bGdrbWNudCgwKSI7CiAJICBjYXNlIDE6Ci0JICAgIHJldHVybiAoVEFSR0VUX1JETkEyCisJ ICAgIHJldHVybiAoVEFSR0VUX1JETkEyX1BMVVMKIAkJICAgID8gImJ1ZmZlcl9nbDBfaW52 XDtmbGF0X2F0b21pY19zd2FwPFg+XHQlMCwgJTEsICUyIGdsY1w7IgogCQkgICAgICAic193 YWl0Y250XHQwIgogCQkgICAgOiAiYnVmZmVyX3diaW52bDFfdm9sXDtmbGF0X2F0b21pY19z d2FwPFg+XHQlMCwgJTEsICUyIGdsY1w7IgogCQkgICAgICAic193YWl0Y250XHQwIik7CiAJ ICBjYXNlIDI6Ci0JICAgIHJldHVybiAoVEFSR0VUX1JETkEyCisJICAgIHJldHVybiAoVEFS R0VUX1JETkEyX1BMVVMKIAkJICAgID8gImJ1ZmZlcl9nbDBfaW52XDsiCiAJCSAgICAgICJn bG9iYWxfYXRvbWljX3N3YXA8WD5cdCUwLCAlQTEsICUyJU8xIGdsY1w7IgogCQkgICAgICAi c193YWl0Y250XHR2bWNudCgwKSIKQEAgLTIyOTcsMTMgKzIyOTcsMTMgQEAKIAkgICAgcmV0 dXJuICJzX2RjYWNoZV93Yl92b2xcO3NfYXRvbWljX3N3YXA8WD5cdCUwLCAlMSwgJTIgZ2xj XDsiCiAJCSAgICJzX3dhaXRjbnRcdGxna21jbnQoMClcO3NfZGNhY2hlX2ludl92b2wiOwog CSAgY2FzZSAxOgotCSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMgorCSAgICByZXR1cm4gKFRB UkdFVF9SRE5BMl9QTFVTCiAJCSAgICA/ICJidWZmZXJfZ2wwX2ludlw7ZmxhdF9hdG9taWNf c3dhcDxYPlx0JTAsICUxLCAlMiBnbGNcOyIKIAkJICAgICAgInNfd2FpdGNudFx0MFw7YnVm ZmVyX2dsMF9pbnYiCiAJCSAgICA6ICJidWZmZXJfd2JpbnZsMV92b2xcO2ZsYXRfYXRvbWlj X3N3YXA8WD5cdCUwLCAlMSwgJTIgZ2xjXDsiCiAJCSAgICAgICJzX3dhaXRjbnRcdDBcO2J1 ZmZlcl93YmludmwxX3ZvbCIpOwogCSAgY2FzZSAyOgotCSAgICByZXR1cm4gKFRBUkdFVF9S RE5BMgorCSAgICByZXR1cm4gKFRBUkdFVF9SRE5BMl9QTFVTCiAJCSAgICA/ICJidWZmZXJf Z2wwX2ludlw7IgogCQkgICAgICAiZ2xvYmFsX2F0b21pY19zd2FwPFg+XHQlMCwgJUExLCAl MiVPMSBnbGNcOyIKIAkJICAgICAgInNfd2FpdGNudFx0dm1jbnQoMClcO2J1ZmZlcl9nbDBf aW52IgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9nY24vZ2NuLm9wdCBiL2djYy9jb25maWcv Z2NuL2djbi5vcHQKaW5kZXggYjNkN2ExODhkMDMuLjg0MmZkMzZkMjVjIDEwMDY0NAotLS0g YS9nY2MvY29uZmlnL2djbi9nY24ub3B0CisrKyBiL2djYy9jb25maWcvZ2NuL2djbi5vcHQK QEAgLTQzLDYgKzQzLDkgQEAgRW51bShncHVfdHlwZSkgU3RyaW5nKGdmeDkwYSkgVmFsdWUo UFJPQ0VTU09SX0dGWDkwYSkKIEVudW1WYWx1ZQogRW51bShncHVfdHlwZSkgU3RyaW5nKGdm eDEwMzApIFZhbHVlKFBST0NFU1NPUl9HRlgxMDMwKQogCitFbnVtVmFsdWUKK0VudW0oZ3B1 X3R5cGUpIFN0cmluZyhnZngxMTAwKSBWYWx1ZShQUk9DRVNTT1JfR0ZYMTEwMCkKKwogbWFy Y2g9CiBUYXJnZXQgUmVqZWN0TmVnYXRpdmUgTmVnYXRpdmUobWFyY2g9KSBKb2luZWQgVG9M b3dlciBFbnVtKGdwdV90eXBlKSBWYXIoZ2NuX2FyY2gpIEluaXQoUFJPQ0VTU09SX0ZJSkkp CiBTcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgR1BVLgpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9nY24vbWtvZmZsb2FkLmNjIGIvZ2NjL2NvbmZpZy9nY24vbWtvZmZsb2FkLmNj CmluZGV4IDMzNDFjMGQzNGViLi41YjY4MGU2ZjEzZiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9nY24vbWtvZmZsb2FkLmNjCisrKyBiL2djYy9jb25maWcvZ2NuL21rb2ZmbG9hZC5jYwpA QCAtNTksNiArNTksOCBAQAogI2RlZmluZSBFRl9BTURHUFVfTUFDSF9BTURHQ05fR0ZYOTBh IDB4M2YKICN1bmRlZiAgRUZfQU1ER1BVX01BQ0hfQU1ER0NOX0dGWDEwMzAKICNkZWZpbmUg RUZfQU1ER1BVX01BQ0hfQU1ER0NOX0dGWDEwMzAgMHgzNgorI3VuZGVmICBFRl9BTURHUFVf TUFDSF9BTURHQ05fR0ZYMTEwMAorI2RlZmluZSBFRl9BTURHUFVfTUFDSF9BTURHQ05fR0ZY MTEwMCAweDQxCiAKICNkZWZpbmUgRUZfQU1ER1BVX0ZFQVRVUkVfWE5BQ0tfVjQJMHgzMDAg IC8qIE1hc2suICAqLwogI2RlZmluZSBFRl9BTURHUFVfRkVBVFVSRV9YTkFDS19VTlNVUFBP UlRFRF9WNAkweDAwMApAQCAtNDg0LDYgKzQ4Niw3IEBAIGlzYV9oYXNfY29tYmluZWRfYXZn cHJzIChpbnQgaXNhKQogICAgIGNhc2UgRUZfQU1ER1BVX01BQ0hfQU1ER0NOX0dGWDkwNjoK ICAgICBjYXNlIEVGX0FNREdQVV9NQUNIX0FNREdDTl9HRlg5MDg6CiAgICAgY2FzZSBFRl9B TURHUFVfTUFDSF9BTURHQ05fR0ZYMTAzMDoKKyAgICBjYXNlIEVGX0FNREdQVV9NQUNIX0FN REdDTl9HRlgxMTAwOgogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgRUZfQU1ER1BV X01BQ0hfQU1ER0NOX0dGWDkwYToKICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTAwMCw2ICsx MDAzLDggQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCWVsZl9hcmNoID0gRUZf QU1ER1BVX01BQ0hfQU1ER0NOX0dGWDkwYTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoYXJn dltpXSwgIi1tYXJjaD1nZngxMDMwIikgPT0gMCkKIAllbGZfYXJjaCA9IEVGX0FNREdQVV9N QUNIX0FNREdDTl9HRlgxMDMwOworICAgICAgZWxzZSBpZiAoc3RyY21wIChhcmd2W2ldLCAi LW1hcmNoPWdmeDExMDAiKSA9PSAwKQorCWVsZl9hcmNoID0gRUZfQU1ER1BVX01BQ0hfQU1E R0NOX0dGWDExMDA7CiAjZGVmaW5lIFNUUiAiLW1zdGFjay1zaXplPSIKICAgICAgIGVsc2Ug aWYgKHN0YXJ0c3dpdGggKGFyZ3ZbaV0sIFNUUikpCiAJZ2NuX3N0YWNrX3NpemUgPSBhdG9p IChhcmd2W2ldICsgc3RybGVuIChTVFIpKTsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ2Nu L3Qtb21wLWRldmljZSBiL2djYy9jb25maWcvZ2NuL3Qtb21wLWRldmljZQppbmRleCBiMWNk OTk4YThiMS4uMjMxNWFkNTk0YTMgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvZ2NuL3Qtb21w LWRldmljZQorKysgYi9nY2MvY29uZmlnL2djbi90LW9tcC1kZXZpY2UKQEAgLTEsNCArMSw0 IEBACiBvbXAtZGV2aWNlLXByb3BlcnRpZXMtZ2NuOiAkKHNyY2RpcikvY29uZmlnL2djbi9n Y24uY2MKIAllY2hvIGtpbmQ6IGdwdSA+ICRACiAJZWNobyBhcmNoOiBhbWRnY24gZ2NuID4+ ICRACi0JZWNobyBpc2E6IGZpamkgZ2Z4ODAzIGdmeDkwMCBnZng5MDYgZ2Z4OTA4IGdmeDkw YSBnZngxMDMwID4+ICRACisJZWNobyBpc2E6IGZpamkgZ2Z4ODAzIGdmeDkwMCBnZng5MDYg Z2Z4OTA4IGdmeDkwYSBnZngxMDMwIGdmeDExMDAgPj4gJEAKZGlmZiAtLWdpdCBhL2xpYmdv bXAvcGx1Z2luL3BsdWdpbi1nY24uYyBiL2xpYmdvbXAvcGx1Z2luL3BsdWdpbi1nY24uYwpp bmRleCBiYzgxMzFhNmMyZC4uZTNlOGIzMWM1NTggMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvcGx1 Z2luL3BsdWdpbi1nY24uYworKysgYi9saWJnb21wL3BsdWdpbi9wbHVnaW4tZ2NuLmMKQEAg LTE2NDEsNyArMTY0MSw4IEBAIGNvbnN0IHN0YXRpYyBjaGFyICpnY25fZ2Z4OTA2X3MgPSAi Z2Z4OTA2IjsKIGNvbnN0IHN0YXRpYyBjaGFyICpnY25fZ2Z4OTA4X3MgPSAiZ2Z4OTA4IjsK IGNvbnN0IHN0YXRpYyBjaGFyICpnY25fZ2Z4OTBhX3MgPSAiZ2Z4OTBhIjsKIGNvbnN0IHN0 YXRpYyBjaGFyICpnY25fZ2Z4MTAzMF9zID0gImdmeDEwMzAiOwotY29uc3Qgc3RhdGljIGlu dCBnY25faXNhX25hbWVfbGVuID0gNjsKK2NvbnN0IHN0YXRpYyBjaGFyICpnY25fZ2Z4MTEw MF9zID0gImdmeDExMDAiOworY29uc3Qgc3RhdGljIGludCBnY25faXNhX25hbWVfbGVuID0g NzsKIAogLyogUmV0dXJucyB0aGUgbmFtZSB0aGF0IHRoZSBIU0EgcnVudGltZSB1c2VzIGZv ciB0aGUgSVNBIG9yIE5VTEwgaWYgd2UgZG8gbm90CiAgICBzdXBwb3J0IHRoZSBJU0EuICov CkBAIC0xNjYyLDYgKzE2NjMsOCBAQCBpc2FfaHNhX25hbWUgKGludCBpc2EpIHsKICAgICAg IHJldHVybiBnY25fZ2Z4OTBhX3M7CiAgICAgY2FzZSBFRl9BTURHUFVfTUFDSF9BTURHQ05f R0ZYMTAzMDoKICAgICAgIHJldHVybiBnY25fZ2Z4MTAzMF9zOworICAgIGNhc2UgRUZfQU1E R1BVX01BQ0hfQU1ER0NOX0dGWDExMDA6CisgICAgICByZXR1cm4gZ2NuX2dmeDExMDBfczsK ICAgICB9CiAgIHJldHVybiBOVUxMOwogfQpAQCAtMTcwNCw2ICsxNzA3LDkgQEAgaXNhX2Nv ZGUoY29uc3QgY2hhciAqaXNhKSB7CiAgIGlmICghc3RybmNtcCAoaXNhLCBnY25fZ2Z4MTAz MF9zLCBnY25faXNhX25hbWVfbGVuKSkKICAgICByZXR1cm4gRUZfQU1ER1BVX01BQ0hfQU1E R0NOX0dGWDEwMzA7CiAKKyAgaWYgKCFzdHJuY21wIChpc2EsIGdjbl9nZngxMTAwX3MsIGdj bl9pc2FfbmFtZV9sZW4pKQorICAgIHJldHVybiBFRl9BTURHUFVfTUFDSF9BTURHQ05fR0ZY MTEwMDsKKwogICByZXR1cm4gLTE7CiB9CiAKQEAgLTE3MTksNiArMTcyNSw3IEBAIG1heF9p c2FfdmdwcnMgKGludCBpc2EpCiAgICAgY2FzZSBFRl9BTURHUFVfTUFDSF9BTURHQ05fR0ZY OTA2OgogICAgIGNhc2UgRUZfQU1ER1BVX01BQ0hfQU1ER0NOX0dGWDkwODoKICAgICBjYXNl IEVGX0FNREdQVV9NQUNIX0FNREdDTl9HRlgxMDMwOgorICAgIGNhc2UgRUZfQU1ER1BVX01B Q0hfQU1ER0NOX0dGWDExMDA6CiAgICAgICByZXR1cm4gMjU2OwogICAgIGNhc2UgRUZfQU1E R1BVX01BQ0hfQU1ER0NOX0dGWDkwYToKICAgICAgIHJldHVybiA1MTI7Cg== --------------A1WhAssqawpZd0la03VuuBa9--