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 1uN9fv-00D8Aq-65 for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Jun 2025 12:26:27 +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 1uN9eu-008STE-3k for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Jun 2025 12:25:24 +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 1uN9et-008ST5-MK for pgsql-hackers@lists.postgresql.org; Thu, 05 Jun 2025 12:25:24 +0000 Received: from mail-ua1-x92a.google.com ([2607:f8b0:4864:20::92a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uN9es-000NlA-1P for pgsql-hackers@lists.postgresql.org; Thu, 05 Jun 2025 12:25:23 +0000 Received: by mail-ua1-x92a.google.com with SMTP id a1e0cc1a2514c-87def342791so231920241.1 for ; Thu, 05 Jun 2025 05:25:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749126320; x=1749731120; 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=8XnbkUJWyNtZAMrRa0gfsSJ3yS43c7jH8TGHK8RV0/k=; b=A0UV5aGo9q5jPeNsfjcQVFgYAu9ajL/hwdg4IryboMu8KAq6fpKL5wU6WZS2hIbwFb cu5chiS5yIfNVIXbhXQJw9CdHZlIKqd15q0XPES5y3GPPJp/h/mjZrNxJ9MVcyLam0b7 r1Pmyficvlry280FdV2gQLAc2QkKAMwmoLiy46GF7HgsW4FKoCY7B3cYwhHha7zb7yBC UZ3kiF7cJP4bvuP3JHGIWueknyNG7eXr2e0odWW1QZU1dVoQfIxEnhxvyo9XpZAbPbv+ 93epSauqOCoWD8+XZYO6PHwEgCBYtxKSFFl0UVn7leGK9cWqwqex8RDMSxW0ygOPciDG J/BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749126320; x=1749731120; 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=8XnbkUJWyNtZAMrRa0gfsSJ3yS43c7jH8TGHK8RV0/k=; b=GkAMMqKK9xQs0U/VT+W/n4Xvv7p+y8yQEBT9STqX2kFNLBX35OvbMG92DJ8TVJ2cfJ nsJctbxDoAtUdWTtqwgAAvWGPsLk8glPbrpFnPxlm/FU5DzJijrSeNteJh41paXP6NId ygYvgdxM7YIrObftMa3elpDMhgiEy70aZVD6G8Fi5ISxig05QMsQT9fZ0cL4808boeb/ lM/1yhikJu8Xc4u+V7Sn5/54H8s+Lo4ED+Im6MyTGpm5+Kynkypywryzd6FAdrChGUw0 4ZPgXMG2wx+nV4X64vm4lIv9X3O1PpN+HhZgDnIqKcvBE90GJa17OhcTQ2hGNELtLV0Z zXaw== X-Gm-Message-State: AOJu0YxVe0/zWxefDaov8raCeG5m/Gackpm4p5cb9IjmGnTyfsD9v5rO sNXwHDQF6oLdahdooTHKne+v1nXhMf5uNK5mNfIeUTBxmV8R9EwhxkGfNN7Y8bbQaXBA2lHaVXf OMSm+Qr5cOQTz/o7YW0EWwsldYi7P3So= X-Gm-Gg: ASbGncsAvyNQqjxFGelyqNeeo2+6Oh75kyaFadzf8ealZ+qZj6VbOVXn1gq9kwkVjD6 9WQupM8LVql59C8gkESVMYemA+83Rk9mqVecqhKFT9Oloj3/XV0za9LwdnGh9XI2TY7ZzTM7cmW HmhbJgIUt0aI3d6CG8Bcq7ah73PVNgY91opUt6XV4Mh5xcocNSUIdc2U+nl9UGejzi1hP9UzS56 Oo= X-Google-Smtp-Source: AGHT+IGbYzkwpxkPnT3ggEHKqAZdfqUX8++HTQlqlPXG0G1rAV8/ka0GKdFKN/DTAKKv+LJr8UcMieuQOZMn9JPEgBo= X-Received: by 2002:a05:6122:547:b0:530:6538:cb12 with SMTP id 71dfb90a1353d-530c73a6198mr5704166e0c.11.1749126320134; Thu, 05 Jun 2025 05:25:20 -0700 (PDT) MIME-Version: 1.0 References: <171085360143.2046436.7217841141682511557.pgcf@coridan.postgresql.org> <859476bf-3cb0-455e-b093-b8ab5ef17f0e@postgrespro.ru> <4e2764f7-f6be-478f-8d7f-f921dbd10f5f@postgrespro.ru> <7fdaf3e8-4c05-4739-bee6-98acc068d1c7@postgrespro.ru> <4433b492-9e97-4334-96d9-ddaaa5083099@postgrespro.ru> <67ecf5fb-e63d-4284-be75-d0479eef81aa@postgrespro.ru> In-Reply-To: From: jian he Date: Thu, 5 Jun 2025 20:24:42 +0800 X-Gm-Features: AX0GCFvUpFr7mnfpnYYl7uF-kQde58xnA-lUVJSNtLUqgiMj2YSvUdJqCChki1c Message-ID: Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: Dmitry Koval Cc: pgsql-hackers@lists.postgresql.org, Alexander Korotkov Content-Type: multipart/mixed; boundary="000000000000fae63a0636d23409" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000fae63a0636d23409 Content-Type: text/plain; charset="UTF-8" hi. When using ALTER TABLE ... MERGE PARTITIONS, some of the new partition's properties will not be inherited from to be merged partitions; instead, they will be directly copied from the root partitioned table. so we need to test this behavior. The attached test file is for test table properties: (COMMENTS, COMPRESSION, DEFAULTS, GENERATED, STATISTICS, STORAGE). STATISTICS: to be merged partition's STATISTICS will be dropped. COMMENTS: to be merged partition's COMMENTS will be dropped. --000000000000fae63a0636d23409 Content-Type: application/octet-stream; name="v40-0001-test-for-MERGE-PARTITION.no-cfbot" Content-Disposition: attachment; filename="v40-0001-test-for-MERGE-PARTITION.no-cfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbjcjz7c0 RnJvbSA0YjdhNWI3NjUxZWI3OTQ1ODEzOTM3MmVlZWJlNTViMGQ4NGY0OWVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgNSBKdW4gMjAyNSAyMDoyMTo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjQw IDEvMV0gdGVzdCBmb3IgTUVSR0UgUEFSVElUSU9OCgp0YWJsZSBwcm9wZXJ0eToKKENPTU1FTlRT LCBDT01QUkVTU0lPTiwgREVGQVVMVFMsIEdFTkVSQVRFRCwgU1RBVElTVElDUywgU1RPUkFHRSkK cGFydGl0aW9uIGNhbiBkaWZmZXIgZnJvbSByb290IHBhcnRpdGlvbmVkIHRhYmxlLgoKV2hlbiB1 c2luZyBBTFRFUiBUQUJMRSAuLi4gTUVSR0UgUEFSVElUSU9OUywgdGhlIG5ldyBwYXJ0aXRpb24n cyBwcm9wZXJ0aWVzIHdpbGwKbm90IGJlIGluaGVyaXRlZCBmcm9tIHRvIGJlIG1lcmdlZCBwYXJ0 aXRpb25zOyBpbnN0ZWFkLCB0aGV5IHdpbGwgYmUgZGlyZWN0bHkKY29waWVkIGZyb20gdGhlIHJv b3QgcGFydGl0aW9uZWQgdGFibGUuCi0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0 aXRpb25fbWVyZ2Uub3V0IHwgNTAgKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbCAgICAgIHwgMjcgKysrKysrKysrKwogMiBmaWxlcyBj aGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w YXJ0aXRpb25fbWVyZ2Uub3V0CmluZGV4IGEyNDg3NDc5OGQ4Li5lODQyOGI1ODY0YyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dApAQCAtOCw2ICs4 LDUzIEBAIFNFVCBzZWFyY2hfcGF0aCA9IHBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hLCBwdWJsaWM7 CiAtLQogLS0gQlkgUkFOR0UgcGFydGl0aW9uaW5nCiAtLQorLS0gdGVzdCBtZXJnZWQgbmV3IHBh cnRpdGlvbiBwcm9wZXJ0aWVzIChDT01NRU5UUywgQ09NUFJFU1NJT04sIERFRkFVTFRTLAorLS0g R0VORVJBVEVELCBTVEFUSVNUSUNTLCBTVE9SQUdFKSBiZSBzYW1lIGFzIG1lcmdlZCBwYXJ0aXRp b25lZCB0YWJsZS4KKy0tIFNUQVRJU1RJQ1Mgb24gdG8gYmUgbWVyZ2VkIHBhcnRpdG9uIHdpbGwg YmUgZHJvcHBlZC4KK2NyZWF0ZSB0YWJsZSBwcCAoCisgICAgZjEgaW50LCBmMiB0ZXh0IHN0b3Jh Z2UgbWFpbiBkZWZhdWx0ICdwcCcsCisgICAgZjMgaW50LCBmNCBkYXRlIGdlbmVyYXRlZCBhbHdh eXMgYXMgKCcyMDIyLTAxLTAxJykgc3RvcmVkKSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGFicyhmMSkp OworY3JlYXRlIHRhYmxlIHBwXzEgKAorICAgIGYxIGludCwgZjIgdGV4dCBzdG9yYWdlIGV4dGVy bmFsIGNvbXByZXNzaW9uIHBnbHogZGVmYXVsdCAncHBfMScsCisgICAgZjMgaW50LCBmNCBkYXRl IGdlbmVyYXRlZCBhbHdheXMgYXMgKCcyMDIyLTAxLTAyJykgc3RvcmVkKSB3aXRoIChmaWxsZmFj dG9yPTcwKTsKK2NyZWF0ZSB0YWJsZSBwcF8yICgKKyAgICBmMSBpbnQsIGYyIHRleHQgc3RvcmFn ZSBleHRlbmRlZCBjb21wcmVzc2lvbiBsejQgZGVmYXVsdCAncHBfMicsCisgICAgZjMgaW50LCBm NCBkYXRlIGdlbmVyYXRlZCBhbHdheXMgYXMgKCcyMDIyLTAxLTAzJykgc3RvcmVkKSB3aXRoIChm aWxsZmFjdG9yPTEwKTsKK2FsdGVyIHRhYmxlIHBwIGF0dGFjaCBwYXJ0aXRpb24gcHBfMSBmb3Ig dmFsdWVzIGZyb20gKC0xKSB0byAoMTApOworYWx0ZXIgdGFibGUgcHAgYXR0YWNoIHBhcnRpdGlv biBwcF8yIGZvciB2YWx1ZXMgZnJvbSAoMTApIHRvICgyMCk7CitpbnNlcnQgaW50byBwcChmMSkg dmFsdWVzICgtMSksICgxKSwgKDEwKSwgKDExKTsKK2NyZWF0ZSBzdGF0aXN0aWNzIHBwX3N0YXQg KGRlcGVuZGVuY2llcykgb24gZjEsIGYzIGZyb20gcHA7CitjcmVhdGUgc3RhdGlzdGljcyBwcF8x X3N0YXQgKGRlcGVuZGVuY2llcykgb24gZjEsIGYzIGZyb20gcHBfMTsKK2NyZWF0ZSBzdGF0aXN0 aWNzIHBwXzJfc3RhdCAoZGVwZW5kZW5jaWVzKSBvbiBmMSwgZjMgZnJvbSBwcF8yOworY29tbWVu dCBvbiBjb2x1bW4gcHBfMS5mMSBpcyAncHBfMS5mMSc7Citjb21tZW50IG9uIGNvbHVtbiBwcF8y LmYxIGlzICdwcF8yIGYxJzsKK2NvbW1lbnQgb24gY29sdW1uIHBwLmYxIGlzICdwcCBmMSc7Citc ZCsgcHBfMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAicGFydGl0aW9uc19tZXJnZV9zY2hlbWEucHBfMiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAg ICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQorIGYxICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxh aW4gICAgfCAgICAgICAgICAgICAgfCBwcF8yIGYxCisgZjIgICAgIHwgdGV4dCAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgJ3BwXzInOjp0ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAorIGYzICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBmNCAgICAgfCBk YXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgnMDEt MDMtMjAyMic6OmRhdGUpIHN0b3JlZCB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCitQYXJ0 aXRpb24gb2Y6IHBwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCkKK1BhcnRpdGlvbiBjb25z dHJhaW50OiAoKGFicyhmMSkgSVMgTk9UIE5VTEwpIEFORCAoYWJzKGYxKSA+PSAxMCkgQU5EIChh YnMoZjEpIDwgMjApKQorU3RhdGlzdGljcyBvYmplY3RzOgorICAgICJwYXJ0aXRpb25zX21lcmdl X3NjaGVtYS5wcF8yX3N0YXQiIChkZXBlbmRlbmNpZXMpIE9OIGYxLCBmMyBGUk9NIHBwXzIKK09w dGlvbnM6IGZpbGxmYWN0b3I9MTAKKworQUxURVIgVEFCTEUgcHAgTUVSR0UgUEFSVElUSU9OUyAo cHBfMSwgcHBfMikgSU5UTyBwcF8yOworXGQrIHBwXzIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hLnBw XzIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgfCBTdG9yYWdlIHwgU3RhdHMg dGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgZjEgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCisgZjIgICAgIHwg dGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgJ3BwJzo6dGV4dCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBtYWluICAgIHwgICAgICAgICAgICAgIHwgCisgZjMg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwg CisgZjQgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoJzAxLTAxLTIwMjInOjpkYXRlKSBzdG9yZWQgfCBwbGFpbiAgIHwgICAgICAgICAg ICAgIHwgCitQYXJ0aXRpb24gb2Y6IHBwIEZPUiBWQUxVRVMgRlJPTSAoJy0xJykgVE8gKDIwKQor UGFydGl0aW9uIGNvbnN0cmFpbnQ6ICgoYWJzKGYxKSBJUyBOT1QgTlVMTCkgQU5EIChhYnMoZjEp ID49ICctMSc6OmludGVnZXIpIEFORCAoYWJzKGYxKSA8IDIwKSkKKwogLS0KIC0tIFRlc3QgZm9y IGVycm9yIGNvZGVzCiAtLQpAQCAtMTAwMCw0ICsxMDQ3LDcgQEAgRFJPUCBUQUJMRSB0OwogUkVT RVQgc2VhcmNoX3BhdGg7CiAtLQogRFJPUCBTQ0hFTUEgcGFydGl0aW9uc19tZXJnZV9zY2hlbWE7 CitFUlJPUjogIGNhbm5vdCBkcm9wIHNjaGVtYSBwYXJ0aXRpb25zX21lcmdlX3NjaGVtYSBiZWNh dXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICB0YWJsZSBwYXJ0aXRpb25z X21lcmdlX3NjaGVtYS5wcCBkZXBlbmRzIG9uIHNjaGVtYSBwYXJ0aXRpb25zX21lcmdlX3NjaGVt YQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmpl Y3RzIHRvby4KIERST1AgU0NIRU1BIHBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hMjsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsCmluZGV4IGM1M2FjNWExOTk5Li44NjFiZDE4 NmI1NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsCkBAIC0xMSw2 ICsxMSwzMyBAQCBTRVQgc2VhcmNoX3BhdGggPSBwYXJ0aXRpb25zX21lcmdlX3NjaGVtYSwgcHVi bGljOwogLS0gQlkgUkFOR0UgcGFydGl0aW9uaW5nCiAtLQogCistLSB0ZXN0IG1lcmdlZCBuZXcg cGFydGl0aW9uIHByb3BlcnRpZXMgKENPTU1FTlRTLCBDT01QUkVTU0lPTiwgREVGQVVMVFMsCist LSBHRU5FUkFURUQsIFNUQVRJU1RJQ1MsIFNUT1JBR0UpIGJlIHNhbWUgYXMgbWVyZ2VkIHBhcnRp dGlvbmVkIHRhYmxlLgorLS0gU1RBVElTVElDUyBvbiB0byBiZSBtZXJnZWQgcGFydGl0b24gd2ls bCBiZSBkcm9wcGVkLgorY3JlYXRlIHRhYmxlIHBwICgKKyAgICBmMSBpbnQsIGYyIHRleHQgc3Rv cmFnZSBtYWluIGRlZmF1bHQgJ3BwJywKKyAgICBmMyBpbnQsIGY0IGRhdGUgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoJzIwMjItMDEtMDEnKSBzdG9yZWQpIHBhcnRpdGlvbiBieSByYW5nZSAoYWJzKGYx KSk7CitjcmVhdGUgdGFibGUgcHBfMSAoCisgICAgZjEgaW50LCBmMiB0ZXh0IHN0b3JhZ2UgZXh0 ZXJuYWwgY29tcHJlc3Npb24gcGdseiBkZWZhdWx0ICdwcF8xJywKKyAgICBmMyBpbnQsIGY0IGRh dGUgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoJzIwMjItMDEtMDInKSBzdG9yZWQpIHdpdGggKGZpbGxm YWN0b3I9NzApOworY3JlYXRlIHRhYmxlIHBwXzIgKAorICAgIGYxIGludCwgZjIgdGV4dCBzdG9y YWdlIGV4dGVuZGVkIGNvbXByZXNzaW9uIGx6NCBkZWZhdWx0ICdwcF8yJywKKyAgICBmMyBpbnQs IGY0IGRhdGUgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoJzIwMjItMDEtMDMnKSBzdG9yZWQpIHdpdGgg KGZpbGxmYWN0b3I9MTApOworCithbHRlciB0YWJsZSBwcCBhdHRhY2ggcGFydGl0aW9uIHBwXzEg Zm9yIHZhbHVlcyBmcm9tICgtMSkgdG8gKDEwKTsKK2FsdGVyIHRhYmxlIHBwIGF0dGFjaCBwYXJ0 aXRpb24gcHBfMiBmb3IgdmFsdWVzIGZyb20gKDEwKSB0byAoMjApOworaW5zZXJ0IGludG8gcHAo ZjEpIHZhbHVlcyAoLTEpLCAoMSksICgxMCksICgxMSk7CisKK2NyZWF0ZSBzdGF0aXN0aWNzIHBw X3N0YXQgKGRlcGVuZGVuY2llcykgb24gZjEsIGYzIGZyb20gcHA7CitjcmVhdGUgc3RhdGlzdGlj cyBwcF8xX3N0YXQgKGRlcGVuZGVuY2llcykgb24gZjEsIGYzIGZyb20gcHBfMTsKK2NyZWF0ZSBz dGF0aXN0aWNzIHBwXzJfc3RhdCAoZGVwZW5kZW5jaWVzKSBvbiBmMSwgZjMgZnJvbSBwcF8yOwor Y29tbWVudCBvbiBjb2x1bW4gcHBfMS5mMSBpcyAncHBfMS5mMSc7Citjb21tZW50IG9uIGNvbHVt biBwcF8yLmYxIGlzICdwcF8yIGYxJzsKK2NvbW1lbnQgb24gY29sdW1uIHBwLmYxIGlzICdwcCBm MSc7CitcZCsgcHBfMgorQUxURVIgVEFCTEUgcHAgTUVSR0UgUEFSVElUSU9OUyAocHBfMSwgcHBf MikgSU5UTyBwcF8yOworXGQrIHBwXzIKKwogLS0KIC0tIFRlc3QgZm9yIGVycm9yIGNvZGVzCiAt LQotLSAKMi4zNC4xCgo= --000000000000fae63a0636d23409--