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 1pZ5yh-0000KG-HN for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Mar 2023 08:13:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pZ5yg-0000XZ-C3 for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Mar 2023 08:13:50 +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 1pZ5yf-0000XQ-TN for pgsql-hackers@lists.postgresql.org; Mon, 06 Mar 2023 08:13:50 +0000 Received: from new2-smtp.messagingengine.com ([66.111.4.224]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pZ5yc-0005hv-7j for pgsql-hackers@postgresql.org; Mon, 06 Mar 2023 08:13:48 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailnew.nyi.internal (Postfix) with ESMTP id D5F455820B7; Mon, 6 Mar 2023 03:13:44 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 06 Mar 2023 03:13:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1678090424; x=1678097624; bh=7xG4/NWQ945HV 1tBL2GC03pJ96YU99Rfz0SJqUuZnMo=; b=rQt8CrPhUPOZpG5GEIb1nL3qWqkwH ICo2dY9i6b3liNl53Bk+YzhAns+f31SW/cBeQv1YCvplirqgOH9Nq4GIkyzJg2pV CFTHfT7ZhPVQt7AV2HMoEjxyBBEj+D0FBD4ECUADF7i0mTOx7WnZHe1D0ZNE2JYw Fdhnnex+JEFrJaAwiB+jkOIn0AW5FSb+VmChPoNbjMG6EvaulAImAGRS8KWWFu+X m/EzX0ETWub3XU4pPQQ/vVoU6Bh1kNqgiUYoKVS4v8FVsyEa4Qtkwt75RoZCYNyz QlDNGCLsQU/q+qiikV0a5HJdE64fzjLIlsvozLP98KhR2THkpSNzOSH1Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvddthedgudduiecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpegtkfffgggfuffvvehfhfgjsehmtderredtfeejnecuhfhrohhmpefrvght vghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvghnth gvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtthgvrhhnpeeutdekheeuhedtvdfg ffehleetfefhieefudeitdffiedtledujefhjedufeffffenucevlhhushhtvghrufhiii gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghu thesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 6 Mar 2023 03:13:43 -0500 (EST) Content-Type: multipart/mixed; boundary="------------vnT7r0iHx08RB5IASCcxKVx2" Message-ID: <4b4613ec-d2c2-a615-9e3f-9f36cf5897ed@enterprisedb.com> Date: Mon, 6 Mar 2023 09:13:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: Add support for unit "B" to pg_size_pretty() Content-Language: en-US To: David Rowley Cc: Justin Pryzby , pgsql-hackers@postgresql.org References: <0106914a-9eb5-22be-40d8-652cc88c827d@enterprisedb.com> <20230220143452.GM1653@telsasoft.com> From: Peter Eisentraut 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. --------------vnT7r0iHx08RB5IASCcxKVx2 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 02.03.23 20:58, David Rowley wrote: > On Mon, 27 Feb 2023 at 21:34, Peter Eisentraut > wrote: >> >> On 22.02.23 03:39, David Rowley wrote: >>> I think you'll need to find another way to make the aliases work. >>> Maybe another array with the name and an int to reference the >>> corresponding index in size_pretty_units. >> >> Ok, here is a new patch with a separate table of aliases. (Might look >> like overkill, but I think the "PiB" etc. example you had could actually >> be a good use case for this as well.) > > I think I'd prefer to see the size_bytes_unit_alias struct have an > index into size_pretty_units[] array. i.e: Ok, done that way. (I had thought about that, but I was worried that that would be too error-prone to maintain. But I suppose the tables don't change that often, and test cases would easily catch mistakes.) I also updated the documentation a bit more. --------------vnT7r0iHx08RB5IASCcxKVx2 Content-Type: text/plain; charset=UTF-8; name="v4-0001-Add-support-for-unit-B-to-pg_size_bytes.patch" Content-Disposition: attachment; filename="v4-0001-Add-support-for-unit-B-to-pg_size_bytes.patch" Content-Transfer-Encoding: base64 RnJvbSBiYjBmYjZlYjMzNjQxOTU4MzhhOWM3ZTM4N2VlNDIzN2M4Y2QzMGI0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCA2IE1hciAyMDIzIDA5OjEwOjUwICswMTAwClN1YmplY3Q6 IFtQQVRDSCB2NF0gQWRkIHN1cHBvcnQgZm9yIHVuaXQgIkIiIHRvIHBnX3NpemVfYnl0ZXMo KQoKVGhpcyBtYWtlcyBpdCBjb25zaXN0ZW50IHdpdGggdGhlIHVuaXRzIHN1cHBvcnQgaW4g R1VDLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1p ZC9mbGF0LzAxMDY5MTRhLTllYjUtMjJiZS00MGQ4LTY1MmNjODhjODI3ZCU0MGVudGVycHJp c2VkYi5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgfCAg OSArKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Ric2l6ZS5jICAgICAgIHwgMzMg KysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9kYnNpemUub3V0IHwgMTUgKysrKysrKy0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwv ZGJzaXplLnNxbCAgICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9u cygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggOTdiM2YxYzFhNi4uZmE1ZjYw Y2Y0YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvZnVuYy5zZ21sCkBAIC0yNzE2Niw4ICsyNzE2NiwxMSBAQCA8dGl0bGU+RGF0YWJh c2UgT2JqZWN0IFNpemUgRnVuY3Rpb25zPC90aXRsZT4KICAgICAgICAgPHJldHVybnZhbHVl PmJpZ2ludDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgot ICAgICAgICBDb252ZXJ0cyBhIHNpemUgaW4gaHVtYW4tcmVhZGFibGUgZm9ybWF0IChhcyBy ZXR1cm5lZAotICAgICAgICBieSA8ZnVuY3Rpb24+cGdfc2l6ZV9wcmV0dHk8L2Z1bmN0aW9u PikgaW50byBieXRlcy4KKyAgICAgICAgQ29udmVydHMgYSBzaXplIGluIGh1bWFuLXJlYWRh YmxlIGZvcm1hdCAoYXMgcmV0dXJuZWQgYnkKKyAgICAgICAgPGZ1bmN0aW9uPnBnX3NpemVf cHJldHR5PC9mdW5jdGlvbj4pIGludG8gYnl0ZXMuICBWYWxpZCB1bml0cyBhcmUKKyAgICAg ICAgPGxpdGVyYWw+Ynl0ZXM8L2xpdGVyYWw+LCA8bGl0ZXJhbD5CPC9saXRlcmFsPiwgPGxp dGVyYWw+a0I8L2xpdGVyYWw+LAorICAgICAgICA8bGl0ZXJhbD5NQjwvbGl0ZXJhbD4sIDxs aXRlcmFsPkdCPC9saXRlcmFsPiwgPGxpdGVyYWw+VEI8L2xpdGVyYWw+LAorICAgICAgICBh bmQgPGxpdGVyYWw+UEI8L2xpdGVyYWw+LgogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAg ICAgPC9yb3c+CiAKQEAgLTI3MTg1LDcgKzI3MTg4LDcgQEAgPHRpdGxlPkRhdGFiYXNlIE9i amVjdCBTaXplIEZ1bmN0aW9uczwvdGl0bGU+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxw YXJhPgogICAgICAgICBDb252ZXJ0cyBhIHNpemUgaW4gYnl0ZXMgaW50byBhIG1vcmUgZWFz aWx5IGh1bWFuLXJlYWRhYmxlIGZvcm1hdCB3aXRoCi0gICAgICAgIHNpemUgdW5pdHMgKGJ5 dGVzLCBrQiwgTUIsIEdCIG9yIFRCIGFzIGFwcHJvcHJpYXRlKS4gIE5vdGUgdGhhdCB0aGUK KyAgICAgICAgc2l6ZSB1bml0cyAoYnl0ZXMsIGtCLCBNQiwgR0IsIFRCLCBldGMuIGFzIGFw cHJvcHJpYXRlKS4gIE5vdGUgdGhhdCB0aGUKICAgICAgICAgdW5pdHMgYXJlIHBvd2VycyBv ZiAyIHJhdGhlciB0aGFuIHBvd2VycyBvZiAxMCwgc28gMWtCIGlzIDEwMjQgYnl0ZXMsCiAg ICAgICAgIDFNQiBpcyAxMDI0PHN1cGVyc2NyaXB0PjI8L3N1cGVyc2NyaXB0PiA9IDEwNDg1 NzYgYnl0ZXMsIGFuZCBzbyBvbi4KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYnNpemUuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYnNpemUuYwppbmRleCBkYmQ0MDQxMDFmLi44ZDVjYTQxYzhiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGJzaXplLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2Ric2l6ZS5jCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBzaXplX3ByZXR0eV91 bml0CiAJCQkJCQkJCSAqIHVuaXQgKi8KIH07CiAKLS8qIFdoZW4gYWRkaW5nIHVuaXRzIGhl cmUgYWxzbyB1cGRhdGUgdGhlIGVycm9yIG1lc3NhZ2UgaW4gcGdfc2l6ZV9ieXRlcyAqLwor LyogV2hlbiBhZGRpbmcgdW5pdHMgaGVyZSBhbHNvIHVwZGF0ZSB0aGUgZG9jcyBhbmQgdGhl IGVycm9yIG1lc3NhZ2UgaW4gcGdfc2l6ZV9ieXRlcyAqLwogc3RhdGljIGNvbnN0IHN0cnVj dCBzaXplX3ByZXR0eV91bml0IHNpemVfcHJldHR5X3VuaXRzW10gPSB7CiAJeyJieXRlcyIs IDEwICogMTAyNCwgZmFsc2UsIDB9LAogCXsia0IiLCAyMCAqIDEwMjQgLSAxLCB0cnVlLCAx MH0sCkBAIC01Nyw2ICs1NywxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNpemVfcHJldHR5 X3VuaXQgc2l6ZV9wcmV0dHlfdW5pdHNbXSA9IHsKIAl7TlVMTCwgMCwgZmFsc2UsIDB9CiB9 OwogCisvKiBBZGRpdGlvbmFsIHVuaXQgYWxpYXNlcyBhY2NldGVkIGJ5IHBnX3NpemVfYnl0 ZXMgKi8KK3N0cnVjdCBzaXplX2J5dGVzX3VuaXRfYWxpYXMKK3sKKwljb25zdCBjaGFyICph bGlhczsKKwlpbnQJCQl1bml0X2luZGV4OwkJLyogY29ycmVzcG9uZGluZyBzaXplX3ByZXR0 eV91bml0cyBlbGVtZW50ICovCit9OworCisvKiBXaGVuIGFkZGluZyB1bml0cyBoZXJlIGFs c28gdXBkYXRlIHRoZSBkb2NzIGFuZCB0aGUgZXJyb3IgbWVzc2FnZSBpbiBwZ19zaXplX2J5 dGVzICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNpemVfYnl0ZXNfdW5pdF9hbGlhcyBzaXpl X2J5dGVzX2FsaWFzZXNbXSA9IHsKKwl7IkIiLCAwfSwKKwl7TlVMTH0KK307CisKIC8qIFJl dHVybiBwaHlzaWNhbCBzaXplIG9mIGRpcmVjdG9yeSBjb250ZW50cywgb3IgMCBpZiBkaXIg ZG9lc24ndCBleGlzdCAqLwogc3RhdGljIGludDY0CiBkYl9kaXJfc2l6ZShjb25zdCBjaGFy ICpwYXRoKQpAQCAtODAxLDkgKzgxNCwxOSBAQCBwZ19zaXplX2J5dGVzKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXsKIAkJCS8qIFBhcnNlIHRoZSB1bml0IGNhc2UtaW5zZW5zaXRpdmVseSAq LwogCQkJaWYgKHBnX3N0cmNhc2VjbXAoc3RycHRyLCB1bml0LT5uYW1lKSA9PSAwKQotCQkJ ewotCQkJCW11bHRpcGxpZXIgPSAoKGludDY0KSAxKSA8PCB1bml0LT51bml0Yml0czsKIAkJ CQlicmVhazsKKwkJfQorCisJCS8qIElmIG5vdCBmb3VuZCwgbG9vayBpbiB0YWJsZSBvZiBh bGlhc2VzICovCisJCWlmICh1bml0LT5uYW1lID09IE5VTEwpCisJCXsKKwkJCWZvciAoY29u c3Qgc3RydWN0IHNpemVfYnl0ZXNfdW5pdF9hbGlhcyAqYSA9IHNpemVfYnl0ZXNfYWxpYXNl czsgYS0+YWxpYXMgIT0gTlVMTDsgYSsrKQorCQkJeworCQkJCWlmIChwZ19zdHJjYXNlY21w KHN0cnB0ciwgYS0+YWxpYXMpID09IDApCisJCQkJeworCQkJCQl1bml0ID0gJnNpemVfcHJl dHR5X3VuaXRzW2EtPnVuaXRfaW5kZXhdOworCQkJCQlicmVhazsKKwkJCQl9CiAJCQl9CiAJ CX0KIApAQCAtODEzLDcgKzgzNiw5IEBAIHBnX3NpemVfYnl0ZXMoUEdfRlVOQ1RJT05fQVJH UykKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJ CQkJCSBlcnJtc2coImludmFsaWQgc2l6ZTogXCIlc1wiIiwgdGV4dF90b19jc3RyaW5nKGFy ZykpLAogCQkJCQkgZXJyZGV0YWlsKCJJbnZhbGlkIHNpemUgdW5pdDogXCIlc1wiLiIsIHN0 cnB0ciksCi0JCQkJCSBlcnJoaW50KCJWYWxpZCB1bml0cyBhcmUgXCJieXRlc1wiLCBcImtC XCIsIFwiTUJcIiwgXCJHQlwiLCBcIlRCXCIsIGFuZCBcIlBCXCIuIikpKTsKKwkJCQkJIGVy cmhpbnQoIlZhbGlkIHVuaXRzIGFyZSBcImJ5dGVzXCIsIFwiQlwiLCBcImtCXCIsIFwiTUJc IiwgXCJHQlwiLCBcIlRCXCIsIGFuZCBcIlBCXCIuIikpKTsKKworCQltdWx0aXBsaWVyID0g KChpbnQ2NCkgMSkgPDwgdW5pdC0+dW5pdGJpdHM7CiAKIAkJaWYgKG11bHRpcGxpZXIgPiAx KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Ric2l6ZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Ric2l6ZS5vdXQKaW5kZXggZDhkNjY4 NmI1Zi4uZjExMjFhODdhYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9kYnNpemUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGJzaXplLm91 dApAQCAtODEsMTIgKzgxLDEzIEBAIFNFTEVDVCBzaXplLCBwZ19zaXplX3ByZXR0eShzaXpl KSwgcGdfc2l6ZV9wcmV0dHkoLTEgKiBzaXplKSBGUk9NCiAKIC0tIHBnX3NpemVfYnl0ZXMo KSB0ZXN0cwogU0VMRUNUIHNpemUsIHBnX3NpemVfYnl0ZXMoc2l6ZSkgRlJPTQotICAgIChW QUxVRVMgKCcxJyksICgnMTIzYnl0ZXMnKSwgKCcxa0InKSwgKCcxTUInKSwgKCcgMSBHQicp LCAoJzEuNSBHQiAnKSwKKyAgICAoVkFMVUVTICgnMScpLCAoJzEyM2J5dGVzJyksICgnMjU2 IEInKSwgKCcxa0InKSwgKCcxTUInKSwgKCcgMSBHQicpLCAoJzEuNSBHQiAnKSwKICAgICAg ICAgICAgICgnMVRCJyksICgnMzAwMCBUQicpLCAoJzFlNiBNQicpLCAoJzk5IFBCJykpIHgo c2l6ZSk7CiAgICBzaXplICAgfCAgIHBnX3NpemVfYnl0ZXMgICAgCiAtLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgMSAgICAgICAgfCAgICAgICAgICAgICAgICAgIDEKICAx MjNieXRlcyB8ICAgICAgICAgICAgICAgIDEyMworIDI1NiBCICAgIHwgICAgICAgICAgICAg ICAgMjU2CiAgMWtCICAgICAgfCAgICAgICAgICAgICAgIDEwMjQKICAxTUIgICAgICB8ICAg ICAgICAgICAgMTA0ODU3NgogICAxIEdCICAgIHwgICAgICAgICAxMDczNzQxODI0CkBAIC05 NSw3ICs5Niw3IEBAIFNFTEVDVCBzaXplLCBwZ19zaXplX2J5dGVzKHNpemUpIEZST00KICAz MDAwIFRCICB8ICAgMzI5ODUzNDg4MzMyODAwMAogIDFlNiBNQiAgIHwgICAgICAxMDQ4NTc2 MDAwMDAwCiAgOTkgUEIgICAgfCAxMTE0NjQwOTA3Nzc0MTk3NzYKLSgxMCByb3dzKQorKDEx IHJvd3MpCiAKIC0tIGNhc2UtaW5zZW5zaXRpdmUgdW5pdHMgYXJlIHN1cHBvcnRlZAogU0VM RUNUIHNpemUsIHBnX3NpemVfYnl0ZXMoc2l6ZSkgRlJPTQpAQCAtMTUzLDE1ICsxNTQsMTUg QEAgU0VMRUNUIHNpemUsIHBnX3NpemVfYnl0ZXMoc2l6ZSkgRlJPTQogU0VMRUNUIHBnX3Np emVfYnl0ZXMoJzEgQUInKTsKIEVSUk9SOiAgaW52YWxpZCBzaXplOiAiMSBBQiIKIERFVEFJ TDogIEludmFsaWQgc2l6ZSB1bml0OiAiQUIiLgotSElOVDogIFZhbGlkIHVuaXRzIGFyZSAi Ynl0ZXMiLCAia0IiLCAiTUIiLCAiR0IiLCAiVEIiLCBhbmQgIlBCIi4KK0hJTlQ6ICBWYWxp ZCB1bml0cyBhcmUgImJ5dGVzIiwgIkIiLCAia0IiLCAiTUIiLCAiR0IiLCAiVEIiLCBhbmQg IlBCIi4KIFNFTEVDVCBwZ19zaXplX2J5dGVzKCcxIEFCIEEnKTsKIEVSUk9SOiAgaW52YWxp ZCBzaXplOiAiMSBBQiBBIgogREVUQUlMOiAgSW52YWxpZCBzaXplIHVuaXQ6ICJBQiBBIi4K LUhJTlQ6ICBWYWxpZCB1bml0cyBhcmUgImJ5dGVzIiwgImtCIiwgIk1CIiwgIkdCIiwgIlRC IiwgYW5kICJQQiIuCitISU5UOiAgVmFsaWQgdW5pdHMgYXJlICJieXRlcyIsICJCIiwgImtC IiwgIk1CIiwgIkdCIiwgIlRCIiwgYW5kICJQQiIuCiBTRUxFQ1QgcGdfc2l6ZV9ieXRlcygn MSBBQiBBICAgICcpOwogRVJST1I6ICBpbnZhbGlkIHNpemU6ICIxIEFCIEEgICAgIgogREVU QUlMOiAgSW52YWxpZCBzaXplIHVuaXQ6ICJBQiBBIi4KLUhJTlQ6ICBWYWxpZCB1bml0cyBh cmUgImJ5dGVzIiwgImtCIiwgIk1CIiwgIkdCIiwgIlRCIiwgYW5kICJQQiIuCitISU5UOiAg VmFsaWQgdW5pdHMgYXJlICJieXRlcyIsICJCIiwgImtCIiwgIk1CIiwgIkdCIiwgIlRCIiwg YW5kICJQQiIuCiBTRUxFQ1QgcGdfc2l6ZV9ieXRlcygnOTIyMzM3MjAzNjg1NDc3NTgwNy45 Jyk7CiBFUlJPUjogIGJpZ2ludCBvdXQgb2YgcmFuZ2UKIFNFTEVDVCBwZ19zaXplX2J5dGVz KCcxZTEwMCcpOwpAQCAtMTcxLDcgKzE3Miw3IEBAIEVSUk9SOiAgdmFsdWUgb3ZlcmZsb3dz IG51bWVyaWMgZm9ybWF0CiBTRUxFQ1QgcGdfc2l6ZV9ieXRlcygnMSBieXRlJyk7ICAtLSB0 aGUgc2luZ3VsYXIgImJ5dGUiIGlzIG5vdCBzdXBwb3J0ZWQKIEVSUk9SOiAgaW52YWxpZCBz aXplOiAiMSBieXRlIgogREVUQUlMOiAgSW52YWxpZCBzaXplIHVuaXQ6ICJieXRlIi4KLUhJ TlQ6ICBWYWxpZCB1bml0cyBhcmUgImJ5dGVzIiwgImtCIiwgIk1CIiwgIkdCIiwgIlRCIiwg YW5kICJQQiIuCitISU5UOiAgVmFsaWQgdW5pdHMgYXJlICJieXRlcyIsICJCIiwgImtCIiwg Ik1CIiwgIkdCIiwgIlRCIiwgYW5kICJQQiIuCiBTRUxFQ1QgcGdfc2l6ZV9ieXRlcygnJyk7 CiBFUlJPUjogIGludmFsaWQgc2l6ZTogIiIKIFNFTEVDVCBwZ19zaXplX2J5dGVzKCdrYicp OwpAQCAtMTg5LDYgKzE5MCw2IEBAIEVSUk9SOiAgaW52YWxpZCBzaXplOiAiLis5MTIiCiBT RUxFQ1QgcGdfc2l6ZV9ieXRlcygnKzkxMisga0InKTsKIEVSUk9SOiAgaW52YWxpZCBzaXpl OiAiKzkxMisga0IiCiBERVRBSUw6ICBJbnZhbGlkIHNpemUgdW5pdDogIisga0IiLgotSElO VDogIFZhbGlkIHVuaXRzIGFyZSAiYnl0ZXMiLCAia0IiLCAiTUIiLCAiR0IiLCAiVEIiLCBh bmQgIlBCIi4KK0hJTlQ6ICBWYWxpZCB1bml0cyBhcmUgImJ5dGVzIiwgIkIiLCAia0IiLCAi TUIiLCAiR0IiLCAiVEIiLCBhbmQgIlBCIi4KIFNFTEVDVCBwZ19zaXplX2J5dGVzKCcrKzEy MyBrQicpOwogRVJST1I6ICBpbnZhbGlkIHNpemU6ICIrKzEyMyBrQiIKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ric2l6ZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9kYnNpemUuc3FsCmluZGV4IDdkZjg2NTI3MWIuLmIzNGNmMzMzODUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ric2l6ZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvZGJzaXplLnNxbApAQCAtMjksNyArMjksNyBAQAogCiAtLSBwZ19zaXplX2J5dGVz KCkgdGVzdHMKIFNFTEVDVCBzaXplLCBwZ19zaXplX2J5dGVzKHNpemUpIEZST00KLSAgICAo VkFMVUVTICgnMScpLCAoJzEyM2J5dGVzJyksICgnMWtCJyksICgnMU1CJyksICgnIDEgR0In KSwgKCcxLjUgR0IgJyksCisgICAgKFZBTFVFUyAoJzEnKSwgKCcxMjNieXRlcycpLCAoJzI1 NiBCJyksICgnMWtCJyksICgnMU1CJyksICgnIDEgR0InKSwgKCcxLjUgR0IgJyksCiAgICAg ICAgICAgICAoJzFUQicpLCAoJzMwMDAgVEInKSwgKCcxZTYgTUInKSwgKCc5OSBQQicpKSB4 KHNpemUpOwogCiAtLSBjYXNlLWluc2Vuc2l0aXZlIHVuaXRzIGFyZSBzdXBwb3J0ZWQKCmJh c2UtY29tbWl0OiA0NmQ0OTBhYzE5YTdjYTkzYTVjMGY0N2U1YTBlNzU5YjUzODVhOGFlCi0t IAoyLjM5LjIKCg== --------------vnT7r0iHx08RB5IASCcxKVx2--