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 1sogpe-00D4em-9z for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Sep 2024 10:13:47 +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 1sogpe-003lmZ-0v for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Sep 2024 10:13:46 +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.94.2) (envelope-from ) id 1sogpd-003lmR-Ka for pgsql-hackers@lists.postgresql.org; Thu, 12 Sep 2024 10:13:45 +0000 Received: from mail-vk1-xa2c.google.com ([2607:f8b0:4864:20::a2c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sogpV-000nZn-NA for pgsql-hackers@lists.postgresql.org; Thu, 12 Sep 2024 10:13:45 +0000 Received: by mail-vk1-xa2c.google.com with SMTP id 71dfb90a1353d-500fbacd680so280206e0c.3 for ; Thu, 12 Sep 2024 03:13:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726136017; x=1726740817; 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=mvDcrdmG10Ld0GQQXmr6mOQZofgju433xcmPoEN1RFw=; b=iG5Uq/px56M42jO8DbKp6l7xuUr7e2Um6csyJe/J3kd6mC2L5wzx45cTD+HfV4jGxU Ak4jytQx/8a2ghFMkxaiLsE8p0zMqcYfRLXvolk/0GUF4wLI/aIF2F/1CFoCtScreKKX B/Ds3p2G0+Uwp7TSHZ8JZk5OTD0ucVkp8BfC7AnX9d8QZ3GuTZq7DzKUE4oUr1yBMBfu deQabwYRk0epjQzYaxW6WmP7lT+HxT5bgYn0Oya0eodGydXHnm+fseU0S3vKbx68w8OY CykNgKH7iuHd+U8HHIQHiooaj+EKB5WnhRBeXnNuBqUZnQ4rAV+VaF5002upEEDiKn+0 Z4lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726136017; x=1726740817; 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=mvDcrdmG10Ld0GQQXmr6mOQZofgju433xcmPoEN1RFw=; b=gRFFGFIqn03Iu0l8ujcWUoDZV1HuW+HE+QBgJOyQ0AeqqD80E0cCs19nk6SBqsDIZw k01tgdlA1clCDkLIV6iR1DpFKo5evY2qu4Nuioflh6LPtui9jYB1cNPWhZYUJeO7E4Zp tkf5wtZEeFu7FvVt3nYIZy1Ktu8rDVu8sVRcGZoh9hWx7gyCU9OlgJBoOjXG4tZ70Vyr 9IGb74wptB1gCNaMZnNdbzKSJ608wzQtkrBTrWcekzpDy8YwqywEooDGqWu97nN5hq75 f7wdIbbPTqnoGD4sbMcreQyZ17nlSMFRxvVDplKubXAMdtFDOZljfbOh94rX0ZqFlUIm V8Uw== X-Forwarded-Encrypted: i=1; AJvYcCUCOPr6A+6yIxz3qfI2qPS1udFjmpGUsibbTBPU+2HeIuMYLWfSCjE9nEs7s7rqpMmvxuZk+FDVlyO3ULr7@lists.postgresql.org X-Gm-Message-State: AOJu0Yy5UZRVRo/IWlWVOZZ9Wq5qEtGy8/YeBNWWUg3McBMtyq0TWnIy O2kpej9F8sXNOFeviDtEqrl8pId6cWCsSrMPx3dacQ9eBXgzDk0JSUv/660IR4N9k7JoPGFbSxP t7cNsqNuOjjIBI7yKohJl65HCCGo= X-Google-Smtp-Source: AGHT+IG6rYL9vAeaB+L7RYa9g3W1EnCvSg+I5Oq6W+7O35k8Fc3jY8sGNWwntY6Fq7Qq82AQj14Xv/AVRzYR7Q/nOvs= X-Received: by 2002:a05:6122:31a7:b0:4f2:ea44:fd36 with SMTP id 71dfb90a1353d-5032d2285fdmr2411064e0c.0.1726136017194; Thu, 12 Sep 2024 03:13:37 -0700 (PDT) MIME-Version: 1.0 References: <20240129172858.ccb6c77c3be95a295e2b2b44@sraoss.co.jp> <04bf425ad1b15a4daefe96c478a5253b@oss.nttdata.com> <20240206191937.72eaf0ccc20cfea37944b422@sraoss.co.jp> <76da9fcc-93c5-4053-872e-12932a95356d@uni-muenster.de> <6eac5b45-7f45-4c7a-aae1-e90db8be2e08@uni-muenster.de> <3d6b5885-16a1-475d-b56f-41701c48d9d4@uni-muenster.de> In-Reply-To: <3d6b5885-16a1-475d-b56f-41701c48d9d4@uni-muenster.de> From: jian he Date: Thu, 12 Sep 2024 18:13:00 +0800 Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: Jim Jones Cc: "David G. Johnston" , Yugo NAGATA , torikoshia , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000023afbc0621e95c7d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000023afbc0621e95c7d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Sep 9, 2024 at 10:34=E2=80=AFPM Jim Jones wrote: > > > Hi there > > On 26.08.24 02:00, jian he wrote: > > hi all. > > patch updated. > > simplified the code a lot. > > > > idea is same: > > COPY t_on_error_null FROM STDIN WITH (on_error set_to_null); > > > > If the STDIN number of columns is the same as the target table, then > > InputFunctionCallSafe > > call failure will make that column values be null. > > > > > > If the STDIN number of columns is not the same as the target table, the= n error > > ERROR: missing data for column \"%s\" > > ERROR: extra data after last expected column > > which is status quo. > > I wanted to give it another try, but the patch does not apply ... > here we are. please check the attached file. --00000000000023afbc0621e95c7d Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0001-on_error-set_to_null.patch" Content-Disposition: attachment; filename="v4-0001-on_error-set_to_null.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m0z2m41r0 RnJvbSAzZDZiM2Q4YjAzOTNiNWJjNDk1MGU4NWM0MGM2OWMwZGE0NmM4MDM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgU2VwIDIwMjQgMTc6MDc6MDIgKzA4MDAKU3ViamVjdDogW1BBVENIIHY0 IDEvMV0gb25fZXJyb3Igc2V0X3RvX251bGwKCmV4dGVudCAib25fZXJyb3IgYWN0aW9uIiwgaW50 cm9kdWNlIG5ldyBvcHRpb246IG9uX2Vycm9yIHNldF90b19udWxsLgoKRHVlIHRvIGN1cnJlbnQg Z3JhbW1hciwgd2UgY2Fubm90IHVzZSAib25fZXJyb3IgbnVsbCIsCnNvIEkgY2hvb3NlIG9uX2Vy cm9yIHNldF90b19udWxsLgoKYW55IGRhdGEgdHlwZSBjb252ZXJzaW9uIGVycm9ycyB3aGlsZSB0 aGUgQ09QWSBGUk9NIHByb2Nlc3Mgd2lsbCBzZXQgdGhhdCBjb2x1bW4gdmFsdWUgdG8gYmUgTlVM TC4KdGhpcyB3aWxsIG9ubHkgd29yayB3aXRoIENPUFkgRlJPTSBhbmQgbm9uLWJpbmFyeSBmb3Jt YXQuCgpIb3dldmVyIHRoaXMgd2lsbCByZXNwZWN0IHRoZSBub3QtbnVsbCBjb25zdHJhaW50LCBt ZWFuaW5nLCBpZiB5b3UgYWN0dWFsbHkgY29udmVydGVkIGVycm9yIHRvIG51bGwsCmJ1dCB0aGUg Y29sdW1uIGhhcyBub3QtbnVsbCBjb25zdHJhaW50LCBub3QtbnVsbCBjb25zdHJhaW50IHZpb2xh dGlvbiBFUlJPUiB3aWxsIGJlIHJhaXNlZC4KCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FLRlF1d2F3eTFlNllSNFM9ait5N3BYcWdfRHcxV0JWcmd2Zj1CUDNkMV9hU2ZlXytRQG1h aWwuZ21haWwuY29tCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwgICAgICAgICAgIHwg IDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jICAgICAgICAgIHwgIDQgKystCiBzcmMv YmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jICAgICAgfCAgOSArKy0tLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weWZyb21wYXJzZS5jIHwgMTEgKysrKysrKwogc3JjL2luY2x1ZGUvY29tbWFu ZHMvY29weS5oICAgICAgICAgIHwgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5 Mi5vdXQgIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvY29weTIuc3FsICAgICAgIHwgNDQgKysrKysrKysrKysrKysrKysrKysrKysrKwogNyBm aWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29weS5z Z21sCmluZGV4IDE1MThhZjhhMDQuLmI2YmRmNDVlN2UgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY29weS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sCkBAIC0zOTQs NiArMzk0LDcgQEAgQ09QWSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9u YW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZQogICAgICAgQW4gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmVycm9yX2FjdGlvbjwvcmVwbGFjZWFibGU+IHZhbHVlIG9mCiAg ICAgICA8bGl0ZXJhbD5zdG9wPC9saXRlcmFsPiBtZWFucyBmYWlsIHRoZSBjb21tYW5kLCB3aGls ZQogICAgICAgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBtZWFucyBkaXNjYXJkIHRoZSBpbnB1 dCByb3cgYW5kIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgb25lLgorICAgICAgPGxpdGVyYWw+c2V0 X3RvX251bGw8L2xpdGVyYWw+IG1lYW5zIHRoZSBpbnB1dCB2YWx1ZSB3aWxsIHNldCB0byA8bGl0 ZXJhbD5udWxsPC9saXRlcmFsPiBhbmQgY29udGludWUgd2l0aCB0aGUgbmV4dCBvbmUuCiAgICAg ICBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5zdG9wPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgog ICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYwppbmRleCAzYmI1NzlhM2E0Li4wNWIxNTJhMDkwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weS5jCkBAIC00MDMsMTIgKzQwMywxNCBAQCBkZWZHZXRDb3B5T25FcnJvckNo b2ljZShEZWZFbGVtICpkZWYsIFBhcnNlU3RhdGUgKnBzdGF0ZSwgYm9vbCBpc19mcm9tKQogCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkZWYtPmxvY2F0aW9uKSkpOwogCiAJLyoKLQkg KiBBbGxvdyAic3RvcCIsIG9yICJpZ25vcmUiIHZhbHVlcy4KKwkgKiBBbGxvdyAic3RvcCIsIG9y ICJpZ25vcmUiLCAic2V0X3RvX251bGwiIHZhbHVlcy4KIAkgKi8KIAlpZiAocGdfc3RyY2FzZWNt cChzdmFsLCAic3RvcCIpID09IDApCiAJCXJldHVybiBDT1BZX09OX0VSUk9SX1NUT1A7CiAJaWYg KHBnX3N0cmNhc2VjbXAoc3ZhbCwgImlnbm9yZSIpID09IDApCiAJCXJldHVybiBDT1BZX09OX0VS Uk9SX0lHTk9SRTsKKwlpZiAocGdfc3RyY2FzZWNtcChzdmFsLCAic2V0X3RvX251bGwiKSA9PSAw KQorCQlyZXR1cm4gQ09QWV9PTl9FUlJPUl9OVUxMOwogCiAJZXJlcG9ydChFUlJPUiwKIAkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlm cm9tLmMKaW5kZXggMmQzNDYyOTEzZS4uMTY2OWZhYzQ0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weWZyb20uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJv bS5jCkBAIC0xMzE5LDcgKzEzMTksNyBAQCBDb3B5RnJvbShDb3B5RnJvbVN0YXRlIGNzdGF0ZSkK IAkvKiBEb25lLCBjbGVhbiB1cCAqLwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxsYmFj ay5wcmV2aW91czsKIAotCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgIT0gQ09QWV9PTl9FUlJP Ul9TVE9QICYmCisJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX0lH Tk9SRSAmJgogCQljc3RhdGUtPm51bV9lcnJvcnMgPiAwKQogCQllcmVwb3J0KE5PVElDRSwKIAkJ CQllcnJtc2dfcGx1cmFsKCIlbGx1IHJvdyB3YXMgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGlu Y29tcGF0aWJpbGl0eSIsCkBAIC0xNDcxLDEwICsxNDcxLDExIEBAIEJlZ2luQ29weUZyb20oUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQljc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBm YWxzZTsKIAogCQkvKgotCQkgKiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IENPUFlfT05fRVJS T1JfSUdOT1JFLiBXZSdsbCBhZGQgb3RoZXIKLQkJICogb3B0aW9ucyBsYXRlcgorCQkgKiBDdXJy ZW50bHkgd2Ugb25seSBzdXBwb3J0IENPUFlfT05fRVJST1JfSUdOT1JFLCBDT1BZX09OX0VSUk9S X05VTEwuCisJCSAqIFdlJ2xsIGFkZCBvdGhlciBvcHRpb25zIGxhdGVyCiAJCSAqLwotCQlpZiAo Y3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFKQorCQlpZiAoY3N0 YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JFIHx8CisJCQljc3RhdGUt Pm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9OVUxMKQogCQkJY3N0YXRlLT5lc2NvbnRl eHQtPmRldGFpbHNfd2FudGVkID0gZmFsc2U7CiAJfQogCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv cHlmcm9tcGFyc2UuYwppbmRleCA5N2E0YzM4N2EzLi4zZmUzMmI3NmFjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29weWZyb21wYXJzZS5jCkBAIC05NjksNiArOTY5LDE3IEBAIE5leHRDb3B5RnJvbShD b3B5RnJvbVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQkJewogCQkJCUFz c2VydChjc3RhdGUtPm9wdHMub25fZXJyb3IgIT0gQ09QWV9PTl9FUlJPUl9TVE9QKTsKIAorCQkJ CWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9OVUxMKQorCQkJCXsK KwkJCQkJdmFsdWVzW21dID0gKERhdHVtKSAwOworCQkJCQludWxsc1ttXSA9IHRydWU7CisJCQkJ CS8qCisJCQkJCSAqIHNldCBlcnJvcl9vY2N1cnJlZCB0byBmYWxzZSwgc28gbmV4dAorCQkJCQkg KiBJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUgY2FsbCBiZWhhdmUgc2FuZS4KKwkJCQkJKi8KKwkJCQkJ Y3N0YXRlLT5lc2NvbnRleHQtPmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJCWNvbnRpbnVl OworCQkJCX0KIAkJCQljc3RhdGUtPm51bV9lcnJvcnMrKzsKIAogCQkJCWlmIChjc3RhdGUtPm9w dHMubG9nX3ZlcmJvc2l0eSA9PSBDT1BZX0xPR19WRVJCT1NJVFlfVkVSQk9TRSkKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2Nv cHkuaAppbmRleCAxNDFmZDQ4ZGMxLi5mYTg3MjMyZWQ3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9jb3B5LmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oCkBAIC0z OCw2ICszOCw3IEBAIHR5cGVkZWYgZW51bSBDb3B5T25FcnJvckNob2ljZQogewogCUNPUFlfT05f RVJST1JfU1RPUCA9IDAsCQkvKiBpbW1lZGlhdGVseSB0aHJvdyBlcnJvcnMsIGRlZmF1bHQgKi8K IAlDT1BZX09OX0VSUk9SX0lHTk9SRSwJCS8qIGlnbm9yZSBlcnJvcnMgKi8KKwlDT1BZX09OX0VS Uk9SX05VTEwsCQkJLyogc2V0IGVycm9yIGZpZWxkIHRvIG51bGwgKi8KIH0gQ29weU9uRXJyb3JD aG9pY2U7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHky Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IDYxYTE5Y2Rj NGMuLmI5MmE1NzcxZmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29w eTIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CkBAIC04MSw2 ICs4MSwxMCBAQCBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgaWdub3JlLCBvbl9lcnJvciBp Z25vcmUpOwogRVJST1I6ICBjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucwogTElORSAx OiBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgaWdub3JlLCBvbl9lcnJvciBpZ25vcmUpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitDT1BZIHggZnJv bSBzdGRpbiAob25fZXJyb3Igc2V0X3RvX251bGwsIG9uX2Vycm9yIHNldF90b19udWxsKTsKK0VS Uk9SOiAgY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMKK0xJTkUgMTogQ09QWSB4IGZy b20gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsLCBvbl9lcnJvciBzZXRfdG9fbnVsLi4uCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogQ09QWSB4 IGZyb20gc3RkaW4gKGxvZ192ZXJib3NpdHkgZGVmYXVsdCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3Nl KTsKIEVSUk9SOiAgY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMKIExJTkUgMTogQ09Q WSB4IGZyb20gc3RkaW4gKGxvZ192ZXJib3NpdHkgZGVmYXVsdCwgbG9nX3ZlcmJvc2l0eSB2ZXJi Li4uCkBAIC05Miw2ICs5Niw4IEBAIENPUFkgeCB0byBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgbnVs bCAneCcpOwogRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSBOVUxMIGluIEJJTkFSWSBtb2RlCiBDT1BZ IHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgb25fZXJyb3IgaWdub3JlKTsKIEVSUk9SOiAg b25seSBPTl9FUlJPUiBTVE9QIGlzIGFsbG93ZWQgaW4gQklOQVJZIG1vZGUKK0NPUFkgeCBmcm9t IHN0ZGluIChmb3JtYXQgQklOQVJZLCBvbl9lcnJvciBzZXRfdG9fbnVsbCk7CitFUlJPUjogIG9u bHkgT05fRVJST1IgU1RPUCBpcyBhbGxvd2VkIGluIEJJTkFSWSBtb2RlCiBDT1BZIHggZnJvbSBz dGRpbiAob25fZXJyb3IgdW5zdXBwb3J0ZWQpOwogRVJST1I6ICBDT1BZIE9OX0VSUk9SICJ1bnN1 cHBvcnRlZCIgbm90IHJlY29nbml6ZWQKIExJTkUgMTogQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vy cm9yIHVuc3VwcG9ydGVkKTsKQEAgLTExMiw2ICsxMTgsMTAgQEAgQ09QWSB4IHRvIHN0ZGluIChm b3JtYXQgQklOQVJZLCBvbl9lcnJvciB1bnN1cHBvcnRlZCk7CiBFUlJPUjogIENPUFkgT05fRVJS T1IgY2Fubm90IGJlIHVzZWQgd2l0aCBDT1BZIFRPCiBMSU5FIDE6IENPUFkgeCB0byBzdGRpbiAo Zm9ybWF0IEJJTkFSWSwgb25fZXJyb3IgdW5zdXBwb3J0ZWQpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK0NPUFkgeCB0byBzdGRpbiAob25fZXJyb3Igc2V0X3Rv X251bGwpOworRVJST1I6ICBDT1BZIE9OX0VSUk9SIGNhbm5vdCBiZSB1c2VkIHdpdGggQ09QWSBU TworTElORSAxOiBDT1BZIHggdG8gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBeCiBDT1BZIHggdG8gc3Rkb3V0IChsb2dfdmVyYm9zaXR5IHVu c3VwcG9ydGVkKTsKIEVSUk9SOiAgQ09QWSBMT0dfVkVSQk9TSVRZICJ1bnN1cHBvcnRlZCIgbm90 IHJlY29nbml6ZWQKIExJTkUgMTogQ09QWSB4IHRvIHN0ZG91dCAobG9nX3ZlcmJvc2l0eSB1bnN1 cHBvcnRlZCk7CkBAIC03NTMsNiArNzYzLDI0IEBAIENPTlRFWFQ6ICBDT1BZIGNoZWNrX2lnbl9l cnIKIE5PVElDRTogIHNraXBwaW5nIHJvdyBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0 eSBhdCBsaW5lIDggZm9yIGNvbHVtbiAiayI6ICJhIgogQ09OVEVYVDogIENPUFkgY2hlY2tfaWdu X2VycgogTk9USUNFOiAgNiByb3dzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29t cGF0aWJpbGl0eQorY3JlYXRlIGRvbWFpbiBkX2ludF9ub3RfbnVsbCBhcyBpbnQgbm90IG51bGwg Y2hlY2sodmFsdWUgPiAwKTsKK0NSRUFURSBUQUJMRSB0X29uX2Vycm9yX251bGwgKGEgZF9pbnRf bm90X251bGwsIGMgaW50IG5vdCBudWxsLCBiIGludCk7CistLWZhaWwKK0NPUFkgdF9vbl9lcnJv cl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBu dWxsIHZhbHVlIGluIGNvbHVtbiAiYyIgb2YgcmVsYXRpb24gInRfb25fZXJyb3JfbnVsbCIgdmlv bGF0ZXMgbm90LW51bGwgY29uc3RyYWludAorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMg KDExLCBudWxsLCAxMikuCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMTog IjExCWEJMTIiCistLW9rCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9u X2Vycm9yIHNldF90b19udWxsKTsKK3NlbGVjdCAqIGZyb20gdF9vbl9lcnJvcl9udWxsOworIGEg fCBjICB8IGIgIAorLS0tKy0tLS0rLS0tLQorICAgfCAxMSB8IDEzCisgICB8IDExIHwgMTQKKygy IHJvd3MpCisKK2Ryb3AgdGFibGUgdF9vbl9lcnJvcl9udWxsOworZHJvcCBkb21haW4gZF9pbnRf bm90X251bGw7CiAtLSB0ZXN0cyBmb3Igb25fZXJyb3Igb3B0aW9uIHdpdGggbG9nX3ZlcmJvc2l0 eSBhbmQgbnVsbCBjb25zdHJhaW50IHZpYSBkb21haW4KIENSRUFURSBET01BSU4gZGNoZWNrX2ln bl9lcnIyIHZhcmNoYXIoMTUpIE5PVCBOVUxMOwogQ1JFQVRFIFRBQkxFIGNoZWNrX2lnbl9lcnIy IChuIGludCwgbSBpbnRbXSwgayBpbnQsIGwgZGNoZWNrX2lnbl9lcnIyKTsKQEAgLTc4OSw2ICs4 MTcsMjcgQEAgQ09OVEVYVDogIENPUFkgY2hlY2tfaWduX2VyciwgbGluZSAxOiAiMQl7MX0iCiBD T1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBpZ25vcmUpOwogRVJS T1I6ICBleHRyYSBkYXRhIGFmdGVyIGxhc3QgZXhwZWN0ZWQgY29sdW1uCiBDT05URVhUOiAgQ09Q WSBjaGVja19pZ25fZXJyLCBsaW5lIDE6ICIxCXsxfQkzCWFiYyIKK3RydW5jYXRlIGNoZWNrX2ln bl9lcnI7CitDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRf dG9fbnVsbCk7CitccHNldCBudWxsIE5VTEwKK1NFTEVDVCAqIEZST00gY2hlY2tfaWduX2VycjsK KyAgbiAgIHwgIG0gIHwgIGsgICAKKy0tLS0tLSstLS0tLSstLS0tLS0KKyAgICAxIHwgezF9IHwg TlVMTAorICAgIDIgfCB7Mn0gfCAgICAxCisgICAgMyB8IHszfSB8ICAgIDIKKyAgICA0IHwgezR9 IHwgTlVMTAorIE5VTEwgfCB7NX0gfCBOVUxMCisoNSByb3dzKQorCistLXNob3VsZCBmYWlsLgor Q09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcsJywgb25fZXJy b3Igc2V0X3RvX251bGwpOworRVJST1I6ICBtaXNzaW5nIGRhdGEgZm9yIGNvbHVtbiAiayIKK0NP TlRFWFQ6ICBDT1BZIGNoZWNrX2lnbl9lcnIsIGxpbmUgMSwgY29sdW1uIG06ICIiCistLXNob3Vs ZCBmYWlsLgorQ09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcs Jywgb25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBleHRyYSBkYXRhIGFmdGVyIGxhc3Qg ZXhwZWN0ZWQgY29sdW1uCitDT05URVhUOiAgQ09QWSBjaGVja19pZ25fZXJyLCBsaW5lIDE6ICIx LHsxfSwxLDEiCiAtLSBjbGVhbiB1cAogRFJPUCBUQUJMRSBmb3JjZXRlc3Q7CiBEUk9QIFRBQkxF IHZpc3Rlc3Q7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwKaW5kZXggOGIxNDk2MjE5NC4uMTE0NDgyMjc2 OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbApAQCAtNjcsMTIgKzY3LDE0IEBAIENPUFkgeCBmcm9t IHN0ZGluIChmb3JjZV9udWxsIChhKSwgZm9yY2VfbnVsbCAoYikpOwogQ09QWSB4IGZyb20gc3Rk aW4gKGNvbnZlcnRfc2VsZWN0aXZlbHkgKGEpLCBjb252ZXJ0X3NlbGVjdGl2ZWx5IChiKSk7CiBD T1BZIHggZnJvbSBzdGRpbiAoZW5jb2RpbmcgJ3NxbF9hc2NpaScsIGVuY29kaW5nICdzcWxfYXNj aWknKTsKIENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciBpZ25vcmUsIG9uX2Vycm9yIGlnbm9y ZSk7CitDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3Igc2V0X3RvX251bGwsIG9uX2Vycm9yIHNl dF90b19udWxsKTsKIENPUFkgeCBmcm9tIHN0ZGluIChsb2dfdmVyYm9zaXR5IGRlZmF1bHQsIGxv Z192ZXJib3NpdHkgdmVyYm9zZSk7CiAKIC0tIGluY29ycmVjdCBvcHRpb25zCiBDT1BZIHggdG8g c3RkaW4gKGZvcm1hdCBCSU5BUlksIGRlbGltaXRlciAnLCcpOwogQ09QWSB4IHRvIHN0ZGluIChm b3JtYXQgQklOQVJZLCBudWxsICd4Jyk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFS WSwgb25fZXJyb3IgaWdub3JlKTsKK0NPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBv bl9lcnJvciBzZXRfdG9fbnVsbCk7CiBDT1BZIHggZnJvbSBzdGRpbiAob25fZXJyb3IgdW5zdXBw b3J0ZWQpOwogQ09QWSB4IHRvIHN0ZGluIChmb3JtYXQgVEVYVCwgZm9yY2VfcXVvdGUoYSkpOwog Q09QWSB4IGZyb20gc3RkaW4gKGZvcm1hdCBDU1YsIGZvcmNlX3F1b3RlKGEpKTsKQEAgLTgxLDYg KzgzLDcgQEAgQ09QWSB4IHRvIHN0ZGluIChmb3JtYXQgQ1NWLCBmb3JjZV9ub3RfbnVsbChhKSk7 CiBDT1BZIHggdG8gc3Rkb3V0IChmb3JtYXQgVEVYVCwgZm9yY2VfbnVsbChhKSk7CiBDT1BZIHgg dG8gc3RkaW4gKGZvcm1hdCBDU1YsIGZvcmNlX251bGwoYSkpOwogQ09QWSB4IHRvIHN0ZGluIChm b3JtYXQgQklOQVJZLCBvbl9lcnJvciB1bnN1cHBvcnRlZCk7CitDT1BZIHggdG8gc3RkaW4gKG9u X2Vycm9yIHNldF90b19udWxsKTsKIENPUFkgeCB0byBzdGRvdXQgKGxvZ192ZXJib3NpdHkgdW5z dXBwb3J0ZWQpOwogCiAtLSB0b28gbWFueSBjb2x1bW5zIGluIGNvbHVtbiBsaXN0OiBzaG91bGQg ZmFpbApAQCAtNTI2LDYgKzUyOSwyNCBAQCBhCXsyfQkyCiA4CXs4fQk4CiBcLgogCitjcmVhdGUg ZG9tYWluIGRfaW50X25vdF9udWxsIGFzIGludCBub3QgbnVsbCBjaGVjayh2YWx1ZSA+IDApOwor Q1JFQVRFIFRBQkxFIHRfb25fZXJyb3JfbnVsbCAoYSBkX2ludF9ub3RfbnVsbCwgYyBpbnQgbm90 IG51bGwsIGIgaW50KTsKKworLS1mYWlsCitDT1BZIHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElO IFdJVEggKG9uX2Vycm9yIHNldF90b19udWxsKTsKKzExCWEJMTIKK1wuCisKKy0tb2sKK0NPUFkg dF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwpOwor LTEJMTEJMTMKK2EJMTEJMTQKK1wuCisKK3NlbGVjdCAqIGZyb20gdF9vbl9lcnJvcl9udWxsOwor ZHJvcCB0YWJsZSB0X29uX2Vycm9yX251bGw7Citkcm9wIGRvbWFpbiBkX2ludF9ub3RfbnVsbDsK KwogLS0gdGVzdHMgZm9yIG9uX2Vycm9yIG9wdGlvbiB3aXRoIGxvZ192ZXJib3NpdHkgYW5kIG51 bGwgY29uc3RyYWludCB2aWEgZG9tYWluCiBDUkVBVEUgRE9NQUlOIGRjaGVja19pZ25fZXJyMiB2 YXJjaGFyKDE1KSBOT1QgTlVMTDsKIENSRUFURSBUQUJMRSBjaGVja19pZ25fZXJyMiAobiBpbnQs IG0gaW50W10sIGsgaW50LCBsIGRjaGVja19pZ25fZXJyMik7CkBAIC01NTcsNiArNTc4LDI5IEBA IENPUFkgY2hlY2tfaWduX2VyciBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIGlnbm9yZSk7CiAx CXsxfQkzCWFiYwogXC4KIAorCit0cnVuY2F0ZSBjaGVja19pZ25fZXJyOworQ09QWSBjaGVja19p Z25fZXJyIEZST00gU1RESU4gV0lUSCAob25fZXJyb3Igc2V0X3RvX251bGwpOworMQl7MX0JYQor Mgl7Mn0JMQorMwl7M30JMgorNAl7NH0JYgorYQl7NX0JYworXC4KKworXHBzZXQgbnVsbCBOVUxM CitTRUxFQ1QgKiBGUk9NIGNoZWNrX2lnbl9lcnI7CisKKy0tc2hvdWxkIGZhaWwuCitDT1BZIGNo ZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBXSVRIIChkZWxpbWl0ZXIgJywnLCBvbl9lcnJvciBzZXRf dG9fbnVsbCk7CisxLAorXC4KKworLS1zaG91bGQgZmFpbC4KK0NPUFkgY2hlY2tfaWduX2VyciBG Uk9NIFNURElOIFdJVEggKGRlbGltaXRlciAnLCcsIG9uX2Vycm9yIHNldF90b19udWxsKTsKKzEs ezF9LDEsMQorXC4KKwogLS0gY2xlYW4gdXAKIERST1AgVEFCTEUgZm9yY2V0ZXN0OwogRFJPUCBU QUJMRSB2aXN0ZXN0OwoKYmFzZS1jb21taXQ6IDAwYzc2Y2YyMWM0MmMxN2U2MGU3M2E4N2RlYTBk MWI0ZTIzNGQ5ZGEKLS0gCjIuMzQuMQoK --00000000000023afbc0621e95c7d--