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 1megiE-0006BK-1G for pgsql-hackers@arkaria.postgresql.org; Sun, 24 Oct 2021 16:51:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1megiB-0005QM-UD for pgsql-hackers@arkaria.postgresql.org; Sun, 24 Oct 2021 16:51:07 +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 1megiB-0005QC-9l for pgsql-hackers@lists.postgresql.org; Sun, 24 Oct 2021 16:51:07 +0000 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1megi5-0007PC-Mh for pgsql-hackers@postgresql.org; Sun, 24 Oct 2021 16:51:06 +0000 Received: by mail-pl1-x62d.google.com with SMTP id t11so6257786plq.11 for ; Sun, 24 Oct 2021 09:51:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20210112.gappssmtp.com; s=20210112; h=message-id:subject:from:to:date:in-reply-to:references:mime-version; bh=FEmCFZmSdK1stYZG9+/nWD1X7P+RjFLDThtyrnb0224=; b=lW6wVoKnfII7juDEvcJ1OSOEh1Tg4D8jO7jHHWFK2gSpQzHOjIZ0tChLCjaxftuRQC Bg5v0scbqqxrwNiTh9Y7zVtYLGWzJfbxANE/sCJEKG2rt8Wh0svlXhIvnWKjv1rPVU62 jVgnsRSI4MbVbLYUJ82KJZA5LGoKHy1i4Tc4l+tJm/XFAvlu4z0tUQZlZOeJePjct7qV AFd4lpulY7TlkACG2gC3wrSU8bLPwa2z5Qb0yNAZXb3PUWDv3MXeS++nBmrXNy0+qJBh 2isoCM9oSaYw5FUyRx3CM/MuLOGlKINH/DOCNiqaZsXUvpnrzWgysi6cgqiBt6+Cs8F2 7tZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to :references:mime-version; bh=FEmCFZmSdK1stYZG9+/nWD1X7P+RjFLDThtyrnb0224=; b=molqw3NG2g+XGksebZ9F81PIXgChIML08OecseOtgHpq2xfYoZ3jVjWuGt1Pq+NLJk hbHekOhPdUD5VdaKX8xahcdYm5lWH1ZBfcbhtT/dWsFK2i0f/9hisYqXiddDun5qARSI 7ddAiLwyGF+4voFUFBF1LHHdqFtoJOZI4RlNWh2CmAF8oHKC/AO4RAYgYX/i0pbc9MVd h6tc/Ni1CiNyXCOC9Zv0xjsE3kMO72ue0anfAgqn1bG+SVbErmbyS6nkjGKzJ3vKZMaO DmtGNBiygrf2jfPLR8/6ZK4z1X2WmbsGXby3vVpe9k/uylZu8H3wEIvApDK4udtfTS+9 p3Ag== X-Gm-Message-State: AOAM533a03RmCWATpegHVns6+Y0KsJV3DyM7ROFjGnEEFiwDrn9xDvMB GszXoaG6jyftDLTUM3eDe2wkfQ== X-Google-Smtp-Source: ABdhPJzrTK1dIAcz5lGg0SNkFRsExmZZgBhkVHEHe/wAwCt1+vmjbaLN8UwuPH1HxsQShx8ElA+yZg== X-Received: by 2002:a17:90b:1e05:: with SMTP id pg5mr14926096pjb.173.1635094260456; Sun, 24 Oct 2021 09:51:00 -0700 (PDT) Received: from jdavis.lan (c-73-231-146-4.hsd1.ca.comcast.net. [73.231.146.4]) by smtp.gmail.com with ESMTPSA id b3sm13084345pfm.54.2021.10.24.09.50.59 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 24 Oct 2021 09:50:59 -0700 (PDT) Message-ID: Subject: Re: Allow pg_signal_backend members to use pg_log_backend_memory_stats(). From: Jeff Davis To: "Bossart, Nathan" , "pgsql-hackers@postgresql.org" Date: Sun, 24 Oct 2021 09:50:58 -0700 In-Reply-To: <33F34F0C-BB16-48DE-B125-95D340A54AE8@amazon.com> References: <33F34F0C-BB16-48DE-B125-95D340A54AE8@amazon.com> Content-Type: multipart/mixed; boundary="=-ZPRvTFfLKVwN97p0aQbI" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 Mime-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-ZPRvTFfLKVwN97p0aQbI Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit On Sat, 2021-10-23 at 20:42 +0000, Bossart, Nathan wrote: > The predefined roles documentation notes > that members of pg_signal_backend cannot signal superuser-owned > backends, but AFAICT pg_log_backend_memory_contexts() has no such > restriction at the moment. Should we add this? Added, good catch. > This is unrelated to this patch, but should we also consider opening > up pg_reload_conf() and pg_rotate_logfile() to members of > pg_signal_backend? Those are the other "server signaling functions" > I > see in the docs. Those are actually signalling the postmaster, not an ordinary backend. Also, those functions are already GRANTable, so I think we should leave them as-is. Regards, Jeff Davis --=-ZPRvTFfLKVwN97p0aQbI Content-Disposition: attachment; filename*0=0001-Allow-pg_signal_backend-members-to-call-pg_log_backe.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Allow-pg_signal_backend-members-to-call-pg_log_backe.patch"; charset="UTF-8" RnJvbSAzYmUyOTY4MTlkNjE5NWNiYWZjZTcyYWIwODVjODQzMGYxZThhNTAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDIyIE9jdCAyMDIxIDEzOjQwOjM1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQWxsb3cgcGdf c2lnbmFsX2JhY2tlbmQgbWVtYmVycyB0byBjYWxsCiBwZ19sb2dfYmFja2VuZF9tZW1vcnlfY29u dGV4dHMoKS4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZTVjZjY2ODRkMTdjOGQx ZWY0OTA0YWUyNDg2MDVjY2Q2ZGEwM2U3Mi5jYW1lbEBqLWRhdmlzLmNvbQotLS0KIGRvYy9zcmMv c2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrLS0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwgICAgIHwgIDUgKysrKysKIHNyYy9iYWNr ZW5kL3V0aWxzL2FkdC9tY3h0ZnVuY3MuYyAgICAgICAgICAgIHwgMjAgKysrKysrKystLS0tLS0t LS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oICAgICAgICAgICAgIHwgIDIgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0IHwgMjMgKysrKysr KysrKysrKysrKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbCAg ICAgIHwgMTUgKysrKysrKysrKystLQogNiBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCsp LCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIv ZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCA1Njc3MDMyY2IyOC4uZWU4OTAzZmU0ODQgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbApAQCAtMjUzMzIsOCArMjUzMzIsOSBAQCBTRUxFQ1QgY29sbGF0aW9uIGZvciAoJ2Zvbycg Q09MTEFURSAiZGVfREUiKTsKICAgICAgICAgKFNlZSA8eHJlZiBsaW5rZW5kPSJydW50aW1lLWNv bmZpZy1sb2dnaW5nIi8+IGZvciBtb3JlIGluZm9ybWF0aW9uKSwKICAgICAgICAgYnV0IHdpbGwg bm90IGJlIHNlbnQgdG8gdGhlIGNsaWVudCByZWdhcmRsZXNzIG9mCiAgICAgICAgIDx4cmVmIGxp bmtlbmQ9Imd1Yy1jbGllbnQtbWluLW1lc3NhZ2VzIi8+LgotICAgICAgICBPbmx5IHN1cGVydXNl cnMgY2FuIHJlcXVlc3QgdG8gbG9nIHRoZSBtZW1vcnkgY29udGV4dHMuCi0gICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgICAgIFRoaXMgaXMgYWxzbyBhbGxvd2VkIGlmIHRoZSBjYWxsaW5nIHJv bGUgaGFzIGJlZW4gZ3JhbnRlZAorICAgICAgICA8bGl0ZXJhbD5wZ19zaWduYWxfYmFja2VuZDwv bGl0ZXJhbD4sIGhvd2V2ZXIgb25seSBzdXBlcnVzZXJzIGNhbgorICAgICAgICBjYW5jZWwgc3Vw ZXJ1c2VyIGJhY2tlbmRzLiAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAogICAgICAg PHJvdz4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5z cWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCmluZGV4IGE0MTZl OTRkMzcxLi4yY2Q1ZTNmZTE3YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fZnVuY3Rpb25zLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlv bnMuc3FsCkBAIC02OTksNiArNjk5LDggQEAgUkVWT0tFIEVYRUNVVEUgT04gRlVOQ1RJT04gcGdf bHNfZGlyKHRleHQpIEZST00gcHVibGljOwogCiBSRVZPS0UgRVhFQ1VURSBPTiBGVU5DVElPTiBw Z19sc19kaXIodGV4dCxib29sZWFuLGJvb2xlYW4pIEZST00gcHVibGljOwogCitSRVZPS0UgRVhF Q1VURSBPTiBGVU5DVElPTiBwZ19sb2dfYmFja2VuZF9tZW1vcnlfY29udGV4dHMoaW50ZWdlcikg RlJPTSBQVUJMSUM7CisKIC0tCiAtLSBXZSBhbHNvIHNldCB1cCBzb21lIHRoaW5ncyBhcyBhY2Nl c3NpYmxlIHRvIHN0YW5kYXJkIHJvbGVzLgogLS0KQEAgLTcxMyw2ICs3MTUsOSBAQCBHUkFOVCBF WEVDVVRFIE9OIEZVTkNUSU9OIHBnX2xzX3RtcGRpcigpIFRPIHBnX21vbml0b3I7CiAKIEdSQU5U IEVYRUNVVEUgT04gRlVOQ1RJT04gcGdfbHNfdG1wZGlyKG9pZCkgVE8gcGdfbW9uaXRvcjsKIAor R1JBTlQgRVhFQ1VURSBPTiBGVU5DVElPTiBwZ19sb2dfYmFja2VuZF9tZW1vcnlfY29udGV4dHMo aW50ZWdlcikKKyAgVE8gcGdfc2lnbmFsX2JhY2tlbmQ7CisKIEdSQU5UIHBnX3JlYWRfYWxsX3Nl dHRpbmdzIFRPIHBnX21vbml0b3I7CiAKIEdSQU5UIHBnX3JlYWRfYWxsX3N0YXRzIFRPIHBnX21v bml0b3I7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbWN4dGZ1bmNzLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvbWN4dGZ1bmNzLmMKaW5kZXggMGQ1MjYxM2JjMzIuLmEyZjQ1 ZmI4NTc4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbWN4dGZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21jeHRmdW5jcy5jCkBAIC0xNjIsMTAgKzE2MiwxMCBA QCBwZ19nZXRfYmFja2VuZF9tZW1vcnlfY29udGV4dHMoUEdfRlVOQ1RJT05fQVJHUykKICAqIHBn X2xvZ19iYWNrZW5kX21lbW9yeV9jb250ZXh0cwogICoJCVNpZ25hbCBhIGJhY2tlbmQgcHJvY2Vz cyB0byBsb2cgaXRzIG1lbW9yeSBjb250ZXh0cy4KICAqCi0gKiBPbmx5IHN1cGVydXNlcnMgYXJl IGFsbG93ZWQgdG8gc2lnbmFsIHRvIGxvZyB0aGUgbWVtb3J5IGNvbnRleHRzCi0gKiBiZWNhdXNl IGFsbG93aW5nIGFueSB1c2VycyB0byBpc3N1ZSB0aGlzIHJlcXVlc3QgYXQgYW4gdW5ib3VuZGVk Ci0gKiByYXRlIHdvdWxkIGNhdXNlIGxvdHMgb2YgbG9nIG1lc3NhZ2VzIGFuZCB3aGljaCBjYW4g bGVhZCB0bwotICogZGVuaWFsIG9mIHNlcnZpY2UuCisgKiBPbmx5IG1lbWJlcnMgb2YgcGdfc2ln bmFsX2JhY2tlbmQgYXJlIGFsbG93ZWQgdG8gc2lnbmFsIHRvIGxvZyB0aGUgbWVtb3J5CisgKiBj b250ZXh0cyBiZWNhdXNlIGFsbG93aW5nIGFueSB1c2VycyB0byBpc3N1ZSB0aGlzIHJlcXVlc3Qg YXQgYW4gdW5ib3VuZGVkCisgKiByYXRlIHdvdWxkIGNhdXNlIGxvdHMgb2YgbG9nIG1lc3NhZ2Vz IGFuZCB3aGljaCBjYW4gbGVhZCB0byBkZW5pYWwgb2YKKyAqIHNlcnZpY2UuCiAgKgogICogT24g cmVjZWlwdCBvZiB0aGlzIHNpZ25hbCwgYSBiYWNrZW5kIHNldHMgdGhlIGZsYWcgaW4gdGhlIHNp Z25hbAogICogaGFuZGxlciwgd2hpY2ggY2F1c2VzIHRoZSBuZXh0IENIRUNLX0ZPUl9JTlRFUlJV UFRTKCkgdG8gbG9nIHRoZQpAQCAtMTc3LDEyICsxNzcsNiBAQCBwZ19sb2dfYmFja2VuZF9tZW1v cnlfY29udGV4dHMoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQJCQlwaWQgPSBQR19HRVRBUkdfSU5U MzIoMCk7CiAJUEdQUk9DCSAgICpwcm9jOwogCi0JLyogT25seSBhbGxvdyBzdXBlcnVzZXJzIHRv IGxvZyBtZW1vcnkgY29udGV4dHMuICovCi0JaWYgKCFzdXBlcnVzZXIoKSkKLQkJZXJlcG9ydChF UlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAotCQkJ CSBlcnJtc2coIm11c3QgYmUgYSBzdXBlcnVzZXIgdG8gbG9nIG1lbW9yeSBjb250ZXh0cyIpKSk7 Ci0KIAlwcm9jID0gQmFja2VuZFBpZEdldFByb2MocGlkKTsKIAogCS8qCkBAIC0yMDUsNiArMTk5 LDEyIEBAIHBnX2xvZ19iYWNrZW5kX21lbW9yeV9jb250ZXh0cyhQR19GVU5DVElPTl9BUkdTKQog CQlQR19SRVRVUk5fQk9PTChmYWxzZSk7CiAJfQogCisJLyogT25seSBhbGxvdyBzdXBlcnVzZXJz IHRvIHNpZ25hbCBzdXBlcnVzZXItb3duZWQgYmFja2VuZHMuICovCisJaWYgKHN1cGVydXNlcl9h cmcocHJvYy0+cm9sZUlkKSAmJiAhc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJt dXN0IGJlIGEgc3VwZXJ1c2VyIHRvIGxvZyBtZW1vcnkgY29udGV4dHMgb2Ygc3VwZXJ1c2VyIGJh Y2tlbmQiKSkpOworCiAJaWYgKFNlbmRQcm9jU2lnbmFsKHBpZCwgUFJPQ1NJR19MT0dfTUVNT1JZ X0NPTlRFWFQsIHByb2MtPmJhY2tlbmRJZCkgPCAwKQogCXsKIAkJLyogQWdhaW4sIGp1c3QgYSB3 YXJuaW5nIHRvIGFsbG93IGxvb3BzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L2NhdHZlcnNpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oCmluZGV4IDMy NTNiODc1MWIxLi4wMzlmNjMzODYwNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9j YXR2ZXJzaW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKQEAgLTUz LDYgKzUzLDYgQEAKICAqLwogCiAvKgkJCQkJCQl5eXl5bW1kZE4gKi8KLSNkZWZpbmUgQ0FUQUxP R19WRVJTSU9OX05PCTIwMjEwOTEwMQorI2RlZmluZSBDQVRBTE9HX1ZFUlNJT05fTk8JMjAyMTEw MjMwCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9taXNj X2Z1bmN0aW9ucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21pc2NfZnVuY3Rpb25z Lm91dAppbmRleCBlODQ1MDQyZDM4ZC4uYTI3OWMxNjQwMjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvbWlzY19mdW5jdGlvbnMub3V0CkBAIC0xMzgsMTQgKzEzOCwzMyBAQCBISU5U OiAgTm8gZnVuY3Rpb24gbWF0Y2hlcyB0aGUgZ2l2ZW4gbmFtZSBhbmQgYXJndW1lbnQgdHlwZXMu IFlvdSBtaWdodCBuZWVkIHRvCiAtLQogLS0gTWVtb3J5IGNvbnRleHRzIGFyZSBsb2dnZWQgYW5k IHRoZXkgYXJlIG5vdCByZXR1cm5lZCB0byB0aGUgZnVuY3Rpb24uCiAtLSBGdXJ0aGVybW9yZSwg dGhlaXIgY29udGVudHMgY2FuIHZhcnkgZGVwZW5kaW5nIG9uIHRoZSB0aW1pbmcuIEhvd2V2ZXIs Ci0tLSB3ZSBjYW4gYXQgbGVhc3QgdmVyaWZ5IHRoYXQgdGhlIGNvZGUgZG9lc24ndCBmYWlsLgor LS0gd2UgY2FuIGF0IGxlYXN0IHZlcmlmeSB0aGF0IHRoZSBjb2RlIGRvZXNuJ3QgZmFpbCwgYW5k IHRoYXQgdGhlCistLSBwZXJtaXNzaW9ucyBhcmUgc2V0IHByb3Blcmx5LgogLS0KLVNFTEVDVCAq IEZST00gcGdfbG9nX2JhY2tlbmRfbWVtb3J5X2NvbnRleHRzKHBnX2JhY2tlbmRfcGlkKCkpOwor U0VMRUNUIHBnX2xvZ19iYWNrZW5kX21lbW9yeV9jb250ZXh0cyhwZ19iYWNrZW5kX3BpZCgpKTsK ICBwZ19sb2dfYmFja2VuZF9tZW1vcnlfY29udGV4dHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIHQKICgxIHJvdykKIAorQ1JFQVRFIFJPTEUgcmVncmVzc19zaWduYWwgSU4g Uk9MRSBwZ19zaWduYWxfYmFja2VuZDsKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9zaWduYWw7CitT RUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgncmVncmVzc19zaWduYWwnLAorICAncGdfbG9n X2JhY2tlbmRfbWVtb3J5X2NvbnRleHRzKGludGVnZXIpJywgJ0VYRUNVVEUnKTsgLS0geWVzCisg aGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygx IHJvdykKKworU0VMRUNUIGhhc19mdW5jdGlvbl9wcml2aWxlZ2UoJ3JlZ3Jlc3Nfbm9zaWduYWwn LAorICAncGdfbG9nX2JhY2tlbmRfbWVtb3J5X2NvbnRleHRzKGludGVnZXIpJywgJ0VYRUNVVEUn KTsgLS0gbm8KKyBoYXNfZnVuY3Rpb25fcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgZgorKDEgcm93KQorCitEUk9QIFJPTEUgcmVncmVzc19zaWduYWw7CitEUk9QIFJPTEUg cmVncmVzc19ub3NpZ25hbDsKIC0tCiAtLSBUZXN0IHNvbWUgYnVpbHQtaW4gU1JGcwogLS0KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25zLnNxbAppbmRleCBhMzk4MzQ5YWZjNi4uMGRk ODk5OGI2MmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21pc2NfZnVuY3Rpb25z LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9taXNjX2Z1bmN0aW9ucy5zcWwKQEAgLTM1 LDkgKzM1LDIwIEBAIFNFTEVDVCBudW1fbnVsbHMoKTsKIC0tCiAtLSBNZW1vcnkgY29udGV4dHMg YXJlIGxvZ2dlZCBhbmQgdGhleSBhcmUgbm90IHJldHVybmVkIHRvIHRoZSBmdW5jdGlvbi4KIC0t IEZ1cnRoZXJtb3JlLCB0aGVpciBjb250ZW50cyBjYW4gdmFyeSBkZXBlbmRpbmcgb24gdGhlIHRp bWluZy4gSG93ZXZlciwKLS0tIHdlIGNhbiBhdCBsZWFzdCB2ZXJpZnkgdGhhdCB0aGUgY29kZSBk b2Vzbid0IGZhaWwuCistLSB3ZSBjYW4gYXQgbGVhc3QgdmVyaWZ5IHRoYXQgdGhlIGNvZGUgZG9l c24ndCBmYWlsLCBhbmQgdGhhdCB0aGUKKy0tIHBlcm1pc3Npb25zIGFyZSBzZXQgcHJvcGVybHku CiAtLQotU0VMRUNUICogRlJPTSBwZ19sb2dfYmFja2VuZF9tZW1vcnlfY29udGV4dHMocGdfYmFj a2VuZF9waWQoKSk7CisKK1NFTEVDVCBwZ19sb2dfYmFja2VuZF9tZW1vcnlfY29udGV4dHMocGdf YmFja2VuZF9waWQoKSk7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc2lnbmFsIElOIFJPTEUgcGdf c2lnbmFsX2JhY2tlbmQ7CitDUkVBVEUgUk9MRSByZWdyZXNzX25vc2lnbmFsOworU0VMRUNUIGhh c19mdW5jdGlvbl9wcml2aWxlZ2UoJ3JlZ3Jlc3Nfc2lnbmFsJywKKyAgJ3BnX2xvZ19iYWNrZW5k X21lbW9yeV9jb250ZXh0cyhpbnRlZ2VyKScsICdFWEVDVVRFJyk7IC0tIHllcworU0VMRUNUIGhh c19mdW5jdGlvbl9wcml2aWxlZ2UoJ3JlZ3Jlc3Nfbm9zaWduYWwnLAorICAncGdfbG9nX2JhY2tl bmRfbWVtb3J5X2NvbnRleHRzKGludGVnZXIpJywgJ0VYRUNVVEUnKTsgLS0gbm8KK0RST1AgUk9M RSByZWdyZXNzX3NpZ25hbDsKK0RST1AgUk9MRSByZWdyZXNzX25vc2lnbmFsOwogCiAtLQogLS0g VGVzdCBzb21lIGJ1aWx0LWluIFNSRnMKLS0gCjIuMTcuMQoK --=-ZPRvTFfLKVwN97p0aQbI--