Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peSoa-0000GI-FJ for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Mar 2023 03:37:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1peSoX-0001fr-H9 for pgsql-hackers@arkaria.postgresql.org; Tue, 21 Mar 2023 03:37:33 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peSoW-0001fg-Qr for pgsql-hackers@lists.postgresql.org; Tue, 21 Mar 2023 03:37:33 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1peSoS-0001Iw-OF for pgsql-hackers@lists.postgresql.org; Tue, 21 Mar 2023 03:37:31 +0000 Received: from [192.168.43.15] (unknown [89.113.140.162]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 4628821CAB1C; Tue, 21 Mar 2023 06:37:25 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1679369846; bh=oqcEwYdo3bwILPTtR/uCBbkmLfhoIF50pVe0VjcoOcY=; h=Date:Subject:From:To:Cc:References:In-Reply-To; b=XiFvP08S24ML5AIEtimBDsnxkNcmaMcCwsEcrFTQcTNU2sDSkEf26wzlLGXB1MfR7 DcXV4mO32oh6sLpVLxXrNCL7cY1iAS2AY5mHmB+w8CW0TosE+ozRO50d3nLPt82cWj WP1M9FF/vC07BqucXhxE2ZD/pRAE6kzzVfqodR6g= Content-Type: multipart/mixed; boundary="------------nyRgT8CanKWv0DQ8Fu39YvyK" Message-ID: Date: Tue, 21 Mar 2023 06:37:22 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: psql: Add role's membership options to the \du+ command Content-Language: en-US, ru-RU From: Pavel Luzanov To: "David G. Johnston" Cc: David Zhang , "pgsql-hackers@lists.postgresql.org" References: <01620d6b-9efe-b199-b619-8450d865ec83@postgrespro.ru> <94ce7392-fa90-bc1c-4dc2-677161bbff58@postgrespro.ru> <20824093-d94f-e5d6-b611-8cec7fc6e95e@postgrespro.ru> <42678ca5-f3c6-db1b-e0c5-c63c3ce8997e@postgrespro.ru> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------nyRgT8CanKWv0DQ8Fu39YvyK Content-Type: multipart/alternative; boundary="------------I33tCIhdf08e4bLarl06dv6G" --------------I33tCIhdf08e4bLarl06dv6G Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit >>> I would suggest tweaking the test output to include regress_du_admin ... I found (with a help of cfbot) difficulty with this. The problem is the bootstrap superuser name (oid=10). This name depends on the OS username. In my case it's pal, but in most cases it's postgres or something else. And the output of \du regress_du_admin can't be predicted: \du regress_du_admin List of roles Role name | Attributes | Member of ------------------+-------------+------------------------------------- regress_du_admin | Create role | regress_du_role0 from pal (a, i, s)+ | | regress_du_role1 from pal (a, i, s)+ | | regress_du_role2 from pal (a, i, s) So, I decided not to include regress_du_admin in the test output. Please, see version 5 attached. Only tests changed. ----- Pavel Luzanov --------------I33tCIhdf08e4bLarl06dv6G Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit
I would suggest tweaking the test output to include regress_du_admin ...
I found (with a help of cfbot) difficulty with this. The problem is the bootstrap superuser name (oid=10). 
This name depends on the OS username. In my case it's pal, but in most cases it's postgres or something else. 
And the output of \du regress_du_admin can't be predicted:

\du regress_du_admin
                            List of roles
    Role name     | Attributes  |              Member of              
------------------+-------------+-------------------------------------
 regress_du_admin | Create role | regress_du_role0 from pal (a, i, s)+
                  |             | regress_du_role1 from pal (a, i, s)+
                  |             | regress_du_role2 from pal (a, i, s)


So, I decided not to include regress_du_admin in the test output.

Please, see version 5 attached. Only tests changed.

-----
Pavel Luzanov
--------------I33tCIhdf08e4bLarl06dv6G-- --------------nyRgT8CanKWv0DQ8Fu39YvyK Content-Type: text/x-patch; charset=UTF-8; name="v5-0001-psql-show-membership-options-in-the-du-command.patch" Content-Disposition: attachment; filename*0="v5-0001-psql-show-membership-options-in-the-du-command.patch" Content-Transfer-Encoding: base64 RnJvbSBiOGYzNTczMzEyNmE4NDNlZGQ0N2ExZjg5ZGEwZDlmOGJhYmVlYzkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXZlbCBMdXphbm92IDxwLmx1emFub3ZAcG9zdGdy ZXNwcm8ucnU+CkRhdGU6IFR1ZSwgMjEgTWFyIDIwMjMgMDU6NTg6MzEgKzAzMDAKU3ViamVj dDogW1BBVENIIHY1XSBwc3FsOiBzaG93IG1lbWJlcnNoaXAgb3B0aW9ucyBpbiB0aGUgXGR1 IGNvbW1hbmQKCkZvcm1hdCBmb3IgdGhlICJNZW1iZXIgb2YiIGNvbHVtbiBjb21wbGV0ZWx5 IHJlZGVzaWduZWQuClNob3duIHdpdGhpbiBlYWNoIHJvdywgaW4gbmV3bGluZS1zZXBhcmF0 ZWQgZm9ybWF0LCBhcmUgdGhlIG1lbWJlcnNoaXBzIGdyYW50ZWQgdG8KdGhlIHJvbGUuICBU aGUgcHJlc2VudGF0aW9uIGluY2x1ZGVzIGJvdGggdGhlIG5hbWUgb2YgdGhlIGdyYW50b3IK YXMgd2VsbCBhcyB0aGUgbWVtYmVyc2hpcCBwZXJtaXNzaW9ucyAoaW4gYW4gYWJicmV2aWF0 ZWQgZm9ybWF0OgphIGZvciBhZG1pbiBvcHRpb24sIGkgZm9yIGluaGVyaXQgb3B0aW9uLApz IGZvciBzZXQgb3B0aW9uLikgVGhlIHdvcmQgJ2VtcHR5JyBpcyBwcmludGVkIGluCnRoZSBj YXNlIHRoYXQgbm9uZSBvZiB0aG9zZSBwZXJtaXNzaW9ucyBhcmUgZ3JhbnRlZC4KLS0tCiBk b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgICAgIHwgMzAgKysrKysrKysrKysrLS0t CiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgIHwgNjEgKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0 IHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9w c3FsLnNxbCAgICAgIHwgMzAgKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE0 NCBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNn bWwKaW5kZXggN2I4YWU5ZmFjMy4uMDNlN2RhOTNkZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYu c2dtbApAQCAtMTcyNyw5ICsxNzI3LDE4IEBAIElOU0VSVCBJTlRPIHRibDEgVkFMVUVTICgk MSwgJDIpIFxiaW5kICdmaXJzdCB2YWx1ZScgJ3NlY29uZCB2YWx1ZScgXGcKICAgICAgICAg PGxpdGVyYWw+UzwvbGl0ZXJhbD4gbW9kaWZpZXIgdG8gaW5jbHVkZSBzeXN0ZW0gcm9sZXMu CiAgICAgICAgIElmIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9y ZXBsYWNlYWJsZT4gaXMgc3BlY2lmaWVkLAogICAgICAgICBvbmx5IHRob3NlIHJvbGVzIHdo b3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGFyZSBsaXN0ZWQuCi0gICAgICAgIElmIHRo ZSBmb3JtIDxsaXRlcmFsPlxkZys8L2xpdGVyYWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5m b3JtYXRpb24KLSAgICAgICAgaXMgc2hvd24gYWJvdXQgZWFjaCByb2xlOyBjdXJyZW50bHkg dGhpcyBhZGRzIHRoZSBjb21tZW50IGZvciBlYWNoCi0gICAgICAgIHJvbGUuCisgICAgICAg IDwvcGFyYT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgIFNob3duIHdpdGhpbiBlYWNoIHJv dywgaW4gbmV3bGluZS1zZXBhcmF0ZWQgZm9ybWF0LCBhcmUgdGhlIG1lbWJlcnNoaXBzIGdy YW50ZWQgdG8KKyAgICAgICAgdGhlIHJvbGUuICBUaGUgcHJlc2VudGF0aW9uIGluY2x1ZGVz IGJvdGggdGhlIG5hbWUgb2YgdGhlIGdyYW50b3IKKyAgICAgICAgYXMgd2VsbCBhcyB0aGUg bWVtYmVyc2hpcCBwZXJtaXNzaW9ucyAoaW4gYW4gYWJicmV2aWF0ZWQgZm9ybWF0OgorICAg ICAgICA8bGl0ZXJhbD5hPC9saXRlcmFsPiBmb3IgYWRtaW4gb3B0aW9uLCA8bGl0ZXJhbD5p PC9saXRlcmFsPiBmb3IgaW5oZXJpdCBvcHRpb24sCisgICAgICAgIDxsaXRlcmFsPnM8L2xp dGVyYWw+IGZvciBzZXQgb3B0aW9uLikgVGhlIHdvcmQgPGxpdGVyYWw+ZW1wdHk8L2xpdGVy YWw+IGlzIHByaW50ZWQgaW4KKyAgICAgICAgdGhlIGNhc2UgdGhhdCBub25lIG9mIHRob3Nl IHBlcm1pc3Npb25zIGFyZSBncmFudGVkLgorICAgICAgICBTZWUgdGhlIDxsaW5rIGxpbmtl bmQ9InNxbC1ncmFudCI+PGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+PC9saW5rPiBjb21tYW5k IGZvciB0aGVpciBtZWFuaW5nLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDxwYXJhPgor ICAgICAgICBJZiB0aGUgZm9ybSA8bGl0ZXJhbD5cZGcrPC9saXRlcmFsPiBpcyB1c2VkIHRo ZSBjb21tZW50IGF0dGFjaGVkIHRvIHRoZSByb2xlIGlzIHNob3duLgogICAgICAgICA8L3Bh cmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTE5 NjksOSArMTk3OCwxOCBAQCBJTlNFUlQgSU5UTyB0YmwxIFZBTFVFUyAoJDEsICQyKSBcYmlu ZCAnZmlyc3QgdmFsdWUnICdzZWNvbmQgdmFsdWUnIFxnCiAgICAgICAgIDxsaXRlcmFsPlM8 L2xpdGVyYWw+IG1vZGlmaWVyIHRvIGluY2x1ZGUgc3lzdGVtIHJvbGVzLgogICAgICAgICBJ ZiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+ IGlzIHNwZWNpZmllZCwKICAgICAgICAgb25seSB0aG9zZSByb2xlcyB3aG9zZSBuYW1lcyBt YXRjaCB0aGUgcGF0dGVybiBhcmUgbGlzdGVkLgotICAgICAgICBJZiB0aGUgZm9ybSA8bGl0 ZXJhbD5cZHUrPC9saXRlcmFsPiBpcyB1c2VkLCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCi0g ICAgICAgIGlzIHNob3duIGFib3V0IGVhY2ggcm9sZTsgY3VycmVudGx5IHRoaXMgYWRkcyB0 aGUgY29tbWVudCBmb3IgZWFjaAotICAgICAgICByb2xlLgorICAgICAgICA8L3BhcmE+Cisg ICAgICAgIDxwYXJhPgorICAgICAgICBTaG93biB3aXRoaW4gZWFjaCByb3csIGluIG5ld2xp bmUtc2VwYXJhdGVkIGZvcm1hdCwgYXJlIHRoZSBtZW1iZXJzaGlwcyBncmFudGVkIHRvCisg ICAgICAgIHRoZSByb2xlLiAgVGhlIHByZXNlbnRhdGlvbiBpbmNsdWRlcyBib3RoIHRoZSBu YW1lIG9mIHRoZSBncmFudG9yCisgICAgICAgIGFzIHdlbGwgYXMgdGhlIG1lbWJlcnNoaXAg cGVybWlzc2lvbnMgKGluIGFuIGFiYnJldmlhdGVkIGZvcm1hdDoKKyAgICAgICAgPGxpdGVy YWw+YTwvbGl0ZXJhbD4gZm9yIGFkbWluIG9wdGlvbiwgPGxpdGVyYWw+aTwvbGl0ZXJhbD4g Zm9yIGluaGVyaXQgb3B0aW9uLAorICAgICAgICA8bGl0ZXJhbD5zPC9saXRlcmFsPiBmb3Ig c2V0IG9wdGlvbi4pIFRoZSB3b3JkIDxsaXRlcmFsPmVtcHR5PC9saXRlcmFsPiBpcyBwcmlu dGVkIGluCisgICAgICAgIHRoZSBjYXNlIHRoYXQgbm9uZSBvZiB0aG9zZSBwZXJtaXNzaW9u cyBhcmUgZ3JhbnRlZC4KKyAgICAgICAgU2VlIHRoZSA8bGluayBsaW5rZW5kPSJzcWwtZ3Jh bnQiPjxjb21tYW5kPkdSQU5UPC9jb21tYW5kPjwvbGluaz4gY29tbWFuZCBmb3IgdGhlaXIg bWVhbmluZy4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgSWYg dGhlIGZvcm0gPGxpdGVyYWw+XGR1KzwvbGl0ZXJhbD4gaXMgdXNlZCB0aGUgY29tbWVudCBh dHRhY2hlZCB0byB0aGUgcm9sZSBpcyBzaG93bi4KICAgICAgICAgPC9wYXJhPgogICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDk5 ZTI4ZjYwN2UuLjlmN2I3MzI2ZTkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0zNjMxLDI0ICszNjMxLDQy IEBAIGRlc2NyaWJlUm9sZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBi b29sIHNob3dTeXN0ZW0pCiAJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJICAiU0VM RUNUIHIucm9sbmFtZSwgci5yb2xzdXBlciwgci5yb2xpbmhlcml0LFxuIgogCQkJCQkgICIg IHIucm9sY3JlYXRlcm9sZSwgci5yb2xjcmVhdGVkYiwgci5yb2xjYW5sb2dpbixcbiIKLQkJ CQkJICAiICByLnJvbGNvbm5saW1pdCwgci5yb2x2YWxpZHVudGlsLFxuIgotCQkJCQkgICIg IEFSUkFZKFNFTEVDVCBiLnJvbG5hbWVcbiIKLQkJCQkJICAiICAgICAgICBGUk9NIHBnX2Nh dGFsb2cucGdfYXV0aF9tZW1iZXJzIG1cbiIKLQkJCQkJICAiICAgICAgICBKT0lOIHBnX2Nh dGFsb2cucGdfcm9sZXMgYiBPTiAobS5yb2xlaWQgPSBiLm9pZClcbiIKLQkJCQkJICAiICAg ICAgICBXSEVSRSBtLm1lbWJlciA9IHIub2lkKSBhcyBtZW1iZXJvZiIpOworCQkJCQkgICIg IHIucm9sY29ubmxpbWl0LCByLnJvbHZhbGlkdW50aWwsIHIucm9scmVwbGljYXRpb24sXG4i KTsKIAotCWlmICh2ZXJib3NlKQotCXsKLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwg IlxuLCBwZ19jYXRhbG9nLnNob2JqX2Rlc2NyaXB0aW9uKHIub2lkLCAncGdfYXV0aGlkJykg QVMgZGVzY3JpcHRpb24iKTsKLQkJbmNvbHMrKzsKLQl9Ci0JYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIlxuLCByLnJvbHJlcGxpY2F0aW9uIik7CisJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTYwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJCSAiICAo U0VMRUNUIHBnX2NhdGFsb2cuc3RyaW5nX2FnZyhcbiIKKwkJCQkJCQkgIiAgICBwZ19jYXRh bG9nLmZvcm1hdCgnJUkgZnJvbSAlSSAoJXMpJyxcbiIKKwkJCQkJCQkgIiAgICAgIGIucm9s bmFtZSwgbS5ncmFudG9yOjpwZ19jYXRhbG9nLnJlZ3JvbGU6OnBnX2NhdGFsb2cudGV4dCxc biIKKwkJCQkJCQkgIiAgICAgIHBnX2NhdGFsb2cucmVnZXhwX3JlcGxhY2UoXG4iCisJCQkJ CQkJICIgICAgICAgIHBnX2NhdGFsb2cuY29uY2F0X3dzKCcsICcsXG4iCisJCQkJCQkJICIg ICAgICAgICAgQ0FTRSBXSEVOIG0uYWRtaW5fb3B0aW9uIFRIRU4gJ2EnIEVORCxcbiIKKwkJ CQkJCQkgIiAgICAgICAgICBDQVNFIFdIRU4gbS5pbmhlcml0X29wdGlvbiBUSEVOICdpJyBF TkQsXG4iCisJCQkJCQkJICIgICAgICAgICAgQ0FTRSBXSEVOIG0uc2V0X29wdGlvbiBUSEVO ICdzJyBFTkQpLFxuIgorCQkJCQkJCSAiICAgICAgJ14kJywgJ2VtcHR5JylcbiIKKwkJCQkJ CQkgIiAgICApLCBFJ1xcbidcbiIKKwkJCQkJCQkgIiAgICBPUkRFUiBCWSBiLnJvbG5hbWUs IG0uZ3JhbnRvcjo6cGdfY2F0YWxvZy5yZWdyb2xlOjpwZ19jYXRhbG9nLnRleHQpXG4iCisJ CQkJCQkJICIgIEZST00gcGdfY2F0YWxvZy5wZ19hdXRoX21lbWJlcnMgbVxuIgorCQkJCQkJ CSAiICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBiIE9OIChtLnJvbGVpZCA9IGIu b2lkKVxuIgorCQkJCQkJCSAiICBXSEVSRSBtLm1lbWJlciA9IHIub2lkKSBhcyBtZW1iZXJv ZiIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJCQkJCQkgIiAg QVJSQVkoU0VMRUNUIGIucm9sbmFtZVxuIgorCQkJCQkJCSAiICAgICAgICBGUk9NIHBnX2Nh dGFsb2cucGdfYXV0aF9tZW1iZXJzIG1cbiIKKwkJCQkJCQkgIiAgICAgICAgSk9JTiBwZ19j YXRhbG9nLnBnX3JvbGVzIGIgT04gKG0ucm9sZWlkID0gYi5vaWQpXG4iCisJCQkJCQkJICIg ICAgICAgIFdIRVJFIG0ubWVtYmVyID0gci5vaWQpIGFzIG1lbWJlcm9mIik7CiAKIAlpZiAo cHNldC5zdmVyc2lvbiA+PSA5MDUwMCkKIAl7CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICJcbiwgci5yb2xieXBhc3NybHMiKTsKIAl9CiAKKwlpZiAodmVyYm9zZSkKKwl7CisJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbiwgcGdfY2F0YWxvZy5zaG9ial9kZXNj cmlwdGlvbihyLm9pZCwgJ3BnX2F1dGhpZCcpIEFTIGRlc2NyaXB0aW9uIik7CisJCW5jb2xz Kys7CisJfQorCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuRlJPTSBwZ19jYXRh bG9nLnBnX3JvbGVzIHJcbiIpOwogCiAJaWYgKCFzaG93U3lzdGVtICYmICFwYXR0ZXJuKQpA QCAtMzcwMSwxMyArMzcxOSw2IEBAIGRlc2NyaWJlUm9sZXMoY29uc3QgY2hhciAqcGF0dGVy biwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0pCiAJCWlmIChzdHJjbXAoUFFnZXR2 YWx1ZShyZXMsIGksIDUpLCAidCIpICE9IDApCiAJCQlhZGRfcm9sZV9hdHRyaWJ1dGUoJmJ1 ZiwgXygiQ2Fubm90IGxvZ2luIikpOwogCi0JCWlmIChzdHJjbXAoUFFnZXR2YWx1ZShyZXMs IGksICh2ZXJib3NlID8gMTAgOiA5KSksICJ0IikgPT0gMCkKLQkJCWFkZF9yb2xlX2F0dHJp YnV0ZSgmYnVmLCBfKCJSZXBsaWNhdGlvbiIpKTsKLQotCQlpZiAocHNldC5zdmVyc2lvbiA+ PSA5MDUwMCkKLQkJCWlmIChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksICh2ZXJib3NlID8g MTEgOiAxMCkpLCAidCIpID09IDApCi0JCQkJYWRkX3JvbGVfYXR0cmlidXRlKCZidWYsIF8o IkJ5cGFzcyBSTFMiKSk7Ci0KIAkJY29ubnMgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCA2 KSk7CiAJCWlmIChjb25ucyA+PSAwKQogCQl7CkBAIC0zNzM1LDEwICszNzQ2LDIwIEBAIGRl c2NyaWJlUm9sZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNo b3dTeXN0ZW0pCiAKIAkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIGF0dHJbaV0sIGZhbHNl LCBmYWxzZSk7CiAKLQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVz LCBpLCA4KSwgZmFsc2UsIGZhbHNlKTsKKwkJaWYgKHN0cmNtcChQUWdldHZhbHVlKHJlcywg aSwgOCksICJ0IikgPT0gMCkKKwkJCWFkZF9yb2xlX2F0dHJpYnV0ZSgmYnVmLCBfKCJSZXBs aWNhdGlvbiIpKTsKKworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShy ZXMsIGksIDkpLCBmYWxzZSwgZmFsc2UpOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDkw NTAwKQorCQkJaWYgKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgMTApLCAidCIpID09IDAp CisJCQkJYWRkX3JvbGVfYXR0cmlidXRlKCZidWYsIF8oIkJ5cGFzcyBSTFMiKSk7CiAKIAkJ aWYgKHZlcmJvc2UpCi0JCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShy ZXMsIGksIDkpLCBmYWxzZSwgZmFsc2UpOworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gOTA1 MDApCisJCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCAx MSksIGZhbHNlLCBmYWxzZSk7CisJCQllbHNlCisJCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNv bnQsIFBRZ2V0dmFsdWUocmVzLCBpLCAxMCksIGZhbHNlLCBmYWxzZSk7CiAJfQogCXRlcm1Q UUV4cEJ1ZmZlcigmYnVmKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5k ZXggYzAwZTI4MzYxYy4uZDVmMzFiMjA4MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bz cWwub3V0CkBAIC02NjA3LDMgKzY2MDcsNTIgQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNl cyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2No ZW0KIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgog XGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVu ZGVkLnN0YXRpc3RpY3MiCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LmV4dGVuZGVkLnN0YXRpc3RpY3MiCistLSBjaGVjayBcZHUKK0NSRUFURSBST0xFIHJlZ3Jl c3NfZHVfcm9sZTA7CitDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUxOworQ1JFQVRFIFJP TEUgcmVncmVzc19kdV9yb2xlMjsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZHVfYWRtaW4gTE9H SU4gQ1JFQVRFUk9MRTsKK0NPTU1FTlQgT04gUk9MRSByZWdyZXNzX2R1X3JvbGUwIElTICdE ZXNjcmlwdGlvbiBmb3IgcmVncmVzc19kdV9yb2xlMCc7CitDT01NRU5UIE9OIFJPTEUgcmVn cmVzc19kdV9yb2xlMSBJUyAnRGVzY3JpcHRpb24gZm9yIHJlZ3Jlc3NfZHVfcm9sZTEnOwor Q09NTUVOVCBPTiBST0xFIHJlZ3Jlc3NfZHVfcm9sZTIgSVMgJ0Rlc2NyaXB0aW9uIGZvciBy ZWdyZXNzX2R1X3JvbGUyJzsKK0NPTU1FTlQgT04gUk9MRSByZWdyZXNzX2R1X2FkbWluIElT ICdEZXNjcmlwdGlvbiBmb3IgcmVncmVzc19kdV9hZG1pbic7CitHUkFOVCByZWdyZXNzX2R1 X3JvbGUwIFRPIHJlZ3Jlc3NfZHVfYWRtaW4gV0lUSCBBRE1JTiBUUlVFOworR1JBTlQgcmVn cmVzc19kdV9yb2xlMSBUTyByZWdyZXNzX2R1X2FkbWluIFdJVEggQURNSU4gVFJVRTsKK0dS QU5UIHJlZ3Jlc3NfZHVfcm9sZTIgVE8gcmVncmVzc19kdV9hZG1pbiBXSVRIIEFETUlOIFRS VUU7CitHUkFOVCByZWdyZXNzX2R1X3JvbGUwIFRPIHJlZ3Jlc3NfZHVfcm9sZTEgV0lUSCBB RE1JTiBUUlVFLCAgSU5IRVJJVCBUUlVFLCAgU0VUIFRSVUUgIEdSQU5URUQgQlkgcmVncmVz c19kdV9hZG1pbjsKK0dSQU5UIHJlZ3Jlc3NfZHVfcm9sZTAgVE8gcmVncmVzc19kdV9yb2xl MiBXSVRIIEFETUlOIFRSVUUsICBJTkhFUklUIEZBTFNFLCBTRVQgRkFMU0UgR1JBTlRFRCBC WSByZWdyZXNzX2R1X2FkbWluOworR1JBTlQgcmVncmVzc19kdV9yb2xlMSBUTyByZWdyZXNz X2R1X3JvbGUyIFdJVEggQURNSU4gVFJVRSAsIElOSEVSSVQgRkFMU0UsIFNFVCBUUlVFICBH UkFOVEVEIEJZIHJlZ3Jlc3NfZHVfYWRtaW47CitHUkFOVCByZWdyZXNzX2R1X3JvbGUwIFRP IHJlZ3Jlc3NfZHVfcm9sZTEgV0lUSCBBRE1JTiBGQUxTRSwgSU5IRVJJVCBUUlVFLCAgU0VU IEZBTFNFIEdSQU5URUQgQlkgcmVncmVzc19kdV9yb2xlMTsKK0dSQU5UIHJlZ3Jlc3NfZHVf cm9sZTAgVE8gcmVncmVzc19kdV9yb2xlMiBXSVRIIEFETUlOIEZBTFNFLCBJTkhFUklUIFRS VUUgLCBTRVQgVFJVRSAgR1JBTlRFRCBCWSByZWdyZXNzX2R1X3JvbGUxOworR1JBTlQgcmVn cmVzc19kdV9yb2xlMCBUTyByZWdyZXNzX2R1X3JvbGUxIFdJVEggQURNSU4gRkFMU0UsIElO SEVSSVQgRkFMU0UsIFNFVCBUUlVFICBHUkFOVEVEIEJZIHJlZ3Jlc3NfZHVfcm9sZTI7CitH UkFOVCByZWdyZXNzX2R1X3JvbGUwIFRPIHJlZ3Jlc3NfZHVfcm9sZTIgV0lUSCBBRE1JTiBG QUxTRSwgSU5IRVJJVCBGQUxTRSwgU0VUIEZBTFNFIEdSQU5URUQgQlkgcmVncmVzc19kdV9y b2xlMjsKK1xkdSByZWdyZXNzX2R1X3JvbGUqCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygcm9sZXMKKyAgICBSb2xlIG5hbWUgICAgIHwgIEF0dHJpYnV0 ZXMgIHwgICAgICAgICAgICAgICAgICAgIE1lbWJlciBvZiAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19kdV9yb2xlMCB8 IENhbm5vdCBsb2dpbiB8IAorIHJlZ3Jlc3NfZHVfcm9sZTEgfCBDYW5ub3QgbG9naW4gfCBy ZWdyZXNzX2R1X3JvbGUwIGZyb20gcmVncmVzc19kdV9hZG1pbiAoYSwgaSwgcykrCisgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfZHVfcm9sZTAgZnJvbSBy ZWdyZXNzX2R1X3JvbGUxIChpKSAgICAgICsKKyAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgcmVncmVzc19kdV9yb2xlMCBmcm9tIHJlZ3Jlc3NfZHVfcm9sZTIgKHMpCisg cmVncmVzc19kdV9yb2xlMiB8IENhbm5vdCBsb2dpbiB8IHJlZ3Jlc3NfZHVfcm9sZTAgZnJv bSByZWdyZXNzX2R1X2FkbWluIChhKSAgICAgICsKKyAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgcmVncmVzc19kdV9yb2xlMCBmcm9tIHJlZ3Jlc3NfZHVfcm9sZTEgKGks IHMpICAgKworICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCByZWdyZXNzX2R1 X3JvbGUwIGZyb20gcmVncmVzc19kdV9yb2xlMiAoZW1wdHkpICArCisgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfZHVfcm9sZTEgZnJvbSByZWdyZXNzX2R1 X2FkbWluIChhLCBzKQorCitcZHUrIHJlZ3Jlc3NfZHVfcm9sZSoKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiByb2xlcwor ICAgIFJvbGUgbmFtZSAgICAgfCAgQXR0cmlidXRlcyAgfCAgICAgICAgICAgICAgICAgICAg TWVtYmVyIG9mICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgRGVzY3JpcHRpb24g ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19kdV9yb2xlMCB8IENhbm5vdCBs b2dpbiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IERlc2NyaXB0aW9uIGZvciByZWdyZXNzX2R1X3JvbGUwCisgcmVncmVzc19kdV9yb2xl MSB8IENhbm5vdCBsb2dpbiB8IHJlZ3Jlc3NfZHVfcm9sZTAgZnJvbSByZWdyZXNzX2R1X2Fk bWluIChhLCBpLCBzKSt8IERlc2NyaXB0aW9uIGZvciByZWdyZXNzX2R1X3JvbGUxCisgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfZHVfcm9sZTAgZnJvbSBy ZWdyZXNzX2R1X3JvbGUxIChpKSAgICAgICt8IAorICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgfCByZWdyZXNzX2R1X3JvbGUwIGZyb20gcmVncmVzc19kdV9yb2xlMiAocykg ICAgICAgfCAKKyByZWdyZXNzX2R1X3JvbGUyIHwgQ2Fubm90IGxvZ2luIHwgcmVncmVzc19k dV9yb2xlMCBmcm9tIHJlZ3Jlc3NfZHVfYWRtaW4gKGEpICAgICAgK3wgRGVzY3JpcHRpb24g Zm9yIHJlZ3Jlc3NfZHVfcm9sZTIKKyAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg IHwgcmVncmVzc19kdV9yb2xlMCBmcm9tIHJlZ3Jlc3NfZHVfcm9sZTEgKGksIHMpICAgK3wg CisgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IHJlZ3Jlc3NfZHVfcm9sZTAg ZnJvbSByZWdyZXNzX2R1X3JvbGUyIChlbXB0eSkgICt8IAorICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCByZWdyZXNzX2R1X3JvbGUxIGZyb20gcmVncmVzc19kdV9hZG1p biAoYSwgcykgICAgfCAKKworRFJPUCBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CitEUk9QIFJP TEUgcmVncmVzc19kdV9yb2xlMTsKK0RST1AgUk9MRSByZWdyZXNzX2R1X3JvbGUyOworRFJP UCBST0xFIHJlZ3Jlc3NfZHVfYWRtaW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9wc3FsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCmluZGV4IDk2 MTc4M2Q2ZWEuLjFlOGQ0Njg4MmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3BzcWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCkBAIC0xODE1 LDMgKzE4MTUsMzMgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRQICJuby5zdWNo LmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0 aW9uIgogXGRUICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorCistLSBjaGVjayBcZHUKK0NSRUFURSBS T0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CitDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUxOwor Q1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMjsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZHVf YWRtaW4gTE9HSU4gQ1JFQVRFUk9MRTsKK0NPTU1FTlQgT04gUk9MRSByZWdyZXNzX2R1X3Jv bGUwIElTICdEZXNjcmlwdGlvbiBmb3IgcmVncmVzc19kdV9yb2xlMCc7CitDT01NRU5UIE9O IFJPTEUgcmVncmVzc19kdV9yb2xlMSBJUyAnRGVzY3JpcHRpb24gZm9yIHJlZ3Jlc3NfZHVf cm9sZTEnOworQ09NTUVOVCBPTiBST0xFIHJlZ3Jlc3NfZHVfcm9sZTIgSVMgJ0Rlc2NyaXB0 aW9uIGZvciByZWdyZXNzX2R1X3JvbGUyJzsKK0NPTU1FTlQgT04gUk9MRSByZWdyZXNzX2R1 X2FkbWluIElTICdEZXNjcmlwdGlvbiBmb3IgcmVncmVzc19kdV9hZG1pbic7CisKK0dSQU5U IHJlZ3Jlc3NfZHVfcm9sZTAgVE8gcmVncmVzc19kdV9hZG1pbiBXSVRIIEFETUlOIFRSVUU7 CitHUkFOVCByZWdyZXNzX2R1X3JvbGUxIFRPIHJlZ3Jlc3NfZHVfYWRtaW4gV0lUSCBBRE1J TiBUUlVFOworR1JBTlQgcmVncmVzc19kdV9yb2xlMiBUTyByZWdyZXNzX2R1X2FkbWluIFdJ VEggQURNSU4gVFJVRTsKKworR1JBTlQgcmVncmVzc19kdV9yb2xlMCBUTyByZWdyZXNzX2R1 X3JvbGUxIFdJVEggQURNSU4gVFJVRSwgIElOSEVSSVQgVFJVRSwgIFNFVCBUUlVFICBHUkFO VEVEIEJZIHJlZ3Jlc3NfZHVfYWRtaW47CitHUkFOVCByZWdyZXNzX2R1X3JvbGUwIFRPIHJl Z3Jlc3NfZHVfcm9sZTIgV0lUSCBBRE1JTiBUUlVFLCAgSU5IRVJJVCBGQUxTRSwgU0VUIEZB TFNFIEdSQU5URUQgQlkgcmVncmVzc19kdV9hZG1pbjsKK0dSQU5UIHJlZ3Jlc3NfZHVfcm9s ZTEgVE8gcmVncmVzc19kdV9yb2xlMiBXSVRIIEFETUlOIFRSVUUgLCBJTkhFUklUIEZBTFNF LCBTRVQgVFJVRSAgR1JBTlRFRCBCWSByZWdyZXNzX2R1X2FkbWluOworR1JBTlQgcmVncmVz c19kdV9yb2xlMCBUTyByZWdyZXNzX2R1X3JvbGUxIFdJVEggQURNSU4gRkFMU0UsIElOSEVS SVQgVFJVRSwgIFNFVCBGQUxTRSBHUkFOVEVEIEJZIHJlZ3Jlc3NfZHVfcm9sZTE7CitHUkFO VCByZWdyZXNzX2R1X3JvbGUwIFRPIHJlZ3Jlc3NfZHVfcm9sZTIgV0lUSCBBRE1JTiBGQUxT RSwgSU5IRVJJVCBUUlVFICwgU0VUIFRSVUUgIEdSQU5URUQgQlkgcmVncmVzc19kdV9yb2xl MTsKK0dSQU5UIHJlZ3Jlc3NfZHVfcm9sZTAgVE8gcmVncmVzc19kdV9yb2xlMSBXSVRIIEFE TUlOIEZBTFNFLCBJTkhFUklUIEZBTFNFLCBTRVQgVFJVRSAgR1JBTlRFRCBCWSByZWdyZXNz X2R1X3JvbGUyOworR1JBTlQgcmVncmVzc19kdV9yb2xlMCBUTyByZWdyZXNzX2R1X3JvbGUy IFdJVEggQURNSU4gRkFMU0UsIElOSEVSSVQgRkFMU0UsIFNFVCBGQUxTRSBHUkFOVEVEIEJZ IHJlZ3Jlc3NfZHVfcm9sZTI7CisKK1xkdSByZWdyZXNzX2R1X3JvbGUqCitcZHUrIHJlZ3Jl c3NfZHVfcm9sZSoKKworRFJPUCBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CitEUk9QIFJPTEUg cmVncmVzc19kdV9yb2xlMTsKK0RST1AgUk9MRSByZWdyZXNzX2R1X3JvbGUyOworRFJPUCBS T0xFIHJlZ3Jlc3NfZHVfYWRtaW47Ci0tIAoyLjM0LjEKCg== --------------nyRgT8CanKWv0DQ8Fu39YvyK--