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 1u0d6Z-004jgY-MR for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Apr 2025 09:12:51 +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 1u0d6X-00FnUf-3f for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Apr 2025 09:12:49 +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 1u0d6W-00FnUX-7X for pgsql-hackers@lists.postgresql.org; Fri, 04 Apr 2025 09:12:48 +0000 Received: from mail-qk1-x732.google.com ([2607:f8b0:4864:20::732]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u0d6U-002tEa-0j for pgsql-hackers@lists.postgresql.org; Fri, 04 Apr 2025 09:12:47 +0000 Received: by mail-qk1-x732.google.com with SMTP id af79cd13be357-7c5e1b40f68so205314685a.1 for ; Fri, 04 Apr 2025 02:12:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743757965; x=1744362765; 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=l/3bPbNdhTkxQtnqbZakdozWH5QKKrcs4042mpl4nKc=; b=i7L43wKmJBMLKs4as+qgg5ZWTaiGY4jmsu7iAbZZ9PJtQ7I0vmw61yAdaATWlPJZdl oPj7YSMk7q5GpflZim5UQlW9kcmtSEwhsTD4iJ5RUwpjRXdb42FupK7paorFRYv7i3G8 ajxXM3scK2pGEOm+YVt7jHesD5+wV+8+rbtPfPXDSPb2B/EPXQt9VX6XRvgQyHcrngOe YcbIXiTjdnZDxtgDoaflBXHgyYGte02fWJuS1V1wD36UM6ir0At02iw6ggDwME9ZbaaO 7+uh1ryMbHzwmt68aL2domofPfdFB2kSkhYSuWggWhvSO4gCG4Kil5P6+g/XA5GI4m4I BP7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743757965; x=1744362765; 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=l/3bPbNdhTkxQtnqbZakdozWH5QKKrcs4042mpl4nKc=; b=gHloYYeG8BvOVNJK++wHpdNoKdC9bzsWf92z4AH0Muca54uJpMTUWmFKDDHKCAPtJn EIIWgsN5kSy+Rj8kkSepz91tEuo4zEDofx6G7Rs3AK3SazyVtBOXNFT1Z823rX/MPblh zJ2PCeQy0C8hn6skHE/Y/ZYk46iP42i5PMrBNOEvLIvowavTSsDYOtIbjMdQd2gdaOO+ NsIxe8MlopV6W/X+DBlxEYqhVVQInk6Rl7WOZErmrYJdauU3w1q87TIGhNsa4Cy5uhyu X0sGQpVkmr3kumpXae9esz+9F59gBKPZgxJ3XiwgZWg1DS6u/zBCuO0Di25R6xFDnSOd ieeA== X-Forwarded-Encrypted: i=1; AJvYcCVavfhESH6TPZzk65tv4eC+d8MglGitLreCTe0y0Zxe7/KpHmn0HTa0T0HrapTGg1NCManYOKmqS2PsA0Jk@lists.postgresql.org X-Gm-Message-State: AOJu0YzsxTekBMxDiI7ok3QOl0I5713LUop6quXkpUHkNlUd7U4kVo24 TdAVLgnJnnZHgJUc+TA7GXM+SFCjLTepxuuuMtj2zxKZOTvGjnwQ2Jf9sX4o2VEvxUHfNSFbZ9l ARIZC1eBpe35eEDApQF1XQBx+arQ= X-Gm-Gg: ASbGncuHuA6APZ7lHR0Zx4o+H4yk7GBXcoCdy0DkH9UL35fx6tUSF7YeTW8WsbraHoF 39/CuC9Zq8LAH2OqA1QHw895Gbxfqzhx/1m70zOSr+0+kjD1tpyrFPOsuvWb4iVVRQGYmD2AytU wXZhDzmML97InL+qnV7GszvZCjN00DY8wimoxV06cMGtNI04wY1jvh8zAt/Q== X-Google-Smtp-Source: AGHT+IGpHWn9x/IDbyDAR5ByIOKbwXx7ML+U2HQ10glhAKVfDqnFQ+qXYOJZfNL90EedYQ6w/4wxNR7Y4Ho1/ApMd6I= X-Received: by 2002:a05:620a:4008:b0:7c5:5a51:d2d1 with SMTP id af79cd13be357-7c775b1add5mr333465585a.55.1743757965323; Fri, 04 Apr 2025 02:12:45 -0700 (PDT) MIME-Version: 1.0 References: <202503311812.vxg5b7rzfgf6@alvherre.pgsql> <616efe2c-3986-43cf-b88c-4435849acf9e@dunslane.net> In-Reply-To: From: Mahendra Singh Thalor Date: Fri, 4 Apr 2025 14:42:32 +0530 X-Gm-Features: AQ5f1JrVWVwYeV8m1lAElD3Bbgx_VRizZ9bf6sf6U5oTHMM31oiYLsWAu82p4Ik Message-ID: Subject: Re: Non-text mode for pg_dumpall To: Andrew Dunstan Cc: =?UTF-8?Q?=C3=81lvaro_Herrera?= , jian he , Srinath Reddy , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000191b7f0631f04a85" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000191b7f0631f04a85 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 4 Apr 2025 at 13:52, Mahendra Singh Thalor wro= te: > > On Fri, 4 Apr 2025 at 01:17, Andrew Dunstan wrote: > > > > > > On 2025-04-01 Tu 1:59 AM, Mahendra Singh Thalor wrote: > > > On Mon, 31 Mar 2025 at 23:43, =C3=81lvaro Herrera wrote: > > >> Hi > > >> > > >> FWIW I don't think the on_exit_nicely business is in final shape jus= t > > >> yet. We're doing something super strange and novel about keeping tr= ack > > >> of an array index, so that we can modify it later. Or something lik= e > > >> that, I think? That doesn't sound all that nice to me. Elsewhere i= t > > >> was suggested that we need some way to keep track of the list of thi= ngs > > >> that need cleanup (a list of connections IIRC?) -- perhaps in a > > >> thread-local variable or a global or something -- and we install the > > >> cleanup function once, and that reads from the variable. The progra= m > > >> can add things to the list, or remove them, at will; and we don't ne= ed > > >> to modify the cleanup function in any way. > > >> > > >> -- > > >> =C3=81lvaro Herrera Breisgau, Deutschland =E2=80=94 https:/= /www.EnterpriseDB.com/ > > > Thanks =C3=81lvaro for the feedback. > > > > > > I removed the old handling of on_exit_nicely_list from the last patch > > > set and added one simple function to just update the archive handle i= n > > > shutdown_info. (shutdown_info.AHX =3D AHX;) > > > > > > For first database, we will add entry into on_exit_nicely_list array > > > and for rest database, we will update only shutdown_info as we alread= y > > > closed connection for previous database.With this fix, we will not > > > touch entry of on_exit_nicely_list for each database. > > > > > > Here, I am attaching updated patches. > > > > > > > > > OK, looks good. here's my latest. I'm currently working on tidying up > > docco and comments. > > > > > > cheers > > > > > > andrew > > > > > > > > > > -- > > Andrew Dunstan > > EDB: https://www.enterprisedb.com > > Thanks Andrew for the updated patches. > > Here, I am attaching a delta patch with some more TAP-test cases. > Here, I am attaching an updated delta patch which has some more TAP tests. Please include these tests also. This patch can be applied on v20250403_0004* patch. --=20 Thanks and Regards Mahendra Singh Thalor EnterpriseDB: http://www.enterprisedb.com --000000000000191b7f0631f04a85 Content-Type: application/octet-stream; name="delta_20250403-add-some-more-TAP-test-for-pg_restore-and-pg_dumpall.noci" Content-Disposition: attachment; filename="delta_20250403-add-some-more-TAP-test-for-pg_restore-and-pg_dumpall.noci" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m92kg3r80 RnJvbSBhNDQ5NDNkNjkyNWFhZmZhMWNkMWQwYjJkOTZlNjU0NjYxOTgyNzhjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYWhlbmRyYSBTaW5naCBUaGFsb3IgPG1haGk2cnVuQGdtYWls LmNvbT4KRGF0ZTogRnJpLCA0IEFwciAyMDI1IDE0OjM2OjMxICswNTMwClN1YmplY3Q6IFtQQVRD SF0gYWRkIHNvbWUgbW9yZSBUQVAtdGVzdCBmb3IgcGdfcmVzdG9yZSBhbmQgcGdfZHVtcGFsbCBm b3IKIG5vbi10ZXh0IG1vZGUgb2YgcGdfZHVtcGFsbAoKLS0tCiBzcmMvYmluL3BnX2R1bXAvdC8w MDFfYmFzaWMucGwgICAgICB8IDEwICsrKysKIHNyYy9iaW4vcGdfZHVtcC90LzAwNl9wZ19kdW1w YWxsLnBsIHwgNzYgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdl ZCwgNzggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKIG1vZGUgY2hhbmdlIDEwMDY0NCA9 PiAxMDA3NTUgc3JjL2Jpbi9wZ19kdW1wL3QvMDAxX2Jhc2ljLnBsCiBtb2RlIGNoYW5nZSAxMDA2 NDQgPT4gMTAwNzU1IHNyYy9iaW4vcGdfZHVtcC90LzAwNl9wZ19kdW1wYWxsLnBsCgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAxX2Jhc2ljLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAxX2Jhc2ljLnBsCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMGJiY2Ri ZTg0YTcuLjExM2E5MTViZmJmCi0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMV9iYXNpYy5wbAor KysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDFfYmFzaWMucGwKQEAgLTI0Miw2ICsyNDIsMTYgQEAg Y29tbWFuZF9mYWlsc19saWtlKAogCXFyL1xRcGdfcmVzdG9yZTogZXJyb3I6IG9wdGlvbiAtLWV4 Y2x1ZGUtZGF0YWJhc2UgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtZ1wvLS1nbG9iYWxz LW9ubHlcRS8sCiAJJ3BnX3Jlc3RvcmU6IG9wdGlvbiAtLWV4Y2x1ZGUtZGF0YWJhc2UgY2Fubm90 IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAtZy8tLWdsb2JhbHMtb25seScpOwogCitjb21tYW5kX2Zh aWxzX2xpa2UoCisJWyAncGdfcmVzdG9yZScsICctLWV4Y2x1ZGUtZGF0YWJhc2U9Zm9vJywgJy1k JywgJ3h4eCcsICdkdW1wZGlyJyBdLAorCXFyL1xRcGdfcmVzdG9yZTogZXJyb3I6IG9wdGlvbiAt LWV4Y2x1ZGUtZGF0YWJhc2UgY2FuIGJlIHVzZWQgb25seSB3aGVuIHJlc3RvcmluZyBtdWx0aXBs ZSBkYXRhYmFzZXMgYnkgYXJjaGl2ZSBvZiBwZ19kdW1wYWxsXEUvLAorCSdXaGVuIG9wdGlvbiAt LWV4Y2x1ZGUtZGF0YWJhc2UgaXMgdXNlZCBpbiBwZ19yZXN0b3JlIHdpdGggZHVtcCBvZiBwZ19k dW1wJyk7CisKK2NvbW1hbmRfZmFpbHNfbGlrZSgKKwlbICdwZ19yZXN0b3JlJywgJy0tZ2xvYmFs cy1vbmx5JywgJy1kJywgJ3h4eCcsICdkdW1wZGlyJyBdLAorCXFyL1xRcGdfcmVzdG9yZTogZXJy b3I6IG9wdGlvbiAtZ1wvLS1nbG9iYWxzLW9ubHkgY2FuIGJlIHVzZWQgb25seSB3aGVuIHJlc3Rv cmluZyBtdWx0aXBsZSBkYXRhYmFzZXMgYnkgYXJjaGl2ZSBvZiBwZ19kdW1wYWxsXEUvLAorCSdX aGVuIG9wdGlvbiAtLWdsb2JhbHMtb25seSBpcyBub3QgdXNlZCBpbiBwZ19yZXN0b3JlIHdpdGgg ZHVtcCBvZiBwZ19kdW1wJyk7CisKICMgYWxzbyBmYWlscyBmb3IgLXIgYW5kIC10LCBidXQgaXQg c2VlbXMgcG9pbnRsZXNzIHRvIGFkZCBtb3JlIHRlc3RzIGZvciB0aG9zZS4KIGNvbW1hbmRfZmFp bHNfbGlrZSgKIAlbICdwZ19kdW1wYWxsJywgJy0tZXhjbHVkZS1kYXRhYmFzZT1mb28nLCAnLS1n bG9iYWxzLW9ubHknIF0sCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDZfcGdfZHVt cGFsbC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwNl9wZ19kdW1wYWxsLnBsCm9sZCBtb2RlIDEw MDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZmRmZDFhZTk5MGIuLjQ0YWZkZjUyNWZmCi0tLSBh L3NyYy9iaW4vcGdfZHVtcC90LzAwNl9wZ19kdW1wYWxsLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVt cC90LzAwNl9wZ19kdW1wYWxsLnBsCkBAIC0xMTUsNiArMTE1LDcgQEAgbXkgJXBnZHVtcGFsbF9y dW5zID0gKAogCQlDUkVBVEUgUk9MRSBncmFudDg7CiAKIAkJQ1JFQVRFIFRBQkxFIHQgKGlkIGlu dCk7CisJCUlOU0VSVCBJTlRPIHQgVkFMVUVTICgxKSwgKDIpLCAoMyksICg0KTsKIAogCQlHUkFO VCBTRUxFQ1QgT04gVEFCTEUgdCBUTyBncmFudDE7CiAJCUdSQU5UIElOU0VSVCBPTiBUQUJMRSB0 IFRPIGdyYW50MjsKQEAgLTE1NywyNyArMTU4LDM3IEBAIG15ICVwZ2R1bXBhbGxfcnVucyA9ICgK IAkJc2V0dXBfc3FsID0+ICdDUkVBVEUgREFUQUJBU0UgZGIxOwogCQlcYyBkYjEKIAkJQ1JFQVRF IFRBQkxFIHQxIChpZCBpbnQpOworCQlJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEpLCAoMiksICgz KSwgKDQpOwogCQlDUkVBVEUgVEFCTEUgdDIgKGlkIGludCk7CisJCUlOU0VSVCBJTlRPIHQyIFZB TFVFUyAoMSksICgyKSwgKDMpLCAoNCk7CiAKIAkJQ1JFQVRFIERBVEFCQVNFIGRiMjsKIAkJXGMg ZGIyCiAJCUNSRUFURSBUQUJMRSB0MyAoaWQgaW50KTsKKwkJSU5TRVJUIElOVE8gdDMgVkFMVUVT ICgxKSwgKDIpLCAoMyksICg0KTsKIAkJQ1JFQVRFIFRBQkxFIHQ0IChpZCBpbnQpOworCQlJTlNF UlQgSU5UTyB0NCBWQUxVRVMgKDEpLCAoMiksICgzKSwgKDQpOwogCiAJCUNSRUFURSBEQVRBQkFT RSBkYmV4MzsKIAkJXGMgZGJleDMKIAkJQ1JFQVRFIFRBQkxFIHQ1IChpZCBpbnQpOworCQlJTlNF UlQgSU5UTyB0NSBWQUxVRVMgKDEpLCAoMiksICgzKSwgKDQpOwogCQlDUkVBVEUgVEFCTEUgdDYg KGlkIGludCk7CisJCUlOU0VSVCBJTlRPIHQ2IFZBTFVFUyAoMSksICgyKSwgKDMpLCAoNCk7CiAK IAkJQ1JFQVRFIERBVEFCQVNFIGRiZXg0OwogCQlcYyBkYmV4NAogCQlDUkVBVEUgVEFCTEUgdDcg KGlkIGludCk7CisJCUlOU0VSVCBJTlRPIHQ3IFZBTFVFUyAoMSksICgyKSwgKDMpLCAoNCk7CiAJ CUNSRUFURSBUQUJMRSB0OCAoaWQgaW50KTsKKwkJSU5TRVJUIElOVE8gdDggVkFMVUVTICgxKSwg KDIpLCAoMyksICg0KTsKIAogCQlDUkVBVEUgREFUQUJBU0UgZGI1OwogCQlcYyBkYjUKIAkJQ1JF QVRFIFRBQkxFIHQ5IChpZCBpbnQpOworCQlJTlNFUlQgSU5UTyB0OSBWQUxVRVMgKDEpLCAoMiks ICgzKSwgKDQpOwogCQlDUkVBVEUgVEFCTEUgdDEwIChpZCBpbnQpOworCQlJTlNFUlQgSU5UTyB0 MTAgVkFMVUVTICgxKSwgKDIpLCAoMyksICg0KTsKIAkJJywKIAkJZHVtcF9jbWQgPT4gWwogCQkJ J3BnX2R1bXBhbGwnLApAQCAtMjI1LDggKzIzNiw4IEBAIG15ICVwZ2R1bXBhbGxfcnVucyA9ICgK IAl9LAogCiAJZm9ybWF0X2RpcmVjdG9yeSA9PiB7Ci0JCXNldHVwX3NxbCA9PgotCQkgICdDUkVB VEUgVEFCTEUgZm9ybWF0X2RpcmVjdG9yeShhIGludCwgYiBib29sZWFuLCBjIHRleHQpOycsCisJ CXNldHVwX3NxbCA9PiAiQ1JFQVRFIFRBQkxFIGZvcm1hdF9kaXJlY3RvcnkoYSBpbnQsIGIgYm9v bGVhbiwgYyB0ZXh0KTsKKwkJSU5TRVJUIElOVE8gZm9ybWF0X2RpcmVjdG9yeSBWQUxVRVMgKDEs IHRydWUsICduYW1lMScpLCAoMiwgZmFsc2UsICduYW1lMicpOyIsCiAJCWR1bXBfY21kID0+IFsK IAkJCSdwZ19kdW1wYWxsJywKIAkJCSctLWZvcm1hdCcgPT4gJ2RpcmVjdG9yeScsCkBAIC0yMzgs MTEgKzI0OSwxMiBAQCBteSAlcGdkdW1wYWxsX3J1bnMgPSAoCiAJCQknLS1maWxlJyA9PiAiJHRl bXBkaXIvZm9ybWF0X2RpcmVjdG9yeS5zcWwiLAogCQkJIiR0ZW1wZGlyL2Zvcm1hdF9kaXJlY3Rv cnkiLAogCQldLAotCQlsaWtlID0+IHFyL15cblxRQ1JFQVRFIFRBQkxFIHB1YmxpYy5mb3JtYXRf ZGlyZWN0b3J5ICgveG0KKwkJbGlrZSA9PiBxci9eXG5cUUNPUFkgcHVibGljLmZvcm1hdF9kaXJl Y3RvcnkgKGEsIGIsIGMpIEZST00gc3RkaW47L3htCiAJfSwKIAogCWZvcm1hdF90YXIgPT4gewot CQlzZXR1cF9zcWwgPT4gJ0NSRUFURSBUQUJMRSBmb3JtYXRfdGFyKGlkIGludCk7JywKKwkJc2V0 dXBfc3FsID0+ICJDUkVBVEUgVEFCTEUgZm9ybWF0X3RhcihhIGludCwgYiBib29sZWFuLCBjIHRl eHQpOworCQlJTlNFUlQgSU5UTyBmb3JtYXRfdGFyIFZBTFVFUyAoMSwgZmFsc2UsICduYW1lMycp LCAoMiwgdHJ1ZSwgJ25hbWU0Jyk7IiwKIAkJZHVtcF9jbWQgPT4gWwogCQkJJ3BnX2R1bXBhbGwn LAogCQkJJy0tZm9ybWF0JyA9PiAndGFyJywKQEAgLTI1NCwxMSArMjY2LDEyIEBAIG15ICVwZ2R1 bXBhbGxfcnVucyA9ICgKIAkJCSctLWZpbGUnID0+ICIkdGVtcGRpci9mb3JtYXRfdGFyLnNxbCIs CiAJCQkiJHRlbXBkaXIvZm9ybWF0X3RhciIsCiAJCV0sCi0JCWxpa2UgPT4gcXIvXlxuXFFDUkVB VEUgVEFCTEUgcHVibGljLmZvcm1hdF90YXIgKC94bQorCQlsaWtlID0+IHFyL15cblxRQ09QWSBw dWJsaWMuZm9ybWF0X3RhciAoYSwgYiwgYykgRlJPTSBzdGRpbjsveG0KIAl9LAogCiAJZm9ybWF0 X2N1c3RvbSA9PiB7Ci0JCXNldHVwX3NxbCA9PiAnQ1JFQVRFIFRBQkxFIGZvcm1hdF9jdXN0b20o YSBpbnQsIGIgYm9vbGVhbiwgYyB0ZXh0KTsnLAorCQlzZXR1cF9zcWwgPT4gIkNSRUFURSBUQUJM RSBmb3JtYXRfY3VzdG9tKGEgaW50LCBiIGJvb2xlYW4sIGMgdGV4dCk7CisJCUlOU0VSVCBJTlRP IGZvcm1hdF9jdXN0b20gVkFMVUVTICgxLCBmYWxzZSwgJ25hbWU1JyksICgyLCB0cnVlLCAnbmFt ZTYnKTsiLAogCQlkdW1wX2NtZCA9PiBbCiAJCQkncGdfZHVtcGFsbCcsCiAJCQknLS1mb3JtYXQn ID0+ICdjdXN0b20nLApAQCAtMjcwLDkgKzI4MywyOCBAQCBteSAlcGdkdW1wYWxsX3J1bnMgPSAo CiAJCQknLS1maWxlJyA9PiAiJHRlbXBkaXIvZm9ybWF0X2N1c3RvbS5zcWwiLAogCQkJIiR0ZW1w ZGlyL2Zvcm1hdF9jdXN0b20iLAogCQldLAotCQlsaWtlID0+IHFyL14gXG5cUUNSRUFURSBUQUJM RSBwdWJsaWMuZm9ybWF0X2N1c3RvbSAoL3htCi0JfSwpOworCQlsaWtlID0+IHFyL14gXG5cUUNP UFkgcHVibGljLmZvcm1hdF9jdXN0b20gKGEsIGIsIGMpIEZST00gc3RkaW47L3htCisJfSwKIAor CWR1bXBfZ2xvYmFsc19vbmx5ID0+IHsKKwkJc2V0dXBfc3FsID0+ICJDUkVBVEUgVEFCTEUgZm9y bWF0X2RpcihhIGludCwgYiBib29sZWFuLCBjIHRleHQpOworCQlJTlNFUlQgSU5UTyBmb3JtYXRf ZGlyIFZBTFVFUyAoMSwgZmFsc2UsICduYW1lNScpLCAoMiwgdHJ1ZSwgJ25hbWU2Jyk7IiwKKwkJ ZHVtcF9jbWQgPT4gWworCQkJJ3BnX2R1bXBhbGwnLAorCQkJJy0tZm9ybWF0JyA9PiAnZGlyZWN0 b3J5JywKKwkJCSctLWdsb2JhbHMtb25seScsCisJCQknLS1maWxlJyA9PiAiJHRlbXBkaXIvZHVt cF9nbG9iYWxzX29ubHkiLAorCQkJXSwKKwkJCXJlc3RvcmVfY21kID0+IFsKKwkJCQkncGdfcmVz dG9yZScsICctQycsICctLWdsb2JhbHMtb25seScsCisJCQkJJy0tZm9ybWF0JyA9PiAnZGlyZWN0 b3J5JywKKwkJCQknLS1maWxlJyA9PiAiJHRlbXBkaXIvZHVtcF9nbG9iYWxzX29ubHkuc3FsIiwK KwkJCQkiJHRlbXBkaXIvZHVtcF9nbG9iYWxzX29ubHkiLAorCQkJCV0sCisJCQkJbGlrZSA9PiBx ci8KKyAgICAgICAgICAgIF5ccypcUUNSRUFURSBST0xFIGR1bXBhbGw7XEVccypcbgorCQkJL3ht CisJCQl9LCApOwogCiAjIEZpcnN0IGV4ZWN1dGUgdGhlIHNldHVwX3NxbAogZm9yZWFjaCBteSAk cnVuIChzb3J0IGtleXMgJXBnZHVtcGFsbF9ydW5zKQpAQCAtMzI2LDYgKzM1OCwzNCBAQCBmb3Jl YWNoIG15ICRydW4gKHNvcnQga2V5cyAlcGdkdW1wYWxsX3J1bnMpCiAJfQogfQogCisjIFNvbWUg bmVnYXRpdmUgdGVzdCBjYXNlIHdpdGggZHVtcCBvZiBwZ19kdW1wYWxsIGFuZCByZXN0b3JlIHVz aW5nIHBnX3Jlc3RvcmUKKyMgdGVzdCBjYXNlIDE6IHdoZW4gLUMgaXMgbm90IHVzZWQgaW4gcGdf cmVzdG9yZSB3aXRoIGR1bXAgb2YgcGdfZHVtcGFsbAorJG5vZGUtPmNvbW1hbmRfZmFpbHNfbGlr ZSgKKyAgICBbICdwZ19yZXN0b3JlJywKKyAgICAiJHRlbXBkaXIvZm9ybWF0X2N1c3RvbSIsCisg ICAgJy0tZm9ybWF0JyA9PiAnY3VzdG9tJywKKyAgICAnLS1maWxlJyA9PiAiJHRlbXBkaXIvZXJy b3JfdGVzdC5zcWwiLCBdLAorICAgIHFyL1xRcGdfcmVzdG9yZTogZXJyb3I6IC1DXC8tLWNyZWF0 ZSBvcHRpb24gc2hvdWxkIGJlIHNwZWNpZmllZCB3aGVuIHJlc3RvcmluZyBtdWx0aXBsZSBkYXRh YmFzZXMgYnkgYXJjaGl2ZSBvZiBwZ19kdW1wYWxsXEUvLAorICAgICdXaGVuIC1DIGlzIG5vdCB1 c2VkIGluIHBnX3Jlc3RvcmUgd2l0aCBkdW1wIG9mIHBnX2R1bXBhbGwnKTsKKworIyB0ZXN0IGNh c2UgMjogV2hlbiAtLWxpc3Qgb3B0aW9uIGlzIHVzZWQgd2l0aCBkdW1wIG9mIHBnX2R1bXBhbGwK KyRub2RlLT5jb21tYW5kX2ZhaWxzX2xpa2UoCisJWyAncGdfcmVzdG9yZScsCisJCSIkdGVtcGRp ci9mb3JtYXRfY3VzdG9tIiwgJy1DJywKKwkJJy0tZm9ybWF0JyA9PiAnY3VzdG9tJywgJy0tbGlz dCcsCisJCSctLWZpbGUnID0+ICIkdGVtcGRpci9lcnJvcl90ZXN0LnNxbCIsIF0sCisJcXIvXFFw Z19yZXN0b3JlOiBlcnJvcjogb3B0aW9uIC1sXC8tLWxpc3QgY2Fubm90IGJlIHVzZWQgd2hlbiBy ZXN0b3JpbmcgbXVsdGlwbGUgZGF0YWJhc2VzIGJ5IGFyY2hpdmUgb2YgcGdfZHVtcGFsbFxFLywK KwknV2hlbiAtLWxpc3QgaXMgdXNlZCBpbiBwZ19yZXN0b3JlIHdpdGggZHVtcCBvZiBwZ19kdW1w YWxsJyk7CisKKyMgdGVzdCBjYXNlIDM6IFdoZW4gbm9uLWV4aXN0IGRhdGFiYXNlIGlzIGdpdmVu IHdpdGggLWQgb3B0aW9uCiskbm9kZS0+Y29tbWFuZF9mYWlsc19saWtlKAorCVsgJ3BnX3Jlc3Rv cmUnLAorCQkiJHRlbXBkaXIvZm9ybWF0X2N1c3RvbSIsICctQycsCisJCSctLWZvcm1hdCcgPT4g J2N1c3RvbScsCisJCSctZCcgPT4gJ2RicHEnLCBdLAorCXFyL1xRcGdfcmVzdG9yZTogZXJyb3I6 IGNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlICJkYnBxIlxFLywKKwknV2hlbiBub24tZXhp c3QgZGF0YmFzZSBpcyBnaXZlbiB3aXRoIC1kIG9wdGlvbiBpbiBwZ19yZXN0b3JlIHdpdGggZHVt cCBvZiBwZ19kdW1wYWxsJyk7CisKICRub2RlLT5zdG9wKCdmYXN0Jyk7CiAKIGRvbmVfdGVzdGlu ZygpOwotLSAKMi4zOS4zCgo= --000000000000191b7f0631f04a85--