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 1w2v51-000jKG-1K for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 17:53:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2v50-00D6Mr-0W for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 17:53:14 +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 1w2v4z-00D6Mj-1y for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 17:53:13 +0000 Received: from mail-lj1-x233.google.com ([2a00:1450:4864:20::233]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2v4v-00000000One-0wkN for pgsql-hackers@postgresql.org; Wed, 18 Mar 2026 17:53:12 +0000 Received: by mail-lj1-x233.google.com with SMTP id 38308e7fff4ca-38a01c80c34so1726431fa.0 for ; Wed, 18 Mar 2026 10:53:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773856388; cv=none; d=google.com; s=arc-20240605; b=M9fuF067AyMAPXyMIZgvIpZhYn26uDJiDnxIlQb7CK7RfHAGCHZFQqyS8p4ve+Pr0o FA1/5wSj+L3wsdVwKZLgHyRp1nVYkHmo7OJbm3yafAsB+VsyFvZqhwjZ5DPjWXjWDG0I Ud0tTpLI3ELKxEqTi7PqY+dhBOfZsqF62acT8fWl7+Krju87DmFpfvAuYfGHG/AziFwM Dh0dxoYiYzbQemmYg1w3+1an7Bsoi7AUuSb1NZBKGfMU3m/KR00ZGN7Z+Ug3phKWdUlL 2w/U5r2bkhK/uw0C19OYQqHyY7Up2mHvx81wU9E3J17gXPClTFwJXgvi7gHf6T1HpSs/ GfmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=4C7+fiCEj/GjXPjcl8lRmb2bY7fKgOriFF7AF0rqNhk=; fh=CxfoJStH4fCSlq3yKEGqrExzAXOoVwKLmwCt3bqZcw8=; b=gjDbJAAcwOlLhG1r8GF2oXWREzrrs36fm+FjQQQrh5ShY+UkagzTUb/xSn3XhNIH7X Zl9F/DdAnEOVhA3Wwc1rjJ+4l7y1h9BDR4ed5iWzZTmXjOy2dpyz0tqqD8k+Gjvl+CVt hBYZqzEvcZLXsXN41HdNHtIScyWtbOg3V1QRY6toHDpgMLvgU3fTsmUvgKRe6Fkp1JVE cz/DLndXhB3nVCzYdxr29nV602v+XWrsjFCr4aVvusUyNvQlVcWrtYoECtcj/sUKtxsZ 0+tqxjPuUmkA3tOiBpX1c+nqWgxHaZev7Cc94T+8intLRYCcJ6t96YR+xlsi3i8EZJnC Vy4Q==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773856388; x=1774461188; darn=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=4C7+fiCEj/GjXPjcl8lRmb2bY7fKgOriFF7AF0rqNhk=; b=AWsMjrJOMZ/PTqPgmMNcG9MP5vE8Tu4jbLpC/8SJ9H/6wTm+YYk1RZxHtSlJ8s+nYS zjetZ6kD3MO/Fej9dDMlO3WmZX0W9/agMpRDxYG0ANrg1cIrxQnARDwIfM8ZuZ7LCgLE G/JbG43FHXYJrrQvh6m/c2zbsgS/K0VGbtR7Fkx1K6VyNspnUWKced1Qf3BtgY/CqAJi yEyC5B72QCRNvxGO3Usx/1WEC94T8WGcR1zPsCEE8+JmglHvXkFmQ+iYl8iwGZxqSe20 KVeXXJbZYx3hh2AUnXVlAslMZYfvbyz2ZXGL8GhvB99b67DZD46BhYlLYGuECAm/LJ4y 0krA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773856388; x=1774461188; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4C7+fiCEj/GjXPjcl8lRmb2bY7fKgOriFF7AF0rqNhk=; b=gmIq8QZwhlAgiQ7rLVT6UQykVDVsWcZ32lwi2+T0urMTqbWyGkt6LyJUTjDdb2Tocc h0jPxg/x4wqIKumNPFaRAugqWRBAVnyaG8ebq483SMMtT6xIMxv2l2sZrCWLkAn4APdb rNct9SS8Oj0Ogm6MttDShoJ77LZF0p9LYqdAaUDWb7Dts9jk1EzW4ADngcIYTr4pTuWi Bw5Vt0/N0uxGELSC868qHW8SyRAi8aRzKA4vdaFbyIM3YBeIydCRLXFSpzugfMgX//RS wvfoJ04thCUI97abRYxFJ0GG+Yymki48pqzl38015vSWhIvP5HvEFfs7uYtQMAr/tMXG Mf/w== X-Gm-Message-State: AOJu0YxeeVEDb4V6VhN9MxnKypZgM+RNn2OWQw5T7DArwHMBJlGvIrC4 xQig7S45CdHqD23qQrvhdm9cEtyV6K5gflZv/mzBxdo3borH1m3zkRDXhKpKLv8vOXRY8hmBg1G 1ynpUKwp1EV4+/NgY7CD9n9xa01XptKs= X-Gm-Gg: ATEYQzx9Hbo8+dYQdCl24QYHcHu2WpL/krqIpdIYd7aTVXZ+v41JVqL5VmZMsZKVsDT Whx5zLLwNvpaOu2cyRP+F1ZLixOXyf14fVxO68vAKDnId36lmNceXCMB6JIUsBYEorcdU3fssM0 87SedWY7FL/h1o2F8MgN0gCTcnn3yvqjDRBftTa01YHSgXvtwuEhfEdChmTLP8zZUnSZq9EONdL EOn13NPBN2n/JF4tFs1ltGAUEbUyUzr6GrvpPtjRRO9O8nB113LTkqTPkWGJgmz/zPbLwl1Y/Qf gkBtS+iT X-Received: by 2002:a2e:6e15:0:b0:389:fb7f:3def with SMTP id 38308e7fff4ca-38bd58505b9mr15082021fa.23.1773856387737; Wed, 18 Mar 2026 10:53:07 -0700 (PDT) MIME-Version: 1.0 References: <1791665551.452444.1761209220211.ref@mail.yahoo.com> <18022523-0F8F-4C07-AFF5-57DC9086D78E@yandex-team.ru> <1895971769.8343.1761240853939@mail.yahoo.com> <574624399.175025.1761290201491@mail.yahoo.com> <953203149.383019.1761345585325@mail.yahoo.com> <6F76FA61-E2DC-44EF-9504-889D9BDB4EBD@yandex-team.ru> <1154454839.957923.1761604611424@mail.yahoo.com> <87ldkv8cog.fsf@wibble.ilmari.org> <87ikfz7zcu.fsf@wibble.ilmari.org> <9CB824CC-70DC-4165-AC6A-9664F47209EE@yandex-team.ru> In-Reply-To: From: Masahiko Sawada Date: Wed, 18 Mar 2026 10:52:30 -0700 X-Gm-Features: AaiRm52YeKIPO2jJU6ZpLv85lQ8FbclsrOVPnzsQUznBuvbBFtC0Awn2IqKM790 Message-ID: Subject: Re: Add uuid_to_base32hex() and base32hex_to_uuid() built-in functions To: Aleksander Alekseev Cc: pgsql-hackers , Andrey Borodin , =?UTF-8?Q?Dagfinn_Ilmari_Manns=C3=A5ker?= Content-Type: multipart/mixed; boundary="000000000000dfca10064d501f4e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000dfca10064d501f4e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 18, 2026 at 4:14=E2=80=AFAM Aleksander Alekseev wrote: > > Hi, > > > I've attached a patch for the 0002 patch part that fixes the above > > points (except for the last point) and has some minor fixes as well. > > Applied, thanks. > > > + /* Verify no extra bits remain (padding bits should be zero) */ > > + if (bits_in_buffer > 0 && (bits_buffer & ((1ULL << bits_in_buffer) > > - 1)) !=3D 0) > > + ereport(ERROR, > > + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), > > + errmsg("invalid base32hex end sequence"), > > + errhint("Input data has non-zero padding bits."))); > > > > This code checks if the remaining bits of the input data are all zero. > > IIUC we don't have a similar check for base64 and base64url. For > > instance, the following input data is accepted: > > > > =3D# select decode('AB', 'base64'); > > decode > > -------- > > \x00 > > (1 row) > > > > I think it's better to have consistent behavior across our encoding. > > Agree. Fixed. Thank you for updating the patches! I've made some minor changes to both patches (e.g., rewording the documentation changes and commit messages etc), and attached the updated patches. I'm going to push these patches unless there is no further comment. Regards, --=20 Masahiko Sawada Amazon Web Services: https://aws.amazon.com --000000000000dfca10064d501f4e Content-Type: text/x-patch; charset="UTF-8"; name="v7-0002-Add-base32hex-support-to-encode-and-decode-functi.patch" Content-Disposition: attachment; filename="v7-0002-Add-base32hex-support-to-encode-and-decode-functi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmwc8tmv0 RnJvbSA1ZmMwMzlkZjU1MDA4ZmY4NTc4YTE2Y2IyNzY5N2I1NTQwN2JkNmM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgQm9yb2RpbiA8YW1ib3JvZGluQGFjbS5vcmc+CkRh dGU6IFdlZCwgMjkgT2N0IDIwMjUgMTU6NTM6MTIgKzA0MDAKU3ViamVjdDogW1BBVENIIHY3IDIv Ml0gQWRkIGJhc2UzMmhleCBzdXBwb3J0IHRvIGVuY29kZSgpIGFuZCBkZWNvZGUoKQogZnVuY3Rp b25zLgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKVGhpcyBhZGRzIHN1cHBvcnQg Zm9yIGJhc2UzMmhleCBlbmNvZGluZyBhbmQgZGVjb2RpbmcsIGFzIGRlZmluZWQgaW4KUkZDIDQ2 NDggU2VjdGlvbiA3LiBVbmxpa2Ugc3RhbmRhcmQgYmFzZTMyLCBiYXNlMzJoZXggdXNlcyB0aGUK ZXh0ZW5kZWQgaGV4IGFscGhhYmV0ICgwLTksIEEtVikgd2hpY2ggcHJlc2VydmVzIHRoZSBsZXhp Y29ncmFwaGljYWwKb3JkZXIgb2YgdGhlIGVuY29kZWQgZGF0YS4KClRoaXMgaXMgcGFydGljdWxh cmx5IHVzZWZ1bCBmb3IgcmVwcmVzZW50aW5nIFVVSUR2NyB2YWx1ZXMgaW4gYQpjb21wYWN0IHN0 cmluZyBmb3JtYXQgd2hpbGUgbWFpbnRhaW5pbmcgdGhlaXIgdGltZS1vcmRlcmVkIHNvcnQKcHJv cGVydHkuCgpUaGUgZW5jb2RlKCkgZnVuY3Rpb24gcHJvZHVjZXMgb3V0cHV0IHBhZGRlZCB3aXRo ICc9Jywgd2hpbGUgZGVjb2RlKCkKYWNjZXB0cyBib3RoIHBhZGRlZCBhbmQgdW5wYWRkZWQgaW5w dXQuIEZvbGxvd2luZyB0aGUgYmVoYXZpb3Igb2YKb3RoZXIgZW5jb2RpbmcgdHlwZXMsIGRlY29k aW5nIGlzIGNhc2UtaW5zZW5zaXRpdmUuCgpTdWdnZXN0ZWQtYnk6IFNlcmdleSBQcm9raG9yZW5r byA8c2VyZ2V5cHJva2hvcmVua29AeWFob28uY29tLmF1PgpBdXRob3I6IEFuZHJleSBCb3JvZGlu IDx4NG1tbUB5YW5kZXgtdGVhbS5ydT4KQ28tYXV0aG9yZWQtYnk6IEFsZWtzYW5kZXIgQWxla3Nl ZXYgPGFsZWtzYW5kZXJAdGlnZXJkYXRhLmNvbT4KUmV2aWV3ZWQtYnk6IE1hc2FoaWtvIFNhd2Fk YSA8c2F3YWRhLm1zaGtAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog0JjQu9GM0Y8g0KfQtdGA0LTQ sNC60L7QsiA8aS5jaGVyZGFrb3YucGdAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tL0NBSjdjNlRPcmFtcjFVVExjeUIxMjhMV01xaXRhMVk3JTNEYXJxM0tIYVUlM0Rx aWtmNXlLT1ElNDBtYWlsLmdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtYmlu YXJ5c3RyaW5nLnNnbWwgfCAgMjcgKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2VuY29kZS5j ICAgICAgICAgICB8IDE1MiArKysrKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zdHJpbmdzLm91dCAgICB8IDExNyArKysrKysrKysrKysrKysrLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC91dWlkLm91dCAgICAgICB8ICAxNiArKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3N0cmluZ3Muc3FsICAgICAgICAgfCAgMzAgKysrKy0KIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3V1aWQuc3FsICAgICAgICAgICAgfCAgIDkgKysKIDYgZmlsZXMgY2hhbmdlZCwgMzQz IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2Z1bmMvZnVuYy1iaW5hcnlzdHJpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtYmlu YXJ5c3RyaW5nLnNnbWwKaW5kZXggYjI1NjM4MWUwMWYuLjNmNzdmNmQyMGIwIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWJpbmFyeXN0cmluZy5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9mdW5jL2Z1bmMtYmluYXJ5c3RyaW5nLnNnbWwKQEAgLTcyOSw2ICs3MjksNyBAQAogICAg ICAgIDxwYXJhbWV0ZXI+Zm9ybWF0PC9wYXJhbWV0ZXI+IHZhbHVlcyBhcmU6CiAgICAgICAgPGxp bmsgbGlua2VuZD0iZW5jb2RlLWZvcm1hdC1iYXNlNjQiPjxsaXRlcmFsPmJhc2U2NDwvbGl0ZXJh bD48L2xpbms+LAogICAgICAgIDxsaW5rIGxpbmtlbmQ9ImVuY29kZS1mb3JtYXQtYmFzZTY0dXJs Ij48bGl0ZXJhbD5iYXNlNjR1cmw8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgICA8bGluayBsaW5r ZW5kPSJlbmNvZGUtZm9ybWF0LWJhc2UzMmhleCI+PGxpdGVyYWw+YmFzZTMyaGV4PC9saXRlcmFs PjwvbGluaz4sCiAgICAgICAgPGxpbmsgbGlua2VuZD0iZW5jb2RlLWZvcm1hdC1lc2NhcGUiPjxs aXRlcmFsPmVzY2FwZTwvbGl0ZXJhbD48L2xpbms+LAogICAgICAgIDxsaW5rIGxpbmtlbmQ9ImVu Y29kZS1mb3JtYXQtaGV4Ij48bGl0ZXJhbD5oZXg8L2xpdGVyYWw+PC9saW5rPi4KICAgICAgIDwv cGFyYT4KQEAgLTgwNCw2ICs4MDUsMzIgQEAKICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxp c3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImVuY29kZS1mb3JtYXQtYmFzZTMyaGV4 Ij4KKyAgICAgPHRlcm0+YmFzZTMyaGV4CisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmlt YXJ5PmJhc2UzMmhleCBmb3JtYXQ8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT48L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8bGl0ZXJhbD5iYXNl MzJoZXg8L2xpdGVyYWw+IGZvcm1hdCBpcyB0aGF0IG9mCisgICAgICAgPHVsaW5rIHVybD0iaHR0 cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM0NjQ4I3NlY3Rpb24tNyI+Cisg ICAgICAgUkZDIDQ2NDggU2VjdGlvbiA3PC91bGluaz4uICBJdCB1c2VzIHRoZSBleHRlbmRlZCBo ZXggYWxwaGFiZXQKKyAgICAgICAoPGxpdGVyYWw+MDwvbGl0ZXJhbD4tPGxpdGVyYWw+OTwvbGl0 ZXJhbD4gYW5kCisgICAgICAgPGxpdGVyYWw+QTwvbGl0ZXJhbD4tPGxpdGVyYWw+VjwvbGl0ZXJh bD4pIHdoaWNoIHByZXNlcnZlcyB0aGUgbGV4aWNvZ3JhcGhpY2FsCisgICAgICAgc29ydCBvcmRl ciBvZiB0aGUgZW5jb2RlZCBkYXRhLiBUaGUgPGZ1bmN0aW9uPmVuY29kZTwvZnVuY3Rpb24+IGZ1 bmN0aW9uCisgICAgICAgcHJvZHVjZXMgb3V0cHV0IHBhZGRlZCB3aXRoIDxsaXRlcmFsPic9Jzwv bGl0ZXJhbD4sIHdoaWxlIDxmdW5jdGlvbj5kZWNvZGU8L2Z1bmN0aW9uPgorICAgICAgIGFjY2Vw dHMgYm90aCBwYWRkZWQgYW5kIHVucGFkZGVkIGlucHV0LiBEZWNvZGluZyBpcyBjYXNlLWluc2Vu c2l0aXZlIGFuZCBpZ25vcmVzCisgICAgICAgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBmb3JtYXQgaXMgdXNlZnVsIGZvciBl bmNvZGluZyBVVUlEcyBpbiBhIGNvbXBhY3QsIHNvcnRhYmxlIGZvcm1hdDoKKyAgICAgICA8bGl0 ZXJhbD5zdWJzdHJpbmcoZW5jb2RlKHV1aWRfdmFsdWU6OmJ5dGVhLCAnYmFzZTMyaGV4JykgRlJP TSAxIEZPUiAyNik8L2xpdGVyYWw+CisgICAgICAgcHJvZHVjZXMgYSAyNi1jaGFyYWN0ZXIgc3Ry aW5nIGNvbXBhcmVkIHRvIHRoZSBzdGFuZGFyZCAzNi1jaGFyYWN0ZXIKKyAgICAgICBVVUlEIHJl cHJlc2VudGF0aW9uLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFy bGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZW5jb2RlLWZvcm1hdC1lc2NhcGUi PgogICAgICA8dGVybT5lc2NhcGUKICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9lbmNvZGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9lbmNvZGUu YwppbmRleCBmNWY4MzVlOTQ0YS4uNzkzY2M3ZjJhMzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9lbmNvZGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZW5jb2RlLmMK QEAgLTY1LDggKzY1LDggQEAgYmluYXJ5X2VuY29kZShQR19GVU5DVElPTl9BUkdTKQogCQllcmVw b3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAogCQkJCSBlcnJtc2coInVucmVjb2duaXplZCBlbmNvZGluZzogXCIlc1wiIiwgbmFtZWJ1Ziks Ci0JCQkJIGVycmhpbnQoIlZhbGlkIGVuY29kaW5ncyBhcmUgXCIlc1wiLCBcIiVzXCIsIFwiJXNc IiwgYW5kIFwiJXNcIi4iLAotCQkJCQkJICJiYXNlNjQiLCAiYmFzZTY0dXJsIiwgImVzY2FwZSIs ICJoZXgiKSkpOworCQkJCSBlcnJoaW50KCJWYWxpZCBlbmNvZGluZ3MgYXJlIFwiJXNcIiwgXCIl c1wiLCBcIiVzXCIsIFwiJXNcIiwgYW5kIFwiJXNcIi4iLAorCQkJCQkJICJiYXNlNjQiLCAiYmFz ZTY0dXJsIiwgImJhc2UzMmhleCIsICJlc2NhcGUiLCAiaGV4IikpKTsKIAogCWRhdGFwdHIgPSBW QVJEQVRBX0FOWShkYXRhKTsKIAlkYXRhbGVuID0gVkFSU0laRV9BTllfRVhIRFIoZGF0YSk7CkBA IC0xMTUsOCArMTE1LDggQEAgYmluYXJ5X2RlY29kZShQR19GVU5DVElPTl9BUkdTKQogCQllcmVw b3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAogCQkJCSBlcnJtc2coInVucmVjb2duaXplZCBlbmNvZGluZzogXCIlc1wiIiwgbmFtZWJ1Ziks Ci0JCQkJIGVycmhpbnQoIlZhbGlkIGVuY29kaW5ncyBhcmUgXCIlc1wiLCBcIiVzXCIsIFwiJXNc IiwgYW5kIFwiJXNcIi4iLAotCQkJCQkJICJiYXNlNjQiLCAiYmFzZTY0dXJsIiwgImVzY2FwZSIs ICJoZXgiKSkpOworCQkJCSBlcnJoaW50KCJWYWxpZCBlbmNvZGluZ3MgYXJlIFwiJXNcIiwgXCIl c1wiLCBcIiVzXCIsIFwiJXNcIiwgYW5kIFwiJXNcIi4iLAorCQkJCQkJICJiYXNlNjQiLCAiYmFz ZTY0dXJsIiwgImJhc2UzMmhleCIsICJlc2NhcGUiLCAiaGV4IikpKTsKIAogCWRhdGFwdHIgPSBW QVJEQVRBX0FOWShkYXRhKTsKIAlkYXRhbGVuID0gVkFSU0laRV9BTllfRVhIRFIoZGF0YSk7CkBA IC04MjUsNiArODI1LDE0NCBAQCBlc2NfZGVjX2xlbihjb25zdCBjaGFyICpzcmMsIHNpemVfdCBz cmNsZW4pCiAJcmV0dXJuIGxlbjsKIH0KIAorLyoKKyAqIEJBU0UzMkhFWAorICovCisKK3N0YXRp YyBjb25zdCBjaGFyIGJhc2UzMmhleF90YWJsZVtdID0gIjAxMjM0NTY3ODlBQkNERUZHSElKS0xN Tk9QUVJTVFVWIjsKKworc3RhdGljIHVpbnQ2NAorYmFzZTMyaGV4X2VuY19sZW4oY29uc3QgY2hh ciAqc3JjLCBzaXplX3Qgc3JjbGVuKQoreworCS8qIDUgYnl0ZXMgZW5jb2RlIHRvIDggY2hhcmFj dGVycywgcm91bmQgdXAgdG8gbXVsdGlwbGUgb2YgOCBmb3IgcGFkZGluZyAqLworCXJldHVybiAo KHVpbnQ2NCkgc3JjbGVuICsgNCkgLyA1ICogODsKK30KKworc3RhdGljIHVpbnQ2NAorYmFzZTMy aGV4X2RlY19sZW4oY29uc3QgY2hhciAqc3JjLCBzaXplX3Qgc3JjbGVuKQoreworCS8qIERlY29k ZSBsZW5ndGggaXMgKHNyY2xlbiAqIDUpIC8gOCwgYnV0IHdlIG1heSBoYXZlIHBhZGRpbmcgKi8K KwlyZXR1cm4gKCh1aW50NjQpIHNyY2xlbiAqIDUpIC8gODsKK30KKworc3RhdGljIHVpbnQ2NAor YmFzZTMyaGV4X2VuY29kZShjb25zdCBjaGFyICpzcmMsIHNpemVfdCBzcmNsZW4sIGNoYXIgKmRz dCkKK3sKKwljb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIg Kikgc3JjOworCXVpbnQ2NAkJYml0c19idWZmZXIgPSAwOworCWludAkJCWJpdHNfaW5fYnVmZmVy ID0gMDsKKwl1aW50NjQJCW91dHB1dF9wb3MgPSAwOworCXNpemVfdAkJaTsKKworCWZvciAoaSA9 IDA7IGkgPCBzcmNsZW47IGkrKykKKwl7CisJCS8qIEFkZCA4IGJpdHMgdG8gdGhlIGJ1ZmZlciAq LworCQliaXRzX2J1ZmZlciA9IChiaXRzX2J1ZmZlciA8PCA4KSB8IGRhdGFbaV07CisJCWJpdHNf aW5fYnVmZmVyICs9IDg7CisKKwkJLyogRXh0cmFjdCA1LWJpdCBjaHVua3Mgd2hpbGUgd2UgaGF2 ZSBlbm91Z2ggYml0cyAqLworCQl3aGlsZSAoYml0c19pbl9idWZmZXIgPj0gNSkKKwkJeworCQkJ Yml0c19pbl9idWZmZXIgLT0gNTsKKwkJCS8qIEV4dHJhY3QgdG9wIDUgYml0cyAqLworCQkJZHN0 W291dHB1dF9wb3MrK10gPSBiYXNlMzJoZXhfdGFibGVbKGJpdHNfYnVmZmVyID4+IGJpdHNfaW5f YnVmZmVyKSAmIDB4MUZdOworCQkJLyogQ2xlYXIgdGhlIGV4dHJhY3RlZCBiaXRzIGJ5IG1hc2tp bmcgKi8KKwkJCWJpdHNfYnVmZmVyICY9ICgoMVVMTCA8PCBiaXRzX2luX2J1ZmZlcikgLSAxKTsK KwkJfQorCX0KKworCS8qIEhhbmRsZSByZW1haW5pbmcgYml0cyAoaWYgYW55KSAqLworCWlmIChi aXRzX2luX2J1ZmZlciA+IDApCisJCWRzdFtvdXRwdXRfcG9zKytdID0gYmFzZTMyaGV4X3RhYmxl WyhiaXRzX2J1ZmZlciA8PCAoNSAtIGJpdHNfaW5fYnVmZmVyKSkgJiAweDFGXTsKKworCS8qIEFk ZCBwYWRkaW5nIHRvIG1ha2UgbGVuZ3RoIGEgbXVsdGlwbGUgb2YgOCAocGVyIFJGQyA0NjQ4KSAq LworCXdoaWxlIChvdXRwdXRfcG9zICUgOCAhPSAwKQorCQlkc3Rbb3V0cHV0X3BvcysrXSA9ICc9 JzsKKworCXJldHVybiBvdXRwdXRfcG9zOworfQorCitzdGF0aWMgdWludDY0CitiYXNlMzJoZXhf ZGVjb2RlKGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IHNyY2xlbiwgY2hhciAqZHN0KQoreworCWNv bnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBzcmM7CisJ dWludDY0CQliaXRzX2J1ZmZlciA9IDA7CisJaW50CQkJYml0c19pbl9idWZmZXIgPSAwOworCXVp bnQ2NAkJb3V0cHV0X3BvcyA9IDA7CisJc2l6ZV90CQlpOworCWludAkJCXBvcyA9IDA7CQkvKiBw b3NpdGlvbiB3aXRoaW4gOC1jaGFyYWN0ZXIgZ3JvdXAgKDAtNykgKi8KKwlib29sCQllbmQgPSBm YWxzZTsJLyogaGF2ZSB3ZSBzZWVuIHBhZGRpbmc/ICovCisKKwlmb3IgKGkgPSAwOyBpIDwgc3Jj bGVuOyBpKyspCisJeworCQl1bnNpZ25lZCBjaGFyIGMgPSBkYXRhW2ldOworCQlpbnQJCQl2YWw7 CisKKwkJLyogU2tpcCB3aGl0ZXNwYWNlICovCisJCWlmIChjID09ICcgJyB8fCBjID09ICdcdCcg fHwgYyA9PSAnXG4nIHx8IGMgPT0gJ1xyJykKKwkJCWNvbnRpbnVlOworCisJCWlmIChjID09ICc9 JykKKwkJeworCQkJLyoKKwkJCSAqIFRoZSBmaXJzdCBwYWRkaW5nIGlzIG9ubHkgdmFsaWQgYXQg cG9zaXRpb25zIDIsIDQsIDUsIG9yIDcgd2l0aGluCisJCQkgKiBhbiA4LWNoYXJhY3RlciBncm91 cCAoY29ycmVzcG9uZGluZyB0byAxLCAyLCAzLCBvciA0IGlucHV0IGJ5dGVzKS4KKwkJCSAqIFdl IG9ubHkgY2hlY2sgdGhlIHBvc2l0aW9uIGZvciB0aGUgZmlyc3QgJz0nIGNoYXJhY3Rlci4KKwkJ CSAqLworCQkJaWYgKCFlbmQpCisJCQl7CisJCQkJaWYgKHBvcyAhPSAyICYmIHBvcyAhPSA0ICYm IHBvcyAhPSA1ICYmIHBvcyAhPSA3KQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCSBlcnJtc2coInVu ZXhwZWN0ZWQgXCI9XCIgd2hpbGUgZGVjb2RpbmcgYmFzZTMyaGV4IHNlcXVlbmNlIikpKTsKKwkJ CQllbmQgPSB0cnVlOworCQkJfQorCQkJcG9zKys7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8q IE5vIGRhdGEgY2hhcmFjdGVycyBhbGxvd2VkIGFmdGVyIHBhZGRpbmcgKi8KKwkJaWYgKGVuZCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJpbnZhbGlkIHN5bWJvbCBcIiUuKnNcIiBmb3VuZCB3 aGlsZSBkZWNvZGluZyBiYXNlMzJoZXggc2VxdWVuY2UiLAorCQkJCQkJCXBnX21ibGVuKChjb25z dCBjaGFyICopICZjKSwgKGNvbnN0IGNoYXIgKikgJmMpKSk7CisKKwkJLyogRGVjb2RlIGJhc2Uz MmhleCBjaGFyYWN0ZXIgKDAtOSwgQS1WLCBjYXNlLWluc2Vuc2l0aXZlKSAqLworCQlpZiAoYyA+ PSAnMCcgJiYgYyA8PSAnOScpCisJCQl2YWwgPSBjIC0gJzAnOworCQllbHNlIGlmIChjID49ICdB JyAmJiBjIDw9ICdWJykKKwkJCXZhbCA9IGMgLSAnQScgKyAxMDsKKwkJZWxzZSBpZiAoYyA+PSAn YScgJiYgYyA8PSAndicpCisJCQl2YWwgPSBjIC0gJ2EnICsgMTA7CisJCWVsc2UKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAorCQkJCQkgZXJybXNnKCJpbnZhbGlkIHN5bWJvbCBcIiUuKnNcIiBmb3VuZCB3aGlsZSBkZWNv ZGluZyBiYXNlMzJoZXggc2VxdWVuY2UiLAorCQkJCQkJCXBnX21ibGVuKChjb25zdCBjaGFyICop ICZjKSwgKGNvbnN0IGNoYXIgKikgJmMpKSk7CisKKwkJLyogQWRkIDUgYml0cyB0byBidWZmZXIg Ki8KKwkJYml0c19idWZmZXIgPSAoYml0c19idWZmZXIgPDwgNSkgfCB2YWw7CisJCWJpdHNfaW5f YnVmZmVyICs9IDU7CisJCXBvcysrOworCisJCS8qIEV4dHJhY3QgOC1iaXQgYnl0ZXMgd2hlbiB3 ZSBoYXZlIGVub3VnaCBiaXRzICovCisJCXdoaWxlIChiaXRzX2luX2J1ZmZlciA+PSA4KQorCQl7 CisJCQliaXRzX2luX2J1ZmZlciAtPSA4OworCQkJZHN0W291dHB1dF9wb3MrK10gPSAodW5zaWdu ZWQgY2hhcikgKGJpdHNfYnVmZmVyID4+IGJpdHNfaW5fYnVmZmVyKTsKKwkJCS8qIENsZWFyIHRo ZSBleHRyYWN0ZWQgYml0cyAqLworCQkJYml0c19idWZmZXIgJj0gKCgxVUxMIDw8IGJpdHNfaW5f YnVmZmVyKSAtIDEpOworCQl9CisKKwkJLyogUmVzZXQgcG9zaXRpb24gYWZ0ZXIgZWFjaCBjb21w bGV0ZSA4LWNoYXJhY3RlciBncm91cCAqLworCQlpZiAocG9zID09IDgpCisJCQlwb3MgPSAwOwor CX0KKworCXJldHVybiBvdXRwdXRfcG9zOworfQorCiAvKgogICogQ29tbW9uCiAgKi8KQEAgLTg1 NCw2ICs5OTIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdAogCQkJcGdfYmFzZTY0dXJsX2VuY19s ZW4sIHBnX2Jhc2U2NHVybF9kZWNfbGVuLCBwZ19iYXNlNjR1cmxfZW5jb2RlLCBwZ19iYXNlNjR1 cmxfZGVjb2RlCiAJCX0KIAl9LAorCXsKKwkJImJhc2UzMmhleCIsCisJCXsKKwkJCWJhc2UzMmhl eF9lbmNfbGVuLCBiYXNlMzJoZXhfZGVjX2xlbiwgYmFzZTMyaGV4X2VuY29kZSwgYmFzZTMyaGV4 X2RlY29kZQorCQl9CisJfSwKIAl7CiAJCSJlc2NhcGUiLAogCQl7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0cmluZ3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zdHJpbmdzLm91dAppbmRleCBmMzg2ODhiNWMzNy4uNzVhNGE0ZjM4YTYgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RyaW5ncy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zdHJpbmdzLm91dApAQCAtMjYwMCwxNCArMjYwMCwxMjUgQEAgU0VM RUNUIGRlY29kZShlbmNvZGUoJ1x4MTIzNDU2Nzg5MGFiY2RlZjAwJywgJ2VzY2FwZScpLCAnZXNj YXBlJyk7CiAtLSByZXBvcnQgYW4gZXJyb3Igd2l0aCBhIGhpbnQgbGlzdGluZyB2YWxpZCBlbmNv ZGluZ3Mgd2hlbiBhbiBpbnZhbGlkIGVuY29kaW5nIGlzIHNwZWNpZmllZAogU0VMRUNUIGVuY29k ZSgnXHgwMSc6OmJ5dGVhLCAnaW52YWxpZCcpOyAgLS0gZXJyb3IKIEVSUk9SOiAgdW5yZWNvZ25p emVkIGVuY29kaW5nOiAiaW52YWxpZCIKLUhJTlQ6ICBWYWxpZCBlbmNvZGluZ3MgYXJlICJiYXNl NjQiLCAiYmFzZTY0dXJsIiwgImVzY2FwZSIsIGFuZCAiaGV4Ii4KK0hJTlQ6ICBWYWxpZCBlbmNv ZGluZ3MgYXJlICJiYXNlNjQiLCAiYmFzZTY0dXJsIiwgImJhc2UzMmhleCIsICJlc2NhcGUiLCBh bmQgImhleCIuCiBTRUxFQ1QgZGVjb2RlKCcwMCcsICdpbnZhbGlkJyk7ICAgICAgICAgICAtLSBl cnJvcgogRVJST1I6ICB1bnJlY29nbml6ZWQgZW5jb2Rpbmc6ICJpbnZhbGlkIgotSElOVDogIFZh bGlkIGVuY29kaW5ncyBhcmUgImJhc2U2NCIsICJiYXNlNjR1cmwiLCAiZXNjYXBlIiwgYW5kICJo ZXgiLgorSElOVDogIFZhbGlkIGVuY29kaW5ncyBhcmUgImJhc2U2NCIsICJiYXNlNjR1cmwiLCAi YmFzZTMyaGV4IiwgImVzY2FwZSIsIGFuZCAiaGV4Ii4KIC0tCi0tLSBiYXNlNjR1cmwgZW5jb2Rp bmcvZGVjb2RpbmcKKy0tIGJhc2UzMmhleCBlbmNvZGluZy9kZWNvZGluZwogLS0KIFNFVCBieXRl YV9vdXRwdXQgVE8gaGV4OworU0VMRUNUIGVuY29kZSgnJywgJ2Jhc2UzMmhleCcpOyAgLS0gJycK KyBlbmNvZGUgCistLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgZW5jb2RlKCdceDExJywg J2Jhc2UzMmhleCcpOyAgLS0gJzI0PT09PT09JworICBlbmNvZGUgIAorLS0tLS0tLS0tLQorIDI0 PT09PT09CisoMSByb3cpCisKK1NFTEVDVCBlbmNvZGUoJ1x4MTEyMicsICdiYXNlMzJoZXgnKTsg IC0tICcyNEgwPT09PScKKyAgZW5jb2RlICAKKy0tLS0tLS0tLS0KKyAyNEgwPT09PQorKDEgcm93 KQorCitTRUxFQ1QgZW5jb2RlKCdceDExMjIzMycsICdiYXNlMzJoZXgnKTsgIC0tICcyNEgzNj09 PScKKyAgZW5jb2RlICAKKy0tLS0tLS0tLS0KKyAyNEgzNj09PQorKDEgcm93KQorCitTRUxFQ1Qg ZW5jb2RlKCdceDExMjIzMzQ0JywgJ2Jhc2UzMmhleCcpOyAgLS0gJzI0SDM2SDA9JworICBlbmNv ZGUgIAorLS0tLS0tLS0tLQorIDI0SDM2SDA9CisoMSByb3cpCisKK1NFTEVDVCBlbmNvZGUoJ1x4 MTEyMjMzNDQ1NScsICdiYXNlMzJoZXgnKTsgIC0tICcyNEgzNkgyTCcKKyAgZW5jb2RlICAKKy0t LS0tLS0tLS0KKyAyNEgzNkgyTAorKDEgcm93KQorCitTRUxFQ1QgZW5jb2RlKCdceDExMjIzMzQ0 NTU2NicsICdiYXNlMzJoZXgnKTsgIC0tICcyNEgzNkgyTENPPT09PT09JworICAgICAgZW5jb2Rl ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAyNEgzNkgyTENPPT09PT09CisoMSByb3cpCisK K1NFTEVDVCBkZWNvZGUoJycsICdiYXNlMzJoZXgnKTsgIC0tICcnCisgZGVjb2RlIAorLS0tLS0t LS0KKyBceAorKDEgcm93KQorCitTRUxFQ1QgZGVjb2RlKCcyND09PT09PScsICdiYXNlMzJoZXgn KTsgIC0tIFx4MTEKKyBkZWNvZGUgCistLS0tLS0tLQorIFx4MTEKKygxIHJvdykKKworU0VMRUNU IGRlY29kZSgnMjRIMD09PT0nLCAnYmFzZTMyaGV4Jyk7ICAtLSBceDExMjIKKyBkZWNvZGUgCist LS0tLS0tLQorIFx4MTEyMgorKDEgcm93KQorCitTRUxFQ1QgZGVjb2RlKCcyNEgzNj09PScsICdi YXNlMzJoZXgnKTsgIC0tIFx4MTEyMjMzCisgIGRlY29kZSAgCistLS0tLS0tLS0tCisgXHgxMTIy MzMKKygxIHJvdykKKworU0VMRUNUIGRlY29kZSgnMjRIMzZIMD0nLCAnYmFzZTMyaGV4Jyk7ICAt LSBceDExMjIzMzQ0CisgICBkZWNvZGUgICAKKy0tLS0tLS0tLS0tLQorIFx4MTEyMjMzNDQKKygx IHJvdykKKworU0VMRUNUIGRlY29kZSgnMjRIMzZIMkwnLCAnYmFzZTMyaGV4Jyk7ICAtLSBceDEx MjIzMzQ0NTUKKyAgICBkZWNvZGUgICAgCistLS0tLS0tLS0tLS0tLQorIFx4MTEyMjMzNDQ1NQor KDEgcm93KQorCitTRUxFQ1QgZGVjb2RlKCcyNEgzNkgyTENPPT09PT09JywgJ2Jhc2UzMmhleCcp OyAgLS0gXHgxMTIyMzM0NDU1NjYKKyAgICAgZGVjb2RlICAgICAKKy0tLS0tLS0tLS0tLS0tLS0K KyBceDExMjIzMzQ0NTU2NgorKDEgcm93KQorCitTRUxFQ1QgZGVjb2RlKCcyNCcsICdiYXNlMzJo ZXgnKTsgIC0tIE9LLCBwYWRkaW5nIGA9YCBhcmUgb3B0aW9uYWwKKyBkZWNvZGUgCistLS0tLS0t LQorIFx4MTEKKygxIHJvdykKKworU0VMRUNUIGRlY29kZSgnMjRoMzZoMmxjbycsICdiYXNlMzJo ZXgnKTsgIC0tIE9LLCB0aGUgZW5jb2RpbmcgaXMgY2FzZS1pbnNlbnNpdGl2ZQorICAgICBkZWNv ZGUgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFx4MTEyMjMzNDQ1NTY2CisoMSByb3cpCisKK1NF TEVDVCBkZWNvZGUoJz0nLCAnYmFzZTMyaGV4Jyk7ICAtLSBlcnJvcgorRVJST1I6ICB1bmV4cGVj dGVkICI9IiB3aGlsZSBkZWNvZGluZyBiYXNlMzJoZXggc2VxdWVuY2UKK1NFTEVDVCBkZWNvZGUo J1cnLCAnYmFzZTMyaGV4Jyk7ICAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIHN5bWJvbCAiVyIg Zm91bmQgd2hpbGUgZGVjb2RpbmcgYmFzZTMyaGV4IHNlcXVlbmNlCitTRUxFQ1QgZGVjb2RlKCcy NEgzNkgwPTI0JywgJ2Jhc2UzMmhleCcpOyAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIHN5bWJv bCAiMiIgZm91bmQgd2hpbGUgZGVjb2RpbmcgYmFzZTMyaGV4IHNlcXVlbmNlCitTRUxFQ1QgZGVj b2RlKCcxMT0nLCAnYmFzZTMyaGV4Jyk7ICAtLSBPSywgbm9uLXplcm8gcGFkZGluZyBiaXRzIGFy ZSBhY2NlcHRlZCAoY29uc2lzdGVudCB3aXRoIGJhc2U2NCkKKyBkZWNvZGUgCistLS0tLS0tLQor IFx4MDgKKygxIHJvdykKKworLS0KKy0tIGJhc2U2NHVybCBlbmNvZGluZy9kZWNvZGluZworLS0K IC0tIFNpbXBsZSBlbmNvZGluZy9kZWNvZGluZwogU0VMRUNUIGVuY29kZSgnXHg2OWI3M2VmZics ICdiYXNlNjR1cmwnKTsgIC0tIGFiYy1fdwogIGVuY29kZSAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdXVpZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3V1 aWQub3V0CmluZGV4IGQxNTdlZjdkMGIzLi5kMmE0NWEwZjA3YyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC91dWlkLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3V1aWQub3V0CkBAIC0zMjcsNSArMzI3LDIxIEBAIFNFTEVDVCB2ID0gdjo6Ynl0ZWE6OnV1 aWQgYXMgbWF0Y2hlZCBGUk9NIGdlbl9yYW5kb21fdXVpZCgpIHY7CiAgdAogKDEgcm93KQogCist LSBtYWtlIHN1cmUgYmFzZTMyaGV4IGVuY29kaW5nIHdvcmtzIHdpdGggVVVJRHMgYW5kIHByZXNl cnZlcyBvcmRlcmluZworU0VMRUNUIG9yaWcsIGVuY29kZShvcmlnOjpieXRlYSwgJ2Jhc2UzMmhl eCcpIEFTIGVuYworRlJPTSB1bm5lc3QoQVJSQVlbCisgICAgJzEyM2U0NTY3LWU4OWItMTJkMy1h NDU2LTQyNjYxNDE3NDAwMCcsCisgICAgJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAw MDAwMCcsCisgICAgJzExMTExMTExLTExMTEtMTExMS0xMTExLTExMTExMTExMTExMScsCisgICAg J2ZmZmZmZmZmLWZmZmYtZmZmZi1mZmZmLWZmZmZmZmZmZmZmZiddOjp1dWlkW10KKykgQVMgb3Jp ZyBPUkRFUiBCWSBlbmM7CisgICAgICAgICAgICAgICAgIG9yaWcgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICBlbmMgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMDAw MDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIHwgMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDA9PT09PT0KKyAxMTExMTExMS0xMTExLTExMTEtMTExMS0xMTExMTExMTExMTEgfCAyNDhI MjQ4SDI0OEgyNDhIMjQ4SDI0OEgyND09PT09PQorIDEyM2U0NTY3LWU4OWItMTJkMy1hNDU2LTQy NjYxNDE3NDAwMCB8IDI4VjRBUFY4SkM5RDc5Mk04OUoxODVRMDAwPT09PT09CisgZmZmZmZmZmYt ZmZmZi1mZmZmLWZmZmYtZmZmZmZmZmZmZmZmIHwgVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlM9 PT09PT0KKyg0IHJvd3MpCisKIC0tIGNsZWFuIHVwCiBEUk9QIFRBQkxFIGd1aWQxLCBndWlkMiwg Z3VpZDMgQ0FTQ0FERTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0cmluZ3Mu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RyaW5ncy5zcWwKaW5kZXggZDhhMDk3Mzc2Njgu LjlmODZmMmNhYzE5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdHJpbmdzLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdHJpbmdzLnNxbApAQCAtODM1LDEwICs4MzUs MzggQEAgU0VMRUNUIGVuY29kZSgnXHgwMSc6OmJ5dGVhLCAnaW52YWxpZCcpOyAgLS0gZXJyb3IK IFNFTEVDVCBkZWNvZGUoJzAwJywgJ2ludmFsaWQnKTsgICAgICAgICAgIC0tIGVycm9yCiAKIC0t Ci0tLSBiYXNlNjR1cmwgZW5jb2RpbmcvZGVjb2RpbmcKKy0tIGJhc2UzMmhleCBlbmNvZGluZy9k ZWNvZGluZwogLS0KIFNFVCBieXRlYV9vdXRwdXQgVE8gaGV4OwogCitTRUxFQ1QgZW5jb2RlKCcn LCAnYmFzZTMyaGV4Jyk7ICAtLSAnJworU0VMRUNUIGVuY29kZSgnXHgxMScsICdiYXNlMzJoZXgn KTsgIC0tICcyND09PT09PScKK1NFTEVDVCBlbmNvZGUoJ1x4MTEyMicsICdiYXNlMzJoZXgnKTsg IC0tICcyNEgwPT09PScKK1NFTEVDVCBlbmNvZGUoJ1x4MTEyMjMzJywgJ2Jhc2UzMmhleCcpOyAg LS0gJzI0SDM2PT09JworU0VMRUNUIGVuY29kZSgnXHgxMTIyMzM0NCcsICdiYXNlMzJoZXgnKTsg IC0tICcyNEgzNkgwPScKK1NFTEVDVCBlbmNvZGUoJ1x4MTEyMjMzNDQ1NScsICdiYXNlMzJoZXgn KTsgIC0tICcyNEgzNkgyTCcKK1NFTEVDVCBlbmNvZGUoJ1x4MTEyMjMzNDQ1NTY2JywgJ2Jhc2Uz MmhleCcpOyAgLS0gJzI0SDM2SDJMQ089PT09PT0nCisKK1NFTEVDVCBkZWNvZGUoJycsICdiYXNl MzJoZXgnKTsgIC0tICcnCitTRUxFQ1QgZGVjb2RlKCcyND09PT09PScsICdiYXNlMzJoZXgnKTsg IC0tIFx4MTEKK1NFTEVDVCBkZWNvZGUoJzI0SDA9PT09JywgJ2Jhc2UzMmhleCcpOyAgLS0gXHgx MTIyCitTRUxFQ1QgZGVjb2RlKCcyNEgzNj09PScsICdiYXNlMzJoZXgnKTsgIC0tIFx4MTEyMjMz CitTRUxFQ1QgZGVjb2RlKCcyNEgzNkgwPScsICdiYXNlMzJoZXgnKTsgIC0tIFx4MTEyMjMzNDQK K1NFTEVDVCBkZWNvZGUoJzI0SDM2SDJMJywgJ2Jhc2UzMmhleCcpOyAgLS0gXHgxMTIyMzM0NDU1 CitTRUxFQ1QgZGVjb2RlKCcyNEgzNkgyTENPPT09PT09JywgJ2Jhc2UzMmhleCcpOyAgLS0gXHgx MTIyMzM0NDU1NjYKKworU0VMRUNUIGRlY29kZSgnMjQnLCAnYmFzZTMyaGV4Jyk7ICAtLSBPSywg cGFkZGluZyBgPWAgYXJlIG9wdGlvbmFsCitTRUxFQ1QgZGVjb2RlKCcyNGgzNmgybGNvJywgJ2Jh c2UzMmhleCcpOyAgLS0gT0ssIHRoZSBlbmNvZGluZyBpcyBjYXNlLWluc2Vuc2l0aXZlCitTRUxF Q1QgZGVjb2RlKCc9JywgJ2Jhc2UzMmhleCcpOyAgLS0gZXJyb3IKK1NFTEVDVCBkZWNvZGUoJ1cn LCAnYmFzZTMyaGV4Jyk7ICAtLSBlcnJvcgorU0VMRUNUIGRlY29kZSgnMjRIMzZIMD0yNCcsICdi YXNlMzJoZXgnKTsgLS0gZXJyb3IKK1NFTEVDVCBkZWNvZGUoJzExPScsICdiYXNlMzJoZXgnKTsg IC0tIE9LLCBub24temVybyBwYWRkaW5nIGJpdHMgYXJlIGFjY2VwdGVkIChjb25zaXN0ZW50IHdp dGggYmFzZTY0KQorCisKKy0tCistLSBiYXNlNjR1cmwgZW5jb2RpbmcvZGVjb2RpbmcKKy0tCisK IC0tIFNpbXBsZSBlbmNvZGluZy9kZWNvZGluZwogU0VMRUNUIGVuY29kZSgnXHg2OWI3M2VmZics ICdiYXNlNjR1cmwnKTsgIC0tIGFiYy1fdwogU0VMRUNUIGRlY29kZSgnYWJjLV93JywgJ2Jhc2U2 NHVybCcpOyAgICAgIC0tIFx4NjliNzNlZmYKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3V1aWQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXVpZC5zcWwKaW5kZXggZjUxMmY0 ZGVhMWQuLmVlMTQ4MDI2MzBhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC91dWlk LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91dWlkLnNxbApAQCAtMTUyLDUgKzE1Miwx NCBAQCBTRUxFQ1QgJ1x4MDE5YTJmODU5Y2VkNzIyNWI5OWQ5YzU1MDQ0YTI1NjMnOjpieXRlYTo6 dXVpZDsKIFNFTEVDVCAnXHgxMjM0NTY3ODkwYWJjZGVmJzo6Ynl0ZWE6OnV1aWQ7IC0tIGVycm9y CiBTRUxFQ1QgdiA9IHY6OmJ5dGVhOjp1dWlkIGFzIG1hdGNoZWQgRlJPTSBnZW5fcmFuZG9tX3V1 aWQoKSB2OwogCistLSBtYWtlIHN1cmUgYmFzZTMyaGV4IGVuY29kaW5nIHdvcmtzIHdpdGggVVVJ RHMgYW5kIHByZXNlcnZlcyBvcmRlcmluZworU0VMRUNUIG9yaWcsIGVuY29kZShvcmlnOjpieXRl YSwgJ2Jhc2UzMmhleCcpIEFTIGVuYworRlJPTSB1bm5lc3QoQVJSQVlbCisgICAgJzEyM2U0NTY3 LWU4OWItMTJkMy1hNDU2LTQyNjYxNDE3NDAwMCcsCisgICAgJzAwMDAwMDAwLTAwMDAtMDAwMC0w MDAwLTAwMDAwMDAwMDAwMCcsCisgICAgJzExMTExMTExLTExMTEtMTExMS0xMTExLTExMTExMTEx MTExMScsCisgICAgJ2ZmZmZmZmZmLWZmZmYtZmZmZi1mZmZmLWZmZmZmZmZmZmZmZiddOjp1dWlk W10KKykgQVMgb3JpZyBPUkRFUiBCWSBlbmM7CisKIC0tIGNsZWFuIHVwCiBEUk9QIFRBQkxFIGd1 aWQxLCBndWlkMiwgZ3VpZDMgQ0FTQ0FERTsKLS0gCjIuNTMuMAoK --000000000000dfca10064d501f4e Content-Type: text/x-patch; charset="UTF-8"; name="v7-0001-Allow-explicit-casting-between-bytea-and-uuid.patch" Content-Disposition: attachment; filename="v7-0001-Allow-explicit-casting-between-bytea-and-uuid.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmwc8tmz1 RnJvbSAxMTNiNzc5ZGMxYzEyNmM0YzVkOWViZjExM2I4NDYwMzA1MWQyZDRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RGFnZmlubj0yMElsbWFyaT0yME1hbm5zPUMz PUE1a2VyPz0gPGlsbWFyaUBpbG1hcmkub3JnPgpEYXRlOiBUdWUsIDI4IE9jdCAyMDI1IDE2OjMz OjE3ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2NyAxLzJdIEFsbG93IGV4cGxpY2l0IGNhc3Rpbmcg YmV0d2VlbiBieXRlYSBhbmQgdXVpZC4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK ClRoaXMgZW5hYmxlcyB0aGUgdXNlIG9mIGZ1bmN0aW9ucyBzdWNoIGFzIGVuY29kZSgpIGFuZCBk ZWNvZGUoKSB3aXRoClVVSUQgdmFsdWVzLCBhbGxvd2luZyB0aGVtIHRvIGJlIGNvbnZlcnRlZCB0 byBhbmQgZnJvbSBhbHRlcm5hdGl2ZQpmb3JtYXRzIGxpa2UgYmFzZTY0IG9yIGhleC4KClRoZSBj YXN0IG1hcHMgdGhlIDE2LWJ5dGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgYSBVVUlEIGRp cmVjdGx5CnRvIGEgYnl0ZWEgZGF0dW0uIFRoaXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBnb2lu ZyB0aHJvdWdoIGEgdGV4dApmb3JlcHJlc2VudGF0aW9uLgoKQXV0aG9yOglEYWdmaW5uIElsbWFy aSBNYW5uc8Ola2VyIDxpbG1hcmlAaWxtYXJpLm9yZz4KQ28tYXV0aG9yZWQtYnk6IEFsZWtzYW5k ZXIgQWxla3NlZXYgPGFsZWtzYW5kZXJAdGlnZXJkYXRhLmNvbT4KUmV2aWV3ZWQtYnk6IE1hc2Fo aWtvIFNhd2FkYSA8c2F3YWRhLm1zaGtAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV5IEJv cm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogSmVsdGUgRmVubmVtYS1O aW8gPHBvc3RncmVzQGplbHRlZi5ubD4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9D QUo3YzZUT3JhbXIxVVRMY3lCMTI4TFdNcWl0YTFZNyUzRGFycTNLSGFVJTNEcWlrZjV5S09RJTQw bWFpbC5nbWFpbC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbCAgICAgICAgIHwg MTEgKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jICAgICAgfCAyNyAr KysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5k YXQgICAgfCAgNiArKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgfCAg NyArKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3V1aWQub3V0IHwgMjIgKysrKysr KysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXVpZC5zcWwgICAgICB8ICA1 ICsrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sCmlu ZGV4IDMwMTdjNjc0MDQwLi5kOGQ5MTY3OGU4NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Rh dGF0eXBlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwKQEAgLTQ0MzksNiAr NDQzOSwxNyBAQCBhMGVlLWJjOTktOWMwYi00ZWY4LWJiNmQtNmJiOS1iZDM4LTBhMTEKICAgICBP dXRwdXQgaXMgYWx3YXlzIGluIHRoZSBzdGFuZGFyZCBmb3JtLgogICAgPC9wYXJhPgogCisgICA8 cGFyYT4KKyAgICBJdCBpcyBwb3NzaWJsZSB0byBjYXN0IDx0eXBlPnV1aWQ8L3R5cGU+IHZhbHVl cyB0byBhbmQgZnJvbSB0eXBlCisgICAgPHR5cGU+Ynl0ZWE8L3R5cGU+LiBUaGlzIGlzIHVzZWZ1 bCBmb3IgdXNpbmcgZnVuY3Rpb25zIHN1Y2ggYXMKKyAgICA8ZnVuY3Rpb24+ZW5jb2RlKCk8L2Z1 bmN0aW9uPiBhbmQgPGZ1bmN0aW9uPmRlY29kZSgpPC9mdW5jdGlvbj4KKyAgICB3aXRoIFVVSUQg dmFsdWVzLiBGb3IgZXhhbXBsZToKKzxwcm9ncmFtbGlzdGluZz4KK2VuY29kZSgnMWVhM2Q2NGMt YmM0MC00Y2MzLTg0YmItNmIxMWVlMzFlNWMyJzo6dXVpZDo6Ynl0ZWEsICdiYXNlNjQnKQorZGVj b2RlKCdIcVBXVEx4QVRNT0V1MnNSN2pIbHdnPT0nLCAnYmFzZTY0Jyk6OnV1aWQKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgICA8L3BhcmE+CisKICAgIDxwYXJhPgogICAgIFNlZSA8eHJlZiBsaW5rZW5k PSJmdW5jdGlvbnMtdXVpZCIvPiBmb3IgaG93IHRvIGdlbmVyYXRlIGEgVVVJRCBpbgogICAgIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4uCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvYnl0ZWEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jCmlu ZGV4IGZkNzY2MmQ0MWVlLi40ZGM4MzY3MWFhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2J5dGVhLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKQEAgLTI4 LDYgKzI4LDcgQEAKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11 dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3NvcnRzdXBwb3J0LmgiCisjaW5jbHVkZSAidXRpbHMv dXVpZC5oIgogI2luY2x1ZGUgInZhcmF0dC5oIgogCiAvKiBHVUMgdmFyaWFibGUgKi8KQEAgLTEz NDAsMyArMTM0MSwyOSBAQCBpbnQ4X2J5dGVhKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJcmV0dXJu IGludDhzZW5kKGZjaW5mbyk7CiB9CisKKy8qIENhc3QgYnl0ZWEgLT4gdXVpZCAqLworRGF0dW0K K2J5dGVhX3V1aWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlieXRlYQkgICAqdiA9IFBHX0dFVEFS R19CWVRFQV9QUCgwKTsKKwlpbnQJCQlsZW4gPSBWQVJTSVpFX0FOWV9FWEhEUih2KTsKKwlwZ191 dWlkX3QgICp1dWlkOworCisJaWYgKGxlbiAhPSBVVUlEX0xFTikKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKKwkJ CQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IGxlbmd0aCBmb3IgdHlwZSAlcyIsICJ1dWlkIiksCisJ CQkJIGVycmRldGFpbCgiRXhwZWN0ZWQgJWQgYnl0ZXMsIGdvdCAlZC4iLCBVVUlEX0xFTiwgbGVu KSkpOworCisJdXVpZCA9IChwZ191dWlkX3QgKikgcGFsbG9jKHNpemVvZihwZ191dWlkX3QpKTsK KwltZW1jcHkodXVpZC0+ZGF0YSwgVkFSREFUQV9BTlkodiksIFVVSURfTEVOKTsKKwlQR19SRVRV Uk5fVVVJRF9QKHV1aWQpOworfQorCisvKiBDYXN0IHV1aWQgLT4gYnl0ZWE7IGNhbiBqdXN0IHVz ZSB1dWlkX3NlbmQoKSAqLworRGF0dW0KK3V1aWRfYnl0ZWEoUEdfRlVOQ1RJT05fQVJHUykKK3sK KwlyZXR1cm4gdXVpZF9zZW5kKGZjaW5mbyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdAppbmRl eCA5YjFjZmIxYjU5MC4uYTdiNmQ4MTJjNWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfY2FzdC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdApAQCAt MzYyLDYgKzM2MiwxMiBAQAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4g J2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChieXRlYSknLAogICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCiAKKyMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdl ZW4gYnl0ZWEgYW5kIHV1aWQgdHlwZQoreyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJn ZXQgPT4gJ3V1aWQnLCBjYXN0ZnVuYyA9PiAndXVpZChieXRlYSknLAorICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCit7IGNhc3Rzb3VyY2UgPT4gJ3V1aWQnLCBjYXN0 dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYSh1dWlkKScsCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKwogIyBBbGxvdyBleHBsaWNpdCBjb2Vy Y2lvbnMgYmV0d2VlbiBpbnQ0IGFuZCAiY2hhciIKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNh c3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChjaGFyKScsCiAgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cmlu ZGV4IGZjOGQ4MjY2NWI4Li44NGU3YWRkZTBlNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBA IC0xMjA4LDYgKzEyMDgsMTMgQEAKICAgcHJvbmFtZSA9PiAnaW50OCcsIHByb3JldHR5cGUgPT4g J2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnYnl0ZWEnLAogICBwcm9zcmMgPT4gJ2J5dGVhX2ludDgn IH0sCiAKK3sgb2lkID0+ICc5ODgwJywgZGVzY3IgPT4gJ2NvbnZlcnQgdXVpZCB0byBieXRlYScs CisgIHByb25hbWUgPT4gJ2J5dGVhJywgcHJvcmV0dHlwZSA9PiAnYnl0ZWEnLCBwcm9hcmd0eXBl cyA9PiAndXVpZCcsCisgIHByb3NyYyA9PiAndXVpZF9ieXRlYScgfSwKK3sgb2lkID0+ICc5ODgx JywgZGVzY3IgPT4gJ2NvbnZlcnQgYnl0ZWEgdG8gdXVpZCcsCisgIHByb25hbWUgPT4gJ3V1aWQn LCBwcm9yZXR0eXBlID0+ICd1dWlkJywgcHJvYXJndHlwZXMgPT4gJ2J5dGVhJywKKyAgcHJvc3Jj ID0+ICdieXRlYV91dWlkJyB9LAorCiB7IG9pZCA9PiAnNDQ5JywgZGVzY3IgPT4gJ2hhc2gnLAog ICBwcm9uYW1lID0+ICdoYXNoaW50MicsIHByb3JldHR5cGUgPT4gJ2ludDQnLCBwcm9hcmd0eXBl cyA9PiAnaW50MicsCiAgIHByb3NyYyA9PiAnaGFzaGludDInIH0sCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3V1aWQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC91dWlkLm91dAppbmRleCA5NTM5MjAwM2I4Ni4uZDE1N2VmN2QwYjMgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXVpZC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC91dWlkLm91dApAQCAtMzA1LDUgKzMwNSwyNyBAQCBTRUxFQ1QgdXVpZF9leHRyYWN0 X3RpbWVzdGFtcCgnMTExMTExMTEtMTExMS0xMTExLTExMTEtMTExMTExMTExMTExJyk7ICAtLSBu dWxsCiAgCiAoMSByb3cpCiAKKy0tIGNhc3RzCitTRUxFQ1QgJzViMzUzODBhLTcxNDMtNDkxMi05 YjU1LWYzMjI2OTljNjc3MCc6OnV1aWQ6OmJ5dGVhOworICAgICAgICAgICAgICAgYnl0ZWEgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBceDVi MzUzODBhNzE0MzQ5MTI5YjU1ZjMyMjY5OWM2NzcwCisoMSByb3cpCisKK1NFTEVDVCAnXHgwMTlh MmY4NTljZWQ3MjI1Yjk5ZDljNTUwNDRhMjU2Myc6OmJ5dGVhOjp1dWlkOworICAgICAgICAgICAg ICAgICB1dWlkICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgMDE5YTJmODUtOWNlZC03MjI1LWI5OWQtOWM1NTA0NGEyNTYzCisoMSByb3cp CisKK1NFTEVDVCAnXHgxMjM0NTY3ODkwYWJjZGVmJzo6Ynl0ZWE6OnV1aWQ7IC0tIGVycm9yCitF UlJPUjogIGludmFsaWQgaW5wdXQgbGVuZ3RoIGZvciB0eXBlIHV1aWQKK0RFVEFJTDogIEV4cGVj dGVkIDE2IGJ5dGVzLCBnb3QgOC4KK1NFTEVDVCB2ID0gdjo6Ynl0ZWE6OnV1aWQgYXMgbWF0Y2hl ZCBGUk9NIGdlbl9yYW5kb21fdXVpZCgpIHY7CisgbWF0Y2hlZCAKKy0tLS0tLS0tLQorIHQKKygx IHJvdykKKwogLS0gY2xlYW4gdXAKIERST1AgVEFCTEUgZ3VpZDEsIGd1aWQyLCBndWlkMyBDQVND QURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXVpZC5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC91dWlkLnNxbAppbmRleCA0NjUxNTNhMDM0MS4uZjUxMmY0ZGVhMWQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3V1aWQuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3V1aWQuc3FsCkBAIC0xNDYsNiArMTQ2LDExIEBAIFNFTEVDVCB1dWlkX2V4dHJh Y3RfdGltZXN0YW1wKCcwMTdGMjJFMi03OUIwLTdDQzMtOThDNC1EQzBDMEMwNzM5OEYnKSA9ICdU dWVzZGF5CiBTRUxFQ1QgdXVpZF9leHRyYWN0X3RpbWVzdGFtcChnZW5fcmFuZG9tX3V1aWQoKSk7 ICAtLSBudWxsCiBTRUxFQ1QgdXVpZF9leHRyYWN0X3RpbWVzdGFtcCgnMTExMTExMTEtMTExMS0x MTExLTExMTEtMTExMTExMTExMTExJyk7ICAtLSBudWxsCiAKKy0tIGNhc3RzCitTRUxFQ1QgJzVi MzUzODBhLTcxNDMtNDkxMi05YjU1LWYzMjI2OTljNjc3MCc6OnV1aWQ6OmJ5dGVhOworU0VMRUNU ICdceDAxOWEyZjg1OWNlZDcyMjViOTlkOWM1NTA0NGEyNTYzJzo6Ynl0ZWE6OnV1aWQ7CitTRUxF Q1QgJ1x4MTIzNDU2Nzg5MGFiY2RlZic6OmJ5dGVhOjp1dWlkOyAtLSBlcnJvcgorU0VMRUNUIHYg PSB2OjpieXRlYTo6dXVpZCBhcyBtYXRjaGVkIEZST00gZ2VuX3JhbmRvbV91dWlkKCkgdjsKIAog LS0gY2xlYW4gdXAKIERST1AgVEFCTEUgZ3VpZDEsIGd1aWQyLCBndWlkMyBDQVNDQURFOwotLSAK Mi41My4wCgo= --000000000000dfca10064d501f4e--