Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uIDsE-000UZo-Ld for pgsql-hackers@arkaria.postgresql.org; Thu, 22 May 2025 21:54:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uIDsD-009RAa-It for pgsql-hackers@arkaria.postgresql.org; Thu, 22 May 2025 21:54:45 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uIDsD-009RAR-5a for pgsql-hackers@lists.postgresql.org; Thu, 22 May 2025 21:54:45 +0000 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uIDsA-000PYs-1n for pgsql-hackers@lists.postgresql.org; Thu, 22 May 2025 21:54:44 +0000 Received: by mail-pl1-x642.google.com with SMTP id d9443c01a7336-22e033a3a07so84123195ad.0 for ; Thu, 22 May 2025 14:54:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747950880; x=1748555680; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ToHWDEFl/1LNXROryQzHAOW0yBzODSE7BH6iJYnp2B0=; b=G4HnhHyeoHLL03xTwVsAGwaeczq13vf3MDzWRwGU9cZKnt3ZFYbUj0TwNj9O++StJM OOvRmsfCYjQwWXMvVXqEwNpRXJhtTWm3nbb02lJI6ZOLDCMuMoTpUww6+3rcLj+6ccao sxSInKKrRUuipg2HpuX4Iz1YOMafm+2cxqW1bFaGYzjXMannYypKkDIwqzb1x6+0ohfq mAiav5Gf0yr3fyHGela17TX8nGZ8ePxOgCicIerrXT4aSkMeDil+v5MDY8RezyQuFlYI YKoHPvG9V0qadO4cDd03+uGoweTaVkWgPrdVyPTEEZAoOmQFSTcF9K9mDofeffFKjdTu o7xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747950880; x=1748555680; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ToHWDEFl/1LNXROryQzHAOW0yBzODSE7BH6iJYnp2B0=; b=UaT/KvuYRDeXbC1E9Pr7TqCirHRVsoFpQc6/PVw+LnJiXAYlNIOS/aaN6E9MS+sYww 0cqlsUMwyPo0Ld0v2waT0sIC+n9QuNm/nRCm3M4oNoYjf8x9TQYTtZh8jsbyHx5UsMmz XzbhLz0JYQxwF7mWQEue5jp809XzWCOWM6+M8c+Q5KN7MPv+nv355F2+9FmjA5kfCqJC QZ+SVJwgjaZqovTYk76IYLWANZSh/AYiItYtU1M0a4YoCgqpVGxtc+1JXE8ugk8YqPMv cWNf3/3iVmnoG4kQldDW4T0iNwhiKcvXPUDXf1zzOUiki3hBJpQLMUJpovlzxrwibPUy D8cQ== X-Forwarded-Encrypted: i=1; AJvYcCXUBkQPdh7zoqiaXMjxzu4bVpOTb+k1w7ziIwmc1BxjRMXrA5D08yoLrMT8TtYDz6JyVhZmrgh2ppq2dC20@lists.postgresql.org X-Gm-Message-State: AOJu0YyXJ9x6jElpNrsQ+mfeVUS3RztE4n0mXGFUpTry4cZJLAurPhgu j1P44cvXygFNEOowKb1wwFNJktURhs9blVV088mrmcZuSrlBTbLLcSvMT5VyJrv/16Je3+5gkT7 jd+gOW2nJfFd3hdVEblvwmOnREYEPMYo= X-Gm-Gg: ASbGnct9teFNjehM0xwMk94EjsTiPoc9UMIt8lBDecRv3A1VrhaaposlsdFIji+LJBn mKcFBBXsaO9YUseppW3j90WzVlQHfpDTZhN26qh1MAyodJF+x8FIGLMtxrK1kaJc7RYQ7rk4A69 Tk/06TNIBY5qZBy1dAXWyv+xnYls8w9bl5uw== X-Google-Smtp-Source: AGHT+IFl0NURfX8mDq96BhVmMAyOrwyxyk1GQuH3SCNAZZG9MsD0FrTcRyW4DKG0WyZkTnQnZdxao1ngE+8kiQuYOYM= X-Received: by 2002:a17:903:faf:b0:223:62f5:fd44 with SMTP id d9443c01a7336-231d459a467mr360848745ad.40.1747950880527; Thu, 22 May 2025 14:54:40 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Matthew Sterrett Date: Thu, 22 May 2025 14:54:28 -0700 X-Gm-Features: AX0GCFuaknsOTxY2I7_qvSEiOxaLFnwJHtsr8cZpYCHM8tV1xnkNpv6kWxq7xYM Message-ID: Subject: Re: Proposal for enabling auto-vectorization for checksum calculations To: Nazir Bilal Yavuz Cc: Stepan Neretin , pgsql-hackers@lists.postgresql.org, "Devulapalli, Raghuveer" , "Shankaran, Akash" Content-Type: multipart/mixed; boundary="00000000000051b9460635c087cb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000051b9460635c087cb Content-Type: text/plain; charset="UTF-8" > You can see the failure at the artifacts -> > 'log/tmp_install/log/install.log' file on the CI web page [1]. > > If you want to replicate that on your local: > > $ ./configure --with-llvm CLANG="ccache clang-16" > $ make -s -j8 world-bin > $ make -j8 check-world > > should be enough. I was able to replicate it with these commands. I > hope these help. Thanks so much for helping me figure this out! Okay, I've determined that versions of LLVM/Clang before 19 crash when compiling this patch for some reason; it seems that both make check-world and make install will crash with the affected LLVM versions. Unfortunately, what matters seems to be the version of the linker/LTO optimizer, which I don't think we can check at compile time. I added a check for Clang>=19 which works at preventing the crash on my system. I think it's possible some unusual combination of clang/LLVM might still crash during the build, but I think this is a reasonable solution --00000000000051b9460635c087cb Content-Type: application/octet-stream; name="v4-0005-Use-dummy-function-to-avoid-linker-error-move-dec.patch" Content-Disposition: attachment; filename="v4-0005-Use-dummy-function-to-avoid-linker-error-move-dec.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mazwmu1m4 RnJvbSBmN2IyOGM2Mzc4ZGI5Y2M5ODM3MWU4OWU4MzBhMmFlOGE1NzFlOWEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFN0ZXJyZXR0IDxtYXR0aGV3LnN0ZXJyZXR0QGlu dGVsLmNvbT4KRGF0ZTogTW9uLCAxOSBNYXkgMjAyNSAxMzoyMzo1NSAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggdjQgNS82XSBVc2UgZHVtbXkgZnVuY3Rpb24gdG8gYXZvaWQgbGlua2VyIGVycm9yLCBt b3ZlCiBkZWNsYXJhdGlvbnMKCi0tLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBs LmggfCAxOCArKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hl Y2tzdW1faW1wbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBsLmgKaW5kZXgg MDQyZWU4YWYxMjAuLjQwNzA2NDZlMjNlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdl L2NoZWNrc3VtX2ltcGwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwu aApAQCAtMTYzLDcgKzE2Myw3IEBAIHltbV9yZWdzX2F2YWlsYWJsZSh2b2lkKQogc3RhdGljIGlu bGluZSBib29sCiBhdngyX2F2YWlsYWJsZSh2b2lkKQogewotI2lmZGVmIFVTRV9BVlgyX1dJVEhf UlVOVElNRV9DSEVDSworI2lmIGRlZmluZWQgKFVTRV9BVlgyX1dJVEhfUlVOVElNRV9DSEVDSykg JiYgZGVmaW5lZChfX3g4Nl82NF9fKQogCXVuc2lnbmVkIGludCBleHhbNF0gPSB7MCwgMCwgMCwg MH07CiAJaWYgKCF4c2F2ZV9hdmFpbGFibGUoKSB8fCAheW1tX3JlZ3NfYXZhaWxhYmxlKCkpIHJl dHVybiBmYWxzZTsKIApAQCAtMjIwLDcgKzIyMCwyMCBAQCBkbyB7IFwKIHN0YXRpYyB1aW50MzIg XAogcGdfY2hlY2tzdW1fYmxvY2tfIyNJU0FOQU1FKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2Ug KnBhZ2UpOwogCisjZGVmaW5lIFBHX0RFRklORV9DSEVDS1NVTV9EVU1NWShJU0FOQU1FKSBcCitz dGF0aWMgdWludDMyIFwKK3BnX2NoZWNrc3VtX2Jsb2NrXyMjSVNBTkFNRShjb25zdCBQR0NoZWNr c3VtbWFibGVQYWdlICpwYWdlKTsgXAorcGdfYXR0cmlidXRlX3RhcmdldCgjSVNBTkFNRSkgXAor c3RhdGljIHVpbnQzMiBcCitwZ19jaGVja3N1bV9ibG9ja18jI0lTQU5BTUUoY29uc3QgUEdDaGVj a3N1bW1hYmxlUGFnZSAqcGFnZSkgXAoreyBcCisJQXNzZXJ0KGZhbHNlKTsgLyogVGhpcyBmdW5j dGlvbiBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkICovIFwKKwlyZXR1cm4gcGdfY2hlY2tzdW1fYmxv Y2tfZGVmYXVsdChwYWdlKTsgLyogSnVzdCBpbiBjYXNlIGl0IHNvbWVob3cgaXMgKi8gXAorfQor CiAjZGVmaW5lIFBHX0RFRklORV9DSEVDS1NVTV9JU0EoSVNBTkFNRSkgXAorc3RhdGljIHVpbnQz MiBcCitwZ19jaGVja3N1bV9ibG9ja18jI0lTQU5BTUUoY29uc3QgUEdDaGVja3N1bW1hYmxlUGFn ZSAqcGFnZSk7IFwKIHBnX2F0dHJpYnV0ZV90YXJnZXQoI0lTQU5BTUUpIFwKIHN0YXRpYyB1aW50 MzIgXAogcGdfY2hlY2tzdW1fYmxvY2tfIyNJU0FOQU1FKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBh Z2UgKnBhZ2UpIFwKQEAgLTI1NCwxMCArMjY3LDExIEBAIHBnX2NoZWNrc3VtX2Jsb2NrXyMjSVNB TkFNRShjb25zdCBQR0NoZWNrc3VtbWFibGVQYWdlICpwYWdlKSBcCiAJcmV0dXJuIHJlc3VsdDsg XAogfQogCi0vKiBEZWNsYXJhdGlvbnMgYXJlIGFsd2F5cyBkZWZpbmVkIHRvIG1ha2UgZHluYW1p YyBkaXNwYXRjaCBjb2RlIHNpbXBsZXIgKi8KIFBHX0RFRklORV9DSEVDS1NVTV9JU0EoZGVmYXVs dCk7CiAjaWZkZWYgVVNFX0FWWDJfV0lUSF9SVU5USU1FX0NIRUNLCiBQR19ERUZJTkVfQ0hFQ0tT VU1fSVNBKGF2eDIpOworI2Vsc2UKK1BHX0RFRklORV9DSEVDS1NVTV9EVU1NWShhdngyKTsKICNl bmRpZgogCiBzdGF0aWMgdWludDMyCi0tIAoyLjQzLjAKCg== --00000000000051b9460635c087cb Content-Type: application/octet-stream; name="v4-0004-fix-bench-compiling.patch" Content-Disposition: attachment; filename="v4-0004-fix-bench-compiling.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mazwmu1j3 RnJvbSA3ODg3M2FlYzQ4ODY3OGFjY2JlZDFjNGQxZmM3Y2UxNWQxMmRmMzAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwYW4gTmVyZXRpbiA8c2xwbWNmQGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAxMCBNYXkgMjAyNSAxNzo1Nzo0NyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggdjQgNC82 XSBmaXggYmVuY2ggY29tcGlsaW5nCgotLS0KIGNvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdf Y2hlY2tzdW1fYmVuY2guYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5j IGIvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5jCmluZGV4IGY0 MGYzMzVmZjU5Li4wMjk2ZGNmZDI1OSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19jaGVja3N1bV9i ZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5jCisrKyBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gv cGdfY2hlY2tzdW1fYmVuY2guYwpAQCAtMSw1ICsxLDYgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5o IgogI2luY2x1ZGUgImZtZ3IuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2NoZWNrc3VtLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9jaGVja3N1bV9pbXBsLmgiCiAKICNpbmNsdWRlIDxzdGRpby5oPgotLSAK Mi40My4wCgo= --00000000000051b9460635c087cb Content-Type: application/octet-stream; name="v4-0002-Fix-compilation-on-systems-where-immintrin.h-is-n.patch" Content-Disposition: attachment; filename="v4-0002-Fix-compilation-on-systems-where-immintrin.h-is-n.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mazwmu1e1 RnJvbSAzMGQ5MTY1NDY4NjBkM2QxOWY4ZDkxYTBhYjRiYzk5ZjljMzUwYWFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwYW4gTmVyZXRpbiA8c2xwbWNmQGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAxMCBNYXkgMjAyNSAxNjozNzoxMyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggdjQgMi82 XSBGaXggY29tcGlsYXRpb24gb24gc3lzdGVtcyB3aGVyZSA8aW1taW50cmluLmg+IGlzIG5vdAog YXZhaWxhYmxlIG9yIGluYXBwcm9wcmlhdGUsIHN1Y2ggYXMgb2xkZXIgR0NDIHZlcnNpb25zIG9y IG5vbi14ODYgcGxhdGZvcm1zLgoKLS0tCiBzcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2lt cGwuaCB8IDYgKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1faW1wbC5o IGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBsLmgKaW5kZXggNWVhMWY2OThiNTcu LjA0MmVlOGFmMTIwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2lt cGwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwuaApAQCAtMTEyLDcg KzExMiw5IEBACiAjaW5jbHVkZSA8Y3B1aWQuaD4KICNlbmRpZgogCisjaWZkZWYgSEFWRV9YU0FW RV9JTlRSSU5TSUNTCiAjaW5jbHVkZSA8aW1taW50cmluLmg+CisjZW5kaWYKIAogI2lmIGRlZmlu ZWQoSEFWRV9fQ1BVSUQpIHx8IGRlZmluZWQoSEFWRV9fQ1BVSURFWCkKICNpbmNsdWRlIDxpbnRy aW4uaD4KQEAgLTI1MywxMCArMjU1LDYgQEAgcGdfY2hlY2tzdW1fYmxvY2tfIyNJU0FOQU1FKGNv bnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2UgKnBhZ2UpIFwKIH0KIAogLyogRGVjbGFyYXRpb25zIGFy ZSBhbHdheXMgZGVmaW5lZCB0byBtYWtlIGR5bmFtaWMgZGlzcGF0Y2ggY29kZSBzaW1wbGVyICov Ci0KLVBHX0RFQ0xBUkVfQ0hFQ0tTVU1fSVNBKGRlZmF1bHQpOwotUEdfREVDTEFSRV9DSEVDS1NV TV9JU0EoYXZ4Mik7Ci0KIFBHX0RFRklORV9DSEVDS1NVTV9JU0EoZGVmYXVsdCk7CiAjaWZkZWYg VVNFX0FWWDJfV0lUSF9SVU5USU1FX0NIRUNLCiBQR19ERUZJTkVfQ0hFQ0tTVU1fSVNBKGF2eDIp OwotLSAKMi40My4wCgo= --00000000000051b9460635c087cb Content-Type: application/octet-stream; name="v4-0001-Enable-autovectorizing-pg_checksum_block.patch" Content-Disposition: attachment; filename="v4-0001-Enable-autovectorizing-pg_checksum_block.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mazwmu080 RnJvbSA1ODEyMmViZTFiYmViYzcwZGE5MGM3ZWMzZTc3ZjNjM2Q1MjRhYTg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFN0ZXJyZXR0IDxtYXR0aGV3LnN0ZXJyZXR0QGlu dGVsLmNvbT4KRGF0ZTogRnJpLCA3IE1hciAyMDI1IDExOjMzOjQ1IC0wODAwClN1YmplY3Q6IFtQ QVRDSCB2NCAxLzZdIEVuYWJsZSBhdXRvdmVjdG9yaXppbmcgcGdfY2hlY2tzdW1fYmxvY2sKCi0t LQogY29uZmlnL2MtY29tcGlsZXIubTQgICAgICAgICAgICAgICAgfCAgMzEgKysrKysrCiBjb25m aWd1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1MiArKysrKysrKysrCiBjb25maWd1 cmUuYWMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArKwogbWVzb24uYnVpbGQgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMjggKysrKysrCiBzcmMvaW5jbHVkZS9wZ19jb25maWcuaC5p biAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwuaCB8 IDE1MCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDI1MCBp bnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb25maWcvYy1jb21w aWxlci5tNCBiL2NvbmZpZy9jLWNvbXBpbGVyLm00CmluZGV4IDVmM2UxZDFmYWY5Li40ZDViY2Vh ZmU5ZSAxMDA2NDQKLS0tIGEvY29uZmlnL2MtY29tcGlsZXIubTQKKysrIGIvY29uZmlnL2MtY29t cGlsZXIubTQKQEAgLTcxMCw2ICs3MTAsMzcgQEAgZmkKIHVuZGVmaW5lKFtBY19jYWNoZXZhcl0p ZG5sCiBdKSMgUEdBQ19YU0FWRV9JTlRSSU5TSUNTCiAKKyMgUEdBQ19BVlgyX1NVUFBPUlQKKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgaWYgdGhlIGNvbXBpbGVyIHN1 cHBvcnRzIEFWWDIgaW4gYXR0cmlidXRlKCh0YXJnZXQpKQorIyBhbmQgdXNpbmcgQVZYMiBpbnRy aW5zaWNzIGluIHRob3NlIGZ1bmN0aW9ucworIworIyBJZiB0aGUgaW50cmluc2ljcyBhcmUgc3Vw cG9ydGVkLCBzZXRzIHBnYWNfYXZ4Ml9zdXBwb3J0LgorQUNfREVGVU4oW1BHQUNfQVZYMl9TVVBQ T1JUXSwKK1tkZWZpbmUoW0FjX2NhY2hldmFyXSwgW0FTX1RSX1NIKFtwZ2FjX2N2X2F2eDJfc3Vw cG9ydF0pXSlkbmwKK0FDX0NBQ0hFX0NIRUNLKFtmb3IgQVZYMiBzdXBwb3J0XSwgW0FjX2NhY2hl dmFyXSwKK1tBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFsjaW5jbHVkZSA8aW1taW50 cmluLmg+CisgICAgI2luY2x1ZGUgPHN0ZGludC5oPgorICAgICNpZiBkZWZpbmVkKF9faGFzX2F0 dHJpYnV0ZSkgJiYgX19oYXNfYXR0cmlidXRlICh0YXJnZXQpCisgICAgX19hdHRyaWJ1dGVfXygo dGFyZ2V0KCJhdngyIikpKQorICAgICNlbmRpZgorICAgIHN0YXRpYyBpbnQgYXZ4Ml90ZXN0KHZv aWQpCisgICAgeworICAgICAgY29uc3QgY2hhciBidWZAPDpAc2l6ZW9mKF9fbTI1NmkpQDo+QDsK KyAgICAgIF9fbTI1NmkgYWNjdW0gPSBfbW0yNTZfbG9hZHVfc2kyNTYoKGNvbnN0IF9fbTI1Nmkg KikgYnVmKTsKKwkgIGFjY3VtID0gX21tMjU2X2FkZF9lcGkzMihhY2N1bSwgYWNjdW0pOworICAg ICAgaW50IHJlc3VsdCA9IF9tbTI1Nl9leHRyYWN0X2VwaTMyKGFjY3VtLCAwKTsKKyAgICAgIHJl dHVybiAoaW50KSByZXN1bHQ7CisgICAgfV0sCisgIFtyZXR1cm4gYXZ4Ml90ZXN0KCk7XSldLAor ICBbQWNfY2FjaGV2YXI9eWVzXSwKKyAgW0FjX2NhY2hldmFyPW5vXSldKQoraWYgdGVzdCB4IiRB Y19jYWNoZXZhciIgPSB4InllcyI7IHRoZW4KKyAgcGdhY19hdngyX3N1cHBvcnQ9eWVzCitmaQor dW5kZWZpbmUoW0FjX2NhY2hldmFyXSlkbmwKK10pIyBQR0FDX0FWWDJfU1VQUE9SVAorCiAjIFBH QUNfQVZYNTEyX1BPUENOVF9JTlRSSU5TSUNTCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAjIENoZWNrIGlmIHRoZSBjb21waWxlciBzdXBwb3J0cyB0aGUgQVZYLTUxMiBwb3Bjb3Vu dCBpbnN0cnVjdGlvbnMgdXNpbmcgdGhlCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1 cmUKaW5kZXggNGYxNTM0N2NjOTUuLjBiMzI4ZGMyMmRiIDEwMDc1NQotLS0gYS9jb25maWd1cmUK KysrIGIvY29uZmlndXJlCkBAIC0xNzcyNCw2ICsxNzcyNCw1OCBAQCAkYXNfZWNobyAiI2RlZmlu ZSBIQVZFX1hTQVZFX0lOVFJJTlNJQ1MgMSIgPj5jb25mZGVmcy5oCiAKIGZpCiAKKyMgQ2hlY2sg Zm9yIEFWWDIgdGFyZ2V0IGFuZCBpbnRyaW5zaWMgc3VwcG9ydAorIworaWYgdGVzdCB4IiRob3N0 X2NwdSIgPSB4Ing4Nl82NCI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBmb3IgQVZYMiBzdXBwb3J0IiA+JjUKKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBBVlgyIHN1cHBvcnQuLi4gIiA+JjY7IH0KK2lmICR7cGdhY19jdl9hdngyX3N1 cHBvcnQrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxz ZQorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQg Y29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8aW1taW50cmluLmg+CisgICAgI2luY2x1ZGUgPHN0 ZGludC5oPgorICAgICNpZiBkZWZpbmVkKF9faGFzX2F0dHJpYnV0ZSkgJiYgX19oYXNfYXR0cmli dXRlICh0YXJnZXQpCisgICAgX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJhdngyIikpKQorICAgICNl bmRpZgorICAgIHN0YXRpYyBpbnQgYXZ4Ml90ZXN0KHZvaWQpCisgICAgeworICAgICAgY29uc3Qg Y2hhciBidWZbc2l6ZW9mKF9fbTI1NmkpXTsKKyAgICAgIF9fbTI1NmkgYWNjdW0gPSBfbW0yNTZf bG9hZHVfc2kyNTYoKGNvbnN0IF9fbTI1NmkgKikgYnVmKTsKKwkgIGFjY3VtID0gX21tMjU2X2Fk ZF9lcGkzMihhY2N1bSwgYWNjdW0pOworICAgICAgaW50IHJlc3VsdCA9IF9tbTI1Nl9leHRyYWN0 X2VwaTMyKGFjY3VtLCAwKTsKKyAgICAgIHJldHVybiAoaW50KSByZXN1bHQ7CisgICAgfQoraW50 CittYWluICgpCit7CityZXR1cm4gYXZ4Ml90ZXN0KCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9Citf QUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKyAgcGdhY19jdl9h dngyX3N1cHBvcnQ9eWVzCitlbHNlCisgIHBnYWNfY3ZfYXZ4Ml9zdXBwb3J0PW5vCitmaQorcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgY29uZnRlc3Qk YWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJHBnYWNfY3ZfYXZ4Ml9zdXBwb3J0IiA+JjUKKyRhc19l Y2hvICIkcGdhY19jdl9hdngyX3N1cHBvcnQiID4mNjsgfQoraWYgdGVzdCB4IiRwZ2FjX2N2X2F2 eDJfc3VwcG9ydCIgPSB4InllcyI7IHRoZW4KKyAgcGdhY19hdngyX3N1cHBvcnQ9eWVzCitmaQor CisgIGlmIHRlc3QgeCIkcGdhY19hdngyX3N1cHBvcnQiID0geCJ5ZXMiOyB0aGVuCisKKyRhc19l Y2hvICIjZGVmaW5lIFVTRV9BVlgyX1dJVEhfUlVOVElNRV9DSEVDSyAxIiA+PmNvbmZkZWZzLmgK KworICBmaQorZmkKKwogIyBDaGVjayBmb3IgQVZYLTUxMiBwb3Bjb3VudCBpbnRyaW5zaWNzCiAj CiBpZiB0ZXN0IHgiJGhvc3RfY3B1IiA9IHgieDg2XzY0IjsgdGhlbgpkaWZmIC0tZ2l0IGEvY29u ZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDRiODMzNWRjNjEzLi5iOTgwNDI5MjgyZiAx MDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMjA4OSw2ICsy MDg5LDE1IEBAIGlmIHRlc3QgeCIkcGdhY194c2F2ZV9pbnRyaW5zaWNzIiA9IHgieWVzIjsgdGhl bgogICBBQ19ERUZJTkUoSEFWRV9YU0FWRV9JTlRSSU5TSUNTLCAxLCBbRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgWFNBVkUgaW50cmluc2ljcy5dKQogZmkKIAorIyBDaGVjayBmb3IgQVZYMiB0YXJn ZXQgYW5kIGludHJpbnNpYyBzdXBwb3J0CisjCitpZiB0ZXN0IHgiJGhvc3RfY3B1IiA9IHgieDg2 XzY0IjsgdGhlbgorICBQR0FDX0FWWDJfU1VQUE9SVCgpCisgIGlmIHRlc3QgeCIkcGdhY19hdngy X3N1cHBvcnQiID0geCJ5ZXMiOyB0aGVuCisgICAgQUNfREVGSU5FKFVTRV9BVlgyX1dJVEhfUlVO VElNRV9DSEVDSywgMSwgW0RlZmluZSB0byAxIHRvIHVzZSBBVlgyIGluc3RydWN0aW9ucyB3aXRo IGEgcnVudGltZSBjaGVjay5dKQorICBmaQorZmkKKwogIyBDaGVjayBmb3IgQVZYLTUxMiBwb3Bj b3VudCBpbnRyaW5zaWNzCiAjCiBpZiB0ZXN0IHgiJGhvc3RfY3B1IiA9IHgieDg2XzY0IjsgdGhl bgpkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAppbmRleCBkMTQyZTNlNDA4 Yi4uZTBhYjFmOWNmMmYgMTAwNjQ0Ci0tLSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1aWxk CkBAIC0yMzAxLDYgKzIzMDEsMzQgQEAgaW50IG1haW4odm9pZCkKIAogZW5kaWYKIAorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIENoZWNrIGZvciB0aGUgYXZhaWxhYmlsaXR5IG9mIEFWWDIgc3VwcG9ydAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK K2lmIGhvc3RfY3B1ID09ICd4ODZfNjQnCisKKyAgcHJvZyA9ICcnJworI2luY2x1ZGUgPGltbWlu dHJpbi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2lmIGRlZmluZWQoX19oYXNfYXR0cmlidXRl KSAmJiBfX2hhc19hdHRyaWJ1dGUgKHRhcmdldCkKK19fYXR0cmlidXRlX18oKHRhcmdldCgiYXZ4 MiIpKSkKKyNlbmRpZgoraW50IG1haW4odm9pZCkKK3sKKyAgY29uc3QgY2hhciBidWZbc2l6ZW9m KF9fbTI1NmkpXTsKKyAgX19tMjU2aSBhY2N1bSA9IF9tbTI1Nl9sb2FkdV9zaTI1NigoY29uc3Qg X19tMjU2aSAqKSBidWYpOworICBhY2N1bSA9IF9tbTI1Nl9hZGRfZXBpMzIoYWNjdW0sIGFjY3Vt KTsKKyAgaW50IHJlc3VsdCA9IF9tbTI1Nl9leHRyYWN0X2VwaTMyKGFjY3VtLCAwKTsKKyAgcmV0 dXJuIChpbnQpIHJlc3VsdDsKK30KKycnJworCisgIGlmIGNjLmxpbmtzKHByb2csIG5hbWU6ICdB VlgyIHN1cHBvcnQnLCBhcmdzOiB0ZXN0X2NfYXJncykKKyAgICBjZGF0YS5zZXQoJ1VTRV9BVlgy X1dJVEhfUlVOVElNRV9DSEVDSycsIDEpCisgIGVuZGlmCisKK2VuZGlmCisKIAogIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAj IENoZWNrIGZvciB0aGUgYXZhaWxhYmlsaXR5IG9mIEFWWC01MTIgcG9wY291bnQgaW50cmluc2lj cy4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluIGIvc3JjL2luY2x1ZGUv cGdfY29uZmlnLmguaW4KaW5kZXggNzI2YTdjMWJlMWYuLjM0ZmEzOThlZThjIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgorKysgYi9zcmMvaW5jbHVkZS9wZ19jb25maWcu aC5pbgpAQCAtNjcyLDYgKzY3Miw5IEBACiAvKiBEZWZpbmUgdG8gMSB0byB1c2UgQVZYLTUxMiBD UkMgYWxnb3JpdGhtcyB3aXRoIGEgcnVudGltZSBjaGVjay4gKi8KICN1bmRlZiBVU0VfQVZYNTEy X0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0sKIAorLyogRGVmaW5lIHRvIDEgdG8gdXNlIEFWWDIg aW5zdHJ1Y3Rpb25zIHdpdGggYSBydW50aW1lIGNoZWNrLiAqLworI3VuZGVmIFVTRV9BVlgyX1dJ VEhfUlVOVElNRV9DSEVDSworCiAvKiBEZWZpbmUgdG8gMSB0byB1c2UgQVZYLTUxMiBwb3Bjb3Vu dCBpbnN0cnVjdGlvbnMgd2l0aCBhIHJ1bnRpbWUgY2hlY2suICovCiAjdW5kZWYgVVNFX0FWWDUx Ml9QT1BDTlRfV0lUSF9SVU5USU1FX0NIRUNLCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0 b3JhZ2UvY2hlY2tzdW1faW1wbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBs LmgKaW5kZXggZGE4N2Q2MWJhNTIuLjVlYTFmNjk4YjU3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNr c3VtX2ltcGwuaApAQCAtMTAxLDEyICsxMDEsODMgQEAKICAqLwogCiAjaW5jbHVkZSAic3RvcmFn ZS9idWZwYWdlLmgiCisjaW5jbHVkZSAicGdfY29uZmlnLmgiCiAKIC8qIG51bWJlciBvZiBjaGVj a3N1bXMgdG8gY2FsY3VsYXRlIGluIHBhcmFsbGVsICovCiAjZGVmaW5lIE5fU1VNUyAzMgogLyog cHJpbWUgbXVsdGlwbGllciBvZiBGTlYtMWEgaGFzaCAqLwogI2RlZmluZSBGTlZfUFJJTUUgMTY3 Nzc2MTkKIAorI2lmIGRlZmluZWQoSEFWRV9fR0VUX0NQVUlEKSB8fCBkZWZpbmVkKEhBVkVfX0dF VF9DUFVJRF9DT1VOVCkKKyNpbmNsdWRlIDxjcHVpZC5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxp bW1pbnRyaW4uaD4KKworI2lmIGRlZmluZWQoSEFWRV9fQ1BVSUQpIHx8IGRlZmluZWQoSEFWRV9f Q1BVSURFWCkKKyNpbmNsdWRlIDxpbnRyaW4uaD4KKyNlbmRpZgorCisvKgorICogRG9lcyBDUFVJ RCBzYXkgdGhlcmUncyBzdXBwb3J0IGZvciBYU0FWRSBpbnN0cnVjdGlvbnM/CisgKi8KK3N0YXRp YyBpbmxpbmUgYm9vbAoreHNhdmVfYXZhaWxhYmxlKHZvaWQpCit7CisJdW5zaWduZWQgaW50IGV4 eFs0XSA9IHswLCAwLCAwLCAwfTsKKworI2lmIGRlZmluZWQoSEFWRV9fR0VUX0NQVUlEKQorCV9f Z2V0X2NwdWlkKDEsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0sICZleHhbM10pOworI2VsaWYg ZGVmaW5lZChIQVZFX19DUFVJRCkKKwlfX2NwdWlkKGV4eCwgMSk7CisjZWxzZQorI2Vycm9yIGNw dWlkIGluc3RydWN0aW9uIG5vdCBhdmFpbGFibGUKKyNlbmRpZgorCXJldHVybiAoZXh4WzJdICYg KDEgPDwgMjcpKSAhPSAwOwkvKiBvc3hzYXZlICovCit9CisKKy8qCisgKiBEb2VzIFhHRVRCViBz YXkgdGhlIFlNTSByZWdpc3RlcnMgYXJlIGVuYWJsZWQ/CisgKgorICogTkI6IENhbGxlciBpcyBy ZXNwb25zaWJsZSBmb3IgdmVyaWZ5aW5nIHRoYXQgeHNhdmVfYXZhaWxhYmxlKCkgcmV0dXJucyB0 cnVlCisgKiBiZWZvcmUgY2FsbGluZyB0aGlzLgorICovCisjaWZkZWYgSEFWRV9YU0FWRV9JTlRS SU5TSUNTCitwZ19hdHRyaWJ1dGVfdGFyZ2V0KCJ4c2F2ZSIpCisjZW5kaWYKK3N0YXRpYyBpbmxp bmUgYm9vbAoreW1tX3JlZ3NfYXZhaWxhYmxlKHZvaWQpCit7CisjaWZkZWYgSEFWRV9YU0FWRV9J TlRSSU5TSUNTCisJcmV0dXJuIChfeGdldGJ2KDApICYgMHgwNikgPT0gMHgwNjsKKyNlbHNlCisJ cmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKy8qCisgKiBEb2VzIENQVUlEIHNheSB0aGVyZSdz IHN1cHBvcnQgZm9yIEFWWC0yCisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbAorYXZ4Ml9hdmFpbGFi bGUodm9pZCkKK3sKKyNpZmRlZiBVU0VfQVZYMl9XSVRIX1JVTlRJTUVfQ0hFQ0sKKwl1bnNpZ25l ZCBpbnQgZXh4WzRdID0gezAsIDAsIDAsIDB9OworCWlmICgheHNhdmVfYXZhaWxhYmxlKCkgfHwg IXltbV9yZWdzX2F2YWlsYWJsZSgpKSByZXR1cm4gZmFsc2U7CisKKyNpZiBkZWZpbmVkKEhBVkVf X0dFVF9DUFVJRF9DT1VOVCkKKwlfX2dldF9jcHVpZF9jb3VudCg3LCAwLCAmZXh4WzBdLCAmZXh4 WzFdLCAmZXh4WzJdLCAmZXh4WzNdKTsKKyNlbGlmIGRlZmluZWQoSEFWRV9fQ1BVSURFWCkKKwlf X2NwdWlkZXgoZXh4LCA3LCAwKTsKKyNlbHNlCisjZXJyb3IgY3B1aWQgaW5zdHJ1Y3Rpb24gbm90 IGF2YWlsYWJsZQorI2VuZGlmCisJcmV0dXJuIChleHhbMV0gJiAoMSA8PCA1KSkgIT0gMDsgLyog YXZ4MiAqLworI2Vsc2UKKwlyZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogLyogVXNlIGEgdW5p b24gc28gdGhhdCB0aGlzIGNvZGUgaXMgdmFsaWQgdW5kZXIgc3RyaWN0IGFsaWFzaW5nICovCiB0 eXBlZGVmIHVuaW9uCiB7CkBAIC0xNDIsMzUgKzIxMyw2OCBAQCBkbyB7IFwKICAqIEJsb2NrIGNo ZWNrc3VtIGFsZ29yaXRobS4gIFRoZSBwYWdlIG11c3QgYmUgYWRlcXVhdGVseSBhbGlnbmVkCiAg KiAoYXQgbGVhc3Qgb24gNC1ieXRlIGJvdW5kYXJ5KS4KICAqLwotc3RhdGljIHVpbnQzMgotcGdf Y2hlY2tzdW1fYmxvY2soY29uc3QgUEdDaGVja3N1bW1hYmxlUGFnZSAqcGFnZSkKLXsKLQl1aW50 MzIJCXN1bXNbTl9TVU1TXTsKLQl1aW50MzIJCXJlc3VsdCA9IDA7Ci0JdWludDMyCQlpLAotCQkJ CWo7CisgCisjZGVmaW5lIFBHX0RFQ0xBUkVfQ0hFQ0tTVU1fSVNBKElTQU5BTUUpIFwKK3N0YXRp YyB1aW50MzIgXAorcGdfY2hlY2tzdW1fYmxvY2tfIyNJU0FOQU1FKGNvbnN0IFBHQ2hlY2tzdW1t YWJsZVBhZ2UgKnBhZ2UpOworCisjZGVmaW5lIFBHX0RFRklORV9DSEVDS1NVTV9JU0EoSVNBTkFN RSkgXAorcGdfYXR0cmlidXRlX3RhcmdldCgjSVNBTkFNRSkgXAorc3RhdGljIHVpbnQzMiBcCitw Z19jaGVja3N1bV9ibG9ja18jI0lTQU5BTUUoY29uc3QgUEdDaGVja3N1bW1hYmxlUGFnZSAqcGFn ZSkgXAoreyBcCisJdWludDMyCQlzdW1zW05fU1VNU107IFwKKwl1aW50MzIJCXJlc3VsdCA9IDA7 IFwKKwl1aW50MzIJCWksIFwKKwkJCQlqOyBcCisgXAorCS8qIGVuc3VyZSB0aGF0IHRoZSBzaXpl IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgYWxnb3JpdGhtICovIFwKKwlBc3NlcnQoc2l6ZW9mKFBH Q2hlY2tzdW1tYWJsZVBhZ2UpID09IEJMQ0tTWik7IFwKKyBcCisJLyogaW5pdGlhbGl6ZSBwYXJ0 aWFsIGNoZWNrc3VtcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIG9mZnNldHMgKi8gXAorCW1lbWNw eShzdW1zLCBjaGVja3N1bUJhc2VPZmZzZXRzLCBzaXplb2YoY2hlY2tzdW1CYXNlT2Zmc2V0cykp OyBcCisgXAorCS8qIG1haW4gY2hlY2tzdW0gY2FsY3VsYXRpb24gKi8gXAorCS8qIHRoaXMgaXMg dGhlIG1haW4gcGxhY2UgdGhhdCBhdXRvdmVjdG9yaXphdGlvbiBvY2N1cnMgKi8gXAorCWZvciAo aSA9IDA7IGkgPCAodWludDMyKSAoQkxDS1NaIC8gKHNpemVvZih1aW50MzIpICogTl9TVU1TKSk7 IGkrKykgXAorCQlmb3IgKGogPSAwOyBqIDwgTl9TVU1TOyBqKyspIFwKKwkJCUNIRUNLU1VNX0NP TVAoc3Vtc1tqXSwgcGFnZS0+ZGF0YVtpXVtqXSk7IFwKKyBcCisJLyogZmluYWxseSBhZGQgaW4g dHdvIHJvdW5kcyBvZiB6ZXJvZXMgZm9yIGFkZGl0aW9uYWwgbWl4aW5nICovIFwKKwlmb3IgKGkg PSAwOyBpIDwgMjsgaSsrKSBcCisJCWZvciAoaiA9IDA7IGogPCBOX1NVTVM7IGorKykgXAorCQkJ Q0hFQ0tTVU1fQ09NUChzdW1zW2pdLCAwKTsgXAorIFwKKwkvKiB4b3IgZm9sZCBwYXJ0aWFsIGNo ZWNrc3VtcyB0b2dldGhlciAqLyBcCisJZm9yIChpID0gMDsgaSA8IE5fU1VNUzsgaSsrKSBcCisJ CXJlc3VsdCBePSBzdW1zW2ldOyBcCisgXAorCXJldHVybiByZXN1bHQ7IFwKK30KIAotCS8qIGVu c3VyZSB0aGF0IHRoZSBzaXplIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgYWxnb3JpdGhtICovCi0J QXNzZXJ0KHNpemVvZihQR0NoZWNrc3VtbWFibGVQYWdlKSA9PSBCTENLU1opOworLyogRGVjbGFy YXRpb25zIGFyZSBhbHdheXMgZGVmaW5lZCB0byBtYWtlIGR5bmFtaWMgZGlzcGF0Y2ggY29kZSBz aW1wbGVyICovCiAKLQkvKiBpbml0aWFsaXplIHBhcnRpYWwgY2hlY2tzdW1zIHRvIHRoZWlyIGNv cnJlc3BvbmRpbmcgb2Zmc2V0cyAqLwotCW1lbWNweShzdW1zLCBjaGVja3N1bUJhc2VPZmZzZXRz LCBzaXplb2YoY2hlY2tzdW1CYXNlT2Zmc2V0cykpOworUEdfREVDTEFSRV9DSEVDS1NVTV9JU0Eo ZGVmYXVsdCk7CitQR19ERUNMQVJFX0NIRUNLU1VNX0lTQShhdngyKTsKIAotCS8qIG1haW4gY2hl Y2tzdW0gY2FsY3VsYXRpb24gKi8KLQlmb3IgKGkgPSAwOyBpIDwgKHVpbnQzMikgKEJMQ0tTWiAv IChzaXplb2YodWludDMyKSAqIE5fU1VNUykpOyBpKyspCi0JCWZvciAoaiA9IDA7IGogPCBOX1NV TVM7IGorKykKLQkJCUNIRUNLU1VNX0NPTVAoc3Vtc1tqXSwgcGFnZS0+ZGF0YVtpXVtqXSk7CitQ R19ERUZJTkVfQ0hFQ0tTVU1fSVNBKGRlZmF1bHQpOworI2lmZGVmIFVTRV9BVlgyX1dJVEhfUlVO VElNRV9DSEVDSworUEdfREVGSU5FX0NIRUNLU1VNX0lTQShhdngyKTsKKyNlbmRpZgogCi0JLyog ZmluYWxseSBhZGQgaW4gdHdvIHJvdW5kcyBvZiB6ZXJvZXMgZm9yIGFkZGl0aW9uYWwgbWl4aW5n ICovCi0JZm9yIChpID0gMDsgaSA8IDI7IGkrKykKLQkJZm9yIChqID0gMDsgaiA8IE5fU1VNUzsg aisrKQotCQkJQ0hFQ0tTVU1fQ09NUChzdW1zW2pdLCAwKTsKK3N0YXRpYyB1aW50MzIKK3BnX2No ZWNrc3VtX2Jsb2NrX2Rpc3BhdGNoKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2UgKnBhZ2UpOwog Ci0JLyogeG9yIGZvbGQgcGFydGlhbCBjaGVja3N1bXMgdG9nZXRoZXIgKi8KLQlmb3IgKGkgPSAw OyBpIDwgTl9TVU1TOyBpKyspCi0JCXJlc3VsdCBePSBzdW1zW2ldOworc3RhdGljIHVpbnQzMiAo KnBnX2NoZWNrc3VtX2Jsb2NrKShjb25zdCBQR0NoZWNrc3VtbWFibGVQYWdlICpwYWdlKSA9IHBn X2NoZWNrc3VtX2Jsb2NrX2Rpc3BhdGNoOwogCi0JcmV0dXJuIHJlc3VsdDsKK3N0YXRpYyB1aW50 MzIKK3BnX2NoZWNrc3VtX2Jsb2NrX2Rpc3BhdGNoKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2Ug KnBhZ2UpeworCWlmIChhdngyX2F2YWlsYWJsZSgpKXsKKwkJcGdfY2hlY2tzdW1fYmxvY2sgPSBw Z19jaGVja3N1bV9ibG9ja19hdngyOworCX1lbHNleworCQlwZ19jaGVja3N1bV9ibG9jayA9IHBn X2NoZWNrc3VtX2Jsb2NrX2RlZmF1bHQ7CisJfQorCXJldHVybiBwZ19jaGVja3N1bV9ibG9jayhw YWdlKTsKIH0KIAogLyoKLS0gCjIuNDMuMAoK --00000000000051b9460635c087cb Content-Type: application/octet-stream; name="v4-0003-Benchmark-code-for-postgres-checksums.patch" Content-Disposition: attachment; filename="v4-0003-Benchmark-code-for-postgres-checksums.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mazwmu1g2 RnJvbSBjZDZkYzUxN2I4OTdmYWYzZDk2MGZhZmU4ZWE2YjJjZjliYmMyZTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFN0ZXJyZXR0IDxtYXR0aGV3LnN0ZXJyZXR0QGlu dGVsLmNvbT4KRGF0ZTogRnJpLCA3IE1hciAyMDI1IDExOjMzOjI3IC0wODAwClN1YmplY3Q6IFtQ QVRDSCB2NCAzLzZdIEJlbmNobWFyayBjb2RlIGZvciBwb3N0Z3JlcyBjaGVja3N1bXMKCi0tLQog Y29udHJpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogY29u dHJpYi9wZ19jaGVja3N1bV9iZW5jaC9tZXNvbi5idWlsZCAgICAgICAgIHwgMjMgKysrKysrKysr KysrKwogLi4uL3BnX2NoZWNrc3VtX2JlbmNoLS0xLjAuc3FsICAgICAgICAgICAgICAgIHwgIDgg KysrKysKIGNvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tzdW1fYmVuY2guYyB8IDM0 ICsrKysrKysrKysrKysrKysrKysKIC4uLi9wZ19jaGVja3N1bV9iZW5jaC5jb250cm9sICAgICAg ICAgICAgICAgICB8ICA0ICsrKwogLi4uL3NxbC9wZ19jaGVja3N1bV9iZW5jaC5zcWwgICAgICAg ICAgICAgICAgIHwgMTcgKysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9tZXNvbi5i dWlsZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hl Y2tzdW1fYmVuY2gtLTEuMC5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3BnX2NoZWNr c3VtX2JlbmNoL3BnX2NoZWNrc3VtX2JlbmNoLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmli L3BnX2NoZWNrc3VtX2JlbmNoL3BnX2NoZWNrc3VtX2JlbmNoLmNvbnRyb2wKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBjb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL3NxbC9wZ19jaGVja3N1bV9iZW5jaC5z cWwKCmRpZmYgLS1naXQgYS9jb250cmliL21lc29uLmJ1aWxkIGIvY29udHJpYi9tZXNvbi5idWls ZAppbmRleCBlZDMwZWU3ZDYzOS4uZmU1MTQ5YWFkZmYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbWVz b24uYnVpbGQKKysrIGIvY29udHJpYi9tZXNvbi5idWlsZApAQCAtMTIsNiArMTIsNyBAQCBjb250 cmliX2RvY19hcmdzID0gewogICAnaW5zdGFsbF9kaXInOiBjb250cmliX2RvY19kaXIsCiB9CiAK K3N1YmRpcigncGdfY2hlY2tzdW1fYmVuY2gnKQogc3ViZGlyKCdhbWNoZWNrJykKIHN1YmRpcign YXV0aF9kZWxheScpCiBzdWJkaXIoJ2F1dG9fZXhwbGFpbicpCmRpZmYgLS1naXQgYS9jb250cmli L3BnX2NoZWNrc3VtX2JlbmNoL21lc29uLmJ1aWxkIGIvY29udHJpYi9wZ19jaGVja3N1bV9iZW5j aC9tZXNvbi5idWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzJj Y2Q5ZWZhMGYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL21l c29uLmJ1aWxkCkBAIC0wLDAgKzEsMjMgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIyLTIwMjUsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3BnX2NoZWNrc3VtX2JlbmNoX3Nv dXJjZXMgPSBmaWxlcygKKyAgJ3BnX2NoZWNrc3VtX2JlbmNoLmMnLAorKQorCitpZiBob3N0X3N5 c3RlbSA9PSAnd2luZG93cycKKyAgcGdfY2hlY2tzdW1fYmVuY2hfc291cmNlcyArPSByY19saWJf Z2VuLnByb2Nlc3Mod2luMzJ2ZXJfcmMsIGV4dHJhX2FyZ3M6IFsKKyAgICAnLS1OQU1FJywgJ3Bn X2NoZWNrc3VtX2JlbmNoJywKKyAgICAnLS1GSUxFREVTQycsICdwZ19jaGVja3N1bV9iZW5jaCcs XSkKK2VuZGlmCisKK3BnX2NoZWNrc3VtX2JlbmNoID0gc2hhcmVkX21vZHVsZSgncGdfY2hlY2tz dW1fYmVuY2gnLAorICBwZ19jaGVja3N1bV9iZW5jaF9zb3VyY2VzLAorICBrd2FyZ3M6IGNvbnRy aWJfbW9kX2FyZ3MsCispCitjb250cmliX3RhcmdldHMgKz0gcGdfY2hlY2tzdW1fYmVuY2gKKwor aW5zdGFsbF9kYXRhKAorICAncGdfY2hlY2tzdW1fYmVuY2gtLTEuMC5zcWwnLAorICAncGdfY2hl Y2tzdW1fYmVuY2guY29udHJvbCcsCisgIGt3YXJnczogY29udHJpYl9kYXRhX2FyZ3MsCispCmRp ZmYgLS1naXQgYS9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL3BnX2NoZWNrc3VtX2JlbmNoLS0x LjAuc3FsIGIvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5jaC0tMS4w LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWYxM2NiZTNjNWUK LS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL3BnX2NoZWNrc3Vt X2JlbmNoLS0xLjAuc3FsCkBAIC0wLDAgKzEsOCBAQAorLyogY29udHJpYi9wZ19jaGVja3N1bV9i ZW5jaC9wZ19jaGVja3N1bV9iZW5jaC0tMS4wLnNxbCAqLworCistLSBjb21wbGFpbiBpZiBzY3Jp cHQgaXMgc291cmNlZCBpbiBwc3FsLCByYXRoZXIgdGhhbiB2aWEgQ1JFQVRFIEVYVEVOU0lPTgor LS0gXGVjaG8gVXNlICJDUkVBVEUgRVhURU5TSU9OIHBnX2NoZWNrc3VtX2JlbmNoIiB0byBsb2Fk IHRoaXMgZmlsZS4gXHF1aXQKKworQ1JFQVRFIEZVTkNUSU9OIGRyaXZlX3BnX2NoZWNrc3VtKHBh Z2VfY291bnQgaW50KQorCVJFVFVSTlMgcGdfY2F0YWxvZy52b2lkCisJQVMgJ01PRFVMRV9QQVRI TkFNRScgTEFOR1VBR0UgQzsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gv cGdfY2hlY2tzdW1fYmVuY2guYyBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tz dW1fYmVuY2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjQwZjMz NWZmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNoL3BnX2No ZWNrc3VtX2JlbmNoLmMKQEAgLTAsMCArMSwzNCBAQAorI2luY2x1ZGUgInBvc3RncmVzLmgiCisj aW5jbHVkZSAiZm1nci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvY2hlY2tzdW1faW1wbC5oIgorCisj aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworUEdfTU9EVUxFX01BR0lD OworCisjZGVmaW5lIFJFUEVBVFMgMTAwMDAwMAorCitQR19GVU5DVElPTl9JTkZPX1YxKGRyaXZl X3BnX2NoZWNrc3VtKTsKK0RhdHVtCitkcml2ZV9wZ19jaGVja3N1bShQR19GVU5DVElPTl9BUkdT KQoreworCWludCBwYWdlX2NvdW50ID0gUEdfR0VUQVJHX0lOVDMyKDApOworCisJUEdDaGVja3N1 bW1hYmxlUGFnZSAqIHBhZ2VzID0gcGFsbG9jKHBhZ2VfY291bnQgKiBzaXplb2YoUEdDaGVja3N1 bW1hYmxlUGFnZSkpOworCXNyYW5kKDApOworCWZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFnZV9j b3VudCAqIHNpemVvZihQR0NoZWNrc3VtbWFibGVQYWdlKTsgaSsrKXsKKwkJY2hhciAqIGJ5dGVf cHRyID0gKGNoYXIgKikgcGFnZXM7CisJCWJ5dGVfcHRyW2ldID0gcmFuZCgpICUgMjU2OworCX0K KworCWZvciAoaW50IGkgPSAwOyBpIDwgUkVQRUFUUzsgaSsrKXsKKwkJY29uc3QgUEdDaGVja3N1 bW1hYmxlUGFnZSAqIHRlc3RfcGFnZSA9IHBhZ2VzICsgKGkgJSBwYWdlX2NvdW50KTsKKwkJdm9s YXRpbGUgdWludDMyIHJlc3VsdCA9IHBnX2NoZWNrc3VtX2Jsb2NrKHRlc3RfcGFnZSk7CisJCSh2 b2lkKSByZXN1bHQ7CisJfQorCisJcGZyZWUoKHZvaWQgKikgcGFnZXMpOworCisJUEdfUkVUVVJO X1ZPSUQoKTsKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hl Y2tzdW1fYmVuY2guY29udHJvbCBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdfY2hlY2tz dW1fYmVuY2guY29udHJvbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NGE0ZTJjOTM2M2MKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX2NoZWNrc3VtX2JlbmNo L3BnX2NoZWNrc3VtX2JlbmNoLmNvbnRyb2wKQEAgLTAsMCArMSw0IEBACitjb21tZW50ID0gJ3Bn X2NoZWNrc3VtIGJlbmNobWFyaycKK2RlZmF1bHRfdmVyc2lvbiA9ICcxLjAnCittb2R1bGVfcGF0 aG5hbWUgPSAnJGxpYmRpci9wZ19jaGVja3N1bV9iZW5jaCcKK3JlbG9jYXRhYmxlID0gdHJ1ZQpk aWZmIC0tZ2l0IGEvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9zcWwvcGdfY2hlY2tzdW1fYmVu Y2guc3FsIGIvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9zcWwvcGdfY2hlY2tzdW1fYmVuY2gu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjM0NzY5OTk1Mwot LS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvc3FsL3BnX2NoZWNr c3VtX2JlbmNoLnNxbApAQCAtMCwwICsxLDE3IEBACitDUkVBVEUgRVhURU5TSU9OIHBnX2NoZWNr c3VtX2JlbmNoOworCitTRUxFQ1QgZHJpdmVfcGdfY2hlY2tzdW0oLTEpOworCitcdGltaW5nIG9u CisKK1NFTEVDVCBkcml2ZV9wZ19jaGVja3N1bSgxKTsKK1NFTEVDVCBkcml2ZV9wZ19jaGVja3N1 bSgyKTsKK1NFTEVDVCBkcml2ZV9wZ19jaGVja3N1bSg0KTsKK1NFTEVDVCBkcml2ZV9wZ19jaGVj a3N1bSg4KTsKK1NFTEVDVCBkcml2ZV9wZ19jaGVja3N1bSgxNik7CitTRUxFQ1QgZHJpdmVfcGdf Y2hlY2tzdW0oMzIpOworU0VMRUNUIGRyaXZlX3BnX2NoZWNrc3VtKDY0KTsKK1NFTEVDVCBkcml2 ZV9wZ19jaGVja3N1bSgxMjgpOworU0VMRUNUIGRyaXZlX3BnX2NoZWNrc3VtKDI1Nik7CitTRUxF Q1QgZHJpdmVfcGdfY2hlY2tzdW0oNTEyKTsKK1NFTEVDVCBkcml2ZV9wZ19jaGVja3N1bSgxMDI0 KTsKLS0gCjIuNDMuMAoK --00000000000051b9460635c087cb Content-Type: application/octet-stream; name="v4-0006-Workaround-for-clang-19-crash.patch" Content-Disposition: attachment; filename="v4-0006-Workaround-for-clang-19-crash.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mazwmu1p5 RnJvbSA1ZmJiMzc0YTM5N2QyMmZlYmNlZTk3YjA4NTY0OTY3YWZhYWNmMzdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFN0ZXJyZXR0IDxtYXR0aGV3LnN0ZXJyZXR0QGlu dGVsLmNvbT4KRGF0ZTogV2VkLCAyMSBNYXkgMjAyNSAxNjowMDoyMiAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggdjQgNi82XSBXb3JrYXJvdW5kIGZvciBjbGFuZzwxOSBjcmFzaAoKLS0tCiBzcmMvaW5j bHVkZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwuaCB8IDE5ICsrKysrKysrKysrKystLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1faW1wbC5oIGIvc3JjL2luY2x1ZGUvc3Rv cmFnZS9jaGVja3N1bV9pbXBsLmgKaW5kZXggNDA3MDY0NmUyM2UuLjgxZGZlY2ZmMTdkIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwuaAorKysgYi9zcmMvaW5j bHVkZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwuaApAQCAtMTMyLDcgKzEzMiw3IEBAIHhzYXZlX2F2 YWlsYWJsZSh2b2lkKQogCV9fZ2V0X2NwdWlkKDEsICZleHhbMF0sICZleHhbMV0sICZleHhbMl0s ICZleHhbM10pOwogI2VsaWYgZGVmaW5lZChIQVZFX19DUFVJRCkKIAlfX2NwdWlkKGV4eCwgMSk7 Ci0jZWxzZQorI2VsaWYgZGVmaW5lZChfX3g4Nl82NF9fKQogI2Vycm9yIGNwdWlkIGluc3RydWN0 aW9uIG5vdCBhdmFpbGFibGUKICNlbmRpZgogCXJldHVybiAoZXh4WzJdICYgKDEgPDwgMjcpKSAh PSAwOwkvKiBvc3hzYXZlICovCkBAIC0yMTUsMTUgKzIxNSwxMCBAQCBkbyB7IFwKICAqIEJsb2Nr IGNoZWNrc3VtIGFsZ29yaXRobS4gIFRoZSBwYWdlIG11c3QgYmUgYWRlcXVhdGVseSBhbGlnbmVk CiAgKiAoYXQgbGVhc3Qgb24gNC1ieXRlIGJvdW5kYXJ5KS4KICAqLwotIAotI2RlZmluZSBQR19E RUNMQVJFX0NIRUNLU1VNX0lTQShJU0FOQU1FKSBcCi1zdGF0aWMgdWludDMyIFwKLXBnX2NoZWNr c3VtX2Jsb2NrXyMjSVNBTkFNRShjb25zdCBQR0NoZWNrc3VtbWFibGVQYWdlICpwYWdlKTsKIAog I2RlZmluZSBQR19ERUZJTkVfQ0hFQ0tTVU1fRFVNTVkoSVNBTkFNRSkgXAogc3RhdGljIHVpbnQz MiBcCiBwZ19jaGVja3N1bV9ibG9ja18jI0lTQU5BTUUoY29uc3QgUEdDaGVja3N1bW1hYmxlUGFn ZSAqcGFnZSk7IFwKLXBnX2F0dHJpYnV0ZV90YXJnZXQoI0lTQU5BTUUpIFwKIHN0YXRpYyB1aW50 MzIgXAogcGdfY2hlY2tzdW1fYmxvY2tfIyNJU0FOQU1FKGNvbnN0IFBHQ2hlY2tzdW1tYWJsZVBh Z2UgKnBhZ2UpIFwKIHsgXApAQCAtMjY3LDYgKzI2Miw5IEBAIHBnX2NoZWNrc3VtX2Jsb2NrXyMj SVNBTkFNRShjb25zdCBQR0NoZWNrc3VtbWFibGVQYWdlICpwYWdlKSBcCiAJcmV0dXJuIHJlc3Vs dDsgXAogfQogCisvKiBPbGRlciBDbGFuZyB2ZXJzaW9ucyBjcmFzaCBkdXJpbmcgTFRPIHdpdGgg dGhpcyBjb2RlICovCisjaWYgIShfX2NsYW5nX21ham9yX18pIHx8IF9fY2xhbmdfbWFqb3JfXyA+ PSAxOQorCiBQR19ERUZJTkVfQ0hFQ0tTVU1fSVNBKGRlZmF1bHQpOwogI2lmZGVmIFVTRV9BVlgy X1dJVEhfUlVOVElNRV9DSEVDSwogUEdfREVGSU5FX0NIRUNLU1VNX0lTQShhdngyKTsKQEAgLTI4 OSw2ICsyODcsMTUgQEAgcGdfY2hlY2tzdW1fYmxvY2tfZGlzcGF0Y2goY29uc3QgUEdDaGVja3N1 bW1hYmxlUGFnZSAqcGFnZSl7CiAJcmV0dXJuIHBnX2NoZWNrc3VtX2Jsb2NrKHBhZ2UpOwogfQog CisjZWxzZQorLyogVGhlIHNhbWUgYXMgYmVmb3JlIHRoZSBwYXRjaCwgZm9yIHRoZSBjcmFzaGlu ZyBDbGFuZyB2ZXJzaW9ucyAqLworUEdfREVGSU5FX0NIRUNLU1VNX0lTQShkZWZhdWx0KTsKK3N0 YXRpYyB1aW50MzIgcGdfY2hlY2tzdW1fYmxvY2soY29uc3QgUEdDaGVja3N1bW1hYmxlUGFnZSAq cGFnZSkgeworCXJldHVybiBwZ19jaGVja3N1bV9ibG9ja19kZWZhdWx0KHBhZ2UpOworfQorCisj ZW5kaWYKKwogLyoKICAqIENvbXB1dGUgdGhlIGNoZWNrc3VtIGZvciBhIFBvc3RncmVzIHBhZ2Uu CiAgKgotLSAKMi40My4wCgo= --00000000000051b9460635c087cb--