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 1vBs4z-006GPw-61 for pgsql-hackers@arkaria.postgresql.org; Thu, 23 Oct 2025 09:57:56 +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 1vBs4x-007uVY-VN for pgsql-hackers@arkaria.postgresql.org; Thu, 23 Oct 2025 09:57:55 +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 1vBs4x-007uVP-Dp for pgsql-hackers@lists.postgresql.org; Thu, 23 Oct 2025 09:57:54 +0000 Received: from mail-io1-xd2a.google.com ([2607:f8b0:4864:20::d2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vBs4u-003KRW-1o for pgsql-hackers@lists.postgresql.org; Thu, 23 Oct 2025 09:57:53 +0000 Received: by mail-io1-xd2a.google.com with SMTP id ca18e2360f4ac-940d327df21so27597439f.1 for ; Thu, 23 Oct 2025 02:57:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761213472; x=1761818272; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=seXF9m1CTShSesxD3xOkEqgaUqFeEhh1UHcFHBzNuW4=; b=YYPdEim5pV1Mk1nqxOcBmI9K95kuioeNIfrRJzbaI/ie8TymEhots9dQDLeLJ+LhzJ aATIR2QKLy1YjhRtJI6omwH4q7P4EBE79Zr7K7qrREsYeGceZXhWZHSoh1a+MbMTOI+k SIGpstuRp71kv3pFS7UT15DUWDkpbSUtObU3XNIlCmgOsHtI1Zyh/BkI0170cYFa4CMF 0Y0e/d/bNpWiJipbgsOsub/WuKT8WkHKrL0zfIGvF4R+0wVfty5WOKoOjNh4sSVLPY9w Mbn161CNQyfdfpg1AKsw4Wr2SyWxAcKEfBhrGL/jYSwzcCVFX+mCkNZegWBJiSENKxBF pPQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761213472; x=1761818272; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=seXF9m1CTShSesxD3xOkEqgaUqFeEhh1UHcFHBzNuW4=; b=IirQCXhHSBessXTMsD59EXNGMNYczdet4kWyLRcE2W6DaP7F3qoH9T72bUa1R68wQ8 E6v047niCufuDGJdIAPmumbdrEn4K2kCYAu5ZsDTWoWWtxnigLV8P2BDRdiDYG2CXUio BEm2XFQ6OqIDi6StPwDgANZTZbScS3pvk+C+0Zo/TtAxY2xkK8B2HqyOKQoNZ48zy0Qz Cvy/tMr31zPK4BOQnfyEL6LboDjhVSkWZYa4Jr3T2IRIFD5Y9f04TlUYYY4B+0wdGZAc zFsK5REx+FM83aLghJTzlQAXZYNKd6zaOx9Y4XVoeUZKidCVwwmt2uZn10NTUTaE463S I+fQ== X-Forwarded-Encrypted: i=1; AJvYcCV9pYcueQJnnI7oiLsB55jVnEtV89erZXlOoDPVhtA/4tPP5J7YGNKMUZ0/f6VJDwEsu3glf2qDQsD9wu0z@lists.postgresql.org X-Gm-Message-State: AOJu0YzU5q1moHJpdu45M7O8PZUbDu7yXv2JXgCj54Bp6BJwgNhSkhmu XVtsiVjTesrZSy7Pa0KRjgq7iES/KQSBum7ClTE7T78JjN9IOq8+H7LmhLG6MnAY6BEzoFetsNG agqFIXmvHJyRC+pV1cP1PasnfT2of5z6rdhzX X-Gm-Gg: ASbGnctJ05M6/cIW2jCMxeU2mg3zAf/hd0HMigrAa8fdenVKFioNAja5zpQQ8iZHSai FH1Qc0+iu5IbINFGXfBNBrnCHuEAwd2Nr+EWQYNFzkcWfmKghUf8Ydf2TxKLHdm6JdL4Z9aHzIA HIGIUkx0E9iWaM48pr3H7hQ9vDUHszTJX4mNdLgvxz6HUQF1+romw6s2E2pOVlYeNiEnaiCNktx 81vWY8DSuA0mjr9MmlSJzC6WJbU9KeFoY7vUkqoRYJzePdf3lWTQ7H40yJwqwY64ILoh7zQKIVe oJvT0tHGlz2NQBwhRprYLvBe84Ct2g== X-Google-Smtp-Source: AGHT+IG6z6gVLUyngQonyIMPs7icseN0gDHoz+Wncvmgn+oUMqyX+mwmxYQcbuT7iTk0JDlw/L81O3xT/j/dJpGxpo0= X-Received: by 2002:a92:cd82:0:b0:426:39a:90f1 with SMTP id e9e14a558f8ab-430c527dc54mr328733635ab.18.1761213471710; Thu, 23 Oct 2025 02:57:51 -0700 (PDT) MIME-Version: 1.0 References: <21076.1748617331@localhost> <2724612.1748655287@sss.pgh.pa.us> In-Reply-To: From: Greg Sabino Mullane Date: Thu, 23 Oct 2025 05:57:19 -0400 X-Gm-Features: AS18NWCC4fL0tOGUe6j1ugTXKUxcXwqrcOJzL_w_zLILVddK0t507W51h5btvxo Message-ID: Subject: Re: POC: Carefully exposing information without authentication To: Tom Lane Cc: Antonin Houska , "pgsql-hackers@lists.postgresql.org" Content-Type: multipart/mixed; boundary="0000000000005b01d10641d077b0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005b01d10641d077b0 Content-Type: multipart/alternative; boundary="0000000000005b01d00641d077ae" --0000000000005b01d00641d077ae Content-Type: text/plain; charset="UTF-8" Version 4 attached, rebased to account for new tests, plus a new instra-test check to make sure LWP::UserAgent is available before running. Cheers, Greg --0000000000005b01d00641d077ae Content-Type: text/html; charset="UTF-8"
Version 4 attached, rebased to account for new tests, plus a new instra-test check to make sure LWP::UserAgent is available before running.

Cheers,
Greg

--0000000000005b01d00641d077ae-- --0000000000005b01d10641d077b0 Content-Type: application/octet-stream; name="0004-Allow-specific-information-to-be-output-directly-by-Postgres.patch" Content-Disposition: attachment; filename="0004-Allow-specific-information-to-be-output-directly-by-Postgres.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mh3903qf0 RnJvbSBkNzJiZTU1MThlN2NjNDc1MGVmNDk4NmRkMjU2NzdlNzY0YzliMjdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIFNhYmlubyBNdWxsYW5lIDxncmVnQHR1cm5zdGVwLmNv bT4KRGF0ZTogU2F0LCAzMSBNYXkgMjAyNSAwMDozODoyNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hd IEFsbG93IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvIGJlIG91dHB1dCBkaXJlY3RseSBieSBQb3N0 Z3Jlcy4KCi0tLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAgICAg IHwgIDc4ICsrKysrKysKIHNyYy9iYWNrZW5kL3Rjb3AvYmFja2VuZF9zdGFydHVwLmMgICAgICAg ICAgICB8IDE5MSArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3BhcmFtZXRlcnMuZGF0ICAgICB8ICAxOCArKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICA4ICsKIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcG9zdG1h c3Rlci5oICAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy9tZXNv bi5idWlsZCAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvdC8wMTBf ZXhwb3NlLnBsICAgIHwgIDkxICsrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAzOTEgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL3Qv MDEwX2V4cG9zZS5wbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCAwYTJhOGI0OWZkYi4uZjIwMDJhMDYwN2MgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwKQEAgLTEwNzcsNiArMTA3Nyw4NCBAQCBpbmNsdWRlX2RpciAnY29uZi5kJwogICAg ICA8L3ZhcmlhYmxlbGlzdD4KICAgICAgPC9zZWN0Mj4KIAorICAgICA8c2VjdDIgaWQ9InJ1bnRp bWUtY29uZmlnLWV4cG9zZS1zZXR0aW5ncyI+CisgICAgIDx0aXRsZT5FeHBvc2UgU2V0dGluZ3M8 L3RpdGxlPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0i Z3VjLWV4cG9zZS1yZWNvdmVyeSIgeHJlZmxhYmVsPSJleHBvc2VfcmVjb3ZlcnkiPgorICAgICAg PHRlcm0+PHZhcm5hbWU+ZXhwb3NlX3JlY292ZXJ5PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwv dHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmV4cG9z ZV9yZWNvdmVyeTwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+Cisg ICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgRW5hYmxlcyByZXBvcnRpbmcgaWYgdGhlIHNlcnZlciBpcyBpbiBy ZWNvdmVyeSBtb2RlIHdpdGhvdXQgcmVxdWlyaW5nCisgICAgICAgIGFuIGF1dGhlbnRpY2F0ZWQg bG9naW4uIENsaWVudHMgY2FuIHNlbmQgdGhlIHN0cmluZyA8bGl0ZXJhbD5HRVQgL3JlcGxpY2E8 L2xpdGVyYWw+CisgICAgICAgIGFuZCB3aWxsIHJlY2VpdmUgYSAxIG9yIDAuIFRoaXMgaXMgZXF1 aXZhbGVudCB0byBsb2dnaW5nIGluIGFuZCBydW5uaW5nCisgICAgICAgIDxsaXRlcmFsPlNFTEVD VCBwZ19pc19pbl9yZWNvdmVyeSgpPC9saXRlcmFsPi4gQSBjbGllbnQgY2FuIGFsc28gc2VuZCB0 aGUKKyAgICAgICAgc3RyaW5nIDxsaXRlcmFsPkhFQUQgL3JlcGxpY2E8L2xpdGVyYWw+IHdoaWNo IHdpbGwgc29sZWx5IHJldHVybiBhbiBIVFRQIGxpdGVyYWw6CisgICAgICAgIDxsaXRlcmFsPjIw MDwvbGl0ZXJhbD4gaWYgdGhlIHNlcnZlciBpcyBpbiByZWNvdmVyeSwgPGxpdGVyYWw+NTAzPC9s aXRlcmFsPiBpZiBub3QuCisgICAgICAgIChUaGlzIGFsbG93cyBhIGRyb3AtaW4gcmVwbGFjZW1l bnQgdG8gdGhlIHNhbWUgUGF0cm9uaSBmdW5jdGlvbmFsaXR5KQorICAgICAgICBGaW5hbGx5LCBh IGNsaWVudCBjYW4gaXNzdWUgPGxpdGVyYWw+R0VUIC9pbmZvPC9saXRlcmFsPiBhbmQgcmVjZWl2 ZSB0aGUgc3RyaW5nCisgICAgICAgIDxsaXRlcmFsPlJFQ09WRVJZOiA8L2xpdGVyYWw+IGZvbGxv d2VkIGJ5IGEgMSBvciAwLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1leHBvc2Utc3lz aWQiIHhyZWZsYWJlbD0iZXhwb3NlX3N5c2lkIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmV4cG9z ZV9zeXNpZDwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVy bT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5leHBvc2Vfc3lzaWQ8L3Zhcm5hbWU+IGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEVuYWJsZXMg cmVwb3J0aW5nIHRoZSBzeXN0ZW0gaWRlbnRpZmllciBvZiB0aGUgY2x1c3RlciB3aXRob3V0IHJl cXVpcmluZworICAgICAgICBhbiBhdXRoZW50aWNhdGVkIGxvZ2luLiBDbGllbnRzIGNhbiBzZW5k IHRoZSBzdHJpbmcgPGxpdGVyYWw+R0VUIC9zeXNpZDwvbGl0ZXJhbD4KKyAgICAgICAgYW5kIHdp bGwgcmVjZWl2ZSB0aGUgbnVtZXJpYyBzeXN0ZW0gaWRlbnRpZmllci4gVGhpcyBpcyBhIHVuaXF1 ZSBudW1iZXIgZ2VuZXJhdGVkCisgICAgICAgIGJ5IGVhY2ggY2x1c3RlciB3aGVuIGluaXRkYiBp cyBydW4uCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBBIGNsaWVudCBj YW4gaXNzdWUgPGxpdGVyYWw+R0VUIC9pbmZvPC9saXRlcmFsPiBhbmQgcmVjZWl2ZSB0aGUgc3Ry aW5nCisgICAgICAgIDxsaXRlcmFsPlNZU0lEOiA8L2xpdGVyYWw+IGZvbGxvd2VkIGJ5IHRoZSBu dW1lcmljIHN5c3RlbSBpZGVudGlmaWVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgVGhpcyBmZWF0dXJlIGlzIHVzZWZ1bCBmb3IgZGV0ZXJtaW5pbmcgaWYgdGhlIHNl cnZlciBpcyB0aGUgc2FtZSBzZXJ2ZXIgYXMgcHJldmlvdXNseQorICAgICAgICBlbmNvdW50ZXJl ZC4gTm90ZSB0aGFuIHByaW1hcnkgYW5kIHJlcGxpY2Egc2VydmVycyB3aWxsIHNoYXJlIHRoZSBz YW1lIHN5c3RlbQorICAgICAgICBpZGVudGlmaWVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwv bGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9 Imd1Yy1leHBvc2UtdmVyc2lvbiIgeHJlZmxhYmVsPSJleHBvc2VfdmVyc2lvbiI+CisgICAgICA8 dGVybT48dmFybmFtZT5leHBvc2VfdmVyc2lvbjwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5 cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5leHBvc2Vf dmVyc2lvbjwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAg ICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgRW5hYmxlcyByZXBvcnRpbmcgdGhlIG51bWVyaWMgdmVyc2lvbiBvZiB0 aGUgUG9zdGdyZXMgY2x1c3RlciB3aXRob3V0IHJlcXVpcmluZworICAgICAgICBhbiBhdXRoZW50 aWNhdGVkIGxvZ2luLiBDbGllbnRzIGNhbiBzZW5kIHRoZSBzdHJpbmcgPGxpdGVyYWw+R0VUIC92 ZXJzaW9uPC9saXRlcmFsPgorICAgICAgICBhbmQgd2lsbCByZWNlaXZlIGFuIGludGVnZXIgcmVw cmVzZW50aW5nIHRoZSB2ZXJzaW9uLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgQSBjbGllbnQgY2FuIGlzc3VlIDxsaXRlcmFsPkdFVCAvaW5mbzwvbGl0ZXJhbD4gYW5k IHJlY2VpdmUgdGhlIHN0cmluZworICAgICAgICA8bGl0ZXJhbD5WRVJTSU9OOiA8L2xpdGVyYWw+ IGZvbGxvd2VkIGJ5IHRoZSBudW1lcmljIHZlcnNpb24uCisgICAgICAgPC9wYXJhPgorICAgICAg IDxwYXJhPgorICAgICAgICBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIG5vbi1Qb3N0 Z3JlcyBzeXN0ZW1zIChlc3AuIHNlY3VyaXR5IHNjYW5uZXJzKSB0aGF0CisgICAgICAgIG5lZWQg YSB3YXkgdG8gZWFzaWx5IGRldGVybWluZSB0aGUgdmVyc2lvbiBvZiBQb3N0Z3JlcyBpbiB1c2Ug d2l0aG91dCByZXF1aXJpbmcKKyAgICAgICAgYSBQb3N0Z3JlcyBjbGllbnQgLSBvciB3aXRob3V0 IG5lZWRpbmcgYW55IGtub3dsZWRnZSBvZiB0aGUgUG9zdGdyZXMgcHJvdG9jb2wgYXQgYWxsLgor ICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICA8L3NlY3QyPgorCiAgICAgIDxzZWN0MiBpZD0i cnVudGltZS1jb25maWctY29ubmVjdGlvbi1hdXRoZW50aWNhdGlvbiI+CiAgICAgIDx0aXRsZT5B dXRoZW50aWNhdGlvbjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvYmFj a2VuZF9zdGFydHVwLmMgYi9zcmMvYmFja2VuZC90Y29wL2JhY2tlbmRfc3RhcnR1cC5jCmluZGV4 IDE0ZDVmYzBiMTk2Li5iNWQ5NmQ4ODMwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9i YWNrZW5kX3N0YXJ0dXAuYworKysgYi9zcmMvYmFja2VuZC90Y29wL2JhY2tlbmRfc3RhcnR1cC5j CkBAIC00Niw2ICs0NiwxMCBAQAogYm9vbAkJVHJhY2VfY29ubmVjdGlvbl9uZWdvdGlhdGlvbiA9 IGZhbHNlOwogdWludDMyCQlsb2dfY29ubmVjdGlvbnMgPSAwOwogY2hhcgkgICAqbG9nX2Nvbm5l Y3Rpb25zX3N0cmluZyA9IE5VTEw7Citib29sCQlleHBvc2VfcmVjb3ZlcnkgPSBmYWxzZTsKK2Jv b2wJCWV4cG9zZV9zeXNpZCA9IGZhbHNlOworYm9vbAkJZXhwb3NlX3ZlcnNpb24gPSBmYWxzZTsK KwogCiAvKiBPdGhlciBnbG9iYWxzICovCiAKQEAgLTY1LDYgKzY5LDcgQEAgc3RhdGljIHZvaWQg U2VuZE5lZ290aWF0ZVByb3RvY29sVmVyc2lvbihMaXN0ICp1bnJlY29nbml6ZWRfcHJvdG9jb2xf b3B0aW9ucyk7CiBzdGF0aWMgdm9pZCBwcm9jZXNzX3N0YXJ0dXBfcGFja2V0X2RpZShTSUdOQUxf QVJHUyk7CiBzdGF0aWMgdm9pZCBTdGFydHVwUGFja2V0VGltZW91dEhhbmRsZXIodm9pZCk7CiBz dGF0aWMgYm9vbCB2YWxpZGF0ZV9sb2dfY29ubmVjdGlvbnNfb3B0aW9ucyhMaXN0ICplbGVtbGlz dCwgdWludDMyICpmbGFncyk7CitzdGF0aWMgYm9vbCBFeHBvc2VJbmZvcm1hdGlvbihwZ3NvY2tl dCBmZCk7CiAKIC8qCiAgKiBFbnRyeSBwb2ludCBmb3IgYSBuZXcgYmFja2VuZCBwcm9jZXNzLgpA QCAtMTQ4LDYgKzE1MywxNSBAQCBCYWNrZW5kSW5pdGlhbGl6ZShDbGllbnRTb2NrZXQgKmNsaWVu dF9zb2NrLCBDQUNfc3RhdGUgY2FjKQogCVN0cmluZ0luZm9EYXRhIHBzX2RhdGE7CiAJTWVtb3J5 Q29udGV4dCBvbGRjb250ZXh0OwogCisJLyoKKwkgKiBTY2FuIGZvciBhIHNpbXBsZSBHRVQgLyBI RUFEIHJlcXVlc3QuIElmIHRoaXMgaXMgZGV0ZWN0ZWQgYW5kCisJICogaGFuZGxlZCwgd2UgYXJl IGRvbmUgYW5kIGNhbiBpbW1lZGlhdGVseSBleGl0CisJICovCisJaWYgKChleHBvc2VfcmVjb3Zl cnkgfHwgZXhwb3NlX3N5c2lkIHx8IGV4cG9zZV92ZXJzaW9uKQorCQkmJiBFeHBvc2VJbmZvcm1h dGlvbihjbGllbnRfc29jay0+c29jaykpCisJCXByb2NfZXhpdCgwKTsKKwkvKiBTaG91bGQgd2Ug ZG8gZXhpdCgwKSBoZXJlLCBkZXNwaXRlIHRoZSB3YXJuaW5ncyBpbiBpcGMuYz8gKi8KKwogCS8q IFRlbGwgZmQuYyBhYm91dCB0aGUgbG9uZy1saXZlZCBGRCBhc3NvY2lhdGVkIHdpdGggdGhlIGNs aWVudF9zb2NrICovCiAJUmVzZXJ2ZUV4dGVybmFsRkQoKTsKIApAQCAtMTEyNiwzICsxMTQwLDE4 MCBAQCBhc3NpZ25fbG9nX2Nvbm5lY3Rpb25zKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0 cmEpCiB7CiAJbG9nX2Nvbm5lY3Rpb25zID0gKigoaW50ICopIGV4dHJhKTsKIH0KKworCitzdGF0 aWMKK2Jvb2wKK0V4cG9zZUluZm9ybWF0aW9uKHBnc29ja2V0IGZkKQoreworCisvKgorICogRXhw b3NlSW5mb3JtYXRpb24KKyAqCisgKgorICogSGFuZGxlIGVhcmx5IHNvY2tldCBwcm9iZSBiZWZv cmUgZnVsbCBiYWNrZW5kIHN0YXJ0dXAuCisgKiBSZXNwb25kcyB0byBzbWFsbCBzZXQgb2YgcHJl ZGVmaW5lZCBlbmRwb2ludHMgKGUuZy4gR0VUIC9pbmZvKQorICoKKyAqIFJlcXVpcmVzIGF0IGxl YXN0IG9uZSAiZXhwb3NlXyIgR1VDIHRvIGJlIHRydWUuCisgKgorICogUmV0dXJucyB0cnVlIGlm IGFueSBlbmRwb2ludCBpcyByZWNvZ25pemVkLgorICovCisKKyNkZWZpbmUgRVhQT1NFX01JTl9R VUVSWSA5CQkvKiBTaG9ydGVzdCBwb3NzaWJsZSBsaW5lOiAiR2V0IC9pbmZvIiAqLworI2RlZmlu ZSBFWFBPU0VfTUFYX1FVRVJZIDE2CQkvKiBMb25nZXN0IHBvc3NpYmxlIEdFVCBsaW5lICovCisK Ky8qIFdoYXQgaW5mb3JtYXRpb24gaXMgYmVpbmcgcmV0dXJuZWQgKi8KKwl0eXBlZGVmIGVudW0K Kwl7CisJCUVYUE9TRV9OT1RISU5HLAorCQlFWFBPU0VfSEVBRF9SRVBMSUNBLAorCQlFWFBPU0Vf R0VUX0FMTCwKKwkJRVhQT1NFX0dFVF9SRVBMSUNBLAorCQlFWFBPU0VfR0VUX1NZU0lELAorCQlF WFBPU0VfR0VUX1ZFUlNJT04sCisJfQkJCVJldHVyblR5cGU7CisKKwl0eXBlZGVmIHN0cnVjdAor CXsKKwkJY29uc3QgY2hhciAqZW5kcG9pbnQ7CisJCWNvbnN0IGJvb2wgKnJlcXVpcmU7CisJCVJl dHVyblR5cGUJdHlwZTsKKwl9CQkJZW5kcG9pbnRfYWN0aW9uOworCisJc3RhdGljIGVuZHBvaW50 X2FjdGlvbiBlbmRwb2ludF9hY3Rpb25zW10gPQorCXsKKwkJeworCQkJIkhFQUQgL3JlcGxpY2Ei LCAmZXhwb3NlX3JlY292ZXJ5LCBFWFBPU0VfSEVBRF9SRVBMSUNBCisJCX0sCisJCXsKKwkJCSJH RVQgL3JlcGxpY2EiLCAmZXhwb3NlX3JlY292ZXJ5LCBFWFBPU0VfR0VUX1JFUExJQ0EKKwkJfSwK KwkJeworCQkJIkdFVCAvc3lzaWQiLCAmZXhwb3NlX3N5c2lkLCBFWFBPU0VfR0VUX1NZU0lECisJ CX0sCisJCXsKKwkJCSJHRVQgL3ZlcnNpb24iLCAmZXhwb3NlX3ZlcnNpb24sIEVYUE9TRV9HRVRf VkVSU0lPTgorCQl9LAorCQl7CisJCQkiR0VUIC9pbmZvIiwgTlVMTCwgRVhQT1NFX0dFVF9BTEwK KwkJfQorCX07CisKKwlzc2l6ZV90CQluOworCWNoYXIJCWJ1ZltFWFBPU0VfTUFYX1FVRVJZICsg MV07CisJaW50CQkJdHlwZTsKKworCUFzc2VydChleHBvc2VfcmVjb3ZlcnkgfHwgZXhwb3NlX3N5 c2lkIHx8IGV4cG9zZV92ZXJzaW9uKTsKKworCWRvCisJeworCQluID0gcmVjdihmZCwgYnVmLCBF WFBPU0VfTUFYX1FVRVJZLCBNU0dfUEVFSyk7CisJfSB3aGlsZSAobiA8IDAgJiYgZXJybm8gPT0g RUlOVFIpOworCisJLyoKKwkgKiBMZWF2ZSBhcyBzb29uIGFzIHBvc3NpYmxlIGlmIG5vIGNoYW5j ZSB3ZSBhcmUgaW50ZXJlc3RlZC4gV2UgYWxzbworCSAqIHNpbXBseSByZXR1cm4gZmFsc2UgZm9y IG4gPT0gLTEKKwkgKi8KKwlpZiAobiA8IEVYUE9TRV9NSU5fUVVFUlkpCisJCXJldHVybiBmYWxz ZTsKKworCWJ1ZltuXSA9ICdcMCc7CisKKwl0eXBlID0gRVhQT1NFX05PVEhJTkc7CisJZm9yIChp bnQgaSA9IDA7IGkgPCBsZW5ndGhvZihlbmRwb2ludF9hY3Rpb25zKTsgaSsrKQorCXsKKwkJaWYg KAorCQkJc3RybmNtcChidWYsIGVuZHBvaW50X2FjdGlvbnNbaV0uZW5kcG9pbnQsIHN0cmxlbihl bmRwb2ludF9hY3Rpb25zW2ldLmVuZHBvaW50KSkgPT0gMAorCQkJJiYKKwkJCShlbmRwb2ludF9h Y3Rpb25zW2ldLnJlcXVpcmUgPT0gTlVMTAorCQkJIHx8CisJCQkgKihlbmRwb2ludF9hY3Rpb25z W2ldLnJlcXVpcmUpCisJCQkgKSkKKwkJeworCQkJdHlwZSA9IGVuZHBvaW50X2FjdGlvbnNbaV0u dHlwZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKHR5cGUgPT0gRVhQT1NFX05PVEhJTkcp CisJCXJldHVybiBmYWxzZTsKKworCXsKKwkJc3RhdGljIGNvbnN0IGNoYXIgaHR0cF92ZXJzaW9u W10gPSAiSFRUUC8xLjEiOworCQlzdGF0aWMgY29uc3QgY2hhciBodHRwX3R5cGVbXSA9ICJDb250 ZW50LVR5cGU6IHRleHQvcGxhaW4iOworCQlzdGF0aWMgY29uc3QgY2hhciAqaHR0cF9jb25uID0g IkNvbm5lY3Rpb246IGNsb3NlIjsKKwkJc3RhdGljIGNvbnN0IGNoYXIgaHR0cF9sZW5bXSA9ICJD b250ZW50LUxlbmd0aCI7CisKKwkJU3RyaW5nSW5mb0RhdGEgbXNnOworCisJCWlmICh0eXBlID09 IEVYUE9TRV9IRUFEX1JFUExJQ0EpCisJCXsKKwkJCS8qCisJCQkgKiBDYWxsZXIgb25seSBjYXJl cyBhYm91dCB0aGUgSFRUUCByZXNwb25zZSBjb2RlLCBzbyBubyBjb250ZW50CisJCQkgKiBuZWVk ZWQKKwkJCSAqLworCisJCQlpbml0U3RyaW5nSW5mb0V4dCgmbXNnLCA2NCk7CisKKwkJCWFwcGVu ZFN0cmluZ0luZm8oJm1zZywKKwkJCQkJCQkgIiVzICVzXHJcbiIKKwkJCQkJCQkgIiVzXHJcbiIK KwkJCQkJCQkgIiVzXHJcblxyXG4iLAorCQkJCQkJCSBodHRwX3ZlcnNpb24sCisJCQkJCQkJIChS ZWNvdmVyeUluUHJvZ3Jlc3MoKSA/ICIyMDAgT0siIDogIjUwMyBTZXJ2aWNlIFVuYXZhaWxhYmxl IiksCisJCQkJCQkJIGh0dHBfdHlwZSwKKwkJCQkJCQkgaHR0cF9jb25uCisJCQkJKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCVN0cmluZ0luZm9EYXRhIGNvbnRlbnQ7CisKKwkJCWluaXRTdHJpbmdJ bmZvRXh0KCZjb250ZW50LCA2NCk7CisKKwkJCWlmIChleHBvc2VfcmVjb3ZlcnkgJiYgKHR5cGUg PT0gRVhQT1NFX0dFVF9BTEwgfHwgdHlwZSA9PSBFWFBPU0VfR0VUX1JFUExJQ0EpKQorCQkJCWFw cGVuZFN0cmluZ0luZm8oJmNvbnRlbnQsICIlcyVkXHJcbiIsCisJCQkJCQkJCSB0eXBlID09IEVY UE9TRV9HRVRfQUxMID8gIlJFQ09WRVJZOiAiIDogIiIsCisJCQkJCQkJCSBSZWNvdmVyeUluUHJv Z3Jlc3MoKSA/IDEgOiAwKTsKKwkJCWlmIChleHBvc2Vfc3lzaWQgJiYgKHR5cGUgPT0gRVhQT1NF X0dFVF9BTEwgfHwgdHlwZSA9PSBFWFBPU0VfR0VUX1NZU0lEKSkKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKCZjb250ZW50LCAiJXMlbHVcclxuIiwKKwkJCQkJCQkJIHR5cGUgPT0gRVhQT1NFX0dFVF9B TEwgPyAiU1lTSUQ6ICIgOiAiIiwKKwkJCQkJCQkJIEdldFN5c3RlbUlkZW50aWZpZXIoKSk7CisJ CQlpZiAoZXhwb3NlX3ZlcnNpb24gJiYgKHR5cGUgPT0gRVhQT1NFX0dFVF9BTEwgfHwgdHlwZSA9 PSBFWFBPU0VfR0VUX1ZFUlNJT04pKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oJmNvbnRlbnQsICIl cyVkXHJcbiIsCisJCQkJCQkJCSB0eXBlID09IEVYUE9TRV9HRVRfQUxMID8gIlZFUlNJT046ICIg OiAiIiwKKwkJCQkJCQkJIFBHX1ZFUlNJT05fTlVNKTsKKworCQkJaW5pdFN0cmluZ0luZm9FeHQo Jm1zZywgMjU2KTsKKworCQkJYXBwZW5kU3RyaW5nSW5mbygmbXNnLAorCQkJCQkJCSAiJXMgMjAw IE9LXHJcbiIKKwkJCQkJCQkgIiVzXHJcbiIKKwkJCQkJCQkgIiVzOiAlZFxyXG4iCisJCQkJCQkJ ICIlc1xyXG5cclxuIgorCQkJCQkJCSAiJXMiLAorCQkJCQkJCSBodHRwX3ZlcnNpb24sCisJCQkJ CQkJIGh0dHBfdHlwZSwKKwkJCQkJCQkgaHR0cF9sZW4sIGNvbnRlbnQubGVuLAorCQkJCQkJCSBo dHRwX2Nvbm4sCisJCQkJCQkJIGNvbnRlbnQuZGF0YQorCQkJCSk7CisKKwkJCXBmcmVlKGNvbnRl bnQuZGF0YSk7CisJCX0KKworCQlkbworCQl7CisJCQluID0gc2VuZChmZCwgbXNnLmRhdGEsIG1z Zy5sZW4sIDApOworCQl9IHdoaWxlIChuIDwgMCAmJiBlcnJubyA9PSBFSU5UUik7CisKKwkJcGZy ZWUobXNnLmRhdGEpOworCisJCWlmIChuIDwgMCkKKwkJCWVsb2coREVCVUcxLCAiY291bGQgbm90 IHNlbmQgdG8gY2xpZW50OiAlbSIpOworCisJCXJldHVybiB0cnVlOworCisJfQorCit9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCBiL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CmluZGV4IGQ2ZmM4MzMzODUwLi44 NjI5MmI2NzA4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1l dGVycy5kYXQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQK QEAgLTY0NCw2ICs2NDQsMjQgQEAKICAgYm9vdF92YWwgPT4gJ3RydWUnLAogfSwKIAoreyBuYW1l ID0+ICdleHBvc2VfcmVjb3ZlcnknLCB0eXBlID0+ICdib29sJywgY29udGV4dCA9PiAnUEdDX1NJ R0hVUCcsIGdyb3VwID0+ICdDTElFTlRfQ09OTl9TVEFURU1FTlQnLAorICBzaG9ydF9kZXNjID0+ ICdFeHBvc2VzIGlmIHRoZSBzZXJ2ZXIgaXMgaW4gcmVjb3ZlcnkgbW9kZSB3aXRob3V0IGEgbG9n aW4uJywKKyAgdmFyaWFibGUgPT4gJ2V4cG9zZV9yZWNvdmVyeScsCisgIGJvb3RfdmFsID0+ICdm YWxzZScsCit9LAorCit7IG5hbWUgPT4gJ2V4cG9zZV9zeXNpZCcsIHR5cGUgPT4gJ2Jvb2wnLCBj b250ZXh0ID0+ICdQR0NfU0lHSFVQJywgZ3JvdXAgPT4gJ0NMSUVOVF9DT05OX1NUQVRFTUVOVCcs CisgIHNob3J0X2Rlc2MgPT4gJ0V4cG9zZXMgdGhlIHN5c3RlbSBpZGVudGlmaWVyIHdpdGhvdXQg YSBsb2dpbi4nLAorICB2YXJpYWJsZSA9PiAnZXhwb3NlX3N5c2lkJywKKyAgYm9vdF92YWwgPT4g J2ZhbHNlJywKK30sCisKK3sgbmFtZSA9PiAnZXhwb3NlX3ZlcnNpb24nLCB0eXBlID0+ICdib29s JywgY29udGV4dCA9PiAnUEdDX1NJR0hVUCcsIGdyb3VwID0+ICdDTElFTlRfQ09OTl9TVEFURU1F TlQnLAorICBzaG9ydF9kZXNjID0+ICdFeHBvc2VzIHRoZSBzZXJ2ZXIgdmVyc2lvbiB3aXRob3V0 IGEgbG9naW4uJywKKyAgdmFyaWFibGUgPT4gJ2V4cG9zZV92ZXJzaW9uJywKKyAgYm9vdF92YWwg PT4gJ2ZhbHNlJywKK30sCisKIHsgbmFtZSA9PiAnYXJyYXlfbnVsbHMnLCB0eXBlID0+ICdib29s JywgY29udGV4dCA9PiAnUEdDX1VTRVJTRVQnLCBncm91cCA9PiAnQ09NUEFUX09QVElPTlNfUFJF VklPVVMnLAogICBzaG9ydF9kZXNjID0+ICdFbmFibGVzIGlucHV0IG9mIE5VTEwgZWxlbWVudHMg aW4gYXJyYXlzLicsCiAgIGxvbmdfZGVzYyA9PiAnV2hlbiB0dXJuZWQgb24sIHVucXVvdGVkIE5V TEwgaW4gYW4gYXJyYXkgaW5wdXQgdmFsdWUgbWVhbnMgYSBudWxsIHZhbHVlOyBvdGhlcndpc2Ug aXQgaXMgdGFrZW4gbGl0ZXJhbGx5LicsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZjYyYjYxOTY3ZWYuLjE5NDM3NDcxYzgwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC05MSw2ICs5 MSwxNCBAQAogCQkJCQkjIGRpc2Nvbm5lY3Rpb24gd2hpbGUgcnVubmluZyBxdWVyaWVzOwogCQkJ CQkjIDAgZm9yIG5ldmVyCiAKKworIyAtIEV4cG9zZSBpbmZvcm1hdGlvbiAtCisKKyNleHBvc2Vf cmVjb3ZlcnkgPSBvZmYKKyNleHBvc2Vfc3lzaWQgPSBvZmYKKyNleHBvc2VfdmVyc2lvbiA9IG9m ZgorCisKICMgLSBBdXRoZW50aWNhdGlvbiAtCiAKICNhdXRoZW50aWNhdGlvbl90aW1lb3V0ID0g MW1pbgkJIyAxcy02MDBzCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuaCBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oCmluZGV4IDc1Mzg3 MTA3MWFjLi5lZTFjYTJmY2EzNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9w b3N0bWFzdGVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgKQEAg LTcwLDYgKzcwLDEwIEBAIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHJlc3RhcnRfYWZ0ZXJfY3Jh c2g7CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCByZW1vdmVfdGVtcF9maWxlc19hZnRlcl9jcmFz aDsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHNlbmRfYWJvcnRfZm9yX2NyYXNoOwogZXh0ZXJu IFBHRExMSU1QT1JUIGJvb2wgc2VuZF9hYm9ydF9mb3Jfa2lsbDsKK2V4dGVybiBQR0RMTElNUE9S VCBib29sIGV4cG9zZV9yZWNvdmVyeTsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIGV4cG9zZV9z eXNpZDsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIGV4cG9zZV92ZXJzaW9uOworCiAKICNpZmRl ZiBXSU4zMgogZXh0ZXJuIFBHRExMSU1QT1JUIEhBTkRMRSBQb3N0bWFzdGVySGFuZGxlOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvbWVzb24uYnVpbGQgYi9zcmMvdGVz dC9tb2R1bGVzL3Rlc3RfbWlzYy9tZXNvbi5idWlsZAppbmRleCBmMjU4YmYxY2NkOS4uNzI2YmQ5 MzkwOGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL21lc29uLmJ1aWxk CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL21lc29uLmJ1aWxkCkBAIC0xOCw2ICsx OCw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAwN19jYXRjYWNoZV9pbnZhbC5wbCcsCiAgICAg ICAndC8wMDhfcmVwbHNsb3Rfc2luZ2xlX3VzZXIucGwnLAogICAgICAgJ3QvMDA5X2xvZ190ZW1w X2ZpbGVzLnBsJywKKyAgICAgICd0LzAxMF9leHBvc2UucGwnLAogICAgIF0sCiAgIH0sCiB9CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy90LzAxMF9leHBvc2UucGwgYi9z cmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy90LzAxMF9leHBvc2UucGwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY5MzYzZDBiYzA0Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvdC8wMTBfZXhwb3NlLnBsCkBAIC0wLDAgKzEsOTcg QEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorCisjIFRlc3QgZ2F0aGVyaW5nIGluZm9ybWF0aW9uIGJlZm9yZSBhdXRoZW50aWNhdGlv biB2aWEgZXhwb3NlXyogdmFyaWFibGVzCisKKyMgRm9yY2UgdXNlIG9mIFRDUC9JUCAtIGNhbGwg YmVmb3JlIHRoZSAndXNlJworSU5JVHsgJFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp1c2VfdW5p eF9zb2NrZXRzID0gMDsgfQorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3Rn cmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2Ug VGVzdDo6TW9yZTsKKworZXZhbCB7CisgICAgcmVxdWlyZSBMV1A6OlVzZXJBZ2VudDsKK307Citp ZiAoJEApIHsKKyAgICBwbGFuIHNraXBfYWxsID0+ICdMV1A6OlVzZXJBZ2VudCBpcyBuZWVkZWQg dG8gcnVuIHRoaXMgdGVzdCc7Cit9CisKK215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1 c3Rlci0+bmV3KCdub2RlMScpOworIyBTZXR0aW5nIGFzIGxvZ2ljYWwgaGVyZSBzaW1wbHkgdG8g YXZvaWQgd2FsX2xldmVsIG1pbmltYWwgc28gd2UgY2FuIHJlc3RhcnQgYXMgYSByZXBsaWNhCisk bm9kZS0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICJsb2dpY2FsIik7Ciskbm9kZS0+c3RhcnQ7 CisKK215ICRzZXJ2ZXJfdmVyc2lvbiA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ3No b3cgc2VydmVyX3ZlcnNpb25fbnVtJyk7CitteSAkYmluZGlyID0gJG5vZGUtPmNvbmZpZ19kYXRh KCctLWJpbmRpcicpOworbXkgJGRhdGFkaXIgPSAkbm9kZS0+ZGF0YV9kaXI7CitteSAkY2RhdGEg PSBxeHskYmluZGlyL3BnX2NvbnRyb2xkYXRhIC1EICRkYXRhZGlyIDI+JjF9OworbXkgKCRzeXNp ZCkgPSAkY2RhdGEgPX4gL0RhdGFiYXNlIHN5c3RlbSBpZGVudGlmaWVyOlxzKyhcZCspLzsKKwor bXkgJHBvcnQgPSAkbm9kZS0+cG9ydDsKK215ICRVUkk9Imh0dHA6Ly9sb2NhbGhvc3Q6JHBvcnQi OworbXkgJHVhID0gTFdQOjpVc2VyQWdlbnQtPm5ldyh0aW1lb3V0ID0+IDIpOworCitteSAoJHJl c3BvbnNlLCAkY29kZSwgJGNvbnRlbnQpOworCiskcmVzcG9uc2UgPSAkdWEtPmdldCgiJFVSSS9p bmZvIik7CiskY29kZSA9ICRyZXNwb25zZS0+Y29kZTsKK2lzICgkY29kZSwgNTAwLCAiR0VUIC9p bmZvIHJldHVybnMgSFRUUCBjb2RlIDUwMCB3aGVuIG5vdGhpbmcgaXMgbGlzdGVuaW5nIik7CisK KyRyZXNwb25zZSA9ICR1YS0+aGVhZCgiJFVSSS9yZXBsaWNhIik7CiskY29kZSA9ICRyZXNwb25z ZS0+Y29kZTsKK2lzICgkY29kZSwgNTAwLCAiSEVBRCAvcmVwbGljYSByZXR1cm5zIEhUVFAgY29k ZSA1MDAgd2hlbiBub3RoaW5nIGlzIGxpc3RlbmluZyIpOworCiskbm9kZS0+YXBwZW5kX2NvbmYo J3Bvc3RncmVzcWwuY29uZicsICdleHBvc2VfcmVjb3Zlcnk9b24nKTsKKyRub2RlLT5yZWxvYWQo KTsKKworJHJlc3BvbnNlID0gJHVhLT5nZXQoIiRVUkkvcmVwbGljYSIpOworJGNvZGUgPSAkcmVz cG9uc2UtPmNvZGU7CitpcyAoJGNvZGUsIDIwMCwgIkdFVCAvcmVwbGljYSByZXR1cm5zIEhUVFAg Y29kZSAyMDAgd2hlbiBleHBvc2VfcmVjb3ZlcnkgaXMgb24gKHByaW1hcnkpIik7CitpcyAoJHJl c3BvbnNlLT5jb250ZW50LCAiMFxyXG4iLCAiR0VUIC9yZXBsaWNhIHJldHVybnMgJzAnIHdoZW4g ZXhwb3NlX3JlY292ZXJ5IGlzIG9uIChwcmltYXJ5KSIpOworCiskcmVzcG9uc2UgPSAkdWEtPmhl YWQoIiRVUkkvcmVwbGljYSIpOworJGNvZGUgPSAkcmVzcG9uc2UtPmNvZGU7CitpcyAoJGNvZGUs IDUwMywgIkhFQUQgL2luZm8gcmV0dXJucyBIVFRQIGNvZGUgNTAzIHdoZW4gZXhwb3NlX3JlY292 ZXJ5IGlzIG9uIChwcmltYXJ5KSIpOworCiskcmVzcG9uc2UgPSAkdWEtPmdldCgiJFVSSS9pbmZv Iik7CiskY29kZSA9ICRyZXNwb25zZS0+Y29kZTsKK2lzICgkY29kZSwgMjAwLCAiR0VUIC9pbmZv IHJldHVybnMgSFRUUCBjb2RlIDIwMCB3aGVuIGV4cG9zZV9yZWNvdmVyeSBpcyBvbiIpOworaXMg KCRyZXNwb25zZS0+Y29udGVudCwgIlJFQ09WRVJZOiAwXHJcbiIsICJHRVQgL2luZm8gcmV0dXJu cyAnUkVDT1ZFUlk6MCcgd2hlbiBleHBvc2VfcmVjb3ZlcnkgaXMgb24gKHByaW1hcnkpIik7CisK KyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ2V4cG9zZV92ZXJzaW9uPW9u Jyk7Ciskbm9kZS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICdleHBvc2Vfc3lzaWQ9 b24nKTsKKyRub2RlLT5yZWxvYWQoKTsKKworJHJlc3BvbnNlID0gJHVhLT5nZXQoIiRVUkkvaW5m byIpOworJGNvbnRlbnQgPSAkcmVzcG9uc2UtPmNvbnRlbnQ7CitsaWtlICgkY29udGVudCwgcXIv UkVDT1ZFUlk6IDAvLCAiR0VUIC9pbmZvIHJldHVybnMgJ1JFQ09WRVJZOiAwJyB3aGVuIGV4cG9z ZV9yZWNvdmVyeSBpcyBvbiAocHJpbWFyeSkiKTsKK2xpa2UgKCRjb250ZW50LCBxci9WRVJTSU9O OiAkc2VydmVyX3ZlcnNpb24vLCAiR0VUIC9pbmZvIHJldHVybnMgJ1ZFUlNJT046ICRzZXJ2ZXJf dmVyc2lvbicgd2hlbiBleHBvc2VfdmVyc2lvbiBpcyBvbiIpOworbGlrZSAoJGNvbnRlbnQsIHFy L1NZU0lEOiAkc3lzaWQvLCAiR0VUIC9pbmZvIHJldHVybnMgY29ycmVjdCBTWVNJRCB3aGVuIGV4 cG9zZV9zeXNpZCBpcyBvbiIpOworCiskcmVzcG9uc2UgPSAkdWEtPmdldCgiJFVSSS9zeXNpZCIp OworJGNvbnRlbnQgPSAkcmVzcG9uc2UtPmNvbnRlbnQ7CitpcyAoJGNvbnRlbnQsICIkc3lzaWRc clxuIiwgIkdFVCAvc3lzaWQgcmV0dXJucyBjb3JyZWN0IHZhbHVlIHdoZW4gZXhwb3NlX3N5c2lk IGlzIG9uIik7CisKKyRyZXNwb25zZSA9ICR1YS0+Z2V0KCIkVVJJL3ZlcnNpb24iKTsKKyRjb250 ZW50ID0gJHJlc3BvbnNlLT5jb250ZW50OworaXMgKCRjb250ZW50LCAiJHNlcnZlcl92ZXJzaW9u XHJcbiIsICJHRVQgL3ZlcnNpb24gcmV0dXJucyBjb3JyZWN0IHZhbHVlIHdoZW4gZXhwb3NlX3Zl cnNpb24gaXMgb24iKTsKKworJG5vZGUtPnNldF9zdGFuZGJ5X21vZGUoKTsKKyRub2RlLT5yZXN0 YXJ0KCk7CisKKyRyZXNwb25zZSA9ICR1YS0+Z2V0KCIkVVJJL3JlcGxpY2EiKTsKKyRjb2RlID0g JHJlc3BvbnNlLT5jb2RlOworaXMgKCRjb2RlLCAyMDAsICJHRVQgL3JlcGxpY2EgcmV0dXJucyBI VFRQIGNvZGUgMjAwIHdoZW4gZXhwb3NlX3JlY292ZXJ5IGlzIG9uIChyZXBsaWNhKSIpOworaXMg KCRyZXNwb25zZS0+Y29udGVudCwgIjFcclxuIiwgIkdFVCAvcmVwbGljYSByZXR1cm5zICcwJyB3 aGVuIGV4cG9zZV9yZWNvdmVyeSBpcyBvbiAocmVwbGljYSkiKTsKKworJHJlc3BvbnNlID0gJHVh LT5oZWFkKCIkVVJJL3JlcGxpY2EiKTsKKyRjb2RlID0gJHJlc3BvbnNlLT5jb2RlOworaXMgKCRj b2RlLCAyMDAsICJIRUFEIC9pbmZvIHJldHVybnMgSFRUUCBjb2RlIDIwMCB3aGVuIGV4cG9zZV9y ZWNvdmVyeSBpcyBvbiAocmVwbGljYSkiKTsKKworJHJlc3BvbnNlID0gJHVhLT5nZXQoIiRVUkkv aW5mbyIpOworJGNvbnRlbnQgPSAkcmVzcG9uc2UtPmNvbnRlbnQ7CitsaWtlICgkY29udGVudCwg cXIvUkVDT1ZFUlk6IDEvLCAiR0VUIC9pbmZvIHJldHVybnMgJ1JFQ09WRVJZOiAxJyB3aGVuIGV4 cG9zZV9yZWNvdmVyeSBpcyBvbiAocmVwbGljYSkiKTsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoy LjQ3LjMKCg== --0000000000005b01d10641d077b0--