Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1txwUf-00HRl1-Ka for pgsql-hackers@arkaria.postgresql.org; Thu, 27 Mar 2025 23:18:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1txwUe-00Fdy4-5t for pgsql-hackers@arkaria.postgresql.org; Thu, 27 Mar 2025 23:18:36 +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.94.2) (envelope-from ) id 1txwUd-00Fdxv-KU for pgsql-hackers@lists.postgresql.org; Thu, 27 Mar 2025 23:18:35 +0000 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1txwUb-001Vhs-1p for pgsql-hackers@lists.postgresql.org; Thu, 27 Mar 2025 23:18:34 +0000 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-aaf0f1adef8so213650766b.3 for ; Thu, 27 Mar 2025 16:18:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743117512; x=1743722312; 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=Xu5OgIMuxJWwBiJ15bgDS5w6CmEYTbEu0az3WrAxCMU=; b=aKvK9ael11+MLY4PRZJKYwE68GrAGqi/Rvf60CBGLPx9J1fve6rHdj9sgGSYtlMPOe cm1rIloRkokjkkKHvgn9ZlU5p08mmduUm0/jWRlbxw0h/W446n2VMrFA0qV436geCaSF 5g2XWvle2nbvEUJdFNVOVaE7yfk9BZMT9MrmwHPw6QvtGc9v6fuuT+aHqkNFQ4gCL8YJ 10NJiFKmNM+cD9bnfXQ1C6xKa58wIvJ5ijVFpneDyDu40DDphH1Pe4s14/G+vrQnVbxe 0088cbExrnNz5gxzVhAI0yNdMbW4/8EXHpkGftj9uRudL1V11/1sK8kVwY0HwkZeEotj oqlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743117512; x=1743722312; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Xu5OgIMuxJWwBiJ15bgDS5w6CmEYTbEu0az3WrAxCMU=; b=lRuvfBi2HoaAj+vXsiaJa6Fr0QDV6xjItNqP2BcnsYdd0GnEk7qTOTeK4b9ngk/fEn dF8O/10xuWjE/fHlb9UFYrrZQ75Rjt3GZ3b/cGRCyEvDUfTsN1PIAYB4enrXaw/hKunZ agNuArA3mKIHogINEM/68l4Mys7ngDEqp6VMnlL49Z3ZdFcQjKOY/p1UOOT+hEM66CTd +Uo5YmgchSwbZPdmRHih+ddgFMIi82s9LcdImb6VMPb0UT8ofNcVoPeQow5OiE9NC1D1 FNpOZ3OJ4/kpR0ViK1EX8NuNg5ijW5EQU1R8BYPO+lGe5eNDVwo3itL6XrqMcgxBkVYz edvg== X-Forwarded-Encrypted: i=1; AJvYcCVAtTCQbO6yvGwveWtAyIB32fXqkE2eY5NFX71p6o+HTvPyaZckq4smSjVW95PaxlMA8gsbZM4lIX7A5Z0N@lists.postgresql.org X-Gm-Message-State: AOJu0Yyp//VQA9raeqRR8zX/kJ6NF5FqzpWDIZnT6PvoJanoy5g8H8yy 37y1wmdXyECKmd/HRGDgOqdxXjqDtgcAKIGHLJmjAqGJmzie3UMtXKx2WoaLhC/eCRdYlH2bGHg 33CPV/CGK2E6INC1SBtE8Zw28WzlwRzu+iZY= X-Gm-Gg: ASbGnct2KPqDixSC62NjbmcUfCoTuAs6dO+w508uZJZMyxsx9k+eYiIjHHk1nusteN6 /gMjlWIIVeOtJoRm7kGPrPKA+nE0AwpdON8UTKEukDMyb7CTyZ9ixhEliHWpCHjUIaO6RdPkm92 WBMg0Erro2DHLBP7IQO35zHncqDQ== X-Google-Smtp-Source: AGHT+IEwS+THjxtTq50vA69JS5nQifwPycWYtcQDm1R4nMwdaLnXurZuNGrA5Ur4jnmOiY0cLneAPy4QW67wEvpIAQo= X-Received: by 2002:a17:907:7ba1:b0:ac1:e2be:bab8 with SMTP id a640c23a62f3a-ac6faf34d25mr468763366b.26.1743117511657; Thu, 27 Mar 2025 16:18:31 -0700 (PDT) MIME-Version: 1.0 References: <567ED6CA.2040504@sigaev.ru> <43db6a40-5c5f-4909-ad62-3060b297e686@postgrespro.ru> <41ba3d47-2a48-476c-88d4-6ebd889a7af2@gmail.com> <036d64e6-4d47-485c-b047-6664d452b3e8@postgrespro.ru> <1a4f1631-86c1-4185-a520-03b24a389449@postgrespro.ru> <3ac7c436-81e1-4191-9caf-b0dd70b51511@gmail.com> <72eab2bf-7f94-4f58-84bc-2b80d74b6443@postgrespro.ru> In-Reply-To: <72eab2bf-7f94-4f58-84bc-2b80d74b6443@postgrespro.ru> From: Alexander Korotkov Date: Fri, 28 Mar 2025 01:18:19 +0200 X-Gm-Features: AQ5f1JrU29XbJxOrSzwA8svOkzWkTxUQXZ4bUjRq7tL79YzqXTyUtUQYWxAwzkM Message-ID: Subject: Re: POC, WIP: OR-clause support for indexes To: Alena Rybakina Cc: Pavel Borisov , Andrei Lepikhov , Alexander Lakhin , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000015cf0a06315b2ceb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000015cf0a06315b2ceb Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi! On Mon, Mar 24, 2025 at 2:46=E2=80=AFPM Alena Rybakina wrote: > I agree with Andrey's changes and think we should fix this, because other= wise it might be inconvenient. > For example, without this changes we will have to have different test out= put files for the same query for different versions of Postres in extension= s if the whole change is only related to the order of column output for a t= ransformation that was not applied. I agree with problem spotted by Andrei: it should be preferred to preserve original order of clauses as much as possible. The approach implemented in Andrei's patch seems fragile for me. Original order is preserved if we didn't find any group. But once we find a single group original order might be destroyed completely. The attached patch changes the reordering algorithm of group_similar_or_args() in the following way. We reorder each group of similar clauses so that the first item of the group stays in place, but all the other items are moved after it. So, if there are no similar clauses, the order of clauses stays the same. When there are some groups, only required reordering happens while the rest of the clauses remain in their places. ------ Regards, Alexander Korotkov Supabase --00000000000015cf0a06315b2ceb Content-Type: application/octet-stream; name="v1-0001-Make-group_similar_or_args-reorder-clause-list-as.patch" Content-Disposition: attachment; filename="v1-0001-Make-group_similar_or_args-reorder-clause-list-as.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8ry5zl30 RnJvbSAxODI5NTY0YjQyNDUwY2FjOGQwMzBkOTk0MmVmMGE1ZjI2ZmY4NmZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgS29yb3Rrb3YgPGFrb3JvdGtvdkBwb3N0Z3Jl c3FsLm9yZz4KRGF0ZTogRnJpLCAyOCBNYXIgMjAyNSAwMDoxNToyOSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggdjFdIE1ha2UgZ3JvdXBfc2ltaWxhcl9vcl9hcmdzKCkgcmVvcmRlciBjbGF1c2UgbGlz dCBhcyBsaXR0bGUKIGFzIHBvc3NpYmxlCgpDdXJyZW50bHksIGdyb3VwX3NpbWlsYXJfb3JfYXJn cygpIHBlcm11dGVzIG9yaWdpbmFsIHBvc2l0aW9ucyBvZiBjbGF1c2VzCmluZGVwZW5kZW50bHkg b24gd2hldGhlciBpdCBtYW5hZ2VzIHRvIGZpbmQgYW55IGdyb3VwcyBvZiBzaW1pbGFyIGNsYXVz ZXMuCldoaWxlIHdlIGFyZSBub3QgcHJvdmlkaW5nIGFueSBzdHJpY3Qgd2FycmFudGllcyBvbiBz YXZpbmcgdGhlIG9yaWdpbmFsIG9yZGVyCm9mIE9SLWNsYXVzZXMsIGl0IGlzIHByZWZlcnJlZCB0 aGF0IHRoZSBvcmlnaW5hbCBvcmRlciBiZSBtb2RpZmllZCBhcyBsaXR0bGUKYXMgcG9zc2libGUu CgpUaGlzIGNvbW1pdCBjaGFuZ2VzIHRoZSByZW9yZGVyaW5nIGFsZ29yaXRobSBvZiBncm91cF9z aW1pbGFyX29yX2FyZ3MoKSBpbgp0aGUgZm9sbG93aW5nIHdheS4gIFdlIHJlb3JkZXIgZWFjaCBn cm91cCBvZiBzaW1pbGFyIGNsYXVzZXMgc28gdGhhdCB0aGUKZmlyc3QgaXRlbSBvZiB0aGUgZ3Jv dXAgc3RheXMgaW4gcGxhY2UsIGJ1dCBhbGwgdGhlIG90aGVyIGl0ZW1zIGFyZSBtb3ZlZAphZnRl ciBpdC4gIFNvLCBpZiB0aGVyZSBhcmUgbm8gc2ltaWxhciBjbGF1c2VzLCB0aGUgb3JkZXIgb2Yg Y2xhdXNlcyBzdGF5cwp0aGUgc2FtZS4gIFdoZW4gdGhlcmUgYXJlIHNvbWUgZ3JvdXBzLCBvbmx5 IHJlcXVpcmVkIHJlb3JkZXJpbmcgaGFwcGVucyB3aGlsZQp0aGUgcmVzdCBvZiB0aGUgY2xhdXNl cyByZW1haW4gaW4gdGhlaXIgcGxhY2VzLgoKUmVwb3J0ZWQtYnk6IEFuZHJlaSBMZXBpa2hvdiA8 bGVwaWhvdkBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vM2FjN2M0 MzYtODFlMS00MTkxLTljYWYtYjBkZDcwYjUxNTExJTQwZ21haWwuY29tCi0tLQogc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BhdGgvaW5keHBhdGguYyAgICAgICAgfCA2MCArKysrKysrKysrKysrKysr KysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0ICAgfCAxOCAr KystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICAgICAgICAgIHwgNTIg KysrKysrKystLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pv aW4ub3V0IHwgMTIgKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgNDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvaW5k eHBhdGguYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2luZHhwYXRoLmMKaW5kZXggYTQz Y2ExNmQ2ODMuLjJhMThiZjdjN2MzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGF0aC9pbmR4cGF0aC5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2luZHhwYXRo LmMKQEAgLTExODksNiArMTE4OSw4IEBAIHR5cGVkZWYgc3RydWN0CiAJT2lkCQkJaW5wdXRjb2xs aWQ7CS8qIE9JRCBvZiB0aGUgT3BDbGF1c2UgaW5wdXQgY29sbGF0aW9uICovCiAJaW50CQkJYXJn aW5kZXg7CQkvKiBpbmRleCBvZiB0aGUgY2xhdXNlIGluIHRoZSBsaXN0IG9mCiAJCQkJCQkJCSAq IGFyZ3VtZW50cyAqLworCWludAkJCWdyb3VwaW5kZXg7CQkvKiB2YWx1ZSBvZiBhcmdpbmRleCBm b3IgdGhlIGZpc3QgY2xhdXNlIGluCisJCQkJCQkJCSAqIHRoZSBncm91cCBvZiBzaW1pbGFyIGNs YXVzZXMgKi8KIH0gT3JBcmdJbmRleE1hdGNoOwogCiAvKgpAQCAtMTIyOSw2ICsxMjMxLDI5IEBA IG9yX2FyZ19pbmRleF9tYXRjaF9jbXAoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIAly ZXR1cm4gMDsKIH0KIAorLyoKKyAqIEFub3RoZXIgY29tcGFyaXNvbiBmdW5jdGlvbiBmb3IgT3JB cmdJbmRleE1hdGNoLiAgSXQgc29ydHMgZ3JvdXBzIHRvZ2V0aGVyCisgKiB1c2luZyBncm91cGlu ZGV4LiAgVGhlIGdyb3VwIGl0ZW1zIGFyZSB0aGVuIHNvcnRlZCBieSBhcmdpbmRleC4KKyAqLwor c3RhdGljIGludAorb3JfYXJnX2luZGV4X21hdGNoX2NtcF9ncm91cChjb25zdCB2b2lkICphLCBj b25zdCB2b2lkICpiKQoreworCWNvbnN0IE9yQXJnSW5kZXhNYXRjaCAqbWF0Y2hfYSA9IChjb25z dCBPckFyZ0luZGV4TWF0Y2ggKikgYTsKKwljb25zdCBPckFyZ0luZGV4TWF0Y2ggKm1hdGNoX2Ig PSAoY29uc3QgT3JBcmdJbmRleE1hdGNoICopIGI7CisKKwlpZiAobWF0Y2hfYS0+Z3JvdXBpbmRl eCA8IG1hdGNoX2ItPmdyb3VwaW5kZXgpCisJCXJldHVybiAtMTsKKwllbHNlIGlmIChtYXRjaF9h LT5ncm91cGluZGV4ID4gbWF0Y2hfYi0+Z3JvdXBpbmRleCkKKwkJcmV0dXJuIDE7CisKKwlpZiAo bWF0Y2hfYS0+YXJnaW5kZXggPCBtYXRjaF9iLT5hcmdpbmRleCkKKwkJcmV0dXJuIC0xOworCWVs c2UgaWYgKG1hdGNoX2EtPmFyZ2luZGV4ID4gbWF0Y2hfYi0+YXJnaW5kZXgpCisJCXJldHVybiAx OworCisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBncm91cF9zaW1pbGFyX29yX2FyZ3MKICAqCQlU cmFuc2Zvcm0gaW5jb21pbmcgT1ItcmVzdHJpY3RpbmZvIGludG8gYSBsaXN0IG9mIHN1Yi1yZXN0 cmljdGluZm9zLApAQCAtMTI4Miw2ICsxMzA3LDcgQEAgZ3JvdXBfc2ltaWxhcl9vcl9hcmdzKFBs YW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsIFJlc3RyaWN0SW5mbyAqcmluZm8pCiAK IAkJaSsrOwogCQltYXRjaGVzW2ldLmFyZ2luZGV4ID0gaTsKKwkJbWF0Y2hlc1tpXS5ncm91cGlu ZGV4ID0gaTsKIAkJbWF0Y2hlc1tpXS5pbmRleG51bSA9IC0xOwogCQltYXRjaGVzW2ldLmNvbG51 bSA9IC0xOwogCQltYXRjaGVzW2ldLm9wbm8gPSBJbnZhbGlkT2lkOwpAQCAtMTQwMCw5ICsxNDI2 LDQxIEBAIGdyb3VwX3NpbWlsYXJfb3JfYXJncyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5m byAqcmVsLCBSZXN0cmljdEluZm8gKnJpbmZvKQogCQlyZXR1cm4gb3JhcmdzOwogCX0KIAotCS8q IFNvcnQgY2xhdXNlcyB0byBtYWtlIHNpbWlsYXIgY2xhdXNlcyBnbyB0b2dldGhlciAqLworCS8q CisJICogU29ydCBjbGF1c2VzIHRvIG1ha2Ugc2ltaWxhciBjbGF1c2VzIGdvIHRvZ2V0aGVyLiAg QnV0IGF0IHRoZSBzYW1lCisJICogdGltZSwgd2Ugd291bGQgbGlrZSB0byBjaGFuZ2UgdGhlIG9y ZGVyIG9mIGNsYXVzZXMgYXMgbGl0dGxlIGFzCisJICogcG9zc2libGUuICBUbyBoYXZlIHRoaXMg cHJvcGVydHksIHdlIHJlb3JkZXIgZWFjaCBncm91cCBvZiBzaW1pbGFyCisJICogY2xhdXNlcyBz byB0aGF0IHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBncm91cCBzdGF5cyBpbiBwbGFjZSwgYnV0IGFs bCB0aGUKKwkgKiBvdGhlciBpdGVtcyBhcmUgbW92ZWQgYWZ0ZXIgaXQuICBTbywgaWYgdGhlcmUg YXJlIG5vIHNpbWlsYXIgY2xhdXNlcywKKwkgKiB0aGUgb3JkZXIgb2YgY2xhdXNlcyBzdGF5cyB0 aGUgc2FtZS4gIFdoZW4gdGhlcmUgYXJlIHNvbWUgZ3JvdXBzLCBvbmx5CisJICogcmVxdWlyZWQg cmVvcmRlcmluZyBoYXBwZW5zIHdoaWxlIHRoZSByZXN0IG9mIHRoZSBjbGF1c2VzIHJlbWFpbiBp bgorCSAqIHRoZWlyIHBsYWNlcy4gIFRoYXQgaXMgYWNoaWV2ZWQgYnkgYXNzaWduaW5nIGEgJ2dy b3VwaW5kZXgnIHRvIGVhY2gKKwkgKiBjbGF1c2U6IHRoZSBudW1iZXIgb2YgdGhlIGZpcnN0IGl0 ZW0gaW4gdGhlIGdyb3VwIGluIHRoZSBvcmlnaW5hbAorCSAqIGNsYXVzZSBsaXN0LgorCSAqLwog CXFzb3J0KG1hdGNoZXMsIG4sIHNpemVvZihPckFyZ0luZGV4TWF0Y2gpLCBvcl9hcmdfaW5kZXhf bWF0Y2hfY21wKTsKIAorCS8qIEFzc2lnbiBncm91cGluZGV4IHRvIHRoZSBzb3J0ZWQgY2xhdXNl cyAqLworCWZvciAoaSA9IDE7IGkgPCBuOyBpKyspCisJeworCQkvKgorCQkgKiBXaGVuIHR3byBj bGF1c2VzIGFyZSBzaW1pbGFyIGFuZCBzaG91bGQgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwLAor CQkgKiBjb3B5IHRoZSAnZ3JvdXBpbmRleCcgZnJvbSB0aGUgcHJldmlvdXMgY2xhdXNlLiAgR2l2 ZW4gd2UgYXJlCisJCSAqIGNvbnNpZGVyaW5nIGNsYXVzZXMgaW4gZGlyZWN0IG9yZGVyLCBhbGwg dGhlIGNsYXVzZXMgd291bGQgaGF2ZSBhCisJCSAqICdncm91cGluZGV4JyBlcXVhbCB0byB0aGUg J2dyb3VwaW5kZXgnIG9mIHRoZSBmaXJzdCBjbGF1c2UgaW4gdGhlCisJCSAqIGdyb3VwLgorCQkg Ki8KKwkJaWYgKChtYXRjaGVzW2ldLmluZGV4bnVtID09IG1hdGNoZXNbaSAtIDFdLmluZGV4bnVt IHx8CisJCQkgbWF0Y2hlc1tpXS5jb2xudW0gPT0gbWF0Y2hlc1tpIC0gMV0uY29sbnVtIHx8CisJ CQkgbWF0Y2hlc1tpXS5vcG5vID09IG1hdGNoZXNbaSAtIDFdLm9wbm8gfHwKKwkJCSBtYXRjaGVz W2ldLmlucHV0Y29sbGlkID09IG1hdGNoZXNbaSAtIDFdLmlucHV0Y29sbGlkKSAmJgorCQkJbWF0 Y2hlc1tpXS5pbmRleG51bSAhPSAtMSkKKwkJCW1hdGNoZXNbaV0uZ3JvdXBpbmRleCA9IG1hdGNo ZXNbaSAtIDFdLmdyb3VwaW5kZXg7CisJfQorCisJLyogUmVzb3J0IGNsYXVzZXMgZmlyc3QgYnkg Z3JvdXBpbmRleCB0aGVuIGJ5IGFyZ2luZGV4ICovCisJcXNvcnQobWF0Y2hlcywgbiwgc2l6ZW9m KE9yQXJnSW5kZXhNYXRjaCksIG9yX2FyZ19pbmRleF9tYXRjaF9jbXBfZ3JvdXApOworCiAJLyoK IAkgKiBHcm91cCBzaW1pbGFyIGNsYXVzZXMgaW50byBzaW5nbGUgc3ViLXJlc3RyaWN0aW5mby4g U2lkZSBlZmZlY3Q6IHRoZQogCSAqIHJlc3VsdGluZyBsaXN0IG9mIHJlc3RyaWN0aW9ucyB3aWxs IGJlIHNvcnRlZCBieSBpbmRleG51bSBhbmQgY29sbnVtLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jcmVhdGVfaW5kZXgub3V0CmluZGV4IGJkNWYwMDJjZjIwLi4zYmQxOGJiYmFjOSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dApAQCAtMTg5OSwxMyAr MTg5OSwxMyBAQCBTRUxFQ1QgKiBGUk9NIHRlbmsxCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQot ICAgUmVjaGVjayBDb25kOiAoKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzIElTIE5VTEwp KSBPUiAoKHRob3VzYW5kID0gNDIpIEFORCAoKHRlbnRob3VzID0gMSkgT1IgKHRlbnRob3VzID0g MykgT1IgKHRlbnRob3VzID0gNDIpKSkpCisgICBSZWNoZWNrIENvbmQ6ICgoKHRob3VzYW5kID0g NDIpIEFORCAoKHRlbnRob3VzID0gMSkgT1IgKHRlbnRob3VzID0gMykgT1IgKHRlbnRob3VzID0g NDIpKSkgT1IgKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzIElTIE5VTEwpKSkKICAgIEZp bHRlcjogKCh0ZW50aG91cyA9IDEpIE9SICh0ZW50aG91cyA9IDMpIE9SICh0ZW50aG91cyA9IDQy KSBPUiAodGVudGhvdXMgSVMgTlVMTCkpCiAgICAtPiAgQml0bWFwT3IKLSAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50aG91cwotICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzIElTIE5VTEwpKQogICAg ICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCiAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgPSBB TlkgKCd7MSwzLDQyfSc6OmludGVnZXJbXSkpKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo KHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgSVMgTlVMTCkpCiAoOCByb3dzKQogCiBFWFBM QUlOIChDT1NUUyBPRkYpCkBAIC0xOTM4LDEzICsxOTM4LDEzIEBAIFNFTEVDVCAqIEZST00gdGVu azEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEKLSAgIFJlY2hl Y2sgQ29uZDogKCgodGhvdXNhbmQgPSA0MikgQU5EICgodGVudGhvdXMgPSAnMyc6OmJpZ2ludCkg T1IgKHRlbnRob3VzID0gJzQyJzo6YmlnaW50KSkpIE9SICgodGhvdXNhbmQgPSA0MikgQU5EICh0 ZW50aG91cyA9ICcxJzo6c21hbGxpbnQpKSkKKyAgIFJlY2hlY2sgQ29uZDogKCgodGhvdXNhbmQg PSA0MikgQU5EICh0ZW50aG91cyA9ICcxJzo6c21hbGxpbnQpKSBPUiAoKHRob3VzYW5kID0gNDIp IEFORCAoKHRlbnRob3VzID0gJzMnOjpiaWdpbnQpIE9SICh0ZW50aG91cyA9ICc0Mic6OmJpZ2lu dCkpKSkKICAgIEZpbHRlcjogKCh0ZW50aG91cyA9ICcxJzo6c21hbGxpbnQpIE9SICh0ZW50aG91 cyA9ICczJzo6YmlnaW50KSBPUiAodGVudGhvdXMgPSAnNDInOjpiaWdpbnQpKQogICAgLT4gIEJp dG1hcE9yCi0gICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVu dGhvdXMKLSAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0 ZW50aG91cyA9IEFOWSAoJ3szLDQyfSc6OmJpZ2ludFtdKSkpCiAgICAgICAgICAtPiAgQml0bWFw IEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6ICgodGhvdXNhbmQgPSA0MikgQU5EICh0ZW50aG91cyA9ICcxJzo6c21hbGxpbnQpKQor ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMg PSBBTlkgKCd7Myw0Mn0nOjpiaWdpbnRbXSkpKQogKDggcm93cykKIAogRVhQTEFJTiAoQ09TVFMg T0ZGKQpAQCAtMjEyOSwxNiArMjEyOSwxNiBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgQWdncmVnYXRlCiAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMQot ICAgICAgICAgUmVjaGVjayBDb25kOiAoKGh1bmRyZWQgPSA0MikgQU5EICgoKHRob3VzYW5kID0g OTkpIEFORCAodGVudGhvdXMgPSAyKSkgT1IgKCh0aG91c2FuZCA9IDQyKSBPUiAodGhvdXNhbmQg PSA0MSkpKSkKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKChodW5kcmVkID0gNDIpIEFORCAoKCh0 aG91c2FuZCA9IDQyKSBPUiAodGhvdXNhbmQgPSA0MSkpIE9SICgodGhvdXNhbmQgPSA5OSkgQU5E ICh0ZW50aG91cyA9IDIpKSkpCiAgICAgICAgICBGaWx0ZXI6ICgodGhvdXNhbmQgPSA0MikgT1Ig KHRob3VzYW5kID0gNDEpIE9SICgodGhvdXNhbmQgPSA5OSkgQU5EICh0ZW50aG91cyA9IDIpKSkK ICAgICAgICAgIC0+ICBCaXRtYXBBbmQKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiB0ZW5rMV9odW5kcmVkCiAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo aHVuZHJlZCA9IDQyKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcE9yCi0gICAgICAgICAgICAg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICgodGhvdXNhbmQgPSA5OSkgQU5E ICh0ZW50aG91cyA9IDIpKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAodGhvdXNhbmQgPSBBTlkgKCd7NDIsNDF9Jzo6aW50ZWdlcltdKSkKKyAgICAg ICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50 aG91cworICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2FuZCA9 IDk5KSBBTkQgKHRlbnRob3VzID0gMikpCiAoMTIgcm93cykKIAogU0VMRUNUIGNvdW50KCopIEZS T00gdGVuazEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CmluZGV4IGE1N2JiMThjMjRmLi4x NGRhNTcwODQ1MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBAIC00MzMzLDIwICs0 MzMzLDIwIEBAIHNlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KICBOZXN0ZWQg TG9vcAogICAgSm9pbiBGaWx0ZXI6ICgoKGEudW5pcXVlMSA9IDEpIEFORCAoYi51bmlxdWUxID0g MikpIE9SICgoYS51bmlxdWUyID0gMykgQU5EIChiLmh1bmRyZWQgPSA0KSkpCiAgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMSBiCi0gICAgICAgICBSZWNoZWNrIENvbmQ6ICgoaHVuZHJl ZCA9IDQpIE9SICh1bmlxdWUxID0gMikpCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICgodW5pcXVl MSA9IDIpIE9SIChodW5kcmVkID0gNCkpCiAgICAgICAgICAtPiAgQml0bWFwT3IKLSAgICAgICAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCi0gICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQpCiAgICAgICAgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMQogICAgICAgICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKHVuaXF1ZTEgPSAyKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChodW5kcmVkID0gNCkKICAgIC0+ICBNYXRlcmlhbGl6ZQogICAgICAgICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gdGVuazEgYQotICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1 ZTIgPSAzKSBPUiAodW5pcXVlMSA9IDEpKQorICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAo KHVuaXF1ZTEgPSAxKSBPUiAodW5pcXVlMiA9IDMpKQogICAgICAgICAgICAgICAgLT4gIEJpdG1h cE9yCi0gICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFf dW5pcXVlMgotICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIg PSAzKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsx X3VuaXF1ZTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUx ID0gMSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5r MV91bmlxdWUyCisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVl MiA9IDMpCiAoMTcgcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKQpAQCAtNDM2MCwxMiArNDM2 MCwxMiBAQCBzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5rMSBiIG9uCiAgICAgICAgICBG aWx0ZXI6ICgodW5pcXVlMSA9IDIpIE9SICh0ZW4gPSA0KSkKICAgIC0+ICBNYXRlcmlhbGl6ZQog ICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEgYQotICAgICAgICAgICAgICAg UmVjaGVjayBDb25kOiAoKHVuaXF1ZTIgPSAzKSBPUiAodW5pcXVlMSA9IDEpKQorICAgICAgICAg ICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPSAxKSBPUiAodW5pcXVlMiA9IDMpKQogICAg ICAgICAgICAgICAgLT4gIEJpdG1hcE9yCi0gICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFw IEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMgotICAgICAgICAgICAgICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKHVuaXF1ZTIgPSAzKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAodW5pcXVlMiA9IDMpCiAoMTIgcm93cykKIAogZXhwbGFpbiAoY29zdHMg b2ZmKQpAQCAtNDM3NywyMSArNDM3NywyMSBAQCBzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0 ZW5rMSBiIG9uCiAgTmVzdGVkIExvb3AKICAgIEpvaW4gRmlsdGVyOiAoKChhLnVuaXF1ZTEgPSAx KSBBTkQgKGIudW5pcXVlMSA9IDIpKSBPUiAoKChhLnVuaXF1ZTIgPSAzKSBPUiAoYS51bmlxdWUy ID0gNykpIEFORCAoYi5odW5kcmVkID0gNCkpKQogICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g dGVuazEgYgotICAgICAgICAgUmVjaGVjayBDb25kOiAoKGh1bmRyZWQgPSA0KSBPUiAodW5pcXVl MSA9IDIpKQorICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPSAyKSBPUiAoaHVuZHJl ZCA9IDQpKQogICAgICAgICAgLT4gIEJpdG1hcE9yCi0gICAgICAgICAgICAgICAtPiAgQml0bWFw IEluZGV4IFNjYW4gb24gdGVuazFfaHVuZHJlZAotICAgICAgICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGh1bmRyZWQgPSA0KQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIHRlbmsxX3VuaXF1ZTEKICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlx dWUxID0gMikKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9o dW5kcmVkCisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQpCiAg ICAtPiAgTWF0ZXJpYWxpemUKICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsx IGEKLSAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCgodW5pcXVlMiA9IDMpIE9SICh1bmlx dWUyID0gNykpIE9SICh1bmlxdWUxID0gMSkpCisgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6 ICgodW5pcXVlMSA9IDEpIE9SICgodW5pcXVlMiA9IDMpIE9SICh1bmlxdWUyID0gNykpKQogICAg ICAgICAgICAgICAgRmlsdGVyOiAoKHVuaXF1ZTEgPSAxKSBPUiAodW5pcXVlMiA9IDMpIE9SICh1 bmlxdWUyID0gNykpCiAgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKLSAgICAgICAgICAgICAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IEFOWSAoJ3szLDd9Jzo6aW50 ZWdlcltdKSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0 ZW5rMV91bmlxdWUxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5p cXVlMSA9IDEpCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24g dGVuazFfdW5pcXVlMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVu aXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJbXSkpCiAoMTggcm93cykKIAogZXhwbGFpbiAo Y29zdHMgb2ZmKQpAQCAtNDQwMywyMSArNDQwMywyMSBAQCBzZWxlY3QgKiBmcm9tIHRlbmsxIGEg am9pbiB0ZW5rMSBiIG9uCiAgTmVzdGVkIExvb3AKICAgIEpvaW4gRmlsdGVyOiAoKChhLnVuaXF1 ZTEgPSAxKSBBTkQgKGIudW5pcXVlMSA9IDIpKSBPUiAoKChhLnVuaXF1ZTIgPSAzKSBPUiAoYS51 bmlxdWUyID0gNykpIEFORCAoYi5odW5kcmVkID0gNCkpKQogICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gdGVuazEgYgotICAgICAgICAgUmVjaGVjayBDb25kOiAoKGh1bmRyZWQgPSA0KSBPUiAo dW5pcXVlMSA9IDIpKQorICAgICAgICAgUmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPSAyKSBPUiAo aHVuZHJlZCA9IDQpKQogICAgICAgICAgLT4gIEJpdG1hcE9yCi0gICAgICAgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfaHVuZHJlZAotICAgICAgICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGh1bmRyZWQgPSA0KQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 ICh1bmlxdWUxID0gMikKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0 ZW5rMV9odW5kcmVkCisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9 IDQpCiAgICAtPiAgTWF0ZXJpYWxpemUKICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9u IHRlbmsxIGEKLSAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCgodW5pcXVlMiA9IDMpIE9S ICh1bmlxdWUyID0gNykpIE9SICh1bmlxdWUxID0gMSkpCisgICAgICAgICAgICAgICBSZWNoZWNr IENvbmQ6ICgodW5pcXVlMSA9IDEpIE9SICgodW5pcXVlMiA9IDMpIE9SICh1bmlxdWUyID0gNykp KQogICAgICAgICAgICAgICAgRmlsdGVyOiAoKHVuaXF1ZTEgPSAxKSBPUiAodW5pcXVlMiA9IDMp IE9SICh1bmlxdWUyID0gNykpCiAgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKLSAgICAgICAg ICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IEFOWSAoJ3szLDd9 Jzo6aW50ZWdlcltdKSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiB0ZW5rMV91bmlxdWUxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAodW5pcXVlMSA9IDEpCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gdGVuazFfdW5pcXVlMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKHVuaXF1ZTIgPSBBTlkgKCd7Myw3fSc6OmludGVnZXJbXSkpCiAoMTggcm93cykKIAogZXhw bGFpbiAoY29zdHMgb2ZmKQpAQCAtNDQzMSwxNSArNDQzMSwxNSBAQCBzZWxlY3QgKiBmcm9tIHRl bmsxIGEgam9pbiB0ZW5rMSBiIG9uCiAgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgYgogICAgLT4g IE1hdGVyaWFsaXplCiAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMSBhCi0g ICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgoKHVuaXF1ZTIgPSAzKSBPUiAodW5pcXVlMiA9 IDcpKSBPUiAoKHVuaXF1ZTEgPSAzKSBPUiAodW5pcXVlMSA9IDEpKSBPUiAodW5pcXVlMSA8IDIw KSkKKyAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKCh1bmlxdWUxIDwgMjApIE9SICgodW5p cXVlMSA9IDMpIE9SICh1bmlxdWUxID0gMSkpIE9SICgodW5pcXVlMiA9IDMpIE9SICh1bmlxdWUy ID0gNykpKQogICAgICAgICAgICAgICAgRmlsdGVyOiAoKHVuaXF1ZTEgPCAyMCkgT1IgKHVuaXF1 ZTEgPSAzKSBPUiAodW5pcXVlMSA9IDEpIE9SICh1bmlxdWUyID0gMykgT1IgKHVuaXF1ZTIgPSA3 KSkKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgotICAgICAgICAgICAgICAgICAgICAgLT4g IEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyID0gQU5ZICgnezMsN30nOjppbnRlZ2VyW10pKQot ICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1 ZTEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxID0gQU5Z ICgnezMsMX0nOjppbnRlZ2VyW10pKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6ICh1bmlxdWUxIDwgMjApCisgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFw IEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMQorICAgICAgICAgICAgICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKHVuaXF1ZTEgPSBBTlkgKCd7MywxfSc6OmludGVnZXJbXSkpCisgICAgICAg ICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSBBTlkgKCd7Myw3 fSc6OmludGVnZXJbXSkpCiAoMTQgcm93cykKIAogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pvaW4ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wYXJ0aXRpb25fam9pbi5vdXQKaW5kZXggOTM4Y2VkZDc5YWQuLjYxMDFjOGM3Y2YxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9qb2luLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9qb2luLm91dApAQCAtMjU2 OCwyNCArMjU2OCwyNCBAQCB3aGVyZSBub3QgZXhpc3RzIChzZWxlY3QgMSBmcm9tIHBydHgyCiAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0eDFfMQogICAgICAgICAgICAgICAgRmlsdGVyOiAo KGEgPCAyMCkgQU5EIChjID0gOTEpKQogICAgICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g cHJ0eDJfMQotICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoKGMgPSA5OSkgT1IgKGIgPSAo cHJ0eDFfMS5iICsgMSkpKQorICAgICAgICAgICAgICAgUmVjaGVjayBDb25kOiAoKGIgPSAocHJ0 eDFfMS5iICsgMSkpIE9SIChjID0gOTkpKQogICAgICAgICAgICAgICAgRmlsdGVyOiAoYSA9IHBy dHgxXzEuYSkKICAgICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgotICAgICAgICAgICAgICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHBydHgyXzFfY19pZHgKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjID0gOTkpCiAgICAgICAgICAgICAgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gcHJ0eDJfMV9iX2lkeAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGIgPSAocHJ0eDFfMS5iICsgMSkpCisgICAgICAgICAgICAg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gcHJ0eDJfMV9jX2lkeAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGMgPSA5OSkKICAgIC0+ICBOZXN0ZWQgTG9v cCBBbnRpIEpvaW4KICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwcnR4MV8yCiAgICAgICAgICAg ICAgICBGaWx0ZXI6ICgoYSA8IDIwKSBBTkQgKGMgPSA5MSkpCiAgICAgICAgICAtPiAgQml0bWFw IEhlYXAgU2NhbiBvbiBwcnR4Ml8yCi0gICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgoYyA9 IDk5KSBPUiAoYiA9IChwcnR4MV8yLmIgKyAxKSkpCisgICAgICAgICAgICAgICBSZWNoZWNrIENv bmQ6ICgoYiA9IChwcnR4MV8yLmIgKyAxKSkgT1IgKGMgPSA5OSkpCiAgICAgICAgICAgICAgICBG aWx0ZXI6IChhID0gcHJ0eDFfMi5hKQogICAgICAgICAgICAgICAgLT4gIEJpdG1hcE9yCi0gICAg ICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gcHJ0eDJfMl9jX2lkeAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGMgPSA5OSkKICAgICAgICAg ICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBwcnR4Ml8yX2JfaWR4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IChwcnR4MV8yLmIgKyAxKSkK KyAgICAgICAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBwcnR4Ml8yX2Nf aWR4CisgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYyA9IDk5KQogKDIz IHJvd3MpCiAKIHNlbGVjdCAqIGZyb20gcHJ0eDEKLS0gCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkK Cg== --00000000000015cf0a06315b2ceb--