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 1wZSlQ-0013jo-0K for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Jun 2026 12:19:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wZSlO-00HKaB-35 for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Jun 2026 12:19:30 +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.96) (envelope-from ) id 1wZSlO-00HKa1-24 for pgsql-hackers@lists.postgresql.org; Tue, 16 Jun 2026 12:19:30 +0000 Received: from mail-qv1-xf34.google.com ([2607:f8b0:4864:20::f34]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wZSlM-00000000jQg-1SnF for pgsql-hackers@lists.postgresql.org; Tue, 16 Jun 2026 12:19:30 +0000 Received: by mail-qv1-xf34.google.com with SMTP id 6a1803df08f44-8cc0ef7c306so40433346d6.3 for ; Tue, 16 Jun 2026 05:19:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781612367; cv=none; d=google.com; s=arc-20240605; b=MIqiLDqsYqYwDGxDUgmIzHWu6atc1i2fFC0VtLM5RNfKnejDXA3kvcCV1QM2s6JJb3 9Z/DQXhCulX4Z4FX/jkWSsC1gMgU1kFWGnNHF3Br/MtHLWQ1pJ8G6+ze0RWC49lGN2Rc Neb3HNXFjt4O1d1ynkuFMvxaxOaXMAuNEw9yCL/C3EskwXeh+q+RFVr5BnFSSj3nJe9e NxUSgE30ihtZzmNtMzlUl4n6o/O74/Ifm9eccvjpGsGzp2a7mpDtxGF31QuqtZArsQzM 6INMFSquvJcBpmjDqgG5eOWpuG6q0KtG/0uwxBnoOUD3uDH2qkD8V6qREUVl5vA4skID AL3g== 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=SW6Vn4IDs3EKx6a3cio7M+i/zvN4Vo69d+smEDQTYgE=; fh=SvdiGjK/uVSS7QsEv1KtB2vCh4Q3NURfmb9rZdvzVIs=; b=Ehha6+66D8VqODwH+If3GqN/PmQcPAHwUR9lv+SL5OAK4sUJdCW8CC737PjrVwkOSy bVkawh+cE/UaKBut5Wxq05ygpFpTbKOIccFtqPoPGtWpnXJbpEw9fZepqBJn8MvZ9d6e RF/ZNikLSlIfnEFq9rKWbnrd9kvii8noCs76p1ThgcgKc1QneebnhBZkCNLRLkhKt7T8 +qLqP3gPt/fpyIgOqFbSnIWmn5CYieap4pmjZPJiOkeTlhZjI9E3VKq++b/dtSo1ItlL 8wet4KMGXsjc3rxu4C200C7ml3FnIURi61oj9+stNAra+xUAxN2mH8x0cJeC31qMTnpr LPmA==; darn=lists.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=20251104; t=1781612367; x=1782217167; 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=SW6Vn4IDs3EKx6a3cio7M+i/zvN4Vo69d+smEDQTYgE=; b=NtV/utmg995sDDKrHk4HFwyL38a+deOEYvT6pvEOxkvUsnk9POl9h7FaTnwh3NDO71 6WFBa1E3sA1i7meVyZuPGFBpMoRw/o9YaFQ4KKS9GUExjVAbAJtxtYLL075Vb7xQR5qz q7r2kqdR4OE5XOXwVXRZVIx41ZTsQ5izQvXhPIHApDfO34AO5rg99C6otTb8/B4zCdva sQ0h1FGvZnH2/+8epFsNcuVQyKE3Z7LGfhE8LGnPQ8qLGaJ9HcsxY44AnQkVbaN1b9YN 7jnKQa/tdeOd3niTGXKYWPg86qINK5pQzP4Il5zYhEBT4PmU5ilEaFaJuG+Ag9IAp6aI HD5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781612367; x=1782217167; 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=SW6Vn4IDs3EKx6a3cio7M+i/zvN4Vo69d+smEDQTYgE=; b=A1cmruGWX0edZSfwxpzrWp/+1ZUYHX5MM7g1v9y/LX4KEGFjG1RtFW1H+fUTfILHgY yGv70PRDp6POwuVIjWTPSm5TYB5yR3XwX23pUYKpnUlBpdacs/zfyNJ+9U6TBWLyc9uV fXIBnO3eazhIMv+3IcmpqMdJx0+acVgTlxK3SUKjz+QB3Hbk0+QvVexmOYA7uPd98B1I QSsFSHEs+DkU6umeDKH/HfGf/HSw4VwoHvffs52wdXzK9KntwDfoF/5aNSYNBOa98dX7 zacDmPCN6hJASC2Nu5Lj9nhx0QxomfXgsD7x9/aF7Os5kxEXq6fBNsclP2RMN1TE3LmC eIlA== X-Forwarded-Encrypted: i=1; AFNElJ+HgPAGD4t2Wc9i6hgKwab62oTyA+SGadAQD6JyESrk5wmHftE2KII0njzttPWP01nnqfC3LNNPnBu3VYvz@lists.postgresql.org X-Gm-Message-State: AOJu0YwTZ52LKodu2kWIDPDDETKqCMfVU+WnosKU6gXqlkOh2+cZTtr8 8N2gHeoz7OgrTkrr7WZO3ZHPyNXFaLbu6gVKITECMiLMI/yhMhKugh6KkgUEnFjQN8oXrFiJ54I 9mMqNLwgGBY0VzDw1Dv/wb9ECGp7Rwv8= X-Gm-Gg: Acq92OG9XZZa/2tWQ9+vkhR299b48XKQIz57pXUERp6FRM6dnQvp2uVGoxrpQBumwR6 7crPx3l7wOsN1O9tW/iTwArBfnIWZXWMRTWsWvHTTNLWQ7EZVKqlOoEFTmRDzPSUgn3re3Ul/pQ tmEpcIWJDN59HcAIRSwn3U/7Ftu8FvOIdZdC+OuU8zFF6yfsVESX4cVj4P7ZP+JZRSna8wDRfnz g87qJ6YtFgYxz37t2aaHGnpfDZdfVTHNLhwQDneZntIyagtMpKc9gTfd3UVn9S+C8inDFFpgeDa eod0JCtrmveIPKHfGKRaj7xOkghoSC4AGY6cp0D8ljhu4ZvxFpnxW3KTxRfGRkUZock0L1l1bv8 5k0bq X-Received: by 2002:a05:6214:2b9d:b0:8d0:3fd3:8dbe with SMTP id 6a1803df08f44-8da1d6ff8c2mr55825136d6.9.1781612366523; Tue, 16 Jun 2026 05:19:26 -0700 (PDT) MIME-Version: 1.0 References: <0f655bcd-6487-4179-f9cf-c248efbad510@gmail.com> <41117807-3bea-45bc-a9c0-743c29abff2d@postgrespro.ru> In-Reply-To: From: Alexander Korotkov Date: Tue, 16 Jun 2026 15:19:13 +0300 X-Gm-Features: AVVi8CcjjAHHaJieKLzOZI6ri3ewCVN63dU9ywshX6KfNZ3oUMKHOHPA5aAvSjI Message-ID: Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: jian he Cc: Pavel Borisov , Justin Pryzby , Dmitry Koval , Alexander Lakhin , pgsql-hackers@lists.postgresql.org, Tomas Vondra , Alvaro Herrera Content-Type: multipart/mixed; boundary="0000000000003c0c1006545df4ba" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003c0c1006545df4ba Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jun 16, 2026 at 11:09=E2=80=AFAM jian he wrote: > > On Tue, Jun 16, 2026 at 5:37=E2=80=AFAM Alexander Korotkov wrote: > > > > On Tue, Jun 16, 2026 at 12:36=E2=80=AFAM Pavel Borisov wrote: > > > On Tue, 16 Jun 2026 at 00:50, Alexander Korotkov wrote: > > > > > > > > On Mon, Jun 15, 2026 at 2:07=E2=80=AFPM Justin Pryzby wrote: > > > > > > > > > > I hit an error when I tried this patch. > > > > > > > > > > CREATE TABLE a (a text) PARTITION BY RANGE(a); > > > > > CREATE TABLE a1 PARTITION OF a DEFAULT; > > > > > INSERT INTO a SELECT repeat('1', 9999999); > > > > > CREATE TABLE a2 PARTITION OF a FOR VALUES FROM (2)TO(3); > > > > > ALTER TABLE a MERGE PARTITIONS (a1, a2) INTO a1; > > > > > ERROR: row is too big: size 39264, maximum size 8160 > > > > > > > > Thank you for your report. It appears that createPartitionTable() > > > > misses NewRelationCreateToastTable() call (for instance, DefineTabl= e() > > > > has this call). The attached patch implements fix and has tests. = I'm > > > > going to push it if no objections. > > > > > > It looks like the patch is missing in the last message. > > > > src5=3D# explain (analyze, timing, costs off) SELECT repeat('1', 9999999)= ; > QUERY PLAN > ----------------------------------------------------- > Result (actual time=3D0.002..0.003 rows=3D1.00 loops=3D1) > Planning Time: 1454.745 ms > Execution Time: 0.035 ms > (3 rows) > > Time: 1458.413 ms (00:01.458) > > The timing above is from an Assert-enabled build. > Could we optimize these tests to make them less expensive to run? Yes, we can. Here is the second version of this patch. Now it uses just 10'000 bytes value with external storage. ------ Regards, Alexander Korotkov Supabase --0000000000003c0c1006545df4ba Content-Type: application/octet-stream; name="v2-0001-Create-TOAST-table-for-partitions-made-by-MERGE-S.patch" Content-Disposition: attachment; filename="v2-0001-Create-TOAST-table-for-partitions-made-by-MERGE-S.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqglyvzs0 RnJvbSBhMzMxMzdmZTljODUzZjkwZjQ4YTY0Mzk2M2IzOWVjOTIwMTczMDdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogTW9uLCAxNSBKdW4gMjAyNiAxNTowNToyMyArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjJdIENyZWF0ZSBUT0FTVCB0YWJsZSBmb3IgcGFydGl0aW9ucyBtYWRlIGJ5IE1FUkdF L1NQTElUCiBQQVJUSVRJT04KCkFMVEVSIFRBQkxFIC4uLiBNRVJHRSBQQVJUSVRJT05TIC8gU1BM SVQgUEFSVElUSU9OIGJ1aWxkcyBhIG5ldwpwYXJ0aXRpb24gdmlhIGNyZWF0ZVBhcnRpdGlvblRh YmxlKCksIGJ1dCBuZXZlciBnYXZlIGl0IGEgVE9BU1QgdGFibGUuCldoZW4gdGhlIHNvdXJjZSBy b3dzIGNhcnJpZWQgb3V0LW9mLWxpbmUgdmFybGVuYSB2YWx1ZXMsIHRoZSBtb3ZlCmludG8gdGhl IG5ldyBwYXJ0aXRpb24gZW50ZXJlZCBoZWFwX3RvYXN0X2luc2VydF9vcl91cGRhdGUoKSB3aXRo CnJlbHRvYXN0cmVsaWQgPSBJbnZhbGlkT2lkOiB0aGUgZXh0ZXJuYWxpemF0aW9uIHN0ZXAgaXMg c2tpcHBlZCwgdGhlCnZhbHVlIGZhbGxzIGJhY2sgdG8gaW5saW5lIHN0b3JhZ2UgYW5kIGhlYXBf aW5zZXJ0KCkgZmFpbHMgd2l0aAoicm93IGlzIHRvbyBiaWciIGVycm9yLiAgQWxzbywgVE9BU1Qg dGFibGUgaXMgbmVlZGVkIGlmIHRoZSBuZXcgcGFydGl0aW9uCnJlY2VpdmVzIG91dC1vZi1saW5l IHZhcmxlbmEgdmFsdWVzIGFmdGVyIHRoZSBEREwgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLgoKQ2Fs bCBOZXdSZWxhdGlvbkNyZWF0ZVRvYXN0VGFibGUoKSByaWdodCBhZnRlciB0aGUgbmV3IHBhcnRp dGlvbiBpcwpjcmVhdGVkIGluIGNyZWF0ZVBhcnRpdGlvblRhYmxlKCksIG1pcnJvcmluZyB3aGF0 IERlZmluZVJlbGF0aW9uKCkKZG9lcyBmb3IgcmVndWxhciBDUkVBVEUgVEFCTEUuICBOZXdSZWxh dGlvbkNyZWF0ZVRvYXN0VGFibGUoKSBkZWNpZGVzCm9uIGl0cyBvd24gd2hldGhlciBhIFRPQVNU IHRhYmxlIGlzIGFjdHVhbGx5IHJlcXVpcmVkLCBzbyBwYXJ0aXRpb25zCndpdGggbm8gdG9hc3Qt ZWxpZ2libGUgY29sdW1ucyBhcmUgdW5hZmZlY3RlZC4KClJlcG9ydGVkLWJ5OiBKdXN0aW4gUHJ5 emJ5IDxwcnl6YnlAdGVsc2Fzb2Z0LmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9haV9jNC12OGlMQTJrWEZWJTQwcHJ5emJ5ajIwMjMKUmV2aWV3ZWQtYnk6IFBhdmVsIEJvcmlz b3YgPHBhc2hraW4uZWxmZUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVu aXZlcnNhbGl0eUBnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgICAgICAgICAgICAgIHwgIDkgKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bh cnRpdGlvbl9tZXJnZS5vdXQgfCAyNiArKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BhcnRpdGlvbl9zcGxpdC5vdXQgfCAzMCArKysrKysrKysrKysrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsICAgICAgfCAxNyArKysrKysr KysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbCAgICAgIHwgMTkg KysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYwppbmRleCAzOGY5ZmZjZDA0Zi4uMjY1ZGNmZTdmZGEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yMjgxNSw2ICsyMjgxNSwxNSBAQCBjcmVhdGVQYXJ0aXRp b25UYWJsZShMaXN0ICoqd3F1ZXVlLCBSYW5nZVZhciAqbmV3UGFydE5hbWUsCiAJICovCiAJQ29t bWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAorCS8qCisJICogQ3JlYXRlIGEgVE9BU1QgdGFibGUg aWYgdGhlIHRhYmxlIG5lZWRzIG9uZS4gIE1FUkdFL1NQTElUIFBBUlRJVElPTgorCSAqIG1vdmVz IHJvd3MgZnJvbSBleGlzdGluZyBwYXJ0aXRpb24ocykgaW50byBuZXcgcGFydGl0aW9uKHMpLCB3 aGljaCBtYXkKKwkgKiBjYXJyeSBvdXQtb2YtbGluZSB2YXJsZW5hIHZhbHVlcyB0aGF0IHRoZSBu ZXcgcmVsYXRpb24gbXVzdCBiZSBhYmxlIHRvCisJICogc3RvcmUuICBBbHNvLCB0aGUgbmV3IHBh cnRpdGlvbiBtdXN0IGJlIGFibGUgdG8gcmVjZWl2ZSBvdXQtb2YtbGluZQorCSAqIHZhcmxlbmEg dmFsdWVzIGFmdGVyIHRoZSBEREwgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLgorCSAqLworCU5ld1Jl bGF0aW9uQ3JlYXRlVG9hc3RUYWJsZShuZXdSZWxJZCwgKERhdHVtKSAwKTsKKwogCS8qCiAJICog T3BlbiB0aGUgbmV3IHBhcnRpdGlvbiB3aXRoIG5vIGxvY2ssIGJlY2F1c2Ugd2UgYWxyZWFkeSBo YXZlIGFuCiAJICogQWNjZXNzRXhjbHVzaXZlTG9jayBwbGFjZWQgdGhlcmUgYWZ0ZXIgY3JlYXRp b24uCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJn ZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQKaW5k ZXggZDM4MThmMWJmOWIuLjllZTU0OGNiY2M4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CkBAIC0xMDg4LDYgKzEwODgsMzIgQEAgU0VMRUNUIGNv dW50KCopIEZST00gdCBXSEVSRSBpID0gMTUgQU5EIGcgSU4gKFNFTEVDVCBnICsgMTAgRlJPTSB0 IFdIRVJFIGkgPSA1KTsKICAgICAgMQogKDEgcm93KQogCitEUk9QIFRBQkxFIHQ7CistLSBNZXJn ZWQgcGFydGl0aW9ucyBuZWVkIHRoZWlyIG93biBUT0FTVCB0YWJsZTsgb3RoZXJ3aXNlIGFuIG91 dC1vZi1saW5lCistLSB2YXJsZW5hIHZhbHVlIGNhcnJpZWQgb3ZlciBmcm9tIG9uZSBvZiB0aGUg bWVyZ2luZyBwYXJ0aXRpb25zIGhhcworLS0gbm93aGVyZSB0byBiZSByZS1zdG9yZWQuICBTRVQg U1RPUkFHRSBFWFRFUk5BTCBmb3JjZXMgZXh0ZXJuYWxpemF0aW9uCistLSBmb3IgYW55IHZhbHVl IG92ZXIgdGhlIFRPQVNUIHRocmVzaG9sZCwgc28gYSBzaG9ydCBzdHJpbmcgc3VmZmljZXMgdG8K Ky0tIGV4ZXJjaXNlIHRoZSB0b2FzdC10YWJsZSBkZXBlbmRlbmN5LgorQ1JFQVRFIFRBQkxFIHQg KGEgdGV4dCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOworQUxURVIgVEFCTEUgdCBBTFRFUiBDT0xV TU4gYSBTRVQgU1RPUkFHRSBFWFRFUk5BTDsKK0NSRUFURSBUQUJMRSB0cF9kZWYgUEFSVElUSU9O IE9GIHQgREVGQVVMVDsKK0NSRUFURSBUQUJMRSB0cF8yXzMgUEFSVElUSU9OIE9GIHQgRk9SIFZB TFVFUyBGUk9NICgnMicpIFRPICgnMycpOworSU5TRVJUIElOVE8gdCBTRUxFQ1QgcmVwZWF0KCcx JywgMTAwMDApOworQUxURVIgVEFCTEUgdCBNRVJHRSBQQVJUSVRJT05TICh0cF9kZWYsIHRwXzJf MykgSU5UTyB0cF9tZXJnZWQ7CitTRUxFQ1QgcmVsdG9hc3RyZWxpZCA8PiAwIEFTIGhhc190b2Fz dCwKKyAgICAgICBwZ19yZWxhdGlvbl9zaXplKHJlbHRvYXN0cmVsaWQpID4gMCBBUyB0b2FzdF91 c2VkCisgIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0cF9tZXJnZWQnOworIGhhc190 b2FzdCB8IHRvYXN0X3VzZWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB0ICAgICAgICAg fCB0CisoMSByb3cpCisKK1NFTEVDVCBsZW5ndGgoYSkgRlJPTSB0OworIGxlbmd0aCAKKy0tLS0t LS0tCisgIDEwMDAwCisoMSByb3cpCisKIERST1AgVEFCTEUgdDsKIFJFU0VUIHNlYXJjaF9wYXRo OwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3Nw bGl0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dApp bmRleCBmZjYwMjdhZjY1OC4uOWEyMzY1N2U3NTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BhcnRpdGlvbl9zcGxpdC5vdXQKQEAgLTE2NTMsNiArMTY1MywzNiBAQCBTRUxFQ1Qg Y291bnQoKikgRlJPTSB0IFdIRVJFIGkgPSAwIEFORCB0YWJfaWQgSU4gKFNFTEVDVCB0YWJfaWQg RlJPTSB0IFdIRVJFIGkgPQogICAgICAwCiAoMSByb3cpCiAKK0RST1AgVEFCTEUgdDsKKy0tIEVh Y2ggbmV3IHBhcnRpdGlvbiBwcm9kdWNlZCBieSBTUExJVCBtdXN0IGdldCBpdHMgb3duIFRPQVNU IHRhYmxlIHNvCistLSB0aGF0IG91dC1vZi1saW5lIHZhcmxlbmEgYXR0cmlidXRlcyBjb21pbmcg ZnJvbSB0aGUgc291cmNlIHBhcnRpdGlvbgorLS0gY2FuIGJlIHN0b3JlZC4gIFNFVCBTVE9SQUdF IEVYVEVSTkFMIGZvcmNlcyBleHRlcm5hbGl6YXRpb24gZm9yIGFueQorLS0gdmFsdWUgb3ZlciB0 aGUgVE9BU1QgdGhyZXNob2xkLCBzbyBhIHNob3J0IHN0cmluZyBzdWZmaWNlcyB0byBleGVyY2lz ZQorLS0gdGhlIHRvYXN0LXRhYmxlIGRlcGVuZGVuY3kuCitDUkVBVEUgVEFCTEUgdCAoYSB0ZXh0 KSBQQVJUSVRJT04gQlkgUkFOR0UoYSk7CitBTFRFUiBUQUJMRSB0IEFMVEVSIENPTFVNTiBhIFNF VCBTVE9SQUdFIEVYVEVSTkFMOworQ1JFQVRFIFRBQkxFIHRwX2FsbCBQQVJUSVRJT04gT0YgdCBG T1IgVkFMVUVTIEZST00gKE1JTlZBTFVFKSBUTyAoTUFYVkFMVUUpOworSU5TRVJUIElOVE8gdCBT RUxFQ1QgcmVwZWF0KCcxJywgMTAwMDApOworQUxURVIgVEFCTEUgdCBTUExJVCBQQVJUSVRJT04g dHBfYWxsIElOVE8gKAorICAgIFBBUlRJVElPTiB0cF9sbyBGT1IgVkFMVUVTIEZST00gKE1JTlZB TFVFKSBUTyAoJzInKSwKKyAgICBQQVJUSVRJT04gdHBfaGkgRk9SIFZBTFVFUyBGUk9NICgnMicp IFRPIChNQVhWQUxVRSkKKyk7CitTRUxFQ1QgcmVsbmFtZSwKKyAgICAgICByZWx0b2FzdHJlbGlk IDw+IDAgQVMgaGFzX3RvYXN0LAorICAgICAgIHBnX3JlbGF0aW9uX3NpemUocmVsdG9hc3RyZWxp ZCkgPiAwIEFTIHRvYXN0X3VzZWQKKyAgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lIElOICgn dHBfbG8nLCAndHBfaGknKSBPUkRFUiBCWSByZWxuYW1lOworIHJlbG5hbWUgfCBoYXNfdG9hc3Qg fCB0b2FzdF91c2VkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHRwX2hp ICAgfCB0ICAgICAgICAgfCBmCisgdHBfbG8gICB8IHQgICAgICAgICB8IHQKKygyIHJvd3MpCisK K1NFTEVDVCBsZW5ndGgoYSkgRlJPTSB0OworIGxlbmd0aCAKKy0tLS0tLS0tCisgIDEwMDAwCiso MSByb3cpCisKIERST1AgVEFCTEUgdDsKIFJFU0VUIHNlYXJjaF9wYXRoOwogLS0KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsCmluZGV4IDFlMTRlZDQwZjVjLi4yNzIxZTY0 ODIyOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsCkBAIC03ODEs NiArNzgxLDIzIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHQgV0hFUkUgaSA9IDE1IEFORCBnIElO IChTRUxFQ1QgZyArIDEwIEZST00gdCBXSEVSRSBpID0gNSk7CiAKIERST1AgVEFCTEUgdDsKIAor LS0gTWVyZ2VkIHBhcnRpdGlvbnMgbmVlZCB0aGVpciBvd24gVE9BU1QgdGFibGU7IG90aGVyd2lz ZSBhbiBvdXQtb2YtbGluZQorLS0gdmFybGVuYSB2YWx1ZSBjYXJyaWVkIG92ZXIgZnJvbSBvbmUg b2YgdGhlIG1lcmdpbmcgcGFydGl0aW9ucyBoYXMKKy0tIG5vd2hlcmUgdG8gYmUgcmUtc3RvcmVk LiAgU0VUIFNUT1JBR0UgRVhURVJOQUwgZm9yY2VzIGV4dGVybmFsaXphdGlvbgorLS0gZm9yIGFu eSB2YWx1ZSBvdmVyIHRoZSBUT0FTVCB0aHJlc2hvbGQsIHNvIGEgc2hvcnQgc3RyaW5nIHN1ZmZp Y2VzIHRvCistLSBleGVyY2lzZSB0aGUgdG9hc3QtdGFibGUgZGVwZW5kZW5jeS4KK0NSRUFURSBU QUJMRSB0IChhIHRleHQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKK0FMVEVSIFRBQkxFIHQgQUxU RVIgQ09MVU1OIGEgU0VUIFNUT1JBR0UgRVhURVJOQUw7CitDUkVBVEUgVEFCTEUgdHBfZGVmIFBB UlRJVElPTiBPRiB0IERFRkFVTFQ7CitDUkVBVEUgVEFCTEUgdHBfMl8zIFBBUlRJVElPTiBPRiB0 IEZPUiBWQUxVRVMgRlJPTSAoJzInKSBUTyAoJzMnKTsKK0lOU0VSVCBJTlRPIHQgU0VMRUNUIHJl cGVhdCgnMScsIDEwMDAwKTsKK0FMVEVSIFRBQkxFIHQgTUVSR0UgUEFSVElUSU9OUyAodHBfZGVm LCB0cF8yXzMpIElOVE8gdHBfbWVyZ2VkOworU0VMRUNUIHJlbHRvYXN0cmVsaWQgPD4gMCBBUyBo YXNfdG9hc3QsCisgICAgICAgcGdfcmVsYXRpb25fc2l6ZShyZWx0b2FzdHJlbGlkKSA+IDAgQVMg dG9hc3RfdXNlZAorICBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgPSAndHBfbWVyZ2VkJzsK K1NFTEVDVCBsZW5ndGgoYSkgRlJPTSB0OworRFJPUCBUQUJMRSB0OworCiAKIFJFU0VUIHNlYXJj aF9wYXRoOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fc3Bs aXQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbAppbmRleCAw NWRlMjQxNTJkMS4uNDhkOTZlMzMxMWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3BhcnRpdGlvbl9zcGxpdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9u X3NwbGl0LnNxbApAQCAtMTE4NCw2ICsxMTg0LDI1IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHQg V0hFUkUgaSA9IDAgQU5EIHRhYl9pZCBJTiAoU0VMRUNUIHRhYl9pZCBGUk9NIHQgV0hFUkUgaSA9 CiAKIERST1AgVEFCTEUgdDsKIAorLS0gRWFjaCBuZXcgcGFydGl0aW9uIHByb2R1Y2VkIGJ5IFNQ TElUIG11c3QgZ2V0IGl0cyBvd24gVE9BU1QgdGFibGUgc28KKy0tIHRoYXQgb3V0LW9mLWxpbmUg dmFybGVuYSBhdHRyaWJ1dGVzIGNvbWluZyBmcm9tIHRoZSBzb3VyY2UgcGFydGl0aW9uCistLSBj YW4gYmUgc3RvcmVkLiAgU0VUIFNUT1JBR0UgRVhURVJOQUwgZm9yY2VzIGV4dGVybmFsaXphdGlv biBmb3IgYW55CistLSB2YWx1ZSBvdmVyIHRoZSBUT0FTVCB0aHJlc2hvbGQsIHNvIGEgc2hvcnQg c3RyaW5nIHN1ZmZpY2VzIHRvIGV4ZXJjaXNlCistLSB0aGUgdG9hc3QtdGFibGUgZGVwZW5kZW5j eS4KK0NSRUFURSBUQUJMRSB0IChhIHRleHQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKK0FMVEVS IFRBQkxFIHQgQUxURVIgQ09MVU1OIGEgU0VUIFNUT1JBR0UgRVhURVJOQUw7CitDUkVBVEUgVEFC TEUgdHBfYWxsIFBBUlRJVElPTiBPRiB0IEZPUiBWQUxVRVMgRlJPTSAoTUlOVkFMVUUpIFRPIChN QVhWQUxVRSk7CitJTlNFUlQgSU5UTyB0IFNFTEVDVCByZXBlYXQoJzEnLCAxMDAwMCk7CitBTFRF UiBUQUJMRSB0IFNQTElUIFBBUlRJVElPTiB0cF9hbGwgSU5UTyAoCisgICAgUEFSVElUSU9OIHRw X2xvIEZPUiBWQUxVRVMgRlJPTSAoTUlOVkFMVUUpIFRPICgnMicpLAorICAgIFBBUlRJVElPTiB0 cF9oaSBGT1IgVkFMVUVTIEZST00gKCcyJykgVE8gKE1BWFZBTFVFKQorKTsKK1NFTEVDVCByZWxu YW1lLAorICAgICAgIHJlbHRvYXN0cmVsaWQgPD4gMCBBUyBoYXNfdG9hc3QsCisgICAgICAgcGdf cmVsYXRpb25fc2l6ZShyZWx0b2FzdHJlbGlkKSA+IDAgQVMgdG9hc3RfdXNlZAorICBGUk9NIHBn X2NsYXNzIFdIRVJFIHJlbG5hbWUgSU4gKCd0cF9sbycsICd0cF9oaScpIE9SREVSIEJZIHJlbG5h bWU7CitTRUxFQ1QgbGVuZ3RoKGEpIEZST00gdDsKK0RST1AgVEFCTEUgdDsKIAogUkVTRVQgc2Vh cmNoX3BhdGg7CiAKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000003c0c1006545df4ba--