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 1wSPHb-003AAG-23 for pgsql-hackers@arkaria.postgresql.org; Thu, 28 May 2026 01:11:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wSPHY-00AZzn-2H for pgsql-hackers@arkaria.postgresql.org; Thu, 28 May 2026 01:11:33 +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 1wSPHY-00AZzd-17 for pgsql-hackers@lists.postgresql.org; Thu, 28 May 2026 01:11:33 +0000 Received: from mail-ua1-x934.google.com ([2607:f8b0:4864:20::934]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wSPHW-00000001mQm-39Of for pgsql-hackers@lists.postgresql.org; Thu, 28 May 2026 01:11:32 +0000 Received: by mail-ua1-x934.google.com with SMTP id a1e0cc1a2514c-96395a59ff6so12904241.0 for ; Wed, 27 May 2026 18:11:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779930688; cv=none; d=google.com; s=arc-20240605; b=SE8dRdurwsjDBGODXDR2gGoqqPWPzBiSOi0Icy4qmwBCv+axpgxtjnKaYkMDZ5Lyy/ rlzIp04hlxn03Yatgp46wl//TswoLhOlaVkrqfE1sLtjhslMZC5IIFubxRyscbm3zgyT 3IQfGl4TOqAYc58X3tB4rBfZjJnCezJVIAgaHc8hPFZcsxJnGgfrdJzY5nGUTk1kNZhH Uw+UfAbi+7BvATYKLB7GVZ5o2yn72Cq6VNRxNWpNpr5/OkwsIJ/vpOvOTwfY6ej1UFhb 9wpcN6094MlGABi2Q2RfY/LkEMs+5OBpoFVex993tdZX/xAVCPgl2SvDlzVGi8w/bD/k riuA== 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=bfl4/DCzqZUCpQO1KB1EUiSArbEY0mjiVLdzntHW3BY=; fh=oCjihH6oITVF56cqQMYRftMhpfo/UFVVEGaRXSBFgi8=; b=c3a2+VSVWIo5XS/RVkqKpcOtFf/w90SL+J0llmwC/uzz7N+tbcPmse/cSJ9aWrUID0 oLH3NdKVTlKumN2f3zo0dywfLUCRH5lX9Zhrf3Dxy6RfANauSr5CG2ucjPYQeVQufiLz bgB/jUrn4dgIcZ/sLYqY03oLu5RuTCqX+bBk4iBau2Tg5C0y4sfazumSesucgnAg8AJ/ C53ae4GWD1sZLXC8VNXfir86jRWoekhzuH4L8MQ5gkq/iDsxHg4BMHc9b+Z/boBurCbF xs6mqoCCi3tX+71xP3HM+9/gV5m8q2ljDS6QdmBmK9xRdxko37Pn5LdkVJvb7smHWbzI ZIlw==; 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=1779930688; x=1780535488; 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=bfl4/DCzqZUCpQO1KB1EUiSArbEY0mjiVLdzntHW3BY=; b=Nccsb+yf6vmFgUp0STjmxmEKODNusu55egWJ4rtZ411D5T9kwONpk8C+mC40xr2e+n eLK7Q1zmhCrCQlbS2QBz5/OZPpT2SKqWwA3qFgzJx+a5yYF4rBO9+vuKUHc0KxtMXOPq Z4fGRXW/EXKkpoLFawyr9vpFRqP+0FhiVhTRsAS+6/xP6rVWcKvSvFQbGOrWtw5BnUjt HkFGs52QYX8hK58hF1NG9SOb9jTNSCyRQtz2Y7ESqH2SARxG9aJ8hSW7rzwU7SE+flKV 3PMM+33wjB0dgbuu07N0Py+VzJXRonzE/GBQmZkwL3P1Sgu27f/4Rcl7Ogro5+UmvlXS NdWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779930688; x=1780535488; 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=bfl4/DCzqZUCpQO1KB1EUiSArbEY0mjiVLdzntHW3BY=; b=rlN0+RLLLVZ7mnbLRFpbYtyi4T9WXnXRJaqXKSrxxLzmOXagjSKYB52qSIqSLtV3e1 ramIzDkIdgBaUuW2ETOCNRhHHDLgacAZfDCFunXxFzPfjyywgDC658PyjzuWge3IzRhL PJHO8nDqT4E0OHaAINj3i0UpukpRIObpjiJnXjSNUjfOvfaOSoKt39IsxIfj1l9fLHCu zqidIEwMNYLYnlJRK4av7R/zMpJa5SU+OgLdSytM+wIG79d08F7tI/SbXo9GZqvhSL7w IVhIEWNXM+yVQre/2na6P99Mn76wE8XXA3xLDwYp1Fc32ZNU2QNOZgHOP7ehvaTMimUV o5qA== X-Forwarded-Encrypted: i=1; AFNElJ9Jk8BEgs9euGLwRDjQoH7NUdlJAZzUM62vHDpzZ9tUuggxBLPTEzw7xHO2E1SzHYY2WkMChr1t2AGRxoPN@lists.postgresql.org X-Gm-Message-State: AOJu0YwA40ERPvezH5889yg6gE7j8Gjg8RXIDbL768nlO/MWhmtoTXSx 48o/V9QvW5li8pCN7vtCVsrMIANk0a0Q4opoPbp7T08ieSy11XQpbCCbXBzmFxBxpau35zftUZ/ +uYGZgtoz6DyHDMZ87COu4/WQTz3QYMI= X-Gm-Gg: Acq92OGpxQ1BttxhpcokN0g5UPDQMBSr3kNOe31HaC/3oJwv+sKA4JK+beRTsUySXnH 1jOkbK2hEv24U/I2e9BH82dOXNVNam+nitAsi5AkTOLGuVTouElmD+HJxsC/wubsASINMlMPD2t 1BWfg9js+xwComAjEExI+ippR/wYGUsprYalYTgMULZssjVnmnUv4Qon8zsO1aOuFUXSgVADCbz A5dK6ZKIa8iJJtjGJYn37ynGxSTYkfZDlB5Gnnt3CWC/7Pv2hCibfhL6707fSMsXlqdsFdSsH3J 4H6mjXkjFYUXEGNPUA== X-Received: by 2002:a05:6122:e166:b0:575:360e:6009 with SMTP id 71dfb90a1353d-5865f15480dmr13653334e0c.4.1779930687783; Wed, 27 May 2026 18:11:27 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: SATYANARAYANA NARLAPURAM Date: Wed, 27 May 2026 18:11:16 -0700 X-Gm-Features: AVHnY4ITg-_t_FTqekuBLZaOnOcGRA1MQWXAOVy2OA7M6kEFNwWK1OLLdU1UWyI Message-ID: Subject: Re: [PATCH] Release replication slot on error in SQL-callable slot functions To: shveta malik Cc: Fujii Masao , vignesh C , PostgreSQL Hackers , shveta malik Content-Type: multipart/mixed; boundary="0000000000005ee2e20652d66804" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005ee2e20652d66804 Content-Type: multipart/alternative; boundary="0000000000005ee2e20652d66802" --0000000000005ee2e20652d66802 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi On Wed, May 27, 2026 at 4:00=E2=80=AFAM shveta malik wrote: > On Wed, May 27, 2026 at 1:42=E2=80=AFPM Fujii Masao wrote: > > > > On Wed, May 27, 2026 at 1:31=E2=80=AFPM SATYANARAYANA NARLAPURAM > > wrote: > > > Thank you for the changes and review. > > > > When I applied the v4 patch together with Shveta's diff patch and > > ran the regression tests, the tests failed. > > That is because my top-up patch lacks slot.out changes, I wanted Satya > to first confirm if the changes are acceptable to him. Attached > another top-up patch for test-output correction. > Thanks for the patches, I combined these changes in my latest patch. Please find the v5. Thanks, Satya --0000000000005ee2e20652d66802 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Wed, May 27, 2= 026 at 4:00=E2=80=AFAM shveta malik <shveta.malik@gmail.com> wrote:
On Wed, May 27, 2026 at 1:42=E2=80=AFPM Fujii = Masao <masao.= fujii@gmail.com> wrote:
>
> On Wed, May 27, 2026 at 1:31=E2=80=AFPM SATYANARAYANA NARLAPURAM
> <sat= yanarlapuram@gmail.com> wrote:
> > Thank you for the changes and review.
>
> When I applied the v4 patch together with Shveta's diff patch and<= br> > ran the regression tests, the tests failed.

That is because my top-up patch lacks slot.out changes, I wanted Satya
to first confirm if the changes are acceptable to him. Attached
another top-up patch for test-output correction.

<= /div>
Thanks for the patches, I combined these changes in my latest pat= ch. Please find the v5.=C2=A0

=C2=A0Thanks,
<= div>Satya
--0000000000005ee2e20652d66802-- --0000000000005ee2e20652d66804 Content-Type: application/octet-stream; name="v5-0001-Release-replication-slot-on-error-in-slot-SQL-functions.patch" Content-Disposition: attachment; filename="v5-0001-Release-replication-slot-on-error-in-slot-SQL-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mposr6370 RnJvbSAxZDQ3MzVmMTgyZThiOGU4ODRlNmI3MWM5OWZkYzU5ODc5MjE1YmE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYXR5YSBOYXJsYXB1cmFtIDxzYXR5YW5hcmxhcHVyYW1AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI2IDA5OjE4OjUwICswNTMwClN1YmplY3Q6IFtQ QVRDSCB2NF0gUmVsZWFzZSByZXBsaWNhdGlvbiBzbG90IG9uIGVycm9yIGluIHNsb3QgU1FMIGZ1 bmN0aW9ucwoKRW5zdXJlIHJlcGxpY2F0aW9uIHNsb3RzIGFyZSBwcm9wZXJseSByZWxlYXNlZCBv ciBkcm9wcGVkIHdoZW4gYW4gZXJyb3IKb2NjdXJzIGluIFNRTC1jYWxsYWJsZSByZXBsaWNhdGlv biBzbG90IGZ1bmN0aW9ucywgcGFydGljdWxhcmx5IHdoZW4gdGhlCmVycm9yIGlzIGNhdWdodCBi eSBhIFBML3BnU1FMIEVYQ0VQVElPTiBoYW5kbGVyIHRoYXQgZG9lcyBub3QgdGVybWluYXRlCnRo ZSBzZXNzaW9uLgoKUHJldmlvdXNseSwgZnVuY3Rpb25zIGxpa2UgcGdfY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdCgpLApwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgp LCBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoKSwKcGdfY29weV9sb2dpY2FsX3JlcGxpY2F0 aW9uX3Nsb3QoKSwgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCksIGFuZApwZ19sb2dpY2FsX3Ns b3RfZ2V0X2NoYW5nZXMoKSBjb3VsZCBsZWF2ZSBzbG90cyBhY3F1aXJlZCBvciBwYXJ0aWFsbHkK Y3JlYXRlZCB3aGVuIGFuIGVycm9yIG9jY3VycmVkIG1pZC1vcGVyYXRpb24uICBJZiB0aGUgZXJy b3Igd2FzIGNhdWdodCBieQphIFBML3BnU1FMIEVYQ0VQVElPTiBoYW5kbGVyICh3aGljaCB1c2Vz IHN1YnRyYW5zYWN0aW9ucyksIHRoZSBzbG90IHdvdWxkCnJlbWFpbiBsb2NrZWQgZm9yIHRoZSBy ZXN0IG9mIHRoZSBzZXNzaW9uLCBjYXVzaW5nIHN1YnNlcXVlbnQgb3BlcmF0aW9ucwp0byBmYWls LgoKRml4IGJ5IHdyYXBwaW5nIHRoZSBjcml0aWNhbCBzZWN0aW9ucyBpbiBQR19UUlkvUEdfQ0FU Q0ggYmxvY2tzIHRoYXQKcmVsZWFzZSBvciBkcm9wIHRoZSBzbG90IGFzIGFwcHJvcHJpYXRlOgoK LSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90OiBkcm9wIHRoZSBwYXJ0aWFsbHkt Y3JlYXRlZCBzbG90Ci0gcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q6IGRyb3Ag dGhlIHBhcnRpYWxseS1jcmVhdGVkIHNsb3QKLSBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2U6 IHJlbGVhc2UgdGhlIGFjcXVpcmVkIHNsb3QKLSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXM6 IHJlbGVhc2UgdGhlIGFjcXVpcmVkIHNsb3QKLSBwZ19jb3B5X2xvZ2ljYWxfcmVwbGljYXRpb25f c2xvdDogZHJvcCB0aGUgZGVzdGluYXRpb24gc2xvdAotIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dDogcmVsZWFzZSB0aGUgYWNxdWlyZWQgc2xvdCAodGhlIGVycm9yIGluCiAgUmVwbGljYXRpb25T bG90RHJvcCBvY2N1cnMgYWZ0ZXIgYWNxdWlzaXRpb24gd2hlbiBkcm9wcGluZyBzeW5jZWQKICBz bG90cyBvbiBzdGFuZGJ5cyBpcyBkaXNhbGxvd2VkKQotLS0KIGNvbnRyaWIvdGVzdF9kZWNvZGlu Zy9leHBlY3RlZC9zbG90Lm91dCAgICAgICAgfCAxMTQgKysrKysrKysrKysrCiBjb250cmliL3Rl c3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsICAgICAgICAgICAgIHwgIDcyICsrKysrKysrCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jIHwgICA3ICstCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyAgICAgICAgICAgIHwgMjM1ICsrKysrKysr KysrKysrKystLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzQyIGluc2VydGlvbnMoKyksIDg2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3Rl ZC9zbG90Lm91dCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91dAppbmRl eCA3ZGUwM2M3OWY2Zi4uM2EwNGQyZmJlNjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy9leHBlY3RlZC9zbG90Lm91dAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0 ZWQvc2xvdC5vdXQKQEAgLTQ2NiwzICs0NjYsMTE3IEBAIFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0 aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKICAKICgxIHJvdykKIAorLS0KKy0tIFRlc3QgdGhh dCByZXBsaWNhdGlvbiBzbG90cyBhcmUgcHJvcGVybHkgcmVsZWFzZWQgb3IgZHJvcHBlZCBvbiBl cnJvciwKKy0tIGV2ZW4gd2hlbiB0aGUgZXJyb3IgaXMgY2F1Z2h0IGJ5IGEgUEwvcGdTUUwgRVhD RVBUSU9OIGhhbmRsZXIgKHdoaWNoCistLSBkb2Vzbid0IHRlcm1pbmF0ZSB0aGUgc2Vzc2lvbiku CistLQorLS0gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdDogZXJyb3IgZHVyaW5n IHNsb3QgY3JlYXRpb24gc2hvdWxkCistLSBkcm9wIHRoZSBzbG90LgorRE8gJCQKK0JFR0lOCisg ICAgUEVSRk9STSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9u X3Nsb3RfZXJyb3InLCAnbm9uZXhpc3RlbnRfcGx1Z2luX3h5eicsIHRydWUpOworRVhDRVBUSU9O IFdIRU4gT1RIRVJTIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhdWdodDogJScsIFNRTEVSUk07 CitFTkQ7CiskJDsKK05PVElDRTogIGNhdWdodDogY291bGQgbm90IGFjY2VzcyBmaWxlICJub25l eGlzdGVudF9wbHVnaW5feHl6IjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorLS0gdGhlIGNv bmNlcm5lZCBzbG90IG11c3Qgbm90IGV4aXN0IChpdCB3YXMgZHJvcHBlZCBvbiBlcnJvcikKK1NF TEVDVCBjb3VudCgqKSA9IDAgQVMgc2xvdF93YXNfZHJvcHBlZCBGUk9NIHBnX3JlcGxpY2F0aW9u X3Nsb3RzCisgICAgV0hFUkUgc2xvdF9uYW1lID0gJ3JlZ3Jlc3Npb25fc2xvdF9lcnJvcic7Cisg c2xvdF93YXNfZHJvcHBlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworLS0g dGhlIHNlc3Npb24gaXMgc3RpbGwgdXNhYmxlCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRl X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJywgJ3Rlc3RfZGVj b2RpbmcnLCBmYWxzZSk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQor CistLSBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2U6IGVycm9yIGFmdGVyIGFjcXVpcmluZyB0 aGUgc2xvdCBzaG91bGQKKy0tIHJlbGVhc2UgaXQgc28gdGhlIHNlc3Npb24gc3RheXMgdXNhYmxl LgorU0VMRUNUIHNsb3RfbmFtZSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZSgncmVn cmVzc2lvbl9zbG90X3QzJywgcGdfY3VycmVudF93YWxfbHNuKCkpOworICAgICBzbG90X25hbWUg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbl9zbG90X3QzCisoMSByb3cp CisKK0RPICQkCitCRUdJTgorICAgIFBFUkZPUk0gcGdfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNl KCdyZWdyZXNzaW9uX3Nsb3RfdDMnLCAnMC8xJyk7CitFWENFUFRJT04gV0hFTiBPVEhFUlMgVEhF TgorICAgIFJBSVNFIE5PVElDRSAnY2F1Z2h0IGV4cGVjdGVkIGVycm9yJzsKK0VORDsKKyQkOwor Tk9USUNFOiAgY2F1Z2h0IGV4cGVjdGVkIGVycm9yCistLSB0aGUgc2Vzc2lvbiBpcyBzdGlsbCB1 c2FibGUKK1NFTEVDVCBzbG90X25hbWUgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2Uo J3JlZ3Jlc3Npb25fc2xvdF90MycsIHBnX2N1cnJlbnRfd2FsX2xzbigpKTsKKyAgICAgc2xvdF9u YW1lICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb25fc2xvdF90MworKDEg cm93KQorCistLSBwZ19jb3B5X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdDogZXJyb3IgYWZ0ZXIg Y3JlYXRpbmcgdGhlIGRlc3RpbmF0aW9uCistLSBzbG90IHNob3VsZCBkcm9wIGl0LgorRE8gJCQK K0JFR0lOCisgICAgUEVSRk9STSBwZ19jb3B5X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgncmVn cmVzc2lvbl9zbG90X3QzJywgJ3JlZ3Jlc3Npb25fc2xvdF9kc3QnLCBmYWxzZSwgJ25vbmV4aXN0 ZW50X3BsdWdpbl94eXonKTsKK0VYQ0VQVElPTiBXSEVOIE9USEVSUyBUSEVOCisgICAgUkFJU0Ug Tk9USUNFICdjYXVnaHQ6ICUnLCBTUUxFUlJNOworRU5EOworJCQ7CitOT1RJQ0U6ICBjYXVnaHQ6 IGNvdWxkIG5vdCBhY2Nlc3MgZmlsZSAibm9uZXhpc3RlbnRfcGx1Z2luX3h5eiI6IE5vIHN1Y2gg ZmlsZSBvciBkaXJlY3RvcnkKKy0tIHRoZSBkZXN0aW5hdGlvbiBzbG90IG11c3Qgbm90IGV4aXN0 IChpdCB3YXMgZHJvcHBlZCBvbiBlcnJvcikKK1NFTEVDVCBjb3VudCgqKSA9IDAgQVMgZHN0X3Ns b3RfZHJvcHBlZCBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzCisgICAgV0hFUkUgc2xvdF9uYW1l ID0gJ3JlZ3Jlc3Npb25fc2xvdF9kc3QnOworIGRzdF9zbG90X2Ryb3BwZWQgCistLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKKy0tIHRoZSBzZXNzaW9uIGlzIHN0aWxsIHVzYWJsZQor U0VMRUNUIGNvdW50KCopID49IDAgQVMgY2hhbmdlc19vayBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9n ZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90X3QzJywgTlVMTCwgTlVMTCk7CisgY2hhbmdlc19v ayAKKy0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworLS0gcGdfbG9naWNhbF9zbG90X2dldF9j aGFuZ2VzOiBlcnJvciBhZnRlciBhY3F1aXJpbmcgdGhlIHNsb3Qgc2hvdWxkCistLSByZWxlYXNl IGl0LgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9z bG90KCdyZWdyZXNzaW9uX3Nsb3RfcGh5JywgdHJ1ZSk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0t CisgaW5pdAorKDEgcm93KQorCitETyAkJAorQkVHSU4KKyAgICBQRVJGT1JNIHBnX2xvZ2ljYWxf c2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90X3BoeScsIE5VTEwsIE5VTEwpOworRVhD RVBUSU9OIFdIRU4gT1RIRVJTIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhdWdodDogJScsIFNR TEVSUk07CitFTkQ7CiskJDsKK05PVElDRTogIGNhdWdodDogY2Fubm90IHVzZSBwaHlzaWNhbCBy ZXBsaWNhdGlvbiBzbG90IGZvciBsb2dpY2FsIGRlY29kaW5nCistLSB0aGUgc2Vzc2lvbiBpcyBz dGlsbCB1c2FibGUKK1NFTEVDVCBzbG90X25hbWUgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90X2Fk dmFuY2UoJ3JlZ3Jlc3Npb25fc2xvdF90MycsIHBnX2N1cnJlbnRfd2FsX2xzbigpKTsKKyAgICAg c2xvdF9uYW1lICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb25fc2xvdF90 MworKDEgcm93KQorCistLSBjbGVhbnVwCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90 KCdyZWdyZXNzaW9uX3Nsb3RfcGh5Jyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90IAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJyk7CisgcGdfZHJvcF9yZXBsaWNhdGlv bl9zbG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwpkaWZmIC0t Z2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbCBiL2NvbnRyaWIvdGVzdF9k ZWNvZGluZy9zcWwvc2xvdC5zcWwKaW5kZXggNTgwZTNhZTNiZWYuLmQ4ZTBhZGNjYmZiIDEwMDY0 NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsCisrKyBiL2NvbnRyaWIv dGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwKQEAgLTE5MCwzICsxOTAsNzUgQEAgU0VMRUNUIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfdHJ1ZV9zbG90Jyk7CiBTRUxFQ1QgcGdf ZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90Jyk7CiBTRUxFQ1QgcGdf ZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZhdWx0X3Nsb3QnKTsKIFNFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKKworLS0KKy0tIFRlc3Qg dGhhdCByZXBsaWNhdGlvbiBzbG90cyBhcmUgcHJvcGVybHkgcmVsZWFzZWQgb3IgZHJvcHBlZCBv biBlcnJvciwKKy0tIGV2ZW4gd2hlbiB0aGUgZXJyb3IgaXMgY2F1Z2h0IGJ5IGEgUEwvcGdTUUwg RVhDRVBUSU9OIGhhbmRsZXIgKHdoaWNoCistLSBkb2Vzbid0IHRlcm1pbmF0ZSB0aGUgc2Vzc2lv bikuCistLQorCistLSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90OiBlcnJvciBk dXJpbmcgc2xvdCBjcmVhdGlvbiBzaG91bGQKKy0tIGRyb3AgdGhlIHNsb3QuCitETyAkJAorQkVH SU4KKyAgICBQRVJGT1JNIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3JlZ3Jl c3Npb25fc2xvdF9lcnJvcicsICdub25leGlzdGVudF9wbHVnaW5feHl6JywgdHJ1ZSk7CitFWENF UFRJT04gV0hFTiBPVEhFUlMgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2F1Z2h0OiAlJywgU1FM RVJSTTsKK0VORDsKKyQkOworCistLSB0aGUgY29uY2VybmVkIHNsb3QgbXVzdCBub3QgZXhpc3Qg KGl0IHdhcyBkcm9wcGVkIG9uIGVycm9yKQorU0VMRUNUIGNvdW50KCopID0gMCBBUyBzbG90X3dh c19kcm9wcGVkIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMKKyAgICBXSEVSRSBzbG90X25hbWUg PSAncmVncmVzc2lvbl9zbG90X2Vycm9yJzsKKworLS0gdGhlIHNlc3Npb24gaXMgc3RpbGwgdXNh YmxlCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xv dCgncmVncmVzc2lvbl9zbG90X3QzJywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSk7CisKKy0tIHBn X3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZTogZXJyb3IgYWZ0ZXIgYWNxdWlyaW5nIHRoZSBzbG90 IHNob3VsZAorLS0gcmVsZWFzZSBpdCBzbyB0aGUgc2Vzc2lvbiBzdGF5cyB1c2FibGUuCitTRUxF Q1Qgc2xvdF9uYW1lIEZST00gcGdfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKCdyZWdyZXNzaW9u X3Nsb3RfdDMnLCBwZ19jdXJyZW50X3dhbF9sc24oKSk7CisKK0RPICQkCitCRUdJTgorICAgIFBF UkZPUk0gcGdfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKCdyZWdyZXNzaW9uX3Nsb3RfdDMnLCAn MC8xJyk7CitFWENFUFRJT04gV0hFTiBPVEhFUlMgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2F1 Z2h0IGV4cGVjdGVkIGVycm9yJzsKK0VORDsKKyQkOworCistLSB0aGUgc2Vzc2lvbiBpcyBzdGls bCB1c2FibGUKK1NFTEVDVCBzbG90X25hbWUgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFu Y2UoJ3JlZ3Jlc3Npb25fc2xvdF90MycsIHBnX2N1cnJlbnRfd2FsX2xzbigpKTsKKworLS0gcGdf Y29weV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q6IGVycm9yIGFmdGVyIGNyZWF0aW5nIHRoZSBk ZXN0aW5hdGlvbgorLS0gc2xvdCBzaG91bGQgZHJvcCBpdC4KK0RPICQkCitCRUdJTgorICAgIFBF UkZPUk0gcGdfY29weV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3JlZ3Jlc3Npb25fc2xvdF90 MycsICdyZWdyZXNzaW9uX3Nsb3RfZHN0JywgZmFsc2UsICdub25leGlzdGVudF9wbHVnaW5feHl6 Jyk7CitFWENFUFRJT04gV0hFTiBPVEhFUlMgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2F1Z2h0 OiAlJywgU1FMRVJSTTsKK0VORDsKKyQkOworCistLSB0aGUgZGVzdGluYXRpb24gc2xvdCBtdXN0 IG5vdCBleGlzdCAoaXQgd2FzIGRyb3BwZWQgb24gZXJyb3IpCitTRUxFQ1QgY291bnQoKikgPSAw IEFTIGRzdF9zbG90X2Ryb3BwZWQgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cworICAgIFdIRVJF IHNsb3RfbmFtZSA9ICdyZWdyZXNzaW9uX3Nsb3RfZHN0JzsKKworLS0gdGhlIHNlc3Npb24gaXMg c3RpbGwgdXNhYmxlCitTRUxFQ1QgY291bnQoKikgPj0gMCBBUyBjaGFuZ2VzX29rIEZST00gcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3RfdDMnLCBOVUxMLCBOVUxM KTsKKworLS0gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzOiBlcnJvciBhZnRlciBhY3F1aXJp bmcgdGhlIHNsb3Qgc2hvdWxkCistLSByZWxlYXNlIGl0LgorU0VMRUNUICdpbml0JyBGUk9NIHBn X2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfcGh5Jywg dHJ1ZSk7CitETyAkJAorQkVHSU4KKyAgICBQRVJGT1JNIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hh bmdlcygncmVncmVzc2lvbl9zbG90X3BoeScsIE5VTEwsIE5VTEwpOworRVhDRVBUSU9OIFdIRU4g T1RIRVJTIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhdWdodDogJScsIFNRTEVSUk07CitFTkQ7 CiskJDsKKy0tIHRoZSBzZXNzaW9uIGlzIHN0aWxsIHVzYWJsZQorU0VMRUNUIHNsb3RfbmFtZSBG Uk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZSgncmVncmVzc2lvbl9zbG90X3QzJywgcGdf Y3VycmVudF93YWxfbHNuKCkpOworCistLSBjbGVhbnVwCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfcGh5Jyk7CitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfdDMnKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCmluZGV4IDcxZmJhZjcyMjY5Li5hYTU2ZTkwYmZh YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVu Y3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5j CkBAIC0xOTcsMTAgKzE5NywxMCBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXNfZ3V0cyhG dW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJpbgogCWVsc2UKIAkJ ZW5kX29mX3dhbCA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CiAKLQlSZXBsaWNhdGlvblNs b3RBY3F1aXJlKE5hbWVTdHIoKm5hbWUpLCB0cnVlLCB0cnVlKTsKLQogCVBHX1RSWSgpOwogCXsK KwkJUmVwbGljYXRpb25TbG90QWNxdWlyZShOYW1lU3RyKCpuYW1lKSwgdHJ1ZSwgdHJ1ZSk7CisK IAkJLyogcmVzdGFydCBhdCBzbG90J3MgY29uZmlybWVkX2ZsdXNoICovCiAJCWN0eCA9IENyZWF0 ZURlY29kaW5nQ29udGV4dChJbnZhbGlkWExvZ1JlY1B0ciwKIAkJCQkJCQkJCW9wdGlvbnMsCkBA IC0zMjAsNiArMzIwLDkgQEAgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzX2d1dHMoRnVuY3Rp b25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29uZmlybSwgYm9vbCBiaW4KIAkJLyogY2xlYXIgYWxs IHRpbWV0cmF2ZWwgZW50cmllcyAqLwogCQlJbnZhbGlkYXRlU3lzdGVtQ2FjaGVzKCk7CiAKKwkJ aWYgKE15UmVwbGljYXRpb25TbG90ICE9IE5VTEwpCisJCQlSZXBsaWNhdGlvblNsb3RSZWxlYXNl KCk7CisKIAkJUEdfUkVfVEhST1coKTsKIAl9CiAJUEdfRU5EX1RSWSgpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9zbG90ZnVuY3MuYwppbmRleCAxNmZiZDM4MzczNS4uYTE1NmI2OTE2M2MgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCkBAIC05MiwyNCArOTIsMzUgQEAgcGdfY3JlYXRlX3Bo eXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIAogCUNoZWNrU2xvdFJl cXVpcmVtZW50cyhmYWxzZSk7CiAKLQljcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdChO YW1lU3RyKCpuYW1lKSwKLQkJCQkJCQkJCSBpbW1lZGlhdGVseV9yZXNlcnZlLAotCQkJCQkJCQkJ IHRlbXBvcmFyeSwKLQkJCQkJCQkJCSBJbnZhbGlkWExvZ1JlY1B0cik7CisJUEdfVFJZKCk7CisJ eworCQljcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdChOYW1lU3RyKCpuYW1lKSwKKwkJ CQkJCQkJCQkgaW1tZWRpYXRlbHlfcmVzZXJ2ZSwKKwkJCQkJCQkJCQkgdGVtcG9yYXJ5LAorCQkJ CQkJCQkJCSBJbnZhbGlkWExvZ1JlY1B0cik7CiAKLQl2YWx1ZXNbMF0gPSBOYW1lR2V0RGF0dW0o Jk15UmVwbGljYXRpb25TbG90LT5kYXRhLm5hbWUpOwotCW51bGxzWzBdID0gZmFsc2U7CisJCXZh bHVlc1swXSA9IE5hbWVHZXREYXR1bSgmTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEubmFtZSk7CisJ CW51bGxzWzBdID0gZmFsc2U7CiAKLQlpZiAoaW1tZWRpYXRlbHlfcmVzZXJ2ZSkKLQl7Ci0JCXZh bHVlc1sxXSA9IExTTkdldERhdHVtKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNu KTsKLQkJbnVsbHNbMV0gPSBmYWxzZTsKKwkJaWYgKGltbWVkaWF0ZWx5X3Jlc2VydmUpCisJCXsK KwkJCXZhbHVlc1sxXSA9IExTTkdldERhdHVtKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3Rh cnRfbHNuKTsKKwkJCW51bGxzWzFdID0gZmFsc2U7CisJCX0KKwkJZWxzZQorCQkJbnVsbHNbMV0g PSB0cnVlOworCisJCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVs bHMpOworCQlyZXN1bHQgPSBIZWFwVHVwbGVHZXREYXR1bSh0dXBsZSk7CiAJfQotCWVsc2UKLQkJ bnVsbHNbMV0gPSB0cnVlOworCVBHX0NBVENIKCk7CisJeworCQlpZiAoTXlSZXBsaWNhdGlvblNs b3QgIT0gTlVMTCkKKwkJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpOwogCi0JdHVwbGUg PSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscyk7Ci0JcmVzdWx0ID0gSGVh cFR1cGxlR2V0RGF0dW0odHVwbGUpOworCQlQR19SRV9USFJPVygpOworCX0KKwlQR19FTkRfVFJZ KCk7CiAKIAlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CiAKQEAgLTE0OCwzOCArMTU5LDU2IEBA IGNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoY2hhciAqbmFtZSwgY2hhciAqcGx1Z2lu LAogCQkJCQkJICB0ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19FUEhFTUVSQUwsIHR3b19w aGFzZSwKIAkJCQkJCSAgZmFsc2UsIGZhaWxvdmVyLCBmYWxzZSk7CiAKLQkvKgotCSAqIEVuc3Vy ZSB0aGUgbG9naWNhbCBkZWNvZGluZyBpcyBlbmFibGVkIGJlZm9yZSBpbml0aWFsaXppbmcgdGhl IGxvZ2ljYWwKLQkgKiBkZWNvZGluZyBjb250ZXh0LgotCSAqLwotCUVuc3VyZUxvZ2ljYWxEZWNv ZGluZ0VuYWJsZWQoKTsKLQlBc3NlcnQoSXNMb2dpY2FsRGVjb2RpbmdFbmFibGVkKCkpOworCVBH X1RSWSgpOworCXsKKwkJLyoKKwkJICogRW5zdXJlIHRoZSBsb2dpY2FsIGRlY29kaW5nIGlzIGVu YWJsZWQgYmVmb3JlIGluaXRpYWxpemluZyB0aGUgbG9naWNhbAorCQkgKiBkZWNvZGluZyBjb250 ZXh0LgorCQkgKi8KKwkJRW5zdXJlTG9naWNhbERlY29kaW5nRW5hYmxlZCgpOworCQlBc3NlcnQo SXNMb2dpY2FsRGVjb2RpbmdFbmFibGVkKCkpOwogCi0JLyoKLQkgKiBDcmVhdGUgbG9naWNhbCBk ZWNvZGluZyBjb250ZXh0IHRvIGZpbmQgc3RhcnQgcG9pbnQgb3IsIGlmIHdlIGRvbid0Ci0JICog bmVlZCBpdCwgdG8gMSkgYnVtcCBzbG90J3MgcmVzdGFydF9sc24gYW5kIHhtaW4gMikgY2hlY2sg cGx1Z2luIHNhbml0eS4KLQkgKgotCSAqIE5vdGU6IHdoZW4gIWZpbmRfc3RhcnRwb2ludCB0aGlz IGlzIHN0aWxsIGltcG9ydGFudCwgYmVjYXVzZSBpdCdzIGF0Ci0JICogdGhpcyBwb2ludCB0aGF0 IHRoZSBvdXRwdXQgcGx1Z2luIGlzIHZhbGlkYXRlZC4KLQkgKi8KLQljdHggPSBDcmVhdGVJbml0 RGVjb2RpbmdDb250ZXh0KHBsdWdpbiwgTklMLAotCQkJCQkJCQkJZmFsc2UsCS8qIGp1c3QgY2F0 YWxvZ3MgaXMgT0sgKi8KLQkJCQkJCQkJCWZhbHNlLAkvKiBub3QgcmVwYWNrICovCi0JCQkJCQkJ CQlyZXN0YXJ0X2xzbiwKLQkJCQkJCQkJCVhMX1JPVVRJTkUoLnBhZ2VfcmVhZCA9IHJlYWRfbG9j YWxfeGxvZ19wYWdlLAotCQkJCQkJCQkJCQkgICAuc2VnbWVudF9vcGVuID0gd2FsX3NlZ21lbnRf b3BlbiwKLQkJCQkJCQkJCQkJICAgLnNlZ21lbnRfY2xvc2UgPSB3YWxfc2VnbWVudF9jbG9zZSks Ci0JCQkJCQkJCQlOVUxMLCBOVUxMLCBOVUxMKTsKKwkJLyoKKwkJICogQ3JlYXRlIGxvZ2ljYWwg ZGVjb2RpbmcgY29udGV4dCB0byBmaW5kIHN0YXJ0IHBvaW50IG9yLCBpZiB3ZSBkb24ndAorCQkg KiBuZWVkIGl0LCB0byAxKSBidW1wIHNsb3QncyByZXN0YXJ0X2xzbiBhbmQgeG1pbiAyKSBjaGVj ayBwbHVnaW4gc2FuaXR5LgorCQkgKgorCQkgKiBOb3RlOiB3aGVuICFmaW5kX3N0YXJ0cG9pbnQg dGhpcyBpcyBzdGlsbCBpbXBvcnRhbnQsIGJlY2F1c2UgaXQncyBhdAorCQkgKiB0aGlzIHBvaW50 IHRoYXQgdGhlIG91dHB1dCBwbHVnaW4gaXMgdmFsaWRhdGVkLgorCQkgKi8KKwkJY3R4ID0gQ3Jl YXRlSW5pdERlY29kaW5nQ29udGV4dChwbHVnaW4sIE5JTCwKKwkJCQkJCQkJCQlmYWxzZSwJLyog anVzdCBjYXRhbG9ncyBpcyBPSyAqLworCQkJCQkJCQkJCWZhbHNlLAkvKiBub3QgcmVwYWNrICov CisJCQkJCQkJCQkJcmVzdGFydF9sc24sCisJCQkJCQkJCQkJWExfUk9VVElORSgucGFnZV9yZWFk ID0gcmVhZF9sb2NhbF94bG9nX3BhZ2UsCisJCQkJCQkJCQkJCQkgICAuc2VnbWVudF9vcGVuID0g d2FsX3NlZ21lbnRfb3BlbiwKKwkJCQkJCQkJCQkJCSAgIC5zZWdtZW50X2Nsb3NlID0gd2FsX3Nl Z21lbnRfY2xvc2UpLAorCQkJCQkJCQkJCU5VTEwsIE5VTEwsIE5VTEwpOwogCi0JLyoKLQkgKiBJ ZiBjYWxsZXIgbmVlZHMgdXMgdG8gZGV0ZXJtaW5lIHRoZSBkZWNvZGluZyBzdGFydCBwb2ludCwg ZG8gc28gbm93LgotCSAqIFRoaXMgbWlnaHQgdGFrZSBhIHdoaWxlLgotCSAqLwotCWlmIChmaW5k X3N0YXJ0cG9pbnQpCi0JCURlY29kaW5nQ29udGV4dEZpbmRTdGFydHBvaW50KGN0eCk7CisJCS8q CisJCSAqIElmIGNhbGxlciBuZWVkcyB1cyB0byBkZXRlcm1pbmUgdGhlIGRlY29kaW5nIHN0YXJ0 IHBvaW50LCBkbyBzbyBub3cuCisJCSAqIFRoaXMgbWlnaHQgdGFrZSBhIHdoaWxlLgorCQkgKi8K KwkJaWYgKGZpbmRfc3RhcnRwb2ludCkKKwkJCURlY29kaW5nQ29udGV4dEZpbmRTdGFydHBvaW50 KGN0eCk7CiAKLQkvKiBkb24ndCBuZWVkIHRoZSBkZWNvZGluZyBjb250ZXh0IGFueW1vcmUgKi8K LQlGcmVlRGVjb2RpbmdDb250ZXh0KGN0eCk7CisJCS8qIGRvbid0IG5lZWQgdGhlIGRlY29kaW5n IGNvbnRleHQgYW55bW9yZSAqLworCQlGcmVlRGVjb2RpbmdDb250ZXh0KGN0eCk7CisJfQorCVBH X0NBVENIKCk7CisJeworCQkvKgorCQkgKiBEcm9wIHRoZSBzbG90IG9uIGVycm9yLiAgUmVwbGlj YXRpb25TbG90UmVsZWFzZSgpIG9ubHkgZHJvcHMKKwkJICogUlNfRVBIRU1FUkFMIHNsb3RzLCBz byBmb3IgUlNfVEVNUE9SQVJZIHNsb3RzIHdlIG11c3QgZXhwbGljaXRseQorCQkgKiBjYWxsIFJl cGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpIHRvIGF2b2lkIGxlYXZpbmcgdGhlIHNsb3QKKwkJ ICogYmVoaW5kIChlLmcuIHdoZW4gdGhlIGVycm9yIGlzIGNhdWdodCBieSBhIFBML3BnU1FMIEVY Q0VQVElPTgorCQkgKiBoYW5kbGVyIHRoYXQgZG9lc24ndCB0ZXJtaW5hdGUgdGhlIHNlc3Npb24p LgorCQkgKi8KKwkJaWYgKE15UmVwbGljYXRpb25TbG90ICE9IE5VTEwpCisJCQlSZXBsaWNhdGlv blNsb3REcm9wQWNxdWlyZWQoKTsKKworCQlQR19SRV9USFJPVygpOworCX0KKwlQR19FTkRfVFJZ KCk7CiB9CiAKIC8qCkBAIC0yNDMsNyArMjcyLDE4IEBAIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dChQR19GVU5DVElPTl9BUkdTKQogCiAJQ2hlY2tTbG90UmVxdWlyZW1lbnRzKGZhbHNlKTsKIAot CVJlcGxpY2F0aW9uU2xvdERyb3AoTmFtZVN0cigqbmFtZSksIHRydWUpOworCVBHX1RSWSgpOwor CXsKKwkJUmVwbGljYXRpb25TbG90RHJvcChOYW1lU3RyKCpuYW1lKSwgdHJ1ZSk7CisJfQorCVBH X0NBVENIKCk7CisJeworCQlpZiAoTXlSZXBsaWNhdGlvblNsb3QgIT0gTlVMTCkKKwkJCVJlcGxp Y2F0aW9uU2xvdFJlbGVhc2UoKTsKKworCQlQR19SRV9USFJPVygpOworCX0KKwlQR19FTkRfVFJZ KCk7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpAQCAtNTY2LDQ5ICs2MDYsNjAgQEAgcGdfcmVw bGljYXRpb25fc2xvdF9hZHZhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJZWxzZQogCQltb3ZldG8g PSBNaW4obW92ZXRvLCBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpKTsKIAotCS8qIEFjcXVpcmUg dGhlIHNsb3Qgc28gd2UgIm93biIgaXQgKi8KLQlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKE5hbWVT dHIoKnNsb3RuYW1lKSwgdHJ1ZSwgdHJ1ZSk7CisJUEdfVFJZKCk7CisJeworCQkvKiBBY3F1aXJl IHRoZSBzbG90IHNvIHdlICJvd24iIGl0ICovCisJCVJlcGxpY2F0aW9uU2xvdEFjcXVpcmUoTmFt ZVN0cigqc2xvdG5hbWUpLCB0cnVlLCB0cnVlKTsKIAotCS8qIEEgc2xvdCB3aG9zZSByZXN0YXJ0 X2xzbiBoYXMgbmV2ZXIgYmVlbiByZXNlcnZlZCBjYW5ub3QgYmUgYWR2YW5jZWQgKi8KLQlpZiAo IVhMb2dSZWNQdHJJc1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKSkK LQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKLQkJCQkgZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBj YW5ub3QgYmUgYWR2YW5jZWQiLAotCQkJCQkJTmFtZVN0cigqc2xvdG5hbWUpKSwKLQkJCQkgZXJy ZGV0YWlsKCJUaGlzIHNsb3QgaGFzIG5ldmVyIHByZXZpb3VzbHkgcmVzZXJ2ZWQgV0FMLCBvciBp dCBoYXMgYmVlbiBpbnZhbGlkYXRlZC4iKSkpOworCQkvKiBBIHNsb3Qgd2hvc2UgcmVzdGFydF9s c24gaGFzIG5ldmVyIGJlZW4gcmVzZXJ2ZWQgY2Fubm90IGJlIGFkdmFuY2VkICovCisJCWlmICgh WExvZ1JlY1B0cklzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucmVzdGFydF9sc24pKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BS RVJFUVVJU0lURV9TVEFURSksCisJCQkJCSBlcnJtc2coInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wi IGNhbm5vdCBiZSBhZHZhbmNlZCIsCisJCQkJCQkJTmFtZVN0cigqc2xvdG5hbWUpKSwKKwkJCQkJ IGVycmRldGFpbCgiVGhpcyBzbG90IGhhcyBuZXZlciBwcmV2aW91c2x5IHJlc2VydmVkIFdBTCwg b3IgaXQgaGFzIGJlZW4gaW52YWxpZGF0ZWQuIikpKTsKIAotCS8qCi0JICogQ2hlY2sgaWYgdGhl IHNsb3QgaXMgbm90IG1vdmluZyBiYWNrd2FyZHMuICBQaHlzaWNhbCBzbG90cyByZWx5IHNpbXBs eQotCSAqIG9uIHJlc3RhcnRfbHNuIGFzIGEgbWluaW11bSBwb2ludCwgd2hpbGUgbG9naWNhbCBz bG90cyBoYXZlIGNvbmZpcm1lZAotCSAqIGNvbnN1bXB0aW9uIHVwIHRvIGNvbmZpcm1lZF9mbHVz aCwgbWVhbmluZyB0aGF0IGluIGJvdGggY2FzZXMgZGF0YQotCSAqIG9sZGVyIHRoYW4gdGhhdCBp cyBub3QgYXZhaWxhYmxlIGFueW1vcmUuCi0JICovCi0JaWYgKE9pZElzVmFsaWQoTXlSZXBsaWNh dGlvblNsb3QtPmRhdGEuZGF0YWJhc2UpKQotCQltaW5sc24gPSBNeVJlcGxpY2F0aW9uU2xvdC0+ ZGF0YS5jb25maXJtZWRfZmx1c2g7Ci0JZWxzZQotCQltaW5sc24gPSBNeVJlcGxpY2F0aW9uU2xv dC0+ZGF0YS5yZXN0YXJ0X2xzbjsKKwkJLyoKKwkJICogQ2hlY2sgaWYgdGhlIHNsb3QgaXMgbm90 IG1vdmluZyBiYWNrd2FyZHMuICBQaHlzaWNhbCBzbG90cyByZWx5IHNpbXBseQorCQkgKiBvbiBy ZXN0YXJ0X2xzbiBhcyBhIG1pbmltdW0gcG9pbnQsIHdoaWxlIGxvZ2ljYWwgc2xvdHMgaGF2ZSBj b25maXJtZWQKKwkJICogY29uc3VtcHRpb24gdXAgdG8gY29uZmlybWVkX2ZsdXNoLCBtZWFuaW5n IHRoYXQgaW4gYm90aCBjYXNlcyBkYXRhCisJCSAqIG9sZGVyIHRoYW4gdGhhdCBpcyBub3QgYXZh aWxhYmxlIGFueW1vcmUuCisJCSAqLworCQlpZiAoT2lkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xv dC0+ZGF0YS5kYXRhYmFzZSkpCisJCQltaW5sc24gPSBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5j b25maXJtZWRfZmx1c2g7CisJCWVsc2UKKwkJCW1pbmxzbiA9IE15UmVwbGljYXRpb25TbG90LT5k YXRhLnJlc3RhcnRfbHNuOwogCi0JaWYgKG1vdmV0byA8IG1pbmxzbikKLQkJZXJlcG9ydChFUlJP UiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRF KSwKLQkJCQkgZXJybXNnKCJjYW5ub3QgYWR2YW5jZSByZXBsaWNhdGlvbiBzbG90IHRvICVYLyUw OFgsIG1pbmltdW0gaXMgJVgvJTA4WCIsCi0JCQkJCQlMU05fRk9STUFUX0FSR1MobW92ZXRvKSwg TFNOX0ZPUk1BVF9BUkdTKG1pbmxzbikpKSk7CisJCWlmIChtb3ZldG8gPCBtaW5sc24pCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVR VUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IGFkdmFuY2UgcmVwbGljYXRpb24g c2xvdCB0byAlWC8lMDhYLCBtaW5pbXVtIGlzICVYLyUwOFgiLAorCQkJCQkJCUxTTl9GT1JNQVRf QVJHUyhtb3ZldG8pLCBMU05fRk9STUFUX0FSR1MobWlubHNuKSkpKTsKIAotCS8qIERvIHRoZSBh Y3R1YWwgc2xvdCB1cGRhdGUsIGRlcGVuZGluZyBvbiB0aGUgc2xvdCB0eXBlICovCi0JaWYgKE9p ZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZGF0YWJhc2UpKQotCQllbmRsc24gPSBw Z19sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZShtb3ZldG8pOwotCWVsc2UKLQkJZW5k bHNuID0gcGdfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKG1vdmV0byk7CisJCS8q IERvIHRoZSBhY3R1YWwgc2xvdCB1cGRhdGUsIGRlcGVuZGluZyBvbiB0aGUgc2xvdCB0eXBlICov CisJCWlmIChPaWRJc1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLmRhdGFiYXNlKSkKKwkJ CWVuZGxzbiA9IHBnX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKG1vdmV0byk7CisJ CWVsc2UKKwkJCWVuZGxzbiA9IHBnX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZSht b3ZldG8pOwogCi0JdmFsdWVzWzBdID0gTmFtZUdldERhdHVtKCZNeVJlcGxpY2F0aW9uU2xvdC0+ ZGF0YS5uYW1lKTsKLQludWxsc1swXSA9IGZhbHNlOworCQl2YWx1ZXNbMF0gPSBOYW1lR2V0RGF0 dW0oJk15UmVwbGljYXRpb25TbG90LT5kYXRhLm5hbWUpOworCQludWxsc1swXSA9IGZhbHNlOwog Ci0JLyoKLQkgKiBSZWNvbXB1dGUgdGhlIG1pbmltdW0gTFNOIGFuZCB4bWluIGFjcm9zcyBhbGwg c2xvdHMgdG8gYWRqdXN0IHdpdGggdGhlCi0JICogYWR2YW5jaW5nIHBvdGVudGlhbGx5IGRvbmUu Ci0JICovCi0JUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZFhtaW4oZmFsc2UpOwotCVJl cGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04oKTsKKwkJLyoKKwkJICogUmVjb21wdXRl IHRoZSBtaW5pbXVtIExTTiBhbmQgeG1pbiBhY3Jvc3MgYWxsIHNsb3RzIHRvIGFkanVzdCB3aXRo IHRoZQorCQkgKiBhZHZhbmNpbmcgcG90ZW50aWFsbHkgZG9uZS4KKwkJICovCisJCVJlcGxpY2F0 aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRYbWluKGZhbHNlKTsKKwkJUmVwbGljYXRpb25TbG90c0Nv bXB1dGVSZXF1aXJlZExTTigpOworCX0KKwlQR19DQVRDSCgpOworCXsKKwkJaWYgKE15UmVwbGlj YXRpb25TbG90ICE9IE5VTEwpCisJCQlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisKKwkJUEdf UkVfVEhST1coKTsKKwl9CisJUEdfRU5EX1RSWSgpOwogCiAJUmVwbGljYXRpb25TbG90UmVsZWFz ZSgpOwogCkBAIC03NjMsNyArODE0LDEzIEBAIGNvcHlfcmVwbGljYXRpb25fc2xvdChGdW5jdGlv bkNhbGxJbmZvIGZjaW5mbywgYm9vbCBsb2dpY2FsX3Nsb3QpCiAJLyoKIAkgKiBVcGRhdGUgdGhl IGRlc3RpbmF0aW9uIHNsb3QgdG8gY3VycmVudCB2YWx1ZXMgb2YgdGhlIHNvdXJjZSBzbG90Owog CSAqIHJlY2hlY2sgdGhhdCB0aGUgc291cmNlIHNsb3QgaXMgc3RpbGwgdGhlIG9uZSB3ZSBzYXcg cHJldmlvdXNseS4KKwkgKgorCSAqIFVzZSBQR19UUlkgdG8gZW5zdXJlIHdlIGRyb3AgdGhlIGRl c3RpbmF0aW9uIHNsb3QgaWYgYW55IHZhbGlkYXRpb24KKwkgKiBlcnJvciBvY2N1cnMuICBXaXRo b3V0IHRoaXMsIGFuIGVycm9yIGNhdWdodCBieSBhIFBML3BnU1FMIEVYQ0VQVElPTgorCSAqIGhh bmRsZXIgd291bGQgbGVhdmUgTXlSZXBsaWNhdGlvblNsb3Qgc2V0LCBjcmFzaGluZyBvbiB0aGUg bmV4dCBzbG90CisJICogb3BlcmF0aW9uLgogCSAqLworCVBHX1RSWSgpOwogCXsKIAkJVHJhbnNh Y3Rpb25JZCBjb3B5X2VmZmVjdGl2ZV94bWluOwogCQlUcmFuc2FjdGlvbklkIGNvcHlfZWZmZWN0 aXZlX2NhdGFsb2dfeG1pbjsKQEAgLTc5Nyw5ICs4NTQsNiBAQCBjb3B5X3JlcGxpY2F0aW9uX3Ns b3QoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgbG9naWNhbF9zbG90KQogCQkgKiBvciB0 aGUgcmVzdGFydF9sc24gZWl0aGVyIGlzIGludmFsaWQgb3IgaGFzIGdvbmUgYmFja3dhcmQuIChU aGUKIAkJICogcmVzdGFydF9sc24gY291bGQgZ28gYmFja3dhcmRzIGlmIHRoZSBzb3VyY2Ugc2xv dCBpcyBkcm9wcGVkIGFuZAogCQkgKiBjb3BpZWQgZnJvbSBhbiBvbGRlciBzbG90IGR1cmluZyBp bnN0YWxsYXRpb24uKQotCQkgKgotCQkgKiBTaW5jZSBlcnJvcmluZyBvdXQgd2lsbCByZWxlYXNl IGFuZCBkcm9wIHRoZSBkZXN0aW5hdGlvbiBzbG90IHdlCi0JCSAqIGRvbid0IG5lZWQgdG8gcmVs ZWFzZSBpdCBoZXJlLgogCQkgKi8KIAkJaWYgKGNvcHlfcmVzdGFydF9sc24gPCBzcmNfcmVzdGFy dF9sc24gfHwKIAkJCXNyY19pc2xvZ2ljYWwgIT0gY29weV9pc2xvZ2ljYWwgfHwKQEAgLTg1Nyw2 ICs5MTEsMTkgQEAgY29weV9yZXBsaWNhdGlvbl9zbG90KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZv LCBib29sIGxvZ2ljYWxfc2xvdCkKIAkJfQogI2VuZGlmCiAJfQorCVBHX0NBVENIKCk7CisJewor CQkvKgorCQkgKiBEcm9wIHRoZSBuZXdseS1jcmVhdGVkIGRlc3RpbmF0aW9uIHNsb3Qgb24gZXJy b3IuIFNhbWUgYXMgaW4KKwkJICogY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgpOiB1 c2UgUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCkKKwkJICogdG8gaGFuZGxlIGJvdGggUlNf RVBIRU1FUkFMIGFuZCBSU19URU1QT1JBUlkgc2xvdHMuCisJCSAqLworCQlpZiAoTXlSZXBsaWNh dGlvblNsb3QgIT0gTlVMTCkKKwkJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpOworCisJ CVBHX1JFX1RIUk9XKCk7CisJfQorCVBHX0VORF9UUlkoKTsKIAogCS8qIHRhcmdldCBzbG90IGZ1 bGx5IGNyZWF0ZWQsIG1hcmsgYXMgcGVyc2lzdGVudCBpZiBuZWVkZWQgKi8KIAlpZiAobG9naWNh bF9zbG90ICYmICF0ZW1wb3JhcnkpCgotLSAKMi4zNC4xCg== --0000000000005ee2e20652d66804--