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.96) (envelope-from ) id 1vfMYd-001L3I-1v for pgsql-hackers@arkaria.postgresql.org; Mon, 12 Jan 2026 18:22:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vfMYc-001Tj2-2S for pgsql-hackers@arkaria.postgresql.org; Mon, 12 Jan 2026 18:22:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vfMYc-001Tit-07 for pgsql-hackers@lists.postgresql.org; Mon, 12 Jan 2026 18:22:26 +0000 Received: from mail-dy1-x1329.google.com ([2607:f8b0:4864:20::1329]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vfMYZ-0003yx-09 for pgsql-hackers@postgresql.org; Mon, 12 Jan 2026 18:22:25 +0000 Received: by mail-dy1-x1329.google.com with SMTP id 5a478bee46e88-2ad70765db9so11056994eec.1 for ; Mon, 12 Jan 2026 10:22:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1768242142; x=1768846942; darn=postgresql.org; h=mime-version:user-agent:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=c4HlfFACZSxO8FeaItg2n4DeqtsGoLNbnfolOcISfac=; b=DDxM+lkT9p1JCTIxLe9C/m2Gr9I6kp+uwjzLlqvNtUguJ/EG7PnKBcQL+P8Ctesa/S 1ji+eR+MrQxGk1VmZr51VWyXZ/nsEZLJottmWAhrgyT+u1v5AFqXLwZ5tjrU3S5oCCgA AlYaUeEyDjH3uQyQ5BNY/3inHOZIIQ6Okuh6MEyFdrohF0B3Q6rZlM3HZA7ofv/aDZJ+ OJnRKYUjInQHNTnblv6AACggMm6pgZUh8KcFPz/D5SRmH9wt8d597KwfQ9jPvjxlhZe0 YiEarvRMONNXeLFa5vNoKxqssFu61yeZUs72XKcSZNy+hOTNTZKtP2oIQma4MJTmsxkp f0Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768242142; x=1768846942; h=mime-version:user-agent:date:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=c4HlfFACZSxO8FeaItg2n4DeqtsGoLNbnfolOcISfac=; b=XZs63QmTuBWpoD7nl2QH54XyzKxxw0/znz2l1WThxzocL/G8TSiF0pO1UVswIqAEw/ keZfxyQp9bnstbmB9LHMJ9eV6RjH5zptebQEN7wbD+q7Y2z/7kfFupI5MfILIwQRApfx fweWLuGuSs6dkVof8LdAjwJowYqMMXPtK+pwbk76d7Vn6Sx36arsXeoMcf1l36YJM0VW qNfEkRDe1rYGajqNhjvh0rsgKxO2rl4f8Qa0AeRI3IOsAjJJPHKXUnXb+QtBRDSs6xMI FkRkuAquF4o1eqv33VM8mc67g1jjvcM0ohe0jpSY37TlkF2NN7YVqH0P1586bD9LSemA 5TnA== X-Gm-Message-State: AOJu0YzIf8JwY3T9YgEX/awFC+7QMkfzYyIizuTJx/MKEp92hcQPTHR8 shz7kEJ5NTpOtwwmYK0Mch1QmFnHrh6wTf85F/Engk22fW3zov6jis2+dTq4XM6ofo3yTN2os++ u078= X-Gm-Gg: AY/fxX5xkar/m/lri+YKQagPrcdzhzKPuPAQIDIyHk+APRGMjRPXx00MUyA8iY4iUgS cPg0VGZWwwxYKe2zec+3yGKCcF1ch1O0JrVMFeYj2LEjF/aKxGHyMYG3VSspS0Xg1SpVfpQt95e nNy0BZUcUhQcBah6qe30+ysCkuhwnk4KRjXgroMjjfIpK8xPZBZDrOVcNatQ1nGI2ALJmkOu0vy vdAmMfmEf2jCiqq9vDqaNzK6A4G7dlrwl1iK043ihti4kHUvD4loQdtJw0bbKu1JDq+6kZ8cC/D Pv8X0lakbLlG82zExbvtweZBxYEStNUrrUlzRylMc6xxwKz9u4pPlUPpCqSWoMjI/Cf6dB0XMGu V6tMUe09y80qsylXzt/J4DMPZIW+oQKwzwvr3OTfg4Q5LXIN/oOxiDUnDvHZmxhu3nizrKdEcOd /7WHT1orO1jdK2N+69/CyNBmxC6c82QbKXJ7Ox1kTY6zo= X-Google-Smtp-Source: AGHT+IGeNtvVAiJAw26eroEkbrsw00Zayvx5FmilL6RhIr9LLNDy++z/tpHHHWqnTinCgEbUcmBicA== X-Received: by 2002:a05:7301:4085:b0:2ae:5cd4:6513 with SMTP id 5a478bee46e88-2b17d31c0d6mr16710627eec.35.1768242142125; Mon, 12 Jan 2026 10:22:22 -0800 (PST) Received: from jeff-ws-bridge.lan (c-24-7-19-3.hsd1.ca.comcast.net. [24.7.19.3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b170673271sm16108827eec.3.2026.01.12.10.22.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jan 2026 10:22:21 -0800 (PST) Message-ID: <64d7949bad90545f981ac7513fb0b4954daca2c9.camel@j-davis.com> Subject: Use CASEFOLD() internally rather than LOWER() From: Jeff Davis To: pgsql-hackers@postgresql.org Date: Mon, 12 Jan 2026 10:22:20 -0800 Content-Type: multipart/mixed; boundary="=-EGbZubMs7dSGrggbtVl8" User-Agent: Evolution 3.52.3-0ubuntu1.1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-EGbZubMs7dSGrggbtVl8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable There are a number of internal callers of LOWER(), and conceptually those should all be using CASEFOLD(). Patches attached. I'm not sure if we want the citext patch -- it would require REINDEX of all existing citext indexes after upgrade, and there's already a documented tip ("Consider using nondeterministic collations...), so perhaps it's a legacy extension anyway. It would be nice to make the tsearch change this release, as there are already changes that could require a reindex. I didn't change pg_trgm yet, because I think that we have to change the regex machinery to be aware of more than two case variants first (and potentially increasing string lengths, too). Regards, Jeff Davis --=-EGbZubMs7dSGrggbtVl8 Content-Disposition: attachment; filename="v1-0001-ILIKE-use-CASEFOLD-rather-than-LOWER.patch" Content-Type: text/x-patch; name="v1-0001-ILIKE-use-CASEFOLD-rather-than-LOWER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5NGI3NzI5NGFjOTU5MDFmMDdmMWUyYTU3MWZhZDQ4M2E3NDA5NjM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDEyIEphbiAyMDI2IDA4OjU4OjQzIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MSAxLzRdIElM SUtFOiB1c2UgQ0FTRUZPTEQoKSByYXRoZXIgdGhhbiBMT1dFUigpLgoKRm9yIG5vbi1DIGxvY2Fs ZXMsIHdlIGNhc2Vmb2xkIHRoZSBlbnRpcmUgc3RyaW5nIGJlZm9yZSBwZXJmb3JtaW5nCnBhdHRl cm4gbWF0Y2hpbmcgd2l0aCBJTElLRS4gUHJldmlvdXNseSwgY2FzZWZvbGRpbmcgd2FzIGRvbmUg d2l0aCB0aGUKTE9XRVIoKSBmdW5jdGlvbjsgbm93IHRoYXQgYSBwcm9wZXIgQ0FTRUZPTEQoKSBm dW5jdGlvbiBleGlzdHMsIHVzZQp0aGF0IGluc3RlYWQuCgpDQVNFRk9MRCgpIGlzIGJldHRlciB0 aGFuIExPV0VSKCkgZm9yIGNhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbnMgaW4KYnVpbHRpbiBh bmQgSUNVIGxvY2FsZXMuIEZvciBpbnN0YW5jZSwgQ0FTRUZPTEQoKSB0cmFuc2Zvcm1zIGEgR1JF RUsKU01BTEwgTEVUVEVSIEZJTkFMIFNJR01BIChVKzAzQzIpIGludG8gR1JFRUsgU01BTEwgTEVU VEVSIFNJR01BCihVKzAzQzMpIHNvIHRoYXQgdGhlIHR3byBjaGFyYWN0ZXJzIG1hdGNoIGluIGEg Y2FzZS1pbnNlbnNpdGl2ZQpjb21wYXJpc29uOyB3aGVyZWFzIExPV0VSKCkgZG9lcyBub3QgdHJh bnNmb3JtIGl0IGJlY2F1c2UgaXQncyBhbHJlYWR5Cmxvd2VyY2FzZSwgc28gdGhleSB3aWxsIG5v dCBtYXRjaC4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvbGlrZS5jICAgICAgICAgICAgICAg fCAgOCArKystLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLnV0Zjgub3V0 IHwgMjQgKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0 ZS51dGY4LnNxbCAgICAgIHwgIDYgKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2xpa2UuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9saWtlLmMKaW5kZXggMjE0M2Q4NjU4ZTgu LmIwNGM2Y2M2NjYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbGlrZS5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9saWtlLmMKQEAgLTE5MCwxMCArMTkwLDggQEAgR2Vu ZXJpY19UZXh0X0lDX2xpa2UodGV4dCAqc3RyLCB0ZXh0ICpwYXQsIE9pZCBjb2xsYXRpb24pCiAJ CQkJIGVycm1zZygibm9uZGV0ZXJtaW5pc3RpYyBjb2xsYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVk IGZvciBJTElLRSIpKSk7CiAKIAkvKgotCSAqIEZvciBlZmZpY2llbmN5IHJlYXNvbnMsIGluIHRo ZSBDIGxvY2FsZSB3ZSBkb24ndCBjYWxsIGxvd2VyKCkgb24gdGhlCisJICogRm9yIGVmZmljaWVu Y3kgcmVhc29ucywgaW4gdGhlIEMgbG9jYWxlIHdlIGRvbid0IGNhbGwgY2FzZWZvbGQoKSBvbiB0 aGUKIAkgKiBwYXR0ZXJuIGFuZCB0ZXh0LCBidXQgaW5zdGVhZCBsb3dlcmNhc2UgZWFjaCBjaGFy YWN0ZXIgbGF6aWx5LgotCSAqCi0JICogWFhYOiB1c2UgY2FzZWZvbGRpbmcgaW5zdGVhZD8KIAkg Ki8KIAogCWlmIChsb2NhbGUtPmN0eXBlX2lzX2MpCkBAIC0yMDYsMTEgKzIwNCwxMSBAQCBHZW5l cmljX1RleHRfSUNfbGlrZSh0ZXh0ICpzdHIsIHRleHQgKnBhdCwgT2lkIGNvbGxhdGlvbikKIAl9 CiAJZWxzZQogCXsKLQkJcGF0ID0gRGF0dW1HZXRUZXh0UFAoRGlyZWN0RnVuY3Rpb25DYWxsMUNv bGwobG93ZXIsIGNvbGxhdGlvbiwKKwkJcGF0ID0gRGF0dW1HZXRUZXh0UFAoRGlyZWN0RnVuY3Rp b25DYWxsMUNvbGwoY2FzZWZvbGQsIGNvbGxhdGlvbiwKIAkJCQkJCQkJCQkJCQkgUG9pbnRlckdl dERhdHVtKHBhdCkpKTsKIAkJcCA9IFZBUkRBVEFfQU5ZKHBhdCk7CiAJCXBsZW4gPSBWQVJTSVpF X0FOWV9FWEhEUihwYXQpOwotCQlzdHIgPSBEYXR1bUdldFRleHRQUChEaXJlY3RGdW5jdGlvbkNh bGwxQ29sbChsb3dlciwgY29sbGF0aW9uLAorCQlzdHIgPSBEYXR1bUdldFRleHRQUChEaXJlY3RG dW5jdGlvbkNhbGwxQ29sbChjYXNlZm9sZCwgY29sbGF0aW9uLAogCQkJCQkJCQkJCQkJCSBQb2lu dGVyR2V0RGF0dW0oc3RyKSkpOwogCQlzID0gVkFSREFUQV9BTlkoc3RyKTsKIAkJc2xlbiA9IFZB UlNJWkVfQU5ZX0VYSERSKHN0cik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NvbGxhdGUudXRmOC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUu dXRmOC5vdXQKaW5kZXggMGMzYWI1Yzg5YjIuLjNkNDI5MjYxMWUyIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUudXRmOC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jb2xsYXRlLnV0Zjgub3V0CkBAIC0xNjksNiArMTY5LDE4IEBAIHNlbGVj dCBjYXNlZm9sZCgnQWJDZCAxMjMgIyQlIMSxaUnEsCDhup4gw58gx4THhceGIM6jz4PPgicgY29s bGF0ZSBQR19DX1VURjgpOwogIGFiY2QgMTIzICMkJSDEsWlpxLAgw58gw58gx4bHhseGIM+Dz4PP gwogKDEgcm93KQogCitTRUxFQ1QgVSYnz4InIElMSUtFIFUmJ8+DJyBDT0xMQVRFIFBHX0NfVVRG ODsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBVJidzdHJh w59lJyBJTElLRSBVJidTVFJBU1NFJyBDT0xMQVRFIFBHX0NfVVRGODsKKyA/Y29sdW1uPyAKKy0t LS0tLS0tLS0KKyBmCisoMSByb3cpCisKIC0tCiAtLSBUZXN0IFBHX1VOSUNPREVfRkFTVAogLS0K QEAgLTMzOCwzICszNTAsMTUgQEAgc2VsZWN0IGNhc2Vmb2xkKCdBYkNkIDEyMyAjJCUgxLFpScSw IOG6niDDnyDHhMeFx4YgzqPPg8+CJyBjb2xsYXRlIFBHX1VOSUNPREVfRkEKICBhYmNkIDEyMyAj JCUgxLFpaWnMhyBzcyBzcyDHhseGx4Ygz4PPg8+DCiAoMSByb3cpCiAKK1NFTEVDVCBVJifPgicg SUxJS0UgVSYnz4MnIENPTExBVEUgUEdfVU5JQ09ERV9GQVNUOworID9jb2x1bW4/IAorLS0tLS0t LS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIFUmJ3N0cmHDn2UnIElMSUtFIFUmJ1NUUkFTU0Un IENPTExBVEUgUEdfVU5JQ09ERV9GQVNUOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygx IHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS51dGY4LnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUudXRmOC5zcWwKaW5kZXggZDZkMTQyMjBh YjMuLjRhNWU1MTljZjA3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRl LnV0Zjguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUudXRmOC5zcWwKQEAg LTg1LDYgKzg1LDkgQEAgU0VMRUNUICfOtCcgfiogJ1vOky3Om10nIENPTExBVEUgUEdfQ19VVEY4 OyAtLSBzYW1lIGFzIGFib3ZlIHdpdGggY2FzZXMgcmV2ZXJzZWQKIC0tIGNhc2UgZm9sZGluZwog c2VsZWN0IGNhc2Vmb2xkKCdBYkNkIDEyMyAjJCUgxLFpScSwIOG6niDDnyDHhMeFx4YgzqPPg8+C JyBjb2xsYXRlIFBHX0NfVVRGOCk7CiAKK1NFTEVDVCBVJifPgicgSUxJS0UgVSYnz4MnIENPTExB VEUgUEdfQ19VVEY4OworU0VMRUNUIFUmJ3N0cmHDn2UnIElMSUtFIFUmJ1NUUkFTU0UnIENPTExB VEUgUEdfQ19VVEY4OworCiAtLQogLS0gVGVzdCBQR19VTklDT0RFX0ZBU1QKIC0tCkBAIC0xNDgs MyArMTUxLDYgQEAgU0VMRUNUICfOtCcgfiogJ1vOky3Om10nIENPTExBVEUgUEdfVU5JQ09ERV9G QVNUOyAtLSBzYW1lIGFzIGFib3ZlIHdpdGggY2FzZXMgcmUKIAogLS0gY2FzZSBmb2xkaW5nCiBz ZWxlY3QgY2FzZWZvbGQoJ0FiQ2QgMTIzICMkJSDEsWlJxLAg4bqeIMOfIMeEx4XHhiDOo8+Dz4In IGNvbGxhdGUgUEdfVU5JQ09ERV9GQVNUKTsKKworU0VMRUNUIFUmJ8+CJyBJTElLRSBVJifPgycg Q09MTEFURSBQR19VTklDT0RFX0ZBU1Q7CitTRUxFQ1QgVSYnc3RyYcOfZScgSUxJS0UgVSYnU1RS QVNTRScgQ09MTEFURSBQR19VTklDT0RFX0ZBU1Q7Ci0tIAoyLjQzLjAKCg== --=-EGbZubMs7dSGrggbtVl8 Content-Disposition: attachment; filename="v1-0002-citext-use-CASEFOLD-rather-than-LOWER.patch" Content-Type: text/x-patch; name="v1-0002-citext-use-CASEFOLD-rather-than-LOWER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA4NTI2YWUxODg0ZTdkMzZhYjlkMGRhMDZhMWZkMTZiOWVhMGY3MjA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDEyIEphbiAyMDI2IDA5OjA0OjAzIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MSAyLzRdIGNp dGV4dDogdXNlIENBU0VGT0xEKCkgcmF0aGVyIHRoYW4gTE9XRVIoKS4KCkNBU0VGT0xEKCkgaXMg YmV0dGVyIGZvciBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nIGluIGVkZ2UgY2FzZXMuCgpFeGlz dGluZyBjaXRleHQgaW5kZXhlcyByZXF1aXJlIFJFSU5ERVguCi0tLQogY29udHJpYi9jaXRleHQv Y2l0ZXh0LmMgfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEg aW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRl eHQvY2l0ZXh0LmMgYi9jb250cmliL2NpdGV4dC9jaXRleHQuYwppbmRleCBhMTVjZTVkYjgyOS4u MDJjYWQ4YzRhYzMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC5jCisrKyBiL2Nv bnRyaWIvY2l0ZXh0L2NpdGV4dC5jCkBAIC00MywxNSArNDMsMTUgQEAgY2l0ZXh0Y21wKHRleHQg KmxlZnQsIHRleHQgKnJpZ2h0LCBPaWQgY29sbGlkKQogCWludDMyCQlyZXN1bHQ7CiAKIAkvKgot CSAqIFdlIG11c3QgZG8gb3VyIHN0cl90b2xvd2VyIGNhbGxzIHdpdGggREVGQVVMVF9DT0xMQVRJ T05fT0lELCBub3QgdGhlCisJICogV2UgbXVzdCBkbyBvdXIgc3RyX2Nhc2Vmb2xkIGNhbGxzIHdp dGggREVGQVVMVF9DT0xMQVRJT05fT0lELCBub3QgdGhlCiAJICogaW5wdXQgY29sbGF0aW9uIGFz IHlvdSBtaWdodCBleHBlY3QuICBUaGlzIGlzIHNvIHRoYXQgdGhlIGJlaGF2aW9yIG9mCiAJICog Y2l0ZXh0J3MgZXF1YWxpdHkgYW5kIGhhc2hpbmcgZnVuY3Rpb25zIGlzIG5vdCBjb2xsYXRpb24t ZGVwZW5kZW50LiAgV2UKIAkgKiBzaG91bGQgY2hhbmdlIHRoaXMgb25jZSB0aGUgY29yZSBpbmZy YXN0cnVjdHVyZSBpcyBhYmxlIHRvIGNvcGUgd2l0aAogCSAqIGNvbGxhdGlvbi1kZXBlbmRlbnQg ZXF1YWxpdHkgYW5kIGhhc2hpbmcgZnVuY3Rpb25zLgogCSAqLwogCi0JbGNzdHIgPSBzdHJfdG9s b3dlcihWQVJEQVRBX0FOWShsZWZ0KSwgVkFSU0laRV9BTllfRVhIRFIobGVmdCksIERFRkFVTFRf Q09MTEFUSU9OX09JRCk7Ci0JcmNzdHIgPSBzdHJfdG9sb3dlcihWQVJEQVRBX0FOWShyaWdodCks IFZBUlNJWkVfQU5ZX0VYSERSKHJpZ2h0KSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwlsY3N0 ciA9IHN0cl9jYXNlZm9sZChWQVJEQVRBX0FOWShsZWZ0KSwgVkFSU0laRV9BTllfRVhIRFIobGVm dCksIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJcmNzdHIgPSBzdHJfY2FzZWZvbGQoVkFSREFU QV9BTlkocmlnaHQpLCBWQVJTSVpFX0FOWV9FWEhEUihyaWdodCksIERFRkFVTFRfQ09MTEFUSU9O X09JRCk7CiAKIAlyZXN1bHQgPSB2YXJzdHJfY21wKGxjc3RyLCBzdHJsZW4obGNzdHIpLAogCQkJ CQkJcmNzdHIsIHN0cmxlbihyY3N0ciksCkBAIC03Nyw4ICs3Nyw4IEBAIGludGVybmFsX2NpdGV4 dF9wYXR0ZXJuX2NtcCh0ZXh0ICpsZWZ0LCB0ZXh0ICpyaWdodCwgT2lkIGNvbGxpZCkKIAkJCQly bGVuOwogCWludDMyCQlyZXN1bHQ7CiAKLQlsY3N0ciA9IHN0cl90b2xvd2VyKFZBUkRBVEFfQU5Z KGxlZnQpLCBWQVJTSVpFX0FOWV9FWEhEUihsZWZ0KSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsK LQlyY3N0ciA9IHN0cl90b2xvd2VyKFZBUkRBVEFfQU5ZKHJpZ2h0KSwgVkFSU0laRV9BTllfRVhI RFIocmlnaHQpLCBERUZBVUxUX0NPTExBVElPTl9PSUQpOworCWxjc3RyID0gc3RyX2Nhc2Vmb2xk KFZBUkRBVEFfQU5ZKGxlZnQpLCBWQVJTSVpFX0FOWV9FWEhEUihsZWZ0KSwgREVGQVVMVF9DT0xM QVRJT05fT0lEKTsKKwlyY3N0ciA9IHN0cl9jYXNlZm9sZChWQVJEQVRBX0FOWShyaWdodCksIFZB UlNJWkVfQU5ZX0VYSERSKHJpZ2h0KSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKIAogCWxsZW4g PSBzdHJsZW4obGNzdHIpOwogCXJsZW4gPSBzdHJsZW4ocmNzdHIpOwpAQCAtMTQ3LDcgKzE0Nyw3 IEBAIGNpdGV4dF9oYXNoKFBHX0ZVTkNUSU9OX0FSR1MpCiAJY2hhcgkgICAqc3RyOwogCURhdHVt CQlyZXN1bHQ7CiAKLQlzdHIgPSBzdHJfdG9sb3dlcihWQVJEQVRBX0FOWSh0eHQpLCBWQVJTSVpF X0FOWV9FWEhEUih0eHQpLCBERUZBVUxUX0NPTExBVElPTl9PSUQpOworCXN0ciA9IHN0cl9jYXNl Zm9sZChWQVJEQVRBX0FOWSh0eHQpLCBWQVJTSVpFX0FOWV9FWEhEUih0eHQpLCBERUZBVUxUX0NP TExBVElPTl9PSUQpOwogCXJlc3VsdCA9IGhhc2hfYW55KCh1bnNpZ25lZCBjaGFyICopIHN0ciwg c3RybGVuKHN0cikpOwogCXBmcmVlKHN0cik7CiAKQEAgLTE2Nyw3ICsxNjcsNyBAQCBjaXRleHRf aGFzaF9leHRlbmRlZChQR19GVU5DVElPTl9BUkdTKQogCWNoYXIJICAgKnN0cjsKIAlEYXR1bQkJ cmVzdWx0OwogCi0Jc3RyID0gc3RyX3RvbG93ZXIoVkFSREFUQV9BTlkodHh0KSwgVkFSU0laRV9B TllfRVhIRFIodHh0KSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwlzdHIgPSBzdHJfY2FzZWZv bGQoVkFSREFUQV9BTlkodHh0KSwgVkFSU0laRV9BTllfRVhIRFIodHh0KSwgREVGQVVMVF9DT0xM QVRJT05fT0lEKTsKIAlyZXN1bHQgPSBoYXNoX2FueV9leHRlbmRlZCgodW5zaWduZWQgY2hhciAq KSBzdHIsIHN0cmxlbihzdHIpLCBzZWVkKTsKIAlwZnJlZShzdHIpOwogCkBAIC0xOTYsOCArMTk2 LDggQEAgY2l0ZXh0X2VxKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBXZSBjYW4ndCBjb21wYXJl IGxlbmd0aHMgaW4gYWR2YW5jZSBvZiBkb3duY2FzaW5nIC4uLiAqLwogCi0JbGNzdHIgPSBzdHJf dG9sb3dlcihWQVJEQVRBX0FOWShsZWZ0KSwgVkFSU0laRV9BTllfRVhIRFIobGVmdCksIERFRkFV TFRfQ09MTEFUSU9OX09JRCk7Ci0JcmNzdHIgPSBzdHJfdG9sb3dlcihWQVJEQVRBX0FOWShyaWdo dCksIFZBUlNJWkVfQU5ZX0VYSERSKHJpZ2h0KSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwls Y3N0ciA9IHN0cl9jYXNlZm9sZChWQVJEQVRBX0FOWShsZWZ0KSwgVkFSU0laRV9BTllfRVhIRFIo bGVmdCksIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJcmNzdHIgPSBzdHJfY2FzZWZvbGQoVkFS REFUQV9BTlkocmlnaHQpLCBWQVJTSVpFX0FOWV9FWEhEUihyaWdodCksIERFRkFVTFRfQ09MTEFU SU9OX09JRCk7CiAKIAkvKgogCSAqIFNpbmNlIHdlIG9ubHkgY2FyZSBhYm91dCBlcXVhbGl0eSBv ciBub3QtZXF1YWxpdHksIHdlIGNhbiBhdm9pZCBhbGwgdGhlCkBAIC0yMjYsOCArMjI2LDggQEAg Y2l0ZXh0X25lKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBXZSBjYW4ndCBjb21wYXJlIGxlbmd0 aHMgaW4gYWR2YW5jZSBvZiBkb3duY2FzaW5nIC4uLiAqLwogCi0JbGNzdHIgPSBzdHJfdG9sb3dl cihWQVJEQVRBX0FOWShsZWZ0KSwgVkFSU0laRV9BTllfRVhIRFIobGVmdCksIERFRkFVTFRfQ09M TEFUSU9OX09JRCk7Ci0JcmNzdHIgPSBzdHJfdG9sb3dlcihWQVJEQVRBX0FOWShyaWdodCksIFZB UlNJWkVfQU5ZX0VYSERSKHJpZ2h0KSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwlsY3N0ciA9 IHN0cl9jYXNlZm9sZChWQVJEQVRBX0FOWShsZWZ0KSwgVkFSU0laRV9BTllfRVhIRFIobGVmdCks IERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJcmNzdHIgPSBzdHJfY2FzZWZvbGQoVkFSREFUQV9B TlkocmlnaHQpLCBWQVJTSVpFX0FOWV9FWEhEUihyaWdodCksIERFRkFVTFRfQ09MTEFUSU9OX09J RCk7CiAKIAkvKgogCSAqIFNpbmNlIHdlIG9ubHkgY2FyZSBhYm91dCBlcXVhbGl0eSBvciBub3Qt ZXF1YWxpdHksIHdlIGNhbiBhdm9pZCBhbGwgdGhlCi0tIAoyLjQzLjAKCg== --=-EGbZubMs7dSGrggbtVl8 Content-Disposition: attachment; filename="v1-0003-dict_xsyn-use-CASEFOLD-rather-than-LOWER.patch" Content-Type: text/x-patch; name="v1-0003-dict_xsyn-use-CASEFOLD-rather-than-LOWER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAxOWMyZDFkNDEzZDc4NDJlNmM5MGMyMzdmYWIzM2ZlMGY5M2NhZjgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDEyIEphbiAyMDI2IDA5OjExOjU2IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MSAzLzRdIGRp Y3RfeHN5bjogdXNlIENBU0VGT0xEKCkgcmF0aGVyIHRoYW4gTE9XRVIoKS4KCkNBU0VGT0xEIGlz IGJldHRlciBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBpbiBlZGdlIGNhc2VzLgotLS0K IGNvbnRyaWIvZGljdF94c3luL2RpY3RfeHN5bi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZGlj dF94c3luL2RpY3RfeHN5bi5jIGIvY29udHJpYi9kaWN0X3hzeW4vZGljdF94c3luLmMKaW5kZXgg NWM0OTE3Y2UxZmMuLjYxMzUyN2ZkMzkyIDEwMDY0NAotLS0gYS9jb250cmliL2RpY3RfeHN5bi9k aWN0X3hzeW4uYworKysgYi9jb250cmliL2RpY3RfeHN5bi9kaWN0X3hzeW4uYwpAQCAtOTgsNyAr OTgsNyBAQCByZWFkX2RpY3Rpb25hcnkoRGljdFN5biAqZCwgY29uc3QgY2hhciAqZmlsZW5hbWUp CiAJCWlmICgqbGluZSA9PSAnXDAnKQogCQkJY29udGludWU7CiAKLQkJdmFsdWUgPSBzdHJfdG9s b3dlcihsaW5lLCBzdHJsZW4obGluZSksIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJCXZhbHVl ID0gc3RyX2Nhc2Vmb2xkKGxpbmUsIHN0cmxlbihsaW5lKSwgREVGQVVMVF9DT0xMQVRJT05fT0lE KTsKIAkJcGZyZWUobGluZSk7CiAKIAkJcG9zID0gdmFsdWU7CkBAIC0yMTUsNyArMjE1LDcgQEAg ZHhzeW5fbGV4aXplKFBHX0ZVTkNUSU9OX0FSR1MpCiAJewogCQljaGFyCSAgICp0ZW1wID0gcG5z dHJkdXAoaW4sIGxlbmd0aCk7CiAKLQkJd29yZC5rZXkgPSBzdHJfdG9sb3dlcih0ZW1wLCBsZW5n dGgsIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJCXdvcmQua2V5ID0gc3RyX2Nhc2Vmb2xkKHRl bXAsIGxlbmd0aCwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKIAkJcGZyZWUodGVtcCk7CiAJCXdv cmQudmFsdWUgPSBOVUxMOwogCX0KLS0gCjIuNDMuMAoK --=-EGbZubMs7dSGrggbtVl8 Content-Disposition: attachment; filename="v1-0004-tsearch-use-CASEFOLD-rather-than-LOWER.patch" Content-Type: text/x-patch; name="v1-0004-tsearch-use-CASEFOLD-rather-than-LOWER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3ZGZjYzU4ZTQ4YmFmOWFhOWE4ZmE2ZjQxYzBjOTRiMWQ2ZDE2YmFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDEyIEphbiAyMDI2IDA5OjI0OjE2IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MSA0LzRdIHRz ZWFyY2g6IHVzZSBDQVNFRk9MRCgpIHJhdGhlciB0aGFuIExPV0VSKCkuCgpDQVNFRk9MRCgpIGlz IGJldHRlciBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBpbiBlZGdlIGNhc2VzLgotLS0K IHNyYy9iYWNrZW5kL3Nub3diYWxsL2RpY3Rfc25vd2JhbGwuYyB8IDQgKystLQogc3JjL2JhY2tl bmQvdHNlYXJjaC9kaWN0X2lzcGVsbC5jICAgIHwgNCArKy0tCiBzcmMvYmFja2VuZC90c2VhcmNo L2RpY3Rfc2ltcGxlLmMgICAgfCA0ICsrLS0KIHNyYy9iYWNrZW5kL3RzZWFyY2gvZGljdF9zeW5v bnltLmMgICB8IDYgKysrLS0tCiBzcmMvYmFja2VuZC90c2VhcmNoL3NwZWxsLmMgICAgICAgICAg fCA2ICsrKy0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zbm93YmFsbC9kaWN0X3Nub3diYWxsLmMg Yi9zcmMvYmFja2VuZC9zbm93YmFsbC9kaWN0X3Nub3diYWxsLmMKaW5kZXggMTgyYmQxNTY5OTUu LmNiMmQzMDYxOTUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zbm93YmFsbC9kaWN0X3Nub3di YWxsLmMKKysrIGIvc3JjL2JhY2tlbmQvc25vd2JhbGwvZGljdF9zbm93YmFsbC5jCkBAIC0yNTEs NyArMjUxLDcgQEAgZHNub3diYWxsX2luaXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks CiAJCQkJCQkgZXJybXNnKCJtdWx0aXBsZSBTdG9wV29yZHMgcGFyYW1ldGVycyIpKSk7Ci0JCQly ZWFkc3RvcGxpc3QoZGVmR2V0U3RyaW5nKGRlZmVsKSwgJmQtPnN0b3BsaXN0LCBzdHJfdG9sb3dl cik7CisJCQlyZWFkc3RvcGxpc3QoZGVmR2V0U3RyaW5nKGRlZmVsKSwgJmQtPnN0b3BsaXN0LCBz dHJfY2FzZWZvbGQpOwogCQkJc3RvcGxvYWRlZCA9IHRydWU7CiAJCX0KIAkJZWxzZSBpZiAoc3Ry Y21wKGRlZmVsLT5kZWZuYW1lLCAibGFuZ3VhZ2UiKSA9PSAwKQpAQCAtMjg3LDcgKzI4Nyw3IEBA IGRzbm93YmFsbF9sZXhpemUoUEdfRlVOQ1RJT05fQVJHUykKIAlEaWN0U25vd2JhbGwgKmQgPSAo RGljdFNub3diYWxsICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwogCWNoYXIJICAgKmluID0gKGNo YXIgKikgUEdfR0VUQVJHX1BPSU5URVIoMSk7CiAJaW50MzIJCWxlbiA9IFBHX0dFVEFSR19JTlQz MigyKTsKLQljaGFyCSAgICp0eHQgPSBzdHJfdG9sb3dlcihpbiwgbGVuLCBERUZBVUxUX0NPTExB VElPTl9PSUQpOworCWNoYXIJICAgKnR4dCA9IHN0cl9jYXNlZm9sZChpbiwgbGVuLCBERUZBVUxU X0NPTExBVElPTl9PSUQpOwogCVRTTGV4ZW1lICAgKnJlcyA9IHBhbGxvYzBfYXJyYXkoVFNMZXhl bWUsIDIpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvZGljdF9pc3Bl bGwuYyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvZGljdF9pc3BlbGwuYwppbmRleCBhZDVjMjZlYmNj Yi4uYmRjZmM4MzZlODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvZGljdF9pc3Bl bGwuYworKysgYi9zcmMvYmFja2VuZC90c2VhcmNoL2RpY3RfaXNwZWxsLmMKQEAgLTc5LDcgKzc5 LDcgQEAgZGlzcGVsbF9pbml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJZXJlcG9ydChFUlJPUiwK IAkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkJ IGVycm1zZygibXVsdGlwbGUgU3RvcFdvcmRzIHBhcmFtZXRlcnMiKSkpOwotCQkJcmVhZHN0b3Bs aXN0KGRlZkdldFN0cmluZyhkZWZlbCksICYoZC0+c3RvcGxpc3QpLCBzdHJfdG9sb3dlcik7CisJ CQlyZWFkc3RvcGxpc3QoZGVmR2V0U3RyaW5nKGRlZmVsKSwgJihkLT5zdG9wbGlzdCksIHN0cl9j YXNlZm9sZCk7CiAJCQlzdG9wbG9hZGVkID0gdHJ1ZTsKIAkJfQogCQllbHNlCkBAIC0xMjgsNyAr MTI4LDcgQEAgZGlzcGVsbF9sZXhpemUoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAobGVuIDw9IDAp CiAJCVBHX1JFVFVSTl9QT0lOVEVSKE5VTEwpOwogCi0JdHh0ID0gc3RyX3RvbG93ZXIoaW4sIGxl biwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwl0eHQgPSBzdHJfY2FzZWZvbGQoaW4sIGxlbiwg REVGQVVMVF9DT0xMQVRJT05fT0lEKTsKIAlyZXMgPSBOSU5vcm1hbGl6ZVdvcmQoJihkLT5vYmop LCB0eHQpOwogCiAJaWYgKHJlcyA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdHNl YXJjaC9kaWN0X3NpbXBsZS5jIGIvc3JjL2JhY2tlbmQvdHNlYXJjaC9kaWN0X3NpbXBsZS5jCmlu ZGV4IDQ0ZDk0NWIyYmU4Li41MmRmNTI1MWUyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdHNl YXJjaC9kaWN0X3NpbXBsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvZGljdF9zaW1wbGUu YwpAQCAtNDgsNyArNDgsNyBAQCBkc2ltcGxlX2luaXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9W QUxVRSksCiAJCQkJCQkgZXJybXNnKCJtdWx0aXBsZSBTdG9wV29yZHMgcGFyYW1ldGVycyIpKSk7 Ci0JCQlyZWFkc3RvcGxpc3QoZGVmR2V0U3RyaW5nKGRlZmVsKSwgJmQtPnN0b3BsaXN0LCBzdHJf dG9sb3dlcik7CisJCQlyZWFkc3RvcGxpc3QoZGVmR2V0U3RyaW5nKGRlZmVsKSwgJmQtPnN0b3Bs aXN0LCBzdHJfY2FzZWZvbGQpOwogCQkJc3RvcGxvYWRlZCA9IHRydWU7CiAJCX0KIAkJZWxzZSBp ZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiYWNjZXB0IikgPT0gMCkKQEAgLTgxLDcgKzgxLDcg QEAgZHNpbXBsZV9sZXhpemUoUEdfRlVOQ1RJT05fQVJHUykKIAljaGFyCSAgICp0eHQ7CiAJVFNM ZXhlbWUgICAqcmVzOwogCi0JdHh0ID0gc3RyX3RvbG93ZXIoaW4sIGxlbiwgREVGQVVMVF9DT0xM QVRJT05fT0lEKTsKKwl0eHQgPSBzdHJfY2FzZWZvbGQoaW4sIGxlbiwgREVGQVVMVF9DT0xMQVRJ T05fT0lEKTsKIAogCWlmICgqdHh0ID09ICdcMCcgfHwgc2VhcmNoc3RvcGxpc3QoJihkLT5zdG9w bGlzdCksIHR4dCkpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdHNlYXJjaC9kaWN0X3N5 bm9ueW0uYyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvZGljdF9zeW5vbnltLmMKaW5kZXggNmRlZTI4 YWU1MjUuLmI1ZmY4YzIzY2FiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90c2VhcmNoL2RpY3Rf c3lub255bS5jCisrKyBiL3NyYy9iYWNrZW5kL3RzZWFyY2gvZGljdF9zeW5vbnltLmMKQEAgLTE4 NSw4ICsxODUsOCBAQCBkc3lub255bV9pbml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCX0KIAkJZWxz ZQogCQl7Ci0JCQlkLT5zeW5bY3VyXS5pbiA9IHN0cl90b2xvd2VyKHN0YXJ0aSwgc3RybGVuKHN0 YXJ0aSksIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7Ci0JCQlkLT5zeW5bY3VyXS5vdXQgPSBzdHJf dG9sb3dlcihzdGFydG8sIHN0cmxlbihzdGFydG8pLCBERUZBVUxUX0NPTExBVElPTl9PSUQpOwor CQkJZC0+c3luW2N1cl0uaW4gPSBzdHJfY2FzZWZvbGQoc3RhcnRpLCBzdHJsZW4oc3RhcnRpKSwg REVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwkJCWQtPnN5bltjdXJdLm91dCA9IHN0cl9jYXNlZm9s ZChzdGFydG8sIHN0cmxlbihzdGFydG8pLCBERUZBVUxUX0NPTExBVElPTl9PSUQpOwogCQl9CiAK IAkJZC0+c3luW2N1cl0ub3V0bGVuID0gc3RybGVuKHN0YXJ0byk7CkBAIC0yMjYsNyArMjI2LDcg QEAgZHN5bm9ueW1fbGV4aXplKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKGQtPmNhc2Vfc2Vuc2l0 aXZlKQogCQlrZXkuaW4gPSBwbnN0cmR1cChpbiwgbGVuKTsKIAllbHNlCi0JCWtleS5pbiA9IHN0 cl90b2xvd2VyKGluLCBsZW4sIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJCWtleS5pbiA9IHN0 cl9jYXNlZm9sZChpbiwgbGVuLCBERUZBVUxUX0NPTExBVElPTl9PSUQpOwogCiAJa2V5Lm91dCA9 IE5VTEw7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvc3BlbGwuYyBiL3NyYy9i YWNrZW5kL3RzZWFyY2gvc3BlbGwuYwppbmRleCBlMzQzNmRiZGRkMi4uZTk0NmI4OGYzOGIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvc3BlbGwuYworKysgYi9zcmMvYmFja2VuZC90 c2VhcmNoL3NwZWxsLmMKQEAgLTE3MCw3ICsxNzAsNyBAQCBjcHN0cmR1cChJc3BlbGxEaWN0ICpD b25mLCBjb25zdCBjaGFyICpzdHIpCiAKIAogLyoKLSAqIEFwcGx5IHN0cl90b2xvd2VyKCksIHBy b2R1Y2luZyBhIHRlbXBvcmFyeSByZXN1bHQgKGluIHRoZSBidWlsZEN4dCkuCisgKiBBcHBseSBz dHJfY2FzZWZvbGQoKSwgcHJvZHVjaW5nIGEgdGVtcG9yYXJ5IHJlc3VsdCAoaW4gdGhlIGJ1aWxk Q3h0KS4KICAqLwogc3RhdGljIGNoYXIgKgogbG93ZXJzdHJfY3R4KElzcGVsbERpY3QgKkNvbmYs IGNvbnN0IGNoYXIgKnNyYykKQEAgLTE3OSw3ICsxNzksNyBAQCBsb3dlcnN0cl9jdHgoSXNwZWxs RGljdCAqQ29uZiwgY29uc3QgY2hhciAqc3JjKQogCWNoYXIJICAgKmRzdDsKIAogCXNhdmVDdHgg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQ29uZi0+YnVpbGRDeHQpOwotCWRzdCA9IHN0cl90b2xv d2VyKHNyYywgc3RybGVuKHNyYyksIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJZHN0ID0gc3Ry X2Nhc2Vmb2xkKHNyYywgc3RybGVuKHNyYyksIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CiAJTWVt b3J5Q29udGV4dFN3aXRjaFRvKHNhdmVDdHgpOwogCiAJcmV0dXJuIGRzdDsKQEAgLTE0NTMsNyAr MTQ1Myw3IEBAIE5JSW1wb3J0QWZmaXhlcyhJc3BlbGxEaWN0ICpDb25mLCBjb25zdCBjaGFyICpm aWxlbmFtZSkKIAogCXdoaWxlICgocmVjb2RlZCA9IHRzZWFyY2hfcmVhZGxpbmUoJnRyc3QpKSAh PSBOVUxMKQogCXsKLQkJcHN0ciA9IHN0cl90b2xvd2VyKHJlY29kZWQsIHN0cmxlbihyZWNvZGVk KSwgREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKKwkJcHN0ciA9IHN0cl9jYXNlZm9sZChyZWNvZGVk LCBzdHJsZW4ocmVjb2RlZCksIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CiAKIAkJLyogU2tpcCBj b21tZW50cyBhbmQgZW1wdHkgbGluZXMgKi8KIAkJaWYgKCpwc3RyID09ICcjJyB8fCAqcHN0ciA9 PSAnXG4nKQotLSAKMi40My4wCgo= --=-EGbZubMs7dSGrggbtVl8--