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 1t2d6c-005hjz-AY for pgsql-hackers@arkaria.postgresql.org; Sun, 20 Oct 2024 21:04:55 +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 1t2d6a-001YrL-Gw for pgsql-hackers@arkaria.postgresql.org; Sun, 20 Oct 2024 21:04:52 +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 1t2d6Y-001YrC-JQ for pgsql-hackers@lists.postgresql.org; Sun, 20 Oct 2024 21:04:52 +0000 Received: from fhigh-b2-smtp.messagingengine.com ([202.12.124.153]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t2d6V-001ti5-Q1 for pgsql-hackers@lists.postgresql.org; Sun, 20 Oct 2024 21:04:49 +0000 Received: from phl-compute-11.internal (phl-compute-11.phl.internal [10.202.2.51]) by mailfhigh.stl.internal (Postfix) with ESMTP id 721CD2540095; Sun, 20 Oct 2024 17:04:46 -0400 (EDT) Received: from phl-imap-02 ([10.202.2.81]) by phl-compute-11.internal (MEProxy); Sun, 20 Oct 2024 17:04:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=compiler.org; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm3; t=1729458286; x=1729544686; bh=b92c/KLIvn DsKZ8BuUafo4Kj3xGmDok7L7Tuk1t66lg=; b=exEVNYGCHbZOT/FUxMFS3VB+zj uddNFkvNm4l5j/f16NME4Z5UDmq0hQUdjSnr+v59/mq9xFyoCkqQbnek3fjFhRdF ST5UEgtatTNDTc5vbaHLRzfDM7YFax2yj4WCNI72lw7gHOoROyjCduamnHZk3CwS ECb8TSQC5a6NeYqCtKAjr4rBMr/t+mPiEqb2jfndNSwONDOwtYdEkcuJmcFaEGXs pw7Vm/u8c+LxdJZq+JZyzKnGq2OGqS8AIlYejCZ0rU7zkpwxL35gbOXdz47iWjtv VHIijxzcj25kMTJS7yqhmQ9GD8qTRczCraUeYnDGf2Ru6kAQfKAgFkrbUciA== 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:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1729458286; x=1729544686; bh=b92c/KLIvnDsKZ8BuUafo4Kj3xGm Dok7L7Tuk1t66lg=; b=moNcC0sfxJjcHLJdMcMCyrDsG9DzPEiIqcSeB9x1IcuV vf9SpIZ95c6Uo94CgeTlK8kV7dpyUT4vgaWv4dFih7cZwhKwiqQlsWVT7ZhVoFYE JGV3HJT+PQ80q1pDgCOHXn8jC3U1uQIHi/kMF1NPyZW2kc1S/2rKB9k42evxnAHW xlXREEckW5U2Ei5ZWLatBmofumtmNJhfoOMajvUzW0IHmzvfP2fzNQsa6/N0VG3t w5wUp364tItRupFJQ66O1KAVCsN5DYaJMmwAxUUsuqX1jCkzPHjwIKj3+9qjBonY 5UaZkC3P96xSa4SkkQcXHRWAjb/TmZs1H0GnhY+9bA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehjedgudehhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefoggffhffvvefkjghfufgtsehmtderreertddt necuhfhrohhmpedflfhovghlucflrggtohgsshhonhdfuceojhhovghlsegtohhmphhilh gvrhdrohhrgheqnecuggftrfgrthhtvghrnhepfffgleffffdvhefhieegfeeijedujedv ieeuveeugefgveeukeevieethefhteeinecuvehluhhsthgvrhfuihiivgeptdenucfrrg hrrghmpehmrghilhhfrhhomhepjhhovghlsegtohhmphhilhgvrhdrohhrghdpnhgspghr tghpthhtohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghlvhhhvghrrh gvsegrlhhvhhdrnhhoqdhiphdrohhrghdprhgtphhtthhopehpghhsqhhlqdhhrggtkhgv rhhssehlihhsthhsrdhpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: ic6394509:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id DE768B00068; Sun, 20 Oct 2024 17:04:45 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 Date: Sun, 20 Oct 2024 23:03:42 +0200 From: "Joel Jacobson" To: "Alvaro Herrera" Cc: pgsql-hackers@lists.postgresql.org Message-Id: <6b0a52f1-bf81-475f-9be1-b3cce6ba32a4@app.fastmail.com> In-Reply-To: <306c3ab4-f9d2-4e66-87d0-03d155325f1b@app.fastmail.com> References: <202410201014.dcvfvqdncdds@alvherre.pgsql> <306c3ab4-f9d2-4e66-87d0-03d155325f1b@app.fastmail.com> Subject: Re: Add pg_ownerships and pg_privileges system views Content-Type: multipart/mixed; boundary=5323ccac2cfc4ea28a079fe7ab8361bd List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --5323ccac2cfc4ea28a079fe7ab8361bd Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sun, Oct 20, 2024, at 16:52, Joel Jacobson wrote: > On Sun, Oct 20, 2024, at 12:14, Alvaro Herrera wrote: >> I think the function calls should be in the FROM clause, and restrict the >> pg_shdepend rows to only the ones in the current database: > > Cool. I assume pg_ownerships should be changed in the same way? > New patch attached. > >> Now, depending on pg_shdepend for this means that you don't report >> anything for an object until a GRANT to another user has been executed. >> For example if you REVOKE some priv from the object owner, nothing is >> shown until a GRANT is done for another user (and at that point onwards, >> privs by the owner are shown). This seems less than ideal, but I'm not >> sure how to do different, other than ditching the use of pg_shdepend >> entirely. > > Hmm, yeah that's a bit awkward. Maybe okay if clearly documented. I've tried to explain this behavior in the docs like this: This view reports privileges only when they have been explicitly granted to a role other than the object owner. By default, the object owner has all privileges on the object, but these default privileges are not displayed in this view until a privilege is granted to another role. For example, if you revoke some privileges from the object owner, nothing is shown in this view until a privilege is granted to another role, after which the owner's privileges are also displayed. /Joel --5323ccac2cfc4ea28a079fe7ab8361bd Content-Disposition: attachment; filename*0="v4-0001-Add-pg_ownerships-and-pg_privileges-system-views.patc"; filename*1="h" Content-Type: application/octet-stream; name="=?UTF-8?Q?v4-0001-Add-pg=5Fownerships-and-pg=5Fprivileges-system-views.p?= =?UTF-8?Q?atch?=" Content-Transfer-Encoding: base64 RnJvbSAzNTg4ODZlYjU5OGM5NDk2N2RiNzZmMzBkY2Y4MjgwZDAxNmUyYjFlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIEpha29ic3NvbiA8Z2l0aHViQGNvbXBpbGVy Lm9yZz4KRGF0ZTogVHVlLCA4IE9jdCAyMDI0IDE4OjM5OjA0ICswMjAwClN1YmplY3Q6IFtQ QVRDSF0gQWRkIHBnX293bmVyc2hpcHMgYW5kIHBnX3ByaXZpbGVnZXMgc3lzdGVtIHZpZXdz LgoKVGhlc2UgbmV3IHZpZXdzIHByb3ZpZGUgYSBtb3JlIGFjY2Vzc2libGUgYW5kIHVzZXIt ZnJpZW5kbHkgd2F5IHRvIHJldHJpZXZlCmluZm9ybWF0aW9uIGFib3V0IG9iamVjdCBvd25l cnNoaXBzIGFuZCBwcml2aWxlZ2VzLgoKVGhlIHZpZXcgcGdfb3duZXJzaGlwcyBwcm92aWRl cyBhY2Nlc3MgdG8gaW5mb3JtYXRpb24gYWJvdXQgb2JqZWN0IG93bmVyc2hpcHMuCgpUaGUg dmlldyBwZ19wcml2aWxlZ2VzIHByb3ZpZGVzIGFjY2VzcyB0byBpbmZvcm1hdGlvbiBhYm91 dCBleHBsaWNpdGx5CmdyYW50ZWQgcHJpdmlsZWdlcyBvbiBkYXRhYmFzZSBvYmplY3RzLiBU aGUgc3BlY2lhbCBncmFudGVlIHZhbHVlICItIiBtZWFucwp0aGUgcHJpdmlsZWdlIGlzIGdy YW50ZWQgdG8gUFVCTElDLgoKRXhhbXBsZSB1c2FnZToKCkNSRUFURSBST0xFIGFsaWNlOwpD UkVBVEUgUk9MRSBib2I7CkNSRUFURSBST0xFIGNhcm9sOwoKQ1JFQVRFIFRBQkxFIGFsaWNl X3RhYmxlICgpOwpBTFRFUiBUQUJMRSBhbGljZV90YWJsZSBPV05FUiBUTyBhbGljZTsKUkVW T0tFIEFMTCBPTiBhbGljZV90YWJsZSBGUk9NIGFsaWNlOwpHUkFOVCBTRUxFQ1QgT04gYWxp Y2VfdGFibGUgVE8gYm9iOwoKQ1JFQVRFIFRBQkxFIGJvYl90YWJsZSAoKTsKQUxURVIgVEFC TEUgYm9iX3RhYmxlIE9XTkVSIFRPIGJvYjsKUkVWT0tFIEFMTCBPTiBib2JfdGFibGUgRlJP TSBib2I7CkdSQU5UIFNFTEVDVCwgVVBEQVRFIE9OIGJvYl90YWJsZSBUTyBjYXJvbDsKClNF TEVDVCAqIEZST00gcGdfb3duZXJzaGlwcyBPUkRFUiBCWSBvd25lcjsKCiBjbGFzc2lkICB8 IG9iamlkIHwgb2Jqc3ViaWQgfCB0eXBlICB8IHNjaGVtYSB8ICAgIG5hbWUgICAgIHwgICAg ICBpZGVudGl0eSAgICAgIHwgb3duZXIKLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0KIHBnX2NsYXNzIHwgMTYzODggfCAgICAgICAgMCB8IHRhYmxlIHwgcHVibGljIHwg YWxpY2VfdGFibGUgfCBwdWJsaWMuYWxpY2VfdGFibGUgfCBhbGljZQogcGdfY2xhc3MgfCAx NjM5MSB8ICAgICAgICAwIHwgdGFibGUgfCBwdWJsaWMgfCBib2JfdGFibGUgICB8IHB1Ymxp Yy5ib2JfdGFibGUgICB8IGJvYgooMiByb3dzKQoKU0VMRUNUICogRlJPTSBwZ19wcml2aWxl Z2VzIE9SREVSIEJZIGdyYW50ZWU7CgogY2xhc3NpZCAgfCBvYmppZCB8IG9ianN1YmlkIHwg dHlwZSAgfCBzY2hlbWEgfCAgICBuYW1lICAgICB8ICAgICAgaWRlbnRpdHkgICAgICB8IGdy YW50b3IgfCBncmFudGVlIHwgcHJpdmlsZWdlX3R5cGUgfCBpc19ncmFudGFibGUKLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLQogcGdfY2xhc3MgfCAxNjM4OCB8ICAgICAgICAwIHwgdGFi bGUgfCBwdWJsaWMgfCBhbGljZV90YWJsZSB8IHB1YmxpYy5hbGljZV90YWJsZSB8IGFsaWNl ICAgfCBib2IgICAgIHwgU0VMRUNUICAgICAgICAgfCBmCiBwZ19jbGFzcyB8IDE2MzkxIHwg ICAgICAgIDAgfCB0YWJsZSB8IHB1YmxpYyB8IGJvYl90YWJsZSAgIHwgcHVibGljLmJvYl90 YWJsZSAgIHwgYm9iICAgICB8IGNhcm9sICAgfCBTRUxFQ1QgICAgICAgICB8IGYKIHBnX2Ns YXNzIHwgMTYzOTEgfCAgICAgICAgMCB8IHRhYmxlIHwgcHVibGljIHwgYm9iX3RhYmxlICAg fCBwdWJsaWMuYm9iX3RhYmxlICAgfCBib2IgICAgIHwgY2Fyb2wgICB8IFVQREFURSAgICAg ICAgIHwgZgooMyByb3dzKQotLS0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCAg ICAgICB8IDI3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCB8ICA0NyArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQgIHwgIDM4ICsrKysKIDMgZmlsZXMgY2hhbmdlZCwgMzU3IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNn bWwgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggNjFkMjhlNzAxZi4u MmJkOGIxNTg5ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbApAQCAtMTExLDYgKzExMSwx NiBAQAogICAgICAgPGVudHJ5Pm1hdGVyaWFsaXplZCB2aWV3czwvZW50cnk+CiAgICAgIDwv cm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0idmlldy1w Zy1vd25lcnNoaXBzIj48c3RydWN0bmFtZT5wZ19vd25lcnNoaXBzPC9zdHJ1Y3RuYW1lPjwv bGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5Pm93bmVyc2hpcHM8L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9InZpZXct cGctcHJpdmlsZWdlcyI+PHN0cnVjdG5hbWU+cGdfcHJpdmlsZWdlczwvc3RydWN0bmFtZT48 L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wcml2aWxlZ2VzPC9lbnRyeT4KKyAgICAg PC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJ2aWV3 LXBnLXBvbGljaWVzIj48c3RydWN0bmFtZT5wZ19wb2xpY2llczwvc3RydWN0bmFtZT48L2xp bms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5wb2xpY2llczwvZW50cnk+CkBAIC0xODM5LDYg KzE4NDksMjY4IEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3MgcGwgTEVGVCBKT0lOIHBnX3By ZXBhcmVkX3hhY3RzIHBweAogCiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0idmlldy1wZy1v d25lcnNoaXBzIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX293bmVyc2hpcHM8L3N0cnVj dG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZpZXctcGctb3duZXJzaGlw cyI+CisgICA8cHJpbWFyeT5wZ19vd25lcnNoaXBzPC9wcmltYXJ5PgorICA8L2luZGV4dGVy bT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1lPnBnX293bmVyc2hpcHM8 L3N0cnVjdG5hbWU+IHByb3ZpZGVzIGFjY2VzcyB0byBpbmZvcm1hdGlvbiBhYm91dCBvYmpl Y3Qgb3duZXJzaGlwcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3Ry dWN0bmFtZT5wZ19vd25lcnNoaXBzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAg IDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICAgPHN0cnVjdGZpZWxkPmNsYXNzaWQ8L3N0cnVjdGZpZWxk PiA8dHlwZT5yZWdjbGFzczwvdHlwZT4KKyAgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlu a2VuZD0iY2F0YWxvZy1wZy1jbGFzcyI+PHN0cnVjdG5hbWU+cGdfY2xhc3M8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIDx0eXBlPnJlZ2NsYXNzPC90eXBlPiBP SUQgb2YgdGhlIHN5c3RlbSBjYXRhbG9nIHRoZSBvd25lZCBvYmplY3QgaXMgaW4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICAgPHN0cnVjdGZpZWxkPm9iamlkPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgICAocmVmZXJlbmNlcyBhbnkgT0lEIGNvbHVtbikKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgT0lEIG9mIHRoZSBzcGVj aWZpYyBvd25lZCBvYmplY3QKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ b2Jqc3ViaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIGEgdGFibGUgY29sdW1uLCB0aGlzIGlzIHRo ZSBjb2x1bW4gbnVtYmVyICh0aGUKKyAgICAgICA8c3RydWN0ZmllbGQ+b2JqaWQ8L3N0cnVj dGZpZWxkPiBhbmQgPHN0cnVjdGZpZWxkPmNsYXNzaWQ8L3N0cnVjdGZpZWxkPiByZWZlciB0 byB0aGUKKyAgICAgICB0YWJsZSBpdHNlbGYpLiAgRm9yIGFsbCBvdGhlciBvYmplY3QgdHlw ZXMsIHRoaXMgY29sdW1uIGlzCisgICAgICAgemVyby4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgIElkZW50aWZpZXMgdGhlIHR5cGUg b2YgZGF0YWJhc2Ugb2JqZWN0CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnNjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgIFRoZSBzY2hlbWEgbmFtZSB0aGF0IHRoZSBvYmplY3Qg YmVsb25ncyBpbiwgb3IgTlVMTCBmb3Igb2JqZWN0IHR5cGVzIHRoYXQgZG8gbm90IGJlbG9u ZyB0byBzY2hlbWFzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm5hbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0LCBxdW90ZWQgaWYgbmVjZXNz YXJ5LCBpZiB0aGUgbmFtZSAoYWxvbmcgd2l0aCBzY2hlbWEgbmFtZSwgaWYgcGVydGluZW50 KSBpcyBzdWZmaWNpZW50IHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBvYmplY3QsIG90aGVy d2lzZSBOVUxMCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmlkZW50aXR5 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgVGhlIGNvbXBsZXRlIG9iamVjdCBpZGVudGl0eSwgd2l0aCB0aGUg cHJlY2lzZSBmb3JtYXQgZGVwZW5kaW5nIG9uIG9iamVjdCB0eXBlLCBhbmQgZWFjaCBuYW1l IHdpdGhpbiB0aGUgZm9ybWF0IGJlaW5nIHNjaGVtYS1xdWFsaWZpZWQgYW5kIHF1b3RlZCBh cyBuZWNlc3NhcnkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b3duZXI8 L3N0cnVjdGZpZWxkPiA8dHlwZT5yZWdyb2xlPC90eXBlPgorICAgICAgIChyZWZlcmVuY2Vz IDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRo aWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+cm9sbmFtZTwvc3RydWN0Zmll bGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhl IG9iamVjdAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgPC90 Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorCisgPC9zZWN0MT4KKworIDxzZWN0 MSBpZD0idmlldy1wZy1wcml2aWxlZ2VzIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3By aXZpbGVnZXM8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZp ZXctcGctcHJpdmlsZWdlcyI+CisgICA8cHJpbWFyeT5wZ19wcml2aWxlZ2VzPC9wcmltYXJ5 PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSB2aWV3IDxzdHJ1Y3RuYW1l PnBnX3ByaXZpbGVnZXM8L3N0cnVjdG5hbWU+IHByb3ZpZGVzIGFjY2VzcyB0byBpbmZvcm1h dGlvbiBhYm91dCBleHBsaWNpdGx5IGdyYW50ZWQgcHJpdmlsZWdlcyBvbiBkYXRhYmFzZSBv YmplY3RzLgorICAgVGhlIHNwZWNpYWwgPHN0cnVjdG5hbWU+Z3JhbnRlZTwvc3RydWN0bmFt ZT4gdmFsdWUgPGxpdGVyYWw+LTwvbGl0ZXJhbD4gbWVhbnMgdGhlIHByaXZpbGVnZSBpcyBn cmFudGVkIHRvIDxsaXRlcmFsPlBVQkxJQzwvbGl0ZXJhbD4uCisKKyAgIDxub3RlPgorICAg IDxwYXJhPgorICAgICBUaGlzIHZpZXcgcmVwb3J0cyBwcml2aWxlZ2VzIG9ubHkgd2hlbiB0 aGV5IGhhdmUgYmVlbiBleHBsaWNpdGx5IGdyYW50ZWQKKyAgICAgdG8gYSByb2xlIG90aGVy IHRoYW4gdGhlIG9iamVjdCBvd25lci4gQnkgZGVmYXVsdCwgdGhlIG9iamVjdCBvd25lciBo YXMgYWxsCisgICAgIHByaXZpbGVnZXMgb24gdGhlIG9iamVjdCwgYnV0IHRoZXNlIGRlZmF1 bHQgcHJpdmlsZWdlcyBhcmUgbm90IGRpc3BsYXllZAorICAgICBpbiB0aGlzIHZpZXcgdW50 aWwgYSBwcml2aWxlZ2UgaXMgZ3JhbnRlZCB0byBhbm90aGVyIHJvbGUuIEZvciBleGFtcGxl LAorICAgICBpZiB5b3UgcmV2b2tlIHNvbWUgcHJpdmlsZWdlcyBmcm9tIHRoZSBvYmplY3Qg b3duZXIsIG5vdGhpbmcgaXMgc2hvd24gaW4KKyAgICAgdGhpcyB2aWV3IHVudGlsIGEgcHJp dmlsZWdlIGlzIGdyYW50ZWQgdG8gYW5vdGhlciByb2xlLCBhZnRlciB3aGljaCB0aGUKKyAg ICAgb3duZXIncyBwcml2aWxlZ2VzIGFyZSBhbHNvIGRpc3BsYXllZC4KKyAgICA8L3BhcmE+ CisgICA8L25vdGU+CisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfcHJpdmlsZWdlczwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8 dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgIDxzdHJ1Y3RmaWVsZD5jbGFzc2lkPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+cmVnY2xhc3M8L3R5cGU+CisgICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtl bmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3RuYW1lPnBnX2NsYXNzPC9zdHJ1Y3RuYW1l PjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8dHlwZT5yZWdjbGFzczwvdHlwZT4gT0lE IG9mIHRoZSBzeXN0ZW0gY2F0YWxvZyB0aGUgZ3JhbnRlZCBvYmplY3QgaXMgaW4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICAgPHN0cnVjdGZpZWxkPm9iamlkPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgICAocmVmZXJlbmNlcyBhbnkgT0lEIGNvbHVtbikKKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgT0lEIG9mIHRoZSBzcGVj aWZpYyBncmFudGVkIG9iamVjdAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5vYmpzdWJpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3IgYSB0YWJsZSBjb2x1bW4sIHRoaXMgaXMg dGhlIGNvbHVtbiBudW1iZXIgKHRoZQorICAgICAgIDxzdHJ1Y3RmaWVsZD5vYmppZDwvc3Ry dWN0ZmllbGQ+IGFuZCA8c3RydWN0ZmllbGQ+Y2xhc3NpZDwvc3RydWN0ZmllbGQ+IHJlZmVy IHRvIHRoZQorICAgICAgIHRhYmxlIGl0c2VsZikuICBGb3IgYWxsIG90aGVyIG9iamVjdCB0 eXBlcywgdGhpcyBjb2x1bW4gaXMKKyAgICAgICB6ZXJvLgorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAg ICAgIDxzdHJ1Y3RmaWVsZD50eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgSWRlbnRpZmllcyB0aGUgdHlw ZSBvZiBkYXRhYmFzZSBvYmplY3QKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+c2NoZW1hPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgVGhlIHNjaGVtYSBuYW1lIHRoYXQgdGhlIG9iamVj dCBiZWxvbmdzIGluLCBvciBOVUxMIGZvciBvYmplY3QgdHlwZXMgdGhhdCBkbyBub3QgYmVs b25nIHRvIHNjaGVtYXMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+bmFt ZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBvYmplY3QsIHF1b3RlZCBpZiBuZWNl c3NhcnksIGlmIHRoZSBuYW1lIChhbG9uZyB3aXRoIHNjaGVtYSBuYW1lLCBpZiBwZXJ0aW5l bnQpIGlzIHN1ZmZpY2llbnQgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhlIG9iamVjdCwgb3Ro ZXJ3aXNlIE5VTEwKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aWRlbnRp dHk8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICBUaGUgY29tcGxldGUgb2JqZWN0IGlkZW50aXR5LCB3aXRoIHRo ZSBwcmVjaXNlIGZvcm1hdCBkZXBlbmRpbmcgb24gb2JqZWN0IHR5cGUsIGFuZCBlYWNoIG5h bWUgd2l0aGluIHRoZSBmb3JtYXQgYmVpbmcgc2NoZW1hLXF1YWxpZmllZCBhbmQgcXVvdGVk IGFzIG5lY2Vzc2FyeQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ncmFu dG9yPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cmVncm9sZTwvdHlwZT4KKyAgICAgICAocmVmZXJl bmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdf YXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPnJvbG5hbWU8L3N0cnVj dGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvbGUgdGhh dCBncmFudGVkIHRoaXMgcHJpdmlsZWdlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmdyYW50ZWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5yZWdyb2xlPC90eXBlPgorICAg ICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXV0aGlkIj48c3Ry dWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+cm9s bmFtZTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgUm9sZSB0byB3aG9tIHByaXZpbGVnZSBpcyBncmFudGVkCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPnByaXZpbGVnZV90eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFR5cGUg b2YgdGhlIHByaXZpbGVnZTogPGxpdGVyYWw+U0VMRUNUPC9saXRlcmFsPiwKKyAgICAgICA8 bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+LCA8bGl0ZXJhbD5VUERBVEU8L2xpdGVyYWw+LCBv cgorICAgICAgIDxsaXRlcmFsPlJFRkVSRU5DRVM8L2xpdGVyYWw+CisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmlzX2dyYW50YWJsZTwvc3RydWN0ZmllbGQ+IDx0eXBl PmJvb2xlYW48L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8 bGl0ZXJhbD50cnVlPC9saXRlcmFsPiBpZiB0aGUgcHJpdmlsZWdlIGlzIGdyYW50YWJsZSwg PGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+IGlmIG5vdAorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4K KworIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9InZpZXctcGctcG9saWNpZXMiPgogICA8dGl0 bGU+PHN0cnVjdG5hbWU+cGdfcG9saWNpZXM8L3N0cnVjdG5hbWU+PC90aXRsZT4KIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDM0NTZiODIxYmMuLjNlODVk YjFmN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTYwMSw2 ICs2MDEsNTMgQEAgRlJPTQogICAgIHBnX3Noc2VjbGFiZWwgbAogICAgIEpPSU4gcGdfYXV0 aGlkIHJvbCBPTiBsLmNsYXNzb2lkID0gcm9sLnRhYmxlb2lkIEFORCBsLm9iam9pZCA9IHJv bC5vaWQ7CiAKK0NSRUFURSBWSUVXIHBnX3ByaXZpbGVnZXMgQVMKKyAgICBTRUxFQ1QKKyAg ICAgICAgYS5jbGFzc2lkOjpyZWdjbGFzcywKKyAgICAgICAgYS5vYmppZCwKKyAgICAgICAg YS5vYmpzdWJpZCwKKyAgICAgICAgYS50eXBlLAorICAgICAgICBhLnNjaGVtYSwKKyAgICAg ICAgYS5uYW1lLAorICAgICAgICBhLmlkZW50aXR5LAorICAgICAgICBhLmdyYW50b3I6OnJl Z3JvbGUsCisgICAgICAgIGEuZ3JhbnRlZTo6cmVncm9sZSwKKyAgICAgICAgYS5wcml2aWxl Z2VfdHlwZSwKKyAgICAgICAgYS5pc19ncmFudGFibGUKKyAgICBGUk9NCisgICAgKAorICAg ICAgICBTRUxFQ1QKKyAgICAgICAgICAgIHBnX3NoZGVwZW5kLmNsYXNzaWQsCisgICAgICAg ICAgICBwZ19zaGRlcGVuZC5vYmppZCwKKyAgICAgICAgICAgIHBnX3NoZGVwZW5kLm9ianN1 YmlkLAorICAgICAgICAgICAgaWRlbnRpZnkuKiwKKyAgICAgICAgICAgIGFjbGV4cGxvZGUu KgorICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfc2hkZXBlbmQKKyAgICAgICAgSk9JTiBw Z19jYXRhbG9nLnBnX2RhdGFiYXNlIE9OIHBnX2RhdGFiYXNlLmRhdG5hbWUgPSBjdXJyZW50 X2RhdGFiYXNlKCkgQU5EIHBnX2RhdGFiYXNlLm9pZCA9IHBnX3NoZGVwZW5kLmRiaWQKKyAg ICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2F1dGhpZCBPTiBwZ19hdXRoaWQub2lkID0gcGdf c2hkZXBlbmQucmVmb2JqaWQgQU5EIHBnX3NoZGVwZW5kLnJlZmNsYXNzaWQgPSAncGdfYXV0 aGlkJzo6cmVnY2xhc3MsCisgICAgICAgIExBVEVSQUwgcGdfY2F0YWxvZy5wZ19pZGVudGlm eV9vYmplY3QocGdfc2hkZXBlbmQuY2xhc3NpZCxwZ19zaGRlcGVuZC5vYmppZCxwZ19zaGRl cGVuZC5vYmpzdWJpZCkgQVMgaWRlbnRpZnksCisgICAgICAgIExBVEVSQUwgcGdfY2F0YWxv Zy5hY2xleHBsb2RlKHBnX2NhdGFsb2cucGdfZ2V0X2FjbChwZ19zaGRlcGVuZC5jbGFzc2lk LHBnX3NoZGVwZW5kLm9iamlkLHBnX3NoZGVwZW5kLm9ianN1YmlkKSkgQVMgYWNsZXhwbG9k ZQorICAgICAgICBXSEVSRSBwZ19zaGRlcGVuZC5kZXB0eXBlID0gJ2EnIEFORCBwZ19zaGRl cGVuZC5kYmlkID0gKCggU0VMRUNUIHBnX2RhdGFiYXNlXzEub2lkCisgICAgICAgICAgICAg ICAgICAgRlJPTSBwZ19kYXRhYmFzZSBwZ19kYXRhYmFzZV8xCisgICAgICAgICAgICAgICAg ICBXSEVSRSBwZ19kYXRhYmFzZV8xLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkpKQor ICAgICkgQVMgYSA7CisKK0NSRUFURSBWSUVXIHBnX293bmVyc2hpcHMgQVMKKyAgICBTRUxF Q1QKKyAgICAgICAgYS5jbGFzc2lkOjpyZWdjbGFzcywKKyAgICAgICAgYS5vYmppZCwKKyAg ICAgICAgYS5vYmpzdWJpZCwKKyAgICAgICAgaWRlbnRpZnkuKiwKKyAgICAgICAgYS5yZWZv YmppZDo6cmVncm9sZSBBUyBvd25lcgorICAgIEZST00gcGdfY2F0YWxvZy5wZ19zaGRlcGVu ZCBBUyBhCisgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2RhdGFiYXNlIE9OIHBnX2RhdGFiYXNl LmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkgQU5EIHBnX2RhdGFiYXNlLm9pZCA9IGEu ZGJpZAorICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19hdXRoaWQgT04gcGdfYXV0aGlkLm9pZCA9 IGEucmVmb2JqaWQgQU5EIGEucmVmY2xhc3NpZCA9ICdwZ19hdXRoaWQnOjpyZWdjbGFzcywK KyAgICBMQVRFUkFMIHBnX2NhdGFsb2cucGdfaWRlbnRpZnlfb2JqZWN0KGEuY2xhc3NpZCwg YS5vYmppZCwgYS5vYmpzdWJpZCkgQVMgaWRlbnRpZnkKKyAgICBXSEVSRSBhLmRlcHR5cGUg PSAnbycgQU5EIGEuZGJpZCA9ICgoIFNFTEVDVCBwZ19kYXRhYmFzZV8xLm9pZAorICAgICAg ICAgIEZST00gcGdfZGF0YWJhc2UgcGdfZGF0YWJhc2VfMQorICAgICAgICAgIFdIRVJFIHBn X2RhdGFiYXNlXzEuZGF0bmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKQorICAgICkpOworCiBD UkVBVEUgVklFVyBwZ19zZXR0aW5ncyBBUwogICAgIFNFTEVDVCAqIEZST00gcGdfc2hvd19h bGxfc2V0dGluZ3MoKSBBUyBBOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0 CmluZGV4IDJiNDcwMTNmMTEuLjY5ZjNmMGM1OTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnVsZXMub3V0CkBAIC0xMzk4LDYgKzEzOTgsMTggQEAgcGdfbWF0dmlld3N8IFNFTEVD VCBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFj ZSBuIE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKQogICAgICBMRUZUIEpPSU4gcGdf dGFibGVzcGFjZSB0IE9OICgodC5vaWQgPSBjLnJlbHRhYmxlc3BhY2UpKSkKICAgV0hFUkUg KGMucmVsa2luZCA9ICdtJzo6ImNoYXIiKTsKK3BnX293bmVyc2hpcHN8IFNFTEVDVCAoYS5j bGFzc2lkKTo6cmVnY2xhc3MgQVMgY2xhc3NpZCwKKyAgICBhLm9iamlkLAorICAgIGEub2Jq c3ViaWQsCisgICAgKHBnX2lkZW50aWZ5X29iamVjdChhLmNsYXNzaWQsIGEub2JqaWQsIGEu b2Jqc3ViaWQpKS50eXBlIEFTIHR5cGUsCisgICAgKHBnX2lkZW50aWZ5X29iamVjdChhLmNs YXNzaWQsIGEub2JqaWQsIGEub2Jqc3ViaWQpKS5zY2hlbWEgQVMgc2NoZW1hLAorICAgIChw Z19pZGVudGlmeV9vYmplY3QoYS5jbGFzc2lkLCBhLm9iamlkLCBhLm9ianN1YmlkKSkubmFt ZSBBUyBuYW1lLAorICAgIChwZ19pZGVudGlmeV9vYmplY3QoYS5jbGFzc2lkLCBhLm9iamlk LCBhLm9ianN1YmlkKSkuaWRlbnRpdHkgQVMgaWRlbnRpdHksCisgICAgKGEucmVmb2JqaWQp OjpyZWdyb2xlIEFTIG93bmVyCisgICBGUk9NICgocGdfc2hkZXBlbmQgYQorICAgICBKT0lO IHBnX2RhdGFiYXNlIE9OICgoKHBnX2RhdGFiYXNlLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFi YXNlKCkpIEFORCAocGdfZGF0YWJhc2Uub2lkID0gYS5kYmlkKSkpKQorICAgICBKT0lOIHBn X2F1dGhpZCBPTiAoKChwZ19hdXRoaWQub2lkID0gYS5yZWZvYmppZCkgQU5EIChhLnJlZmNs YXNzaWQgPSAoJ3BnX2F1dGhpZCc6OnJlZ2NsYXNzKTo6b2lkKSkpKQorICBXSEVSRSAoYS5k ZXB0eXBlID0gJ28nOjoiY2hhciIpOwogcGdfcG9saWNpZXN8IFNFTEVDVCBuLm5zcG5hbWUg QVMgc2NoZW1hbmFtZSwKICAgICBjLnJlbG5hbWUgQVMgdGFibGVuYW1lLAogICAgIHBvbC5w b2xuYW1lIEFTIHBvbGljeW5hbWUsCkBAIC0xNDQyLDYgKzE0NTQsMzIgQEAgcGdfcHJlcGFy ZWRfeGFjdHN8IFNFTEVDVCBwLnRyYW5zYWN0aW9uLAogICAgRlJPTSAoKHBnX3ByZXBhcmVk X3hhY3QoKSBwKHRyYW5zYWN0aW9uLCBnaWQsIHByZXBhcmVkLCBvd25lcmlkLCBkYmlkKQog ICAgICBMRUZUIEpPSU4gcGdfYXV0aGlkIHUgT04gKChwLm93bmVyaWQgPSB1Lm9pZCkpKQog ICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBPTiAoKHAuZGJpZCA9IGQub2lkKSkpOwor cGdfcHJpdmlsZWdlc3wgU0VMRUNUIChjbGFzc2lkKTo6cmVnY2xhc3MgQVMgY2xhc3NpZCwK KyAgICBvYmppZCwKKyAgICBvYmpzdWJpZCwKKyAgICB0eXBlLAorICAgIHNjaGVtYSwKKyAg ICBuYW1lLAorICAgIGlkZW50aXR5LAorICAgIChncmFudG9yKTo6cmVncm9sZSBBUyBncmFu dG9yLAorICAgIChncmFudGVlKTo6cmVncm9sZSBBUyBncmFudGVlLAorICAgIHByaXZpbGVn ZV90eXBlLAorICAgIGlzX2dyYW50YWJsZQorICAgRlJPTSAoIFNFTEVDVCBwZ19zaGRlcGVu ZC5jbGFzc2lkLAorICAgICAgICAgICAgcGdfc2hkZXBlbmQub2JqaWQsCisgICAgICAgICAg ICBwZ19zaGRlcGVuZC5vYmpzdWJpZCwKKyAgICAgICAgICAgIChwZ19pZGVudGlmeV9vYmpl Y3QocGdfc2hkZXBlbmQuY2xhc3NpZCwgcGdfc2hkZXBlbmQub2JqaWQsIHBnX3NoZGVwZW5k Lm9ianN1YmlkKSkudHlwZSBBUyB0eXBlLAorICAgICAgICAgICAgKHBnX2lkZW50aWZ5X29i amVjdChwZ19zaGRlcGVuZC5jbGFzc2lkLCBwZ19zaGRlcGVuZC5vYmppZCwgcGdfc2hkZXBl bmQub2Jqc3ViaWQpKS5zY2hlbWEgQVMgc2NoZW1hLAorICAgICAgICAgICAgKHBnX2lkZW50 aWZ5X29iamVjdChwZ19zaGRlcGVuZC5jbGFzc2lkLCBwZ19zaGRlcGVuZC5vYmppZCwgcGdf c2hkZXBlbmQub2Jqc3ViaWQpKS5uYW1lIEFTIG5hbWUsCisgICAgICAgICAgICAocGdfaWRl bnRpZnlfb2JqZWN0KHBnX3NoZGVwZW5kLmNsYXNzaWQsIHBnX3NoZGVwZW5kLm9iamlkLCBw Z19zaGRlcGVuZC5vYmpzdWJpZCkpLmlkZW50aXR5IEFTIGlkZW50aXR5LAorICAgICAgICAg ICAgKGFjbGV4cGxvZGUocGdfZ2V0X2FjbChwZ19zaGRlcGVuZC5jbGFzc2lkLCBwZ19zaGRl cGVuZC5vYmppZCwgcGdfc2hkZXBlbmQub2Jqc3ViaWQpKSkuZ3JhbnRvciBBUyBncmFudG9y LAorICAgICAgICAgICAgKGFjbGV4cGxvZGUocGdfZ2V0X2FjbChwZ19zaGRlcGVuZC5jbGFz c2lkLCBwZ19zaGRlcGVuZC5vYmppZCwgcGdfc2hkZXBlbmQub2Jqc3ViaWQpKSkuZ3JhbnRl ZSBBUyBncmFudGVlLAorICAgICAgICAgICAgKGFjbGV4cGxvZGUocGdfZ2V0X2FjbChwZ19z aGRlcGVuZC5jbGFzc2lkLCBwZ19zaGRlcGVuZC5vYmppZCwgcGdfc2hkZXBlbmQub2Jqc3Vi aWQpKSkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUsCisgICAgICAgICAgICAo YWNsZXhwbG9kZShwZ19nZXRfYWNsKHBnX3NoZGVwZW5kLmNsYXNzaWQsIHBnX3NoZGVwZW5k Lm9iamlkLCBwZ19zaGRlcGVuZC5vYmpzdWJpZCkpKS5pc19ncmFudGFibGUgQVMgaXNfZ3Jh bnRhYmxlCisgICAgICAgICAgIEZST00gKChwZ19zaGRlcGVuZAorICAgICAgICAgICAgIEpP SU4gcGdfZGF0YWJhc2UgT04gKCgocGdfZGF0YWJhc2UuZGF0bmFtZSA9IGN1cnJlbnRfZGF0 YWJhc2UoKSkgQU5EIChwZ19kYXRhYmFzZS5vaWQgPSBwZ19zaGRlcGVuZC5kYmlkKSkpKQor ICAgICAgICAgICAgIEpPSU4gcGdfYXV0aGlkIE9OICgoKHBnX2F1dGhpZC5vaWQgPSBwZ19z aGRlcGVuZC5yZWZvYmppZCkgQU5EIChwZ19zaGRlcGVuZC5yZWZjbGFzc2lkID0gKCdwZ19h dXRoaWQnOjpyZWdjbGFzcyk6Om9pZCkpKSkKKyAgICAgICAgICBXSEVSRSAocGdfc2hkZXBl bmQuZGVwdHlwZSA9ICdhJzo6ImNoYXIiKSkgYTsKIHBnX3B1YmxpY2F0aW9uX3RhYmxlc3wg U0VMRUNUIHAucHVibmFtZSwKICAgICBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICBj LnJlbG5hbWUgQVMgdGFibGVuYW1lLAotLSAKMi40NS4xCgo= --5323ccac2cfc4ea28a079fe7ab8361bd--