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 1t2dBo-005ifc-Ra for pgsql-hackers@arkaria.postgresql.org; Sun, 20 Oct 2024 21:10:17 +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 1t2dBn-001fde-4q for pgsql-hackers@arkaria.postgresql.org; Sun, 20 Oct 2024 21:10:15 +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 1t2dBm-001fdW-J6 for pgsql-hackers@lists.postgresql.org; Sun, 20 Oct 2024 21:10:15 +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 1t2dBk-001tkH-C1 for pgsql-hackers@lists.postgresql.org; Sun, 20 Oct 2024 21:10:13 +0000 Received: from phl-compute-11.internal (phl-compute-11.phl.internal [10.202.2.51]) by mailfhigh.stl.internal (Postfix) with ESMTP id DA75E254008A; Sun, 20 Oct 2024 17:10:11 -0400 (EDT) Received: from phl-imap-02 ([10.202.2.81]) by phl-compute-11.internal (MEProxy); Sun, 20 Oct 2024 17:10:11 -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=1729458611; x=1729545011; bh=qKZmDSBFd0 lNp55aW2dlbluh9qqSX6+tPsKSpegA8jY=; b=RDXqcvNoV0D0SsZ4ZIopDmVBlM lOKBYBSQtXtw0EF2MqThXWVMaaIpe0SMMytsxtlVYapvdFy49pH9wRRPsMbtjYBM xctJoxo4t9yT5c9nDYCcJOIQ2MwAC6HNO8SYVDBD3TjhppbPIviSmBm+5Y5gI6qO lf4JpVGgjaHQQs9X6PKNPfDxon3eD/x/qBHX9R65c9ZokOz6l6S+9E+P35EspDsa l69EJH49PS1DwcGQ7WNu3r+F1mMcBlle6RLUl53mpqI0zbAO7bJPKXxKdDeHiWLP X0YHVcO07iL6PUS2sRII1zjIwioNDPOGiQry6C3qgntJgHRDz3foZNgPB5hg== 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=1729458611; x=1729545011; bh=qKZmDSBFd0lNp55aW2dlbluh9qqS X6+tPsKSpegA8jY=; b=MTWyqJnpyLMOXL1x4GfxXvkt2NLKxviJkJhtIaihuYmi 2E1Yu8WXEl2dlgMc31Miuc+pWVWCL1GlqEHw9BJ3Hg1ZX1MveZqNeQBhu/gTQZKj 1HYTsl0J7KhFdG0Q1P0vY/tw+9BP7idtpkhJajow7jaFNEXTafNb9jkLn2aixaFd h8G2dQOARew++NxdfptwbW/Lfkk62XriYeN8GGzjXGkfpfEts3fY/c8dcB3Oqoq6 mfbdqHKjkPnPEsPrZnP+Iwb+F1N9O85REJr0HmrJ/99k41zt/5TFKrUnhIXk6VoM biG808I1eg5T0oGVSPXR6gh4BMR2sdTI0ogy499uwA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdehjedgudehiecutefuodetggdotefrod 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 6C1AAB00068; Sun, 20 Oct 2024 17:10:11 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 Date: Sun, 20 Oct 2024 23:09:43 +0200 From: "Joel Jacobson" To: "Alvaro Herrera" Cc: pgsql-hackers@lists.postgresql.org Message-Id: In-Reply-To: <6b0a52f1-bf81-475f-9be1-b3cce6ba32a4@app.fastmail.com> References: <202410201014.dcvfvqdncdds@alvherre.pgsql> <306c3ab4-f9d2-4e66-87d0-03d155325f1b@app.fastmail.com> <6b0a52f1-bf81-475f-9be1-b3cce6ba32a4@app.fastmail.com> Subject: Re: Add pg_ownerships and pg_privileges system views Content-Type: multipart/mixed; boundary=0f155d0dc1f048308755a6c6d95a6fd8 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0f155d0dc1f048308755a6c6d95a6fd8 Content-Type: text/plain Content-Transfer-Encoding: 7bit On Sun, Oct 20, 2024, at 23:03, Joel Jacobson wrote: > 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. > > Ops, sorry, forgot to update expected/rules.out, fixed. /Joel --0f155d0dc1f048308755a6c6d95a6fd8 Content-Disposition: attachment; filename*0="v5-0001-Add-pg_ownerships-and-pg_privileges-system-views.patc"; filename*1="h" Content-Type: application/octet-stream; name="=?UTF-8?Q?v5-0001-Add-pg=5Fownerships-and-pg=5Fprivileges-system-views.p?= =?UTF-8?Q?atch?=" Content-Transfer-Encoding: base64 RnJvbSA3YzRmOWM3YmY5NDE2ZGNiNGNhMTNjZWRiZDJhMzVjZWJjZTRiMWExIE1vbiBTZXAg 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 eHBlY3RlZC9ydWxlcy5vdXQgIHwgIDQ1ICsrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDM2NCBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5z Z21sIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCmluZGV4IDYxZDI4ZTcwMWYu LjJiZDhiMTU4OWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKQEAgLTExMSw2ICsxMTEs MTYgQEAKICAgICAgIDxlbnRyeT5tYXRlcmlhbGl6ZWQgdmlld3M8L2VudHJ5PgogICAgICA8 L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9InZpZXct cGctb3duZXJzaGlwcyI+PHN0cnVjdG5hbWU+cGdfb3duZXJzaGlwczwvc3RydWN0bmFtZT48 L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5vd25lcnNoaXBzPC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJ2aWV3 LXBnLXByaXZpbGVnZXMiPjxzdHJ1Y3RuYW1lPnBnX3ByaXZpbGVnZXM8L3N0cnVjdG5hbWU+ PC9saW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+cHJpdmlsZWdlczwvZW50cnk+CisgICAg IDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0idmll dy1wZy1wb2xpY2llcyI+PHN0cnVjdG5hbWU+cGdfcG9saWNpZXM8L3N0cnVjdG5hbWU+PC9s aW5rPjwvZW50cnk+CiAgICAgICA8ZW50cnk+cG9saWNpZXM8L2VudHJ5PgpAQCAtMTgzOSw2 ICsxODQ5LDI2OCBAQCBTRUxFQ1QgKiBGUk9NIHBnX2xvY2tzIHBsIExFRlQgSk9JTiBwZ19w cmVwYXJlZF94YWN0cyBwcHgKIAogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9InZpZXctcGct b3duZXJzaGlwcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19vd25lcnNoaXBzPC9zdHJ1 Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJ2aWV3LXBnLW93bmVyc2hp cHMiPgorICAgPHByaW1hcnk+cGdfb3duZXJzaGlwczwvcHJpbWFyeT4KKyAgPC9pbmRleHRl cm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8c3RydWN0bmFtZT5wZ19vd25lcnNoaXBz PC9zdHJ1Y3RuYW1lPiBwcm92aWRlcyBhY2Nlc3MgdG8gaW5mb3JtYXRpb24gYWJvdXQgb2Jq ZWN0IG93bmVyc2hpcHMuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0 cnVjdG5hbWU+cGdfb3duZXJzaGlwczwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+Cisg ICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgIDxzdHJ1Y3RmaWVsZD5jbGFzc2lkPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+cmVnY2xhc3M8L3R5cGU+CisgICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3RuYW1lPnBnX2NsYXNzPC9zdHJ1Y3Ru YW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRoZSA8dHlwZT5yZWdjbGFzczwvdHlwZT4g T0lEIG9mIHRoZSBzeXN0ZW0gY2F0YWxvZyB0aGUgb3duZWQgb2JqZWN0IGlzIGluCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgIDxzdHJ1Y3RmaWVsZD5vYmppZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAgKHJlZmVyZW5jZXMgYW55IE9JRCBjb2x1bW4pCisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIE9JRCBvZiB0aGUgc3Bl Y2lmaWMgb3duZWQgb2JqZWN0CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk Pm9ianN1YmlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIEZvciBhIHRhYmxlIGNvbHVtbiwgdGhpcyBpcyB0 aGUgY29sdW1uIG51bWJlciAodGhlCisgICAgICAgPHN0cnVjdGZpZWxkPm9iamlkPC9zdHJ1 Y3RmaWVsZD4gYW5kIDxzdHJ1Y3RmaWVsZD5jbGFzc2lkPC9zdHJ1Y3RmaWVsZD4gcmVmZXIg dG8gdGhlCisgICAgICAgdGFibGUgaXRzZWxmKS4gIEZvciBhbGwgb3RoZXIgb2JqZWN0IHR5 cGVzLCB0aGlzIGNvbHVtbiBpcworICAgICAgIHplcm8uCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICBJZGVudGlmaWVzIHRoZSB0eXBl IG9mIGRhdGFiYXNlIG9iamVjdAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5zY2hlbWE8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICBUaGUgc2NoZW1hIG5hbWUgdGhhdCB0aGUgb2JqZWN0 IGJlbG9uZ3MgaW4sIG9yIE5VTEwgZm9yIG9iamVjdCB0eXBlcyB0aGF0IGRvIG5vdCBiZWxv bmcgdG8gc2NoZW1hcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5uYW1l PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIG9iamVjdCwgcXVvdGVkIGlmIG5lY2Vz c2FyeSwgaWYgdGhlIG5hbWUgKGFsb25nIHdpdGggc2NoZW1hIG5hbWUsIGlmIHBlcnRpbmVu dCkgaXMgc3VmZmljaWVudCB0byB1bmlxdWVseSBpZGVudGlmeSB0aGUgb2JqZWN0LCBvdGhl cndpc2UgTlVMTAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5pZGVudGl0 eTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgIFRoZSBjb21wbGV0ZSBvYmplY3QgaWRlbnRpdHksIHdpdGggdGhl IHByZWNpc2UgZm9ybWF0IGRlcGVuZGluZyBvbiBvYmplY3QgdHlwZSwgYW5kIGVhY2ggbmFt ZSB3aXRoaW4gdGhlIGZvcm1hdCBiZWluZyBzY2hlbWEtcXVhbGlmaWVkIGFuZCBxdW90ZWQg YXMgbmVjZXNzYXJ5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm93bmVy PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cmVncm9sZTwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNl cyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0 aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPnJvbG5hbWU8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9mIHRo ZSBvYmplY3QKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwv dGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKworIDwvc2VjdDE+CisKKyA8c2Vj dDEgaWQ9InZpZXctcGctcHJpdmlsZWdlcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19w cml2aWxlZ2VzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJ2 aWV3LXBnLXByaXZpbGVnZXMiPgorICAgPHByaW1hcnk+cGdfcHJpdmlsZWdlczwvcHJpbWFy eT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8c3RydWN0bmFt ZT5wZ19wcml2aWxlZ2VzPC9zdHJ1Y3RuYW1lPiBwcm92aWRlcyBhY2Nlc3MgdG8gaW5mb3Jt YXRpb24gYWJvdXQgZXhwbGljaXRseSBncmFudGVkIHByaXZpbGVnZXMgb24gZGF0YWJhc2Ug b2JqZWN0cy4KKyAgIFRoZSBzcGVjaWFsIDxzdHJ1Y3RuYW1lPmdyYW50ZWU8L3N0cnVjdG5h bWU+IHZhbHVlIDxsaXRlcmFsPi08L2xpdGVyYWw+IG1lYW5zIHRoZSBwcml2aWxlZ2UgaXMg Z3JhbnRlZCB0byA8bGl0ZXJhbD5QVUJMSUM8L2xpdGVyYWw+LgorCisgICA8bm90ZT4KKyAg ICA8cGFyYT4KKyAgICAgVGhpcyB2aWV3IHJlcG9ydHMgcHJpdmlsZWdlcyBvbmx5IHdoZW4g dGhleSBoYXZlIGJlZW4gZXhwbGljaXRseSBncmFudGVkCisgICAgIHRvIGEgcm9sZSBvdGhl ciB0aGFuIHRoZSBvYmplY3Qgb3duZXIuIEJ5IGRlZmF1bHQsIHRoZSBvYmplY3Qgb3duZXIg aGFzIGFsbAorICAgICBwcml2aWxlZ2VzIG9uIHRoZSBvYmplY3QsIGJ1dCB0aGVzZSBkZWZh dWx0IHByaXZpbGVnZXMgYXJlIG5vdCBkaXNwbGF5ZWQKKyAgICAgaW4gdGhpcyB2aWV3IHVu dGlsIGEgcHJpdmlsZWdlIGlzIGdyYW50ZWQgdG8gYW5vdGhlciByb2xlLiBGb3IgZXhhbXBs ZSwKKyAgICAgaWYgeW91IHJldm9rZSBzb21lIHByaXZpbGVnZXMgZnJvbSB0aGUgb2JqZWN0 IG93bmVyLCBub3RoaW5nIGlzIHNob3duIGluCisgICAgIHRoaXMgdmlldyB1bnRpbCBhIHBy aXZpbGVnZSBpcyBncmFudGVkIHRvIGFub3RoZXIgcm9sZSwgYWZ0ZXIgd2hpY2ggdGhlCisg ICAgIG93bmVyJ3MgcHJpdmlsZWdlcyBhcmUgYWxzbyBkaXNwbGF5ZWQuCisgICAgPC9wYXJh PgorICAgPC9ub3RlPgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1 Y3RuYW1lPnBnX3ByaXZpbGVnZXM8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAg PHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgICA8c3RydWN0ZmllbGQ+Y2xhc3NpZDwvc3RydWN0ZmllbGQ+ IDx0eXBlPnJlZ2NsYXNzPC90eXBlPgorICAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5r ZW5kPSJjYXRhbG9nLXBnLWNsYXNzIj48c3RydWN0bmFtZT5wZ19jbGFzczwvc3RydWN0bmFt ZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUaGUgPHR5cGU+cmVnY2xhc3M8L3R5cGU+IE9J RCBvZiB0aGUgc3lzdGVtIGNhdGFsb2cgdGhlIGdyYW50ZWQgb2JqZWN0IGlzIGluCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgIDxzdHJ1Y3RmaWVsZD5vYmppZDwvc3RydWN0ZmllbGQ+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAgKHJlZmVyZW5jZXMgYW55IE9JRCBjb2x1bW4pCisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIE9JRCBvZiB0aGUgc3Bl Y2lmaWMgZ3JhbnRlZCBvYmplY3QKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+b2Jqc3ViaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRm9yIGEgdGFibGUgY29sdW1uLCB0aGlzIGlz IHRoZSBjb2x1bW4gbnVtYmVyICh0aGUKKyAgICAgICA8c3RydWN0ZmllbGQ+b2JqaWQ8L3N0 cnVjdGZpZWxkPiBhbmQgPHN0cnVjdGZpZWxkPmNsYXNzaWQ8L3N0cnVjdGZpZWxkPiByZWZl ciB0byB0aGUKKyAgICAgICB0YWJsZSBpdHNlbGYpLiAgRm9yIGFsbCBvdGhlciBvYmplY3Qg dHlwZXMsIHRoaXMgY29sdW1uIGlzCisgICAgICAgemVyby4KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+dHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgIElkZW50aWZpZXMgdGhlIHR5 cGUgb2YgZGF0YWJhc2Ugb2JqZWN0CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnNjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgIFRoZSBzY2hlbWEgbmFtZSB0aGF0IHRoZSBvYmpl Y3QgYmVsb25ncyBpbiwgb3IgTlVMTCBmb3Igb2JqZWN0IHR5cGVzIHRoYXQgZG8gbm90IGJl bG9uZyB0byBzY2hlbWFzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm5h bWU8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0LCBxdW90ZWQgaWYgbmVj ZXNzYXJ5LCBpZiB0aGUgbmFtZSAoYWxvbmcgd2l0aCBzY2hlbWEgbmFtZSwgaWYgcGVydGlu ZW50KSBpcyBzdWZmaWNpZW50IHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBvYmplY3QsIG90 aGVyd2lzZSBOVUxMCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmlkZW50 aXR5PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgVGhlIGNvbXBsZXRlIG9iamVjdCBpZGVudGl0eSwgd2l0aCB0 aGUgcHJlY2lzZSBmb3JtYXQgZGVwZW5kaW5nIG9uIG9iamVjdCB0eXBlLCBhbmQgZWFjaCBu YW1lIHdpdGhpbiB0aGUgZm9ybWF0IGJlaW5nIHNjaGVtYS1xdWFsaWZpZWQgYW5kIHF1b3Rl ZCBhcyBuZWNlc3NhcnkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Z3Jh bnRvcjwvc3RydWN0ZmllbGQ+IDx0eXBlPnJlZ3JvbGU8L3R5cGU+CisgICAgICAgKHJlZmVy ZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBn X2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5yb2xuYW1lPC9zdHJ1 Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb2xlIHRo YXQgZ3JhbnRlZCB0aGlzIHByaXZpbGVnZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5ncmFudGVlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cmVncm9sZTwvdHlwZT4KKyAg ICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0 cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPnJv bG5hbWU8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFJvbGUgdG8gd2hvbSBwcml2aWxlZ2UgaXMgZ3JhbnRlZAorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5wcml2aWxlZ2VfdHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBl PnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUeXBl IG9mIHRoZSBwcml2aWxlZ2U6IDxsaXRlcmFsPlNFTEVDVDwvbGl0ZXJhbD4sCisgICAgICAg PGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiwgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFsPiwg b3IKKyAgICAgICA8bGl0ZXJhbD5SRUZFUkVOQ0VTPC9saXRlcmFsPgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5pc19ncmFudGFibGU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5ib29sZWFuPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg PGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gaWYgdGhlIHByaXZpbGVnZSBpcyBncmFudGFibGUs IDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiBpZiBub3QKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+ CisKKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJ2aWV3LXBnLXBvbGljaWVzIj4KICAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX3BvbGljaWVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCAzNDU2YjgyMWJjLi4zZTg1 ZGIxZjdiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5z cWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC02MDEs NiArNjAxLDUzIEBAIEZST00KICAgICBwZ19zaHNlY2xhYmVsIGwKICAgICBKT0lOIHBnX2F1 dGhpZCByb2wgT04gbC5jbGFzc29pZCA9IHJvbC50YWJsZW9pZCBBTkQgbC5vYmpvaWQgPSBy b2wub2lkOwogCitDUkVBVEUgVklFVyBwZ19wcml2aWxlZ2VzIEFTCisgICAgU0VMRUNUCisg ICAgICAgIGEuY2xhc3NpZDo6cmVnY2xhc3MsCisgICAgICAgIGEub2JqaWQsCisgICAgICAg IGEub2Jqc3ViaWQsCisgICAgICAgIGEudHlwZSwKKyAgICAgICAgYS5zY2hlbWEsCisgICAg ICAgIGEubmFtZSwKKyAgICAgICAgYS5pZGVudGl0eSwKKyAgICAgICAgYS5ncmFudG9yOjpy ZWdyb2xlLAorICAgICAgICBhLmdyYW50ZWU6OnJlZ3JvbGUsCisgICAgICAgIGEucHJpdmls ZWdlX3R5cGUsCisgICAgICAgIGEuaXNfZ3JhbnRhYmxlCisgICAgRlJPTQorICAgICgKKyAg ICAgICAgU0VMRUNUCisgICAgICAgICAgICBwZ19zaGRlcGVuZC5jbGFzc2lkLAorICAgICAg ICAgICAgcGdfc2hkZXBlbmQub2JqaWQsCisgICAgICAgICAgICBwZ19zaGRlcGVuZC5vYmpz dWJpZCwKKyAgICAgICAgICAgIGlkZW50aWZ5LiosCisgICAgICAgICAgICBhY2xleHBsb2Rl LioKKyAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX3NoZGVwZW5kCisgICAgICAgIEpPSU4g cGdfY2F0YWxvZy5wZ19kYXRhYmFzZSBPTiBwZ19kYXRhYmFzZS5kYXRuYW1lID0gY3VycmVu dF9kYXRhYmFzZSgpIEFORCBwZ19kYXRhYmFzZS5vaWQgPSBwZ19zaGRlcGVuZC5kYmlkCisg ICAgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19hdXRoaWQgT04gcGdfYXV0aGlkLm9pZCA9IHBn X3NoZGVwZW5kLnJlZm9iamlkIEFORCBwZ19zaGRlcGVuZC5yZWZjbGFzc2lkID0gJ3BnX2F1 dGhpZCc6OnJlZ2NsYXNzLAorICAgICAgICBMQVRFUkFMIHBnX2NhdGFsb2cucGdfaWRlbnRp Znlfb2JqZWN0KHBnX3NoZGVwZW5kLmNsYXNzaWQscGdfc2hkZXBlbmQub2JqaWQscGdfc2hk ZXBlbmQub2Jqc3ViaWQpIEFTIGlkZW50aWZ5LAorICAgICAgICBMQVRFUkFMIHBnX2NhdGFs b2cuYWNsZXhwbG9kZShwZ19jYXRhbG9nLnBnX2dldF9hY2wocGdfc2hkZXBlbmQuY2xhc3Np ZCxwZ19zaGRlcGVuZC5vYmppZCxwZ19zaGRlcGVuZC5vYmpzdWJpZCkpIEFTIGFjbGV4cGxv ZGUKKyAgICAgICAgV0hFUkUgcGdfc2hkZXBlbmQuZGVwdHlwZSA9ICdhJyBBTkQgcGdfc2hk ZXBlbmQuZGJpZCA9ICgoIFNFTEVDVCBwZ19kYXRhYmFzZV8xLm9pZAorICAgICAgICAgICAg ICAgICAgIEZST00gcGdfZGF0YWJhc2UgcGdfZGF0YWJhc2VfMQorICAgICAgICAgICAgICAg ICAgV0hFUkUgcGdfZGF0YWJhc2VfMS5kYXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpKSkK KyAgICApIEFTIGEgOworCitDUkVBVEUgVklFVyBwZ19vd25lcnNoaXBzIEFTCisgICAgU0VM RUNUCisgICAgICAgIGEuY2xhc3NpZDo6cmVnY2xhc3MsCisgICAgICAgIGEub2JqaWQsCisg ICAgICAgIGEub2Jqc3ViaWQsCisgICAgICAgIGlkZW50aWZ5LiosCisgICAgICAgIGEucmVm b2JqaWQ6OnJlZ3JvbGUgQVMgb3duZXIKKyAgICBGUk9NIHBnX2NhdGFsb2cucGdfc2hkZXBl bmQgQVMgYQorICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19kYXRhYmFzZSBPTiBwZ19kYXRhYmFz ZS5kYXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpIEFORCBwZ19kYXRhYmFzZS5vaWQgPSBh LmRiaWQKKyAgICBKT0lOIHBnX2NhdGFsb2cucGdfYXV0aGlkIE9OIHBnX2F1dGhpZC5vaWQg PSBhLnJlZm9iamlkIEFORCBhLnJlZmNsYXNzaWQgPSAncGdfYXV0aGlkJzo6cmVnY2xhc3Ms CisgICAgTEFURVJBTCBwZ19jYXRhbG9nLnBnX2lkZW50aWZ5X29iamVjdChhLmNsYXNzaWQs IGEub2JqaWQsIGEub2Jqc3ViaWQpIEFTIGlkZW50aWZ5CisgICAgV0hFUkUgYS5kZXB0eXBl ID0gJ28nIEFORCBhLmRiaWQgPSAoKCBTRUxFQ1QgcGdfZGF0YWJhc2VfMS5vaWQKKyAgICAg ICAgICBGUk9NIHBnX2RhdGFiYXNlIHBnX2RhdGFiYXNlXzEKKyAgICAgICAgICBXSEVSRSBw Z19kYXRhYmFzZV8xLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkKKyAgICApKTsKKwog Q1JFQVRFIFZJRVcgcGdfc2V0dGluZ3MgQVMKICAgICBTRUxFQ1QgKiBGUk9NIHBnX3Nob3df YWxsX3NldHRpbmdzKCkgQVMgQTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dAppbmRleCAyYjQ3MDEzZjExLi5hMzIzODFmMWFiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dApAQCAtMTM5OCw2ICsxMzk4LDIxIEBAIHBnX21hdHZpZXdzfCBTRUxF Q1Qgbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3Bh Y2UgbiBPTiAoKG4ub2lkID0gYy5yZWxuYW1lc3BhY2UpKSkKICAgICAgTEVGVCBKT0lOIHBn X3RhYmxlc3BhY2UgdCBPTiAoKHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSkpCiAgIFdIRVJF IChjLnJlbGtpbmQgPSAnbSc6OiJjaGFyIik7CitwZ19vd25lcnNoaXBzfCBTRUxFQ1QgKGEu Y2xhc3NpZCk6OnJlZ2NsYXNzIEFTIGNsYXNzaWQsCisgICAgYS5vYmppZCwKKyAgICBhLm9i anN1YmlkLAorICAgIGlkZW50aWZ5LnR5cGUsCisgICAgaWRlbnRpZnkuc2NoZW1hLAorICAg IGlkZW50aWZ5Lm5hbWUsCisgICAgaWRlbnRpZnkuaWRlbnRpdHksCisgICAgKGEucmVmb2Jq aWQpOjpyZWdyb2xlIEFTIG93bmVyCisgICBGUk9NICgocGdfc2hkZXBlbmQgYQorICAgICBK T0lOIHBnX2RhdGFiYXNlIE9OICgoKHBnX2RhdGFiYXNlLmRhdG5hbWUgPSBjdXJyZW50X2Rh dGFiYXNlKCkpIEFORCAocGdfZGF0YWJhc2Uub2lkID0gYS5kYmlkKSkpKQorICAgICBKT0lO IHBnX2F1dGhpZCBPTiAoKChwZ19hdXRoaWQub2lkID0gYS5yZWZvYmppZCkgQU5EIChhLnJl ZmNsYXNzaWQgPSAoJ3BnX2F1dGhpZCc6OnJlZ2NsYXNzKTo6b2lkKSkpKSwKKyAgICBMQVRF UkFMIHBnX2lkZW50aWZ5X29iamVjdChhLmNsYXNzaWQsIGEub2JqaWQsIGEub2Jqc3ViaWQp IGlkZW50aWZ5KHR5cGUsIHNjaGVtYSwgbmFtZSwgaWRlbnRpdHkpCisgIFdIRVJFICgoYS5k ZXB0eXBlID0gJ28nOjoiY2hhciIpIEFORCAoYS5kYmlkID0gKCBTRUxFQ1QgcGdfZGF0YWJh c2VfMS5vaWQKKyAgICAgICAgICAgRlJPTSBwZ19kYXRhYmFzZSBwZ19kYXRhYmFzZV8xCisg ICAgICAgICAgV0hFUkUgKHBnX2RhdGFiYXNlXzEuZGF0bmFtZSA9IGN1cnJlbnRfZGF0YWJh c2UoKSkpKSk7CiBwZ19wb2xpY2llc3wgU0VMRUNUIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1l LAogICAgIGMucmVsbmFtZSBBUyB0YWJsZW5hbWUsCiAgICAgcG9sLnBvbG5hbWUgQVMgcG9s aWN5bmFtZSwKQEAgLTE0NDIsNiArMTQ1NywzNiBAQCBwZ19wcmVwYXJlZF94YWN0c3wgU0VM RUNUIHAudHJhbnNhY3Rpb24sCiAgICBGUk9NICgocGdfcHJlcGFyZWRfeGFjdCgpIHAodHJh bnNhY3Rpb24sIGdpZCwgcHJlcGFyZWQsIG93bmVyaWQsIGRiaWQpCiAgICAgIExFRlQgSk9J TiBwZ19hdXRoaWQgdSBPTiAoKHAub3duZXJpZCA9IHUub2lkKSkpCiAgICAgIExFRlQgSk9J TiBwZ19kYXRhYmFzZSBkIE9OICgocC5kYmlkID0gZC5vaWQpKSk7CitwZ19wcml2aWxlZ2Vz fCBTRUxFQ1QgKGNsYXNzaWQpOjpyZWdjbGFzcyBBUyBjbGFzc2lkLAorICAgIG9iamlkLAor ICAgIG9ianN1YmlkLAorICAgIHR5cGUsCisgICAgc2NoZW1hLAorICAgIG5hbWUsCisgICAg aWRlbnRpdHksCisgICAgKGdyYW50b3IpOjpyZWdyb2xlIEFTIGdyYW50b3IsCisgICAgKGdy YW50ZWUpOjpyZWdyb2xlIEFTIGdyYW50ZWUsCisgICAgcHJpdmlsZWdlX3R5cGUsCisgICAg aXNfZ3JhbnRhYmxlCisgICBGUk9NICggU0VMRUNUIHBnX3NoZGVwZW5kLmNsYXNzaWQsCisg ICAgICAgICAgICBwZ19zaGRlcGVuZC5vYmppZCwKKyAgICAgICAgICAgIHBnX3NoZGVwZW5k Lm9ianN1YmlkLAorICAgICAgICAgICAgaWRlbnRpZnkudHlwZSwKKyAgICAgICAgICAgIGlk ZW50aWZ5LnNjaGVtYSwKKyAgICAgICAgICAgIGlkZW50aWZ5Lm5hbWUsCisgICAgICAgICAg ICBpZGVudGlmeS5pZGVudGl0eSwKKyAgICAgICAgICAgIGFjbGV4cGxvZGUuZ3JhbnRvciwK KyAgICAgICAgICAgIGFjbGV4cGxvZGUuZ3JhbnRlZSwKKyAgICAgICAgICAgIGFjbGV4cGxv ZGUucHJpdmlsZWdlX3R5cGUsCisgICAgICAgICAgICBhY2xleHBsb2RlLmlzX2dyYW50YWJs ZQorICAgICAgICAgICBGUk9NICgocGdfc2hkZXBlbmQKKyAgICAgICAgICAgICBKT0lOIHBn X2RhdGFiYXNlIE9OICgoKHBnX2RhdGFiYXNlLmRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNl KCkpIEFORCAocGdfZGF0YWJhc2Uub2lkID0gcGdfc2hkZXBlbmQuZGJpZCkpKSkKKyAgICAg ICAgICAgICBKT0lOIHBnX2F1dGhpZCBPTiAoKChwZ19hdXRoaWQub2lkID0gcGdfc2hkZXBl bmQucmVmb2JqaWQpIEFORCAocGdfc2hkZXBlbmQucmVmY2xhc3NpZCA9ICgncGdfYXV0aGlk Jzo6cmVnY2xhc3MpOjpvaWQpKSkpLAorICAgICAgICAgICAgTEFURVJBTCBwZ19pZGVudGlm eV9vYmplY3QocGdfc2hkZXBlbmQuY2xhc3NpZCwgcGdfc2hkZXBlbmQub2JqaWQsIHBnX3No ZGVwZW5kLm9ianN1YmlkKSBpZGVudGlmeSh0eXBlLCBzY2hlbWEsIG5hbWUsIGlkZW50aXR5 KSwKKyAgICAgICAgICAgIExBVEVSQUwgYWNsZXhwbG9kZShwZ19nZXRfYWNsKHBnX3NoZGVw ZW5kLmNsYXNzaWQsIHBnX3NoZGVwZW5kLm9iamlkLCBwZ19zaGRlcGVuZC5vYmpzdWJpZCkp IGFjbGV4cGxvZGUoZ3JhbnRvciwgZ3JhbnRlZSwgcHJpdmlsZWdlX3R5cGUsIGlzX2dyYW50 YWJsZSkKKyAgICAgICAgICBXSEVSRSAoKHBnX3NoZGVwZW5kLmRlcHR5cGUgPSAnYSc6OiJj aGFyIikgQU5EIChwZ19zaGRlcGVuZC5kYmlkID0gKCBTRUxFQ1QgcGdfZGF0YWJhc2VfMS5v aWQKKyAgICAgICAgICAgICAgICAgICBGUk9NIHBnX2RhdGFiYXNlIHBnX2RhdGFiYXNlXzEK KyAgICAgICAgICAgICAgICAgIFdIRVJFIChwZ19kYXRhYmFzZV8xLmRhdG5hbWUgPSBjdXJy ZW50X2RhdGFiYXNlKCkpKSkpKSBhOwogcGdfcHVibGljYXRpb25fdGFibGVzfCBTRUxFQ1Qg cC5wdWJuYW1lLAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMucmVsbmFt ZSBBUyB0YWJsZW5hbWUsCi0tIAoyLjQ1LjEKCg== --0f155d0dc1f048308755a6c6d95a6fd8--