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 1uHAJQ-00Ehz0-Cf for pgsql-hackers@arkaria.postgresql.org; Mon, 19 May 2025 23:54:29 +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 1uHAJP-002PRO-2L for pgsql-hackers@arkaria.postgresql.org; Mon, 19 May 2025 23:54:27 +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 1uHAJO-002PQf-Jx for pgsql-hackers@lists.postgresql.org; Mon, 19 May 2025 23:54:26 +0000 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uHAJL-002nYP-2Z for pgsql-hackers@lists.postgresql.org; Mon, 19 May 2025 23:54:26 +0000 Received: by mail-pg1-x544.google.com with SMTP id 41be03b00d2f7-b1fde81de05so3199303a12.1 for ; Mon, 19 May 2025 16:54:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747698861; x=1748303661; 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=je7lykz1D4a/bbW7w5fA5/UkUinttss2t3NOZK6+gbg=; b=Md0BVAM9XLek2Fcma2tutVh7bbZdy+c5LX0xiGDLQfVzWcIiByUyMqH8giNpknj8et LZLhMsCtCWpFA2j0JvS0aOzRVW6qM0uV/xX9s3z8MZTrEEOLDdt2u8/BDnZGD4YRRIBJ JykmYKHznfWcSGk2lb9pXodUWE6f6lGILIThGRRAKhJ0z3Utul4E2sdviLb1KhBSHJBD AcNTfuLfPWZi878M/EaYVKDlh++kI9R4bAqxXjFDzE5C198aO9HuYcijdsh+jr8HeGeC 87ZinM19aFTNt1HRHfgnmspMG2YnhYVijQqhhDYXUPAptJqVYyJi8ETjMgUGJigZhc7t O3gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747698861; x=1748303661; 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=je7lykz1D4a/bbW7w5fA5/UkUinttss2t3NOZK6+gbg=; b=hPykpfd3otzv7Wei6coeha2rqhDpQj/HQG0S5dHKuX7WTNZ0yN7zsuLy+sv/UpeNBS l+2/JcmF5pfjqPnhTlvJEYmTbr6h2tDvSCnXhFWru9k1IHH4r5kP5MwouGEB62dPE2PY r5GiQmsNbpv1J4ySGH17qg2kG+EZ0sVR2VKSxHnBIfkISP5TfO7HYzdEgBwb5MGuXlH2 wAGwCa8Bb4tDI/cc3kHCXk5WT8ZSbliM0vjTS9zy6mfbjsdxjyOsC4HiMrBs3vtpnECS eZp3YSwxNxg9+RPhMvzcoVhuWbTp2sP5Yh6jJXJMUh6+WcLLj4n7sRKubKfd/pRCvzDv +JsQ== X-Gm-Message-State: AOJu0Ywmlne23HfvQ/lVKW2zQ22HYGDJ+xN+JIYloJuE5v1WuGD4FvzG q3ctc9s8HYStFO5AcWiOPxUk1xSVHws8CDvctyTm0IDXhBY+ekbHgyKa2sn5D5BuLIWboPuozN6 v38F8uao4XbIiPbCBy1qE5xj+G7Ajj4A= X-Gm-Gg: ASbGncvwQUgT8kRprX6G/QMemQKNAmwmQG3OasuTJHHZM96RLbJIb0cMfbK06mIWx7a w9WvLWe7wwBryT32QrSUqEQ+d7tFbj8ZtTbbQIUoHDcPG9zoEqRF0uHsIufPEqf7u69YUlFGBeX u+6FtH8/jEtmM6XJTMEPZHVTSdoyFU16bIyg== X-Google-Smtp-Source: AGHT+IFVeK8qPAW53URX69XmMND7dCcu1nenIvn+ztuVQhTBLkzBVxmDgDYTUVjSnDDSSee5AHi8XAQHIV6XOeiBzZE= X-Received: by 2002:a17:902:f686:b0:231:ea68:4e2a with SMTP id d9443c01a7336-231ea68526fmr199667895ad.34.1747698861472; Mon, 19 May 2025 16:54:21 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Matthew Sterrett Date: Mon, 19 May 2025 16:54:09 -0700 X-Gm-Features: AX0GCFuL2HL2XYKM9G-pk5K0iSBtLLbTkkC_CpHZvnfTNlGIM6plLmE3AiNVRGk Message-ID: Subject: Re: Proposal for enabling auto-vectorization for checksum calculations To: Stepan Neretin Cc: pgsql-hackers@lists.postgresql.org, "Devulapalli, Raghuveer" , "Shankaran, Akash" Content-Type: multipart/mixed; boundary="000000000000d039a9063585d90c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d039a9063585d90c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello! Thanks for helping me with this. I'm still trying to figure out what is going on with the Bookworm test failures. I'm pretty sure this patchset should resolve all the issues with the macOS build, but I don't think it will help the linux failures unfortunately. On Sat, May 10, 2025 at 4:02=E2=80=AFAM Stepan Neretin w= rote: > > > > On Sat, May 10, 2025 at 6:01=E2=80=AFPM Stepan Neretin = wrote: >> >> >> >> On Thu, May 8, 2025 at 6:57=E2=80=AFAM Matthew Sterrett wrote: >>> >>> Hello! I'm still trying to figure out those CI failures, I just wanted >>> to update things. >>> >>> From my testing, with this patch repeatedly disabling/enabling >>> checksums is about 12.4% on an approximately 15 GB database. >>> >>> By the way, I'd love it if anyone could help me figure out how to >>> replicate a CI failure in the Cirrus CI. >>> I haven't been able to figure out how to test CI runs locally, does >>> anyone know a good method to do that? >>> >>> >> >> Hi Matthew, >> >> Thanks for the patch! >> >> I ran some timing tests: >> >> (without avx2) >> >> Time: 4034.351 ms >> SELECT drive_pg_checksum(512); >> >> (with avx2) >> >> Time: 3559.076 ms >> SELECT drive_pg_checksum(512); >> >> Also attached two patches that should fix the CI issues. >> >> Best, >> >> Stepan Neretin >> >> >> > > Oops, forgot to attach patches :) > > Best, > > Stepan Neretin > > --000000000000d039a9063585d90c Content-Type: application/octet-stream; name="v3-0002-Fix-compilation-on-systems-where-immintrin.h-is-n.patch" Content-Disposition: attachment; filename="v3-0002-Fix-compilation-on-systems-where-immintrin.h-is-n.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mavqq3721 RnJvbSAzMGQ5MTY1NDY4NjBkM2QxOWY4ZDkxYTBhYjRiYzk5ZjljMzUwYWFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwYW4gTmVyZXRpbiA8c2xwbWNmQGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAxMCBNYXkgMjAyNSAxNjozNzoxMyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggdjMgMi81 XSBGaXggY29tcGlsYXRpb24gb24gc3lzdGVtcyB3aGVyZSA8aW1taW50cmluLmg+IGlzIG5vdAog YXZhaWxhYmxlIG9yIGluYXBwcm9wcmlhdGUsIHN1Y2ggYXMgb2xkZXIgR0NDIHZlcnNpb25zIG9y IG5vbi14ODYgcGxhdGZvcm1zLgoKLS0tCiBzcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2lt cGwuaCB8IDYgKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvY2hlY2tzdW1faW1wbC5o IGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9jaGVja3N1bV9pbXBsLmgKaW5kZXggNWVhMWY2OThiNTcu LjA0MmVlOGFmMTIwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2lt cGwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2NoZWNrc3VtX2ltcGwuaApAQCAtMTEyLDcg KzExMiw5IEBACiAjaW5jbHVkZSA8Y3B1aWQuaD4KICNlbmRpZgogCisjaWZkZWYgSEFWRV9YU0FW RV9JTlRSSU5TSUNTCiAjaW5jbHVkZSA8aW1taW50cmluLmg+CisjZW5kaWYKIAogI2lmIGRlZmlu ZWQoSEFWRV9fQ1BVSUQpIHx8IGRlZmluZWQoSEFWRV9fQ1BVSURFWCkKICNpbmNsdWRlIDxpbnRy aW4uaD4KQEAgLTI1MywxMCArMjU1LDYgQEAgcGdfY2hlY2tzdW1fYmxvY2tfIyNJU0FOQU1FKGNv bnN0IFBHQ2hlY2tzdW1tYWJsZVBhZ2UgKnBhZ2UpIFwKIH0KIAogLyogRGVjbGFyYXRpb25zIGFy ZSBhbHdheXMgZGVmaW5lZCB0byBtYWtlIGR5bmFtaWMgZGlzcGF0Y2ggY29kZSBzaW1wbGVyICov Ci0KLVBHX0RFQ0xBUkVfQ0hFQ0tTVU1fSVNBKGRlZmF1bHQpOwotUEdfREVDTEFSRV9DSEVDS1NV TV9JU0EoYXZ4Mik7Ci0KIFBHX0RFRklORV9DSEVDS1NVTV9JU0EoZGVmYXVsdCk7CiAjaWZkZWYg VVNFX0FWWDJfV0lUSF9SVU5USU1FX0NIRUNLCiBQR19ERUZJTkVfQ0hFQ0tTVU1fSVNBKGF2eDIp OwotLSAKMi40My4wCgo= --000000000000d039a9063585d90c Content-Type: application/octet-stream; name="v3-0005-Use-dummy-function-to-avoid-linker-error-move-dec.patch" Content-Disposition: attachment; filename="v3-0005-Use-dummy-function-to-avoid-linker-error-move-dec.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mavqq37h4 RnJvbSBmN2IyOGM2Mzc4ZGI5Y2M5ODM3MWU4OWU4MzBhMmFlOGE1NzFlOWEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFN0ZXJyZXR0IDxtYXR0aGV3LnN0ZXJyZXR0QGlu dGVsLmNvbT4KRGF0ZTogTW9uLCAxOSBNYXkgMjAyNSAxMzoyMzo1NSAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggdjMgNS81XSBVc2UgZHVtbXkgZnVuY3Rpb24gdG8gYXZvaWQgbGlua2VyIGVycm9yLCBt 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== --000000000000d039a9063585d90c Content-Type: application/octet-stream; name="v3-0004-fix-bench-compiling.patch" Content-Disposition: attachment; filename="v3-0004-fix-bench-compiling.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mavqq37d3 RnJvbSA3ODg3M2FlYzQ4ODY3OGFjY2JlZDFjNGQxZmM3Y2UxNWQxMmRmMzAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwYW4gTmVyZXRpbiA8c2xwbWNmQGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAxMCBNYXkgMjAyNSAxNzo1Nzo0NyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggdjMgNC81 XSBmaXggYmVuY2ggY29tcGlsaW5nCgotLS0KIGNvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gvcGdf Y2hlY2tzdW1fYmVuY2guYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5j IGIvY29udHJpYi9wZ19jaGVja3N1bV9iZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5jCmluZGV4IGY0 MGYzMzVmZjU5Li4wMjk2ZGNmZDI1OSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19jaGVja3N1bV9i ZW5jaC9wZ19jaGVja3N1bV9iZW5jaC5jCisrKyBiL2NvbnRyaWIvcGdfY2hlY2tzdW1fYmVuY2gv cGdfY2hlY2tzdW1fYmVuY2guYwpAQCAtMSw1ICsxLDYgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5o IgogI2luY2x1ZGUgImZtZ3IuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2NoZWNrc3VtLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9jaGVja3N1bV9pbXBsLmgiCiAKICNpbmNsdWRlIDxzdGRpby5oPgotLSAK Mi40My4wCgo= --000000000000d039a9063585d90c Content-Type: application/octet-stream; name="v3-0003-Benchmark-code-for-postgres-checksums.patch" Content-Disposition: attachment; filename="v3-0003-Benchmark-code-for-postgres-checksums.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mavqq3782 RnJvbSBjZDZkYzUxN2I4OTdmYWYzZDk2MGZhZmU4ZWE2YjJjZjliYmMyZTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFN0ZXJyZXR0IDxtYXR0aGV3LnN0ZXJyZXR0QGlu dGVsLmNvbT4KRGF0ZTogRnJpLCA3IE1hciAyMDI1IDExOjMzOjI3IC0wODAwClN1YmplY3Q6IFtQ QVRDSCB2MyAzLzVdIEJlbmNobWFyayBjb2RlIGZvciBwb3N0Z3JlcyBjaGVja3N1bXMKCi0tLQog 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 --000000000000d039a9063585d90c Content-Type: application/octet-stream; name="v3-0001-Enable-autovectorizing-pg_checksum_block.patch" Content-Disposition: attachment; filename="v3-0001-Enable-autovectorizing-pg_checksum_block.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mavqq35x0 RnJvbSA1ODEyMmViZTFiYmViYzcwZGE5MGM3ZWMzZTc3ZjNjM2Q1MjRhYTg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFN0ZXJyZXR0IDxtYXR0aGV3LnN0ZXJyZXR0QGlu dGVsLmNvbT4KRGF0ZTogRnJpLCA3IE1hciAyMDI1IDExOjMzOjQ1IC0wODAwClN1YmplY3Q6IFtQ QVRDSCB2MyAxLzVdIEVuYWJsZSBhdXRvdmVjdG9yaXppbmcgcGdfY2hlY2tzdW1fYmxvY2sKCi0t 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 --000000000000d039a9063585d90c--