Received: from [217.196.149.56] (helo=malur.postgresql.org) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pKnRe-0007t7-4w for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Jan 2023 21:36:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pKnNP-0002tc-IV for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Jan 2023 21:32:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pKnNP-0002sw-89 for pgsql-hackers@lists.postgresql.org; Wed, 25 Jan 2023 21:32:15 +0000 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pKnNN-00089x-4u for pgsql-hackers@postgresql.org; Wed, 25 Jan 2023 21:32:14 +0000 Received: by mail-pj1-x1029.google.com with SMTP id lp10so16449855pjb.4 for ; Wed, 25 Jan 2023 13:32:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20210112.gappssmtp.com; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=qq6X500NFF6v3BeeHDOKg3ajbstrCYcYrLrxx01SAm4=; b=3CqQnSycIuRqNZdJ7cU/iRUgdjiNWTp6B+eTbfQCph2KtWxLCgyjz77LY+kLFtdFnw 1p0KiKJTLX/l04KzZqQ9rL4nnJVc80Nb/qfp0qCtnHKh1qqZpK1ryGrPYRElewkVcno8 dDXM4ZDGFDmrh2lTe51e1PzyP0kBm/+aTFwLmZCrYk8U7zTKaNLiP3IOci2F41gf4ojS CbtbDyq8s/ixeX59hpUWGf9wIXlYt/p/DWAWFkHph0xrmWOkAu7TXb+0FUp2NJEpmXE9 9MmKbXPS7a2oyZnRtMFZUV+Uj0zpioUh69ht5vXECzEiMwkIpJE0kjuQpFn5NkDkHpRo B5Lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=qq6X500NFF6v3BeeHDOKg3ajbstrCYcYrLrxx01SAm4=; b=ZdUXMamQ2Nr5K5kZdifdt+opSRRGBZC908s7Q5pjQDnqBqqvYuP7Pz/wPoWVjG++Vg tTPPQinqZ1YXiUAkfdpWZwyOphZzC3PoIv577ijB4vLrH1RQbR4m0xCcRXCTCECNMMEP Lrj8ke/F6Jmpyl32APYYDQzhG5qEJ0kFXOulzURzeaPoH7gVPSP798tdtHNZ6EOT0nqs tjL8rIk0HpkT/6rHiqlKF/2w2vLQhMLoX750uJa4MXqyOTP7a07BLAtrAi9dKlesscyF YKwC9LIT7cYedNBWGFZkyUPazHSUnsZx+IzO7OBSCiCJVEM+x8lZfe5TccgeBGdh0hWv f9Kg== X-Gm-Message-State: AFqh2kq0v/zhllTWZqZil0Pb7GNj01FlvKf2u1gh14R13g+p+79dFvTm aKR11c6luSvCn3K4oxsoI23psg== X-Google-Smtp-Source: AMrXdXvjUtBdaDIReLiVYIgz7R0AI2GTDXMg1x2qCGYubPwDS46WFnqOXRSuYN+DDZBibHbXdx4JTQ== X-Received: by 2002:a17:903:2442:b0:195:f06f:84ff with SMTP id l2-20020a170903244200b00195f06f84ffmr23791327pls.50.1674682208801; Wed, 25 Jan 2023 13:30:08 -0800 (PST) Received: from jeff-laptop.lan (c-73-231-146-4.hsd1.ca.comcast.net. [73.231.146.4]) by smtp.gmail.com with ESMTPSA id je15-20020a170903264f00b001960642b460sm3646247plb.260.2023.01.25.13.30.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Jan 2023 13:30:08 -0800 (PST) Message-ID: <5527738835f7800a19e2b7aaafdd7c6708d99ef7.camel@j-davis.com> Subject: Re: GUCs to control abbreviated sort keys From: Jeff Davis To: Justin Pryzby Cc: pgsql-hackers@postgresql.org Date: Wed, 25 Jan 2023 13:30:07 -0800 In-Reply-To: <20230125014349.GM13860@telsasoft.com> References: <20230125014349.GM13860@telsasoft.com> Content-Type: multipart/mixed; boundary="=-Y0+zbdBFDCSX/zXGPg06" User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-Y0+zbdBFDCSX/zXGPg06 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2023-01-24 at 19:43 -0600, Justin Pryzby wrote: > I think "an optimization, if applicable" is either too terse, or > somehow > wrong.=C2=A0 Maybe: >=20 > > Enables or disables the use of abbreviated keys, a sort > > optimization... Done. > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 optimization could return w= rong results. Set to > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 true if = certain that > > strxfrm() > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 can be trusted. >=20 > "if you are certain"; or "if it is ..." Done. Thank you, rebased patch attached. --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-Y0+zbdBFDCSX/zXGPg06 Content-Disposition: attachment; filename*0=v2-0001-Introduce-GUCs-to-control-abbreviated-keys-sort-o.pat; filename*1=ch Content-Type: text/x-patch; name="v2-0001-Introduce-GUCs-to-control-abbreviated-keys-sort-o.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzOWVkMDExY2M1MWJhM2E0YWY1ZTNiNTU5YTdiOGRlMjVmYjg5NWE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBT YXQsIDIxIEphbiAyMDIzIDEyOjQ0OjA3IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2Ml0gSW50cm9k dWNlIEdVQ3MgdG8gY29udHJvbCBhYmJyZXZpYXRlZCBrZXlzIHNvcnQKIG9wdGltaXphdGlvbi4K ClRoZSBzZXR0aW5nIHNvcnRfYWJicmV2aWF0ZWRfa2V5cyB0dXJucyB0aGUgb3B0aW1pemF0aW9u IG9uIG9yIG9mZgpvdmVyYWxsLiBUaGUgb3B0aW1pemF0aW9uIHJlbGllcyBvbiBjb2xsYXRpb24g cHJvdmlkZXJzLCB3aGljaCBhcmUKY29tcGxleCBkZXBlbmRlbmNpZXMsIGFuZCB0aGUgcGVyZm9y bWFuY2Ugb2YgdGhlIG9wdGltaXphdGlvbiBtYXkgcmVseQpvbiBtYW55IGZhY3RvcnMuIEludHJv ZHVjaW5nIGEgR1VDIGFsbG93cyBlYXNpZXIgZGlhZ25vc2lzIHdoZW4gdGhpcwpvcHRpbWl6YXRp b24gcmVzdWx0cyBpbiB3b3JzZSBwZXJmb3JhbW5jZS4KClRoZSBzZXR0aW5nIHRydXN0X3N0cnhm cm0gcmVwbGFjZXMgdGhlIGRlZmluZSBUUlVTVF9TVFJYRlJNLCBhbGxvd2luZwp1c2VycyB0byBl eHBlcmltZW50IHdpdGggdGhlIGFiYnJldmlhdGVkIGtleXMgb3B0aW1pemF0aW9uIHdoZW4gdXNp bmcKdGhlIGxpYmMgcHJvdmlkZXIuIFByZXZpb3VzbHksIHRoZSBvcHRpbWl6YXRpb24gb25seSBh cHBsaWVkIHRvCmNvbGxhdGlvbnMgdXNpbmcgdGhlIElDVSBwcm92aWRlciB1bmxlc3Mgc3BlY2lh bGx5IGNvbXBpbGVkLiBCeQpkZWZhdWx0LCBhbGxvd2VkIG9ubHkgZm9yIHN1cGVydXNlcnMgKGJl Y2F1c2UgYW4gaW5jb3JyZWN0IHNldHRpbmcKY291bGQgbGVhZCB0byB3cm9uZyByZXN1bHRzKSwg YnV0IGNhbiBiZSBncmFudGVkIHRvIG90aGVycy4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgICAgICAgICAgICAgICAgICAgfCA0MCArKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvdmFybGVuYS5jICAgICAgICAgICAgfCAxMCArKystLS0KIHNyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICB8IDI0ICsrKysrKysrKysrKysKIHNy Yy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0dmFyaWFudHMuYyB8IDE3ICsrKysrKy0tLQog NCBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dt bAppbmRleCBmOTg1YWZjMDA5Li44ZjU1Yjg5ZjM1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0xMTI1Miw2ICsx MTI1Miw0NiBAQCBkeW5hbWljX2xpYnJhcnlfcGF0aCA9ICdDOlx0b29sc1xwb3N0Z3Jlc3FsO0g6 XG15X3Byb2plY3RcbGliOyRsaWJkaXInCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxp c3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc29ydC1hYmJyZXZpYXRlZC1r ZXlzIiB4cmVmbGFiZWw9InNvcnRfYWJicmV2aWF0ZWRfa2V5cyI+CisgICAgICA8dGVybT48dmFy bmFtZT5zb3J0X2FiYnJldmlhdGVkX2tleXM8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBl PikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+c29ydF9hYmJy ZXZpYXRlZF9rZXlzPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4K KyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgIDxwYXJhPgorICAgICAgICBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSB1c2Ugb2YgYWJicmV2 aWF0ZWQgc29ydCBrZXlzLCBhIHNvcnQgb3B0aW1pemF0aW9uLAorICAgICAgICBpZiBhcHBsaWNh YmxlLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPi4gRGlzYWJsaW5nIG1h eQorICAgICAgICBiZSB1c2VmdWwgdG8gZGlhZ25vc2UgcHJvYmxlbXMgb3IgbWVhc3VyZSBwZXJm b3JtYW5jZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtdHJ1c3Qtc3RyeGZybSIgeHJl ZmxhYmVsPSJ0cnVzdF9zdHJ4ZnJtIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPnRydXN0X3N0cnhm cm08L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+Cisg ICAgICAgPHByaW1hcnk+PHZhcm5hbWU+dHJ1c3Rfc3RyeGZybTwvdmFybmFtZT4gY29uZmlndXJh dGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVy bT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgQWJicmV2aWF0ZWQg a2V5cywgYSBzb3J0IG9wdGltaXphdGlvbiwgZGVwZW5kcyBvbiBjb3JyZWN0IGJlaGF2aW9yIG9m CisgICAgICAgIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGZ1bmN0aW9uIDxmdW5jdGlvbj5zdHJ4ZnJt KCk8L2Z1bmN0aW9uPiB3aGVuCisgICAgICAgIHVzaW5nIGEgY29sbGF0aW9uIHdpdGggdGhlIDxs aXRlcmFsPmxpYmM8L2xpdGVyYWw+IHByb3ZpZGVyLiBPbiBzb21lCisgICAgICAgIHBsYXRmb3Jt cyA8ZnVuY3Rpb24+c3RyeGZybSgpPC9mdW5jdGlvbj4gZG9lcyBub3QgcmV0dXJuIHJlc3VsdHMK KyAgICAgICAgY29uc2lzdGVudCB3aXRoIDxmdW5jdGlvbj5zdHJjb2xsKCk8L2Z1bmN0aW9uPiwg d2hpY2ggbWVhbnMgdGhlCisgICAgICAgIG9wdGltaXphdGlvbiBjb3VsZCByZXR1cm4gd3Jvbmcg cmVzdWx0cy4gU2V0IHRvCisgICAgICAgIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IGlmIGl0IGlz IGNlcnRhaW4gdGhhdAorICAgICAgICA8ZnVuY3Rpb24+c3RyeGZybSgpPC9mdW5jdGlvbj4gY2Fu IGJlIHRydXN0ZWQuCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUg ZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4uIFRoaXMgc2V0dGluZyBo YXMgbm8KKyAgICAgICAgZWZmZWN0IGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zb3J0LWFiYnJldmlh dGVkLWtleXMiLz4gaXMgc2V0IHRvCisgICAgICAgIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4K KyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtdHJhY2UtbG9ja3MiIHhyZWZsYWJlbD0idHJh Y2VfbG9ja3MiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+dHJhY2VfbG9ja3M8L3Zhcm5hbWU+ICg8 dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zhcmxl bmEuYwppbmRleCBmZDgxYzQ3NDc0Li5jMjcwMDIyNDgzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdmFybGVuYS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5h LmMKQEAgLTQ1LDYgKzQ1LDkgQEAKIC8qIEdVQyB2YXJpYWJsZSAqLwogaW50CQkJYnl0ZWFfb3V0 cHV0ID0gQllURUFfT1VUUFVUX0hFWDsKIAorLyogR1VDIHRvIGVuYWJsZSB1c2Ugb2Ygc3RyeGZy bSgpIGZvciBhYmJyZXZpYXRlZCBrZXlzICovCitib29sCQl0cnVzdF9zdHJ4ZnJtID0gZmFsc2U7 CisKIHR5cGVkZWYgc3RydWN0IHZhcmxlbmEgdW5rbm93bjsKIHR5cGVkZWYgc3RydWN0IHZhcmxl bmEgVmFyU3RyaW5nOwogCkBAIC0yMTE1LDcgKzIxMTgsNyBAQCB2YXJzdHJfc29ydHN1cHBvcnQo U29ydFN1cHBvcnQgc3N1cCwgT2lkIHR5cGlkLCBPaWQgY29sbGlkKQogCSAqIG90aGVyIGxpYmMg b3RoZXIgdGhhbiBDeWd3aW4gaGFzIHNvIGZhciBiZWVuIHNob3duIHRvIGhhdmUgYSBwcm9ibGVt LAogCSAqIHdlIHRha2UgdGhlIGNvbnNlcnZhdGl2ZSBjb3Vyc2Ugb2YgYWN0aW9uIGZvciByaWdo dCBub3cgYW5kIGRpc2FibGUKIAkgKiB0aGlzIGNhdGVnb3JpY2FsbHkuICAoVXNlcnMgd2hvIGFy ZSBjZXJ0YWluIHRoaXMgaXNuJ3QgYSBwcm9ibGVtIG9uCi0JICogdGhlaXIgc3lzdGVtIGNhbiBk ZWZpbmUgVFJVU1RfU1RSWEZSTS4pCisJICogdGhlaXIgc3lzdGVtIGNhbiBzZXQgdGhlIHRydXN0 X3N0cnhmcm0gR1VDIHRvIHRydWUuKQogCSAqCiAJICogRXZlbiBhcGFydCBmcm9tIHRoZSByaXNr IG9mIGJyb2tlbiBsb2NhbGVzLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlcmUKIAkgKiBhcmUgcGxh dGZvcm1zIHdoZXJlIHRoZSB1c2Ugb2YgYWJicmV2aWF0ZWQga2V5cyBzaG91bGQgYmUgZGlzYWJs ZWQgYXQKQEAgLTIxMjgsMTAgKzIxMzEsOSBAQCB2YXJzdHJfc29ydHN1cHBvcnQoU29ydFN1cHBv cnQgc3N1cCwgT2lkIHR5cGlkLCBPaWQgY29sbGlkKQogCSAqIGNhdGVnb3JpY2FsbHksIHdlIG1h eSBzdGlsbCB3YW50IG9yIG5lZWQgdG8gZGlzYWJsZSBpdCBmb3IgcGFydGljdWxhcgogCSAqIHBs YXRmb3Jtcy4KIAkgKi8KLSNpZm5kZWYgVFJVU1RfU1RSWEZSTQotCWlmICghY29sbGF0ZV9jICYm ICEobG9jYWxlICYmIGxvY2FsZS0+cHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkpCisJaWYg KCF0cnVzdF9zdHJ4ZnJtICYmICFjb2xsYXRlX2MgJiYKKwkJIShsb2NhbGUgJiYgbG9jYWxlLT5w cm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKSkKIAkJYWJicmV2aWF0ZSA9IGZhbHNlOwotI2Vu ZGlmCiAKIAkvKgogCSAqIElmIHdlJ3JlIHVzaW5nIGFiYnJldmlhdGVkIGtleXMsIG9yIGlmIHdl J3JlIHVzaW5nIGEgbG9jYWxlLWF3YXJlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmlu ZGV4IDRhYzgwOGVkMjIuLmZkNGEwMmZiZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxl cy5jCkBAIC0xMDIsNiArMTAyLDggQEAgZXh0ZXJuIGJvb2wgdHJhY2Vfc3luY3NjYW47CiAjaWZk ZWYgREVCVUdfQk9VTkRFRF9TT1JUCiBleHRlcm4gYm9vbCBvcHRpbWl6ZV9ib3VuZGVkX3NvcnQ7 CiAjZW5kaWYKK2V4dGVybiBib29sIHNvcnRfYWJicmV2aWF0ZWRfa2V5czsKK2V4dGVybiBib29s IHRydXN0X3N0cnhmcm07CiAKIC8qCiAgKiBPcHRpb25zIGZvciBlbnVtIHZhbHVlcyBkZWZpbmVk IGluIHRoaXMgbW9kdWxlLgpAQCAtMTY3Myw2ICsxNjc1LDI4IEBAIHN0cnVjdCBjb25maWdfYm9v bCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJfSwKICNlbmRpZgogCisJeworCQl7InNvcnRfYWJi cmV2aWF0ZWRfa2V5cyIsIFBHQ19VU0VSU0VULCBERVZFTE9QRVJfT1BUSU9OUywKKwkJCWdldHRl eHRfbm9vcCgiRW5hYmxlcyB0aGUgdXNlIG9mIGFiYnJldmlhdGVkIHNvcnQga2V5cy4iKSwKKwkJ CU5VTEwsCisJCQlHVUNfTk9UX0lOX1NBTVBMRSB8IEdVQ19FWFBMQUlOCisJCX0sCisJCSZzb3J0 X2FiYnJldmlhdGVkX2tleXMsCisJCXRydWUsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCisJ eworCQl7InRydXN0X3N0cnhmcm0iLCBQR0NfU1VTRVQsIERFVkVMT1BFUl9PUFRJT05TLAorCQkg Z2V0dGV4dF9ub29wKCJBbGxvdyB1c2Ugb2Ygc3RyeGZybSgpIGZvciBhYmJyZXZpYXRlZCBrZXlz IG9wdGltaXphdGlvbiBmb3IgbGliYyBwcm92aWRlci4iKSwKKwkJIE5VTEwsCisJCSBHVUNfTk9U X0lOX1NBTVBMRQorCQl9LAorCQkmdHJ1c3Rfc3RyeGZybSwKKwkJZmFsc2UsCisJCU5VTEwsIE5V TEwsIE5VTEwKKwl9LAorCiAjaWZkZWYgV0FMX0RFQlVHCiAJewogCQl7IndhbF9kZWJ1ZyIsIFBH Q19TVVNFVCwgREVWRUxPUEVSX09QVElPTlMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9zb3J0L3R1cGxlc29ydHZhcmlhbnRzLmMgYi9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxl c29ydHZhcmlhbnRzLmMKaW5kZXggZWI2Y2ZjZmQwMC4uYmExNjc3OWY5NyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnR2YXJpYW50cy5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0dmFyaWFudHMuYwpAQCAtMzcsNiArMzcsOCBAQAogI2Rl ZmluZSBEQVRVTV9TT1JUCQkyCiAjZGVmaW5lIENMVVNURVJfU09SVAkzCiAKK2Jvb2wgc29ydF9h YmJyZXZpYXRlZF9rZXlzID0gdHJ1ZTsKKwogc3RhdGljIHZvaWQgcmVtb3ZlYWJicmV2X2hlYXAo VHVwbGVzb3J0c3RhdGUgKnN0YXRlLCBTb3J0VHVwbGUgKnN0dXBzLAogCQkJCQkJCSAgaW50IGNv dW50KTsKIHN0YXRpYyB2b2lkIHJlbW92ZWFiYnJldl9jbHVzdGVyKFR1cGxlc29ydHN0YXRlICpz dGF0ZSwgU29ydFR1cGxlICpzdHVwcywKQEAgLTE4NSw3ICsxODcsOCBAQCB0dXBsZXNvcnRfYmVn aW5faGVhcChUdXBsZURlc2MgdHVwRGVzYywKIAkJc29ydEtleS0+c3N1cF9udWxsc19maXJzdCA9 IG51bGxzRmlyc3RGbGFnc1tpXTsKIAkJc29ydEtleS0+c3N1cF9hdHRubyA9IGF0dE51bXNbaV07 CiAJCS8qIENvbnZleSBpZiBhYmJyZXZpYXRpb24gb3B0aW1pemF0aW9uIGlzIGFwcGxpY2FibGUg aW4gcHJpbmNpcGxlICovCi0JCXNvcnRLZXktPmFiYnJldmlhdGUgPSAoaSA9PSAwICYmIGJhc2Ut PmhhdmVEYXR1bTEpOworCQlpZiAoc29ydF9hYmJyZXZpYXRlZF9rZXlzKQorCQkJc29ydEtleS0+ YWJicmV2aWF0ZSA9IChpID09IDAgJiYgYmFzZS0+aGF2ZURhdHVtMSk7CiAKIAkJUHJlcGFyZVNv cnRTdXBwb3J0RnJvbU9yZGVyaW5nT3Aoc29ydE9wZXJhdG9yc1tpXSwgc29ydEtleSk7CiAJfQpA QCAtMjk1LDcgKzI5OCw4IEBAIHR1cGxlc29ydF9iZWdpbl9jbHVzdGVyKFR1cGxlRGVzYyB0dXBE ZXNjLAogCQkJKHNjYW5LZXktPnNrX2ZsYWdzICYgU0tfQlRfTlVMTFNfRklSU1QpICE9IDA7CiAJ CXNvcnRLZXktPnNzdXBfYXR0bm8gPSBzY2FuS2V5LT5za19hdHRubzsKIAkJLyogQ29udmV5IGlm IGFiYnJldmlhdGlvbiBvcHRpbWl6YXRpb24gaXMgYXBwbGljYWJsZSBpbiBwcmluY2lwbGUgKi8K LQkJc29ydEtleS0+YWJicmV2aWF0ZSA9IChpID09IDAgJiYgYmFzZS0+aGF2ZURhdHVtMSk7CisJ CWlmIChzb3J0X2FiYnJldmlhdGVkX2tleXMpCisJCQlzb3J0S2V5LT5hYmJyZXZpYXRlID0gKGkg PT0gMCAmJiBiYXNlLT5oYXZlRGF0dW0xKTsKIAogCQlBc3NlcnQoc29ydEtleS0+c3N1cF9hdHRu byAhPSAwKTsKIApAQCAtMzc5LDcgKzM4Myw4IEBAIHR1cGxlc29ydF9iZWdpbl9pbmRleF9idHJl ZShSZWxhdGlvbiBoZWFwUmVsLAogCQkJKHNjYW5LZXktPnNrX2ZsYWdzICYgU0tfQlRfTlVMTFNf RklSU1QpICE9IDA7CiAJCXNvcnRLZXktPnNzdXBfYXR0bm8gPSBzY2FuS2V5LT5za19hdHRubzsK IAkJLyogQ29udmV5IGlmIGFiYnJldmlhdGlvbiBvcHRpbWl6YXRpb24gaXMgYXBwbGljYWJsZSBp biBwcmluY2lwbGUgKi8KLQkJc29ydEtleS0+YWJicmV2aWF0ZSA9IChpID09IDAgJiYgYmFzZS0+ aGF2ZURhdHVtMSk7CisJCWlmIChzb3J0X2FiYnJldmlhdGVkX2tleXMpCisJCQlzb3J0S2V5LT5h YmJyZXZpYXRlID0gKGkgPT0gMCAmJiBiYXNlLT5oYXZlRGF0dW0xKTsKIAogCQlBc3NlcnQoc29y dEtleS0+c3N1cF9hdHRubyAhPSAwKTsKIApAQCAtNDk5LDcgKzUwNCw4IEBAIHR1cGxlc29ydF9i ZWdpbl9pbmRleF9naXN0KFJlbGF0aW9uIGhlYXBSZWwsCiAJCXNvcnRLZXktPnNzdXBfbnVsbHNf Zmlyc3QgPSBmYWxzZTsKIAkJc29ydEtleS0+c3N1cF9hdHRubyA9IGkgKyAxOwogCQkvKiBDb252 ZXkgaWYgYWJicmV2aWF0aW9uIG9wdGltaXphdGlvbiBpcyBhcHBsaWNhYmxlIGluIHByaW5jaXBs ZSAqLwotCQlzb3J0S2V5LT5hYmJyZXZpYXRlID0gKGkgPT0gMCAmJiBiYXNlLT5oYXZlRGF0dW0x KTsKKwkJaWYgKHNvcnRfYWJicmV2aWF0ZWRfa2V5cykKKwkJCXNvcnRLZXktPmFiYnJldmlhdGUg PSAoaSA9PSAwICYmIGJhc2UtPmhhdmVEYXR1bTEpOwogCiAJCUFzc2VydChzb3J0S2V5LT5zc3Vw X2F0dG5vICE9IDApOwogCkBAIC01NzMsNyArNTc5LDggQEAgdHVwbGVzb3J0X2JlZ2luX2RhdHVt KE9pZCBkYXR1bVR5cGUsIE9pZCBzb3J0T3BlcmF0b3IsIE9pZCBzb3J0Q29sbGF0aW9uLAogCSAq IGNhbid0LCBiZWNhdXNlIGEgZGF0dW0gc29ydCBvbmx5IHN0b3JlcyBhIHNpbmdsZSBjb3B5IG9m IHRoZSBkYXR1bTsgdGhlCiAJICogInR1cGxlIiBmaWVsZCBvZiBlYWNoIFNvcnRUdXBsZSBpcyBO VUxMLgogCSAqLwotCWJhc2UtPnNvcnRLZXlzLT5hYmJyZXZpYXRlID0gIXR5cGJ5dmFsOworCWlm IChzb3J0X2FiYnJldmlhdGVkX2tleXMpCisJCWJhc2UtPnNvcnRLZXlzLT5hYmJyZXZpYXRlID0g IXR5cGJ5dmFsOwogCiAJUHJlcGFyZVNvcnRTdXBwb3J0RnJvbU9yZGVyaW5nT3Aoc29ydE9wZXJh dG9yLCBiYXNlLT5zb3J0S2V5cyk7CiAKLS0gCjIuMzQuMQoK --=-Y0+zbdBFDCSX/zXGPg06--