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 1sX3Pg-001E3r-H2 for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Jul 2024 18:42:04 +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 1sX3Pe-000XpZ-WA for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Jul 2024 18:42:03 +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 1sX3Pe-000XpR-8P for pgsql-hackers@lists.postgresql.org; Thu, 25 Jul 2024 18:42:02 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sX3PZ-001Q00-Ek for pgsql-hackers@lists.postgresql.org; Thu, 25 Jul 2024 18:42:01 +0000 Received: from [192.168.11.3] (p3655005-ipxg13201funabasi.chiba.ocn.ne.jp [114.145.228.5]) by oss.nttdata.com (Postfix) with ESMTPSA id 933A36137E; Fri, 26 Jul 2024 03:41:53 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com Content-Type: multipart/mixed; boundary="------------IyKzDt4I45egjnSDrt2DPDjI" Message-ID: Date: Fri, 26 Jul 2024 03:41:53 +0900 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [Proposal] Add foreign-server health checks infrastructure To: "Hayato Kuroda (Fujitsu)" Cc: Katsuragi Yuta , vignesh C , Ted Yu , Tom Lane , "pgsql-hackers@lists.postgresql.org" , =?UTF-8?B?w5ZuZGVyIEthbGFjxLE=?= , "Shinya11.Kato@oss.nttdata.com" , Kyotaro Horiguchi , 'Shubham Khanna' References: <36981865ac13b6c40d53bf3f98667eee@oss.nttdata.com> <300fccae11de8a4ed1a2d970db1a8680@oss.nttdata.com> <613adbf9-c86e-41dc-ab97-27dc4e7281c7@oss.nttdata.com> Content-Language: en-US From: Fujii Masao In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------IyKzDt4I45egjnSDrt2DPDjI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2024/07/24 20:40, Hayato Kuroda (Fujitsu) wrote: > Attached patches contain above fixes and comment improvements per request from GPT-4o. Thanks for updating the patches! I’ve created a new base patch and split the v42-0001 patch into two parts to implement the feature and improvements step by step. After pushing these patches, I’ll focus on the v42-0002 patch next. I’ve attached the three patches. v43-0001: This new patch enhances documentation for postgres_fdw_get_connections() output columns. The output columns were documented in text format, which is manageable for the current two columns. However, upcoming patches will add new columns, making text descriptions less readable. This patch updates the documentation to use a table format, making it easier for users to understand each output column. v43-0002: This patch adds the "used_in_xact" column to postgres_fdw_get_connections(). It separates this change from the original v42-0001 patch for clarity. v43-0003 This patch adds the "closed" column to postgres_fdw_get_connections(). I’ve also made several code improvements, for example adding a typedef for pgfdwVersion to simplify its usage, and updated typedefs.list. +enum pgfdwVersion +{ + PGFDW_V1_0 = 0, + PGFDW_V1_2, +} pgfdwVersion; Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --------------IyKzDt4I45egjnSDrt2DPDjI Content-Type: text/plain; charset=UTF-8; name="v43-0001-doc-Enhance-documentation-for-postgres_fdw_get_c.patch" Content-Disposition: attachment; filename*0="v43-0001-doc-Enhance-documentation-for-postgres_fdw_get_c.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1M2QwNzUyM2E4ZTZjNDQwNDNjZGFlODc4MjI4MmU1MDE4ZjE0OTUzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFRodSwgMjUgSnVsIDIwMjQgMjA6MzU6MTIgKzA5MDAKU3ViamVjdDogW1BB VENIIHY0MyAxLzNdIGRvYzogRW5oYW5jZSBkb2N1bWVudGF0aW9uIGZvcgogcG9zdGdyZXNf ZmR3X2dldF9jb25uZWN0aW9ucygpIG91dHB1dCBjb2x1bW5zLgoKVGhlIGRvY3VtZW50YXRp b24gcHJldmlvdXNseSBkZXNjcmliZWQgdGhlIG91dHB1dCBjb2x1bW5zIG9mCnBvc3RncmVz X2Zkd19nZXRfY29ubmVjdGlvbnMoKSBpbiB0ZXh0IGZvcm1hdCwgd2hpY2ggd2FzIG1hbmFn ZWFibGUKZm9yIHRoZSBvcmlnaW5hbCB0d28gY29sdW1ucy4gSG93ZXZlciwgdXBjb21pbmcg cGF0Y2hlcyB3aWxsIGFkZApuZXcgY29sdW1ucywgbWFraW5nIHRleHQgZGVzY3JpcHRpb25z IGxlc3MgcmVhZGFibGUuCgpUaGlzIGNvbW1pdCB1cGRhdGVzIHRoZSBkb2N1bWVudGF0aW9u IHRvIHVzZSBhIHRhYmxlIGZvcm1hdCwKbWFraW5nIGl0IGVhc2llciBmb3IgdXNlcnMgdG8g dW5kZXJzdGFuZCBlYWNoIG91dHB1dCBjb2x1bW4uCi0tLQogZG9jL3NyYy9zZ21sL3Bvc3Rn cmVzLWZkdy5zZ21sIHwgNTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dtbCBiL2RvYy9zcmMvc2dt bC9wb3N0Z3Jlcy1mZHcuc2dtbAppbmRleCAxYTYwMDM4MmUyLi5jN2UwYTdkMmE2IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3Bvc3RncmVzLWZkdy5zZ21sCkBAIC03ODAsMTcgKzc4MCw5IEBAIE9QVElPTlMgKEFE RCBwYXNzd29yZF9yZXF1aXJlZCAnZmFsc2UnKTsKICAgICA8dGVybT48ZnVuY3Rpb24+cG9z dGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucyhPVVQgc2VydmVyX25hbWUgdGV4dCwgT1VUIHZh bGlkIGJvb2xlYW4pIHJldHVybnMgc2V0b2YgcmVjb3JkPC9mdW5jdGlvbj48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJu cyB0aGUgZm9yZWlnbiBzZXJ2ZXIgbmFtZXMgb2YgYWxsIHRoZSBvcGVuCi0gICAgICBjb25u ZWN0aW9ucyB0aGF0IDxmaWxlbmFtZT5wb3N0Z3Jlc19mZHc8L2ZpbGVuYW1lPiBlc3RhYmxp c2hlZCBmcm9tCi0gICAgICB0aGUgbG9jYWwgc2Vzc2lvbiB0byB0aGUgZm9yZWlnbiBzZXJ2 ZXJzLiBJdCBhbHNvIHJldHVybnMgd2hldGhlcgotICAgICAgZWFjaCBjb25uZWN0aW9uIGlz IHZhbGlkIG9yIG5vdC4gPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+IGlzIHJldHVybmVkCi0g ICAgICBpZiB0aGUgZm9yZWlnbiBzZXJ2ZXIgY29ubmVjdGlvbiBpcyB1c2VkIGluIHRoZSBj dXJyZW50IGxvY2FsCi0gICAgICB0cmFuc2FjdGlvbiBidXQgaXRzIGZvcmVpZ24gc2VydmVy IG9yIHVzZXIgbWFwcGluZyBpcyBjaGFuZ2VkIG9yCi0gICAgICBkcm9wcGVkIChOb3RlIHRo YXQgc2VydmVyIG5hbWUgb2YgYW4gaW52YWxpZCBjb25uZWN0aW9uIHdpbGwgYmUKLSAgICAg IDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGlmIHRoZSBzZXJ2ZXIgaXMgZHJvcHBlZCksCi0g ICAgICBhbmQgdGhlbiBzdWNoIGludmFsaWQgY29ubmVjdGlvbiB3aWxsIGJlIGNsb3NlZCBh dAotICAgICAgdGhlIGVuZCBvZiB0aGF0IHRyYW5zYWN0aW9uLiA8bGl0ZXJhbD50cnVlPC9s aXRlcmFsPiBpcyByZXR1cm5lZAotICAgICAgb3RoZXJ3aXNlLiBJZiB0aGVyZSBhcmUgbm8g b3BlbiBjb25uZWN0aW9ucywgbm8gcmVjb3JkIGlzIHJldHVybmVkLgorICAgICAgVGhpcyBm dW5jdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGFsbCBvcGVuIGNvbm5lY3Rpb25z IHRoYXQKKyAgICAgIHBvc3RncmVzX2ZkdyBoYXMgZXN0YWJsaXNoZWQgZnJvbSB0aGUgbG9j YWwgc2Vzc2lvbiB0byBmb3JlaWduIHNlcnZlcnMuCisgICAgICBJZiB0aGVyZSBhcmUgbm8g b3BlbiBjb25uZWN0aW9ucywgbm8gcmVjb3JkcyBhcmUgcmV0dXJuZWQuCiAgICAgICBFeGFt cGxlIHVzYWdlIG9mIHRoZSBmdW5jdGlvbjoKIDxzY3JlZW4+CiBwb3N0Z3Jlcz0jIFNFTEVD VCAqIEZST00gcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucygpIE9SREVSIEJZIDE7CkBA IC03OTksNyArNzkxLDQ2IEBAIHBvc3RncmVzPSMgU0VMRUNUICogRlJPTSBwb3N0Z3Jlc19m ZHdfZ2V0X2Nvbm5lY3Rpb25zKCkgT1JERVIgQlkgMTsKICBsb29wYmFjazEgICB8IHQKICBs b29wYmFjazIgICB8IGYKIDwvc2NyZWVuPgorICAgICAgVGhlIG91dHB1dCBjb2x1bW5zIGFy ZSBkZXNjcmliZWQgaW4KKyAgICAgIDx4cmVmIGxpbmtlbmQ9InBvc3RncmVzLWZkdy1nZXQt Y29ubmVjdGlvbnMtY29sdW1ucyIvPi4KICAgICAgPC9wYXJhPgorCisgICAgPHRhYmxlIGlk PSJwb3N0Z3Jlcy1mZHctZ2V0LWNvbm5lY3Rpb25zLWNvbHVtbnMiPgorICAgICA8dGl0bGU+ PGZ1bmN0aW9uPnBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnM8L2Z1bmN0aW9uPiBPdXRw dXQgQ29sdW1uczwvdGl0bGU+CisgICAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgICA8dGhl YWQ+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVudHJ5PkNvbHVtbjwvZW50cnk+CisgICAg ICAgIDxlbnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PkRlc2NyaXB0aW9uPC9l bnRyeT4KKyAgICAgICA8L3Jvdz4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4K KyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+PHN0cnVjdGZpZWxkPnNlcnZlcl9uYW1l PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAgICAgICA8ZW50cnk+PHR5cGU+dGV4dDwvdHlw ZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+CisgICAgICAgICBUaGUgZm9yZWlnbiBzZXJ2 ZXIgbmFtZSBvZiB0aGlzIGNvbm5lY3Rpb24uIElmIHRoZSBzZXJ2ZXIgaXMKKyAgICAgICAg IGRyb3BwZWQgYnV0IHRoZSBjb25uZWN0aW9uIHJlbWFpbnMgb3BlbiAoaS5lLiwgbWFya2Vk IGFzCisgICAgICAgICBpbnZhbGlkKSwgdGhpcyB3aWxsIGJlIDxsaXRlcmFsPk5VTEw8L2xp dGVyYWw+LgorICAgICAgICA8L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgIDxyb3c+ CisgICAgICAgIDxlbnRyeT48c3RydWN0ZmllbGQ+dmFsaWQ8L3N0cnVjdGZpZWxkPjwvZW50 cnk+CisgICAgICAgIDxlbnRyeT48dHlwZT5ib29sZWFuPC90eXBlPjwvZW50cnk+CisgICAg ICAgIDxlbnRyeT4KKyAgICAgICAgIEZhbHNlIGlmIHRoaXMgY29ubmVjdGlvbiBpcyBpbnZh bGlkLCBtZWFuaW5nIGl0IGlzIHVzZWQgaW4KKyAgICAgICAgIHRoZSBjdXJyZW50IHRyYW5z YWN0aW9uIGJ1dCBpdHMgZm9yZWlnbiBzZXJ2ZXIgb3IKKyAgICAgICAgIHVzZXIgbWFwcGlu ZyBoYXMgYmVlbiBjaGFuZ2VkIG9yIGRyb3BwZWQuCisgICAgICAgICBUaGUgaW52YWxpZCBj b25uZWN0aW9uIHdpbGwgYmUgY2xvc2VkIGF0IHRoZSBlbmQgb2YKKyAgICAgICAgIHRoZSB0 cmFuc2FjdGlvbi4gVHJ1ZSBpcyByZXR1cm5lZCBvdGhlcndpc2UuCisgICAgICAgIDwvZW50 cnk+CisgICAgICAgPC9yb3c+CisgICAgICA8L3Rib2R5PgorICAgICA8L3Rncm91cD4KKyAg ICA8L3RhYmxlPgorCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCi0t IAoyLjQ1LjIKCg== --------------IyKzDt4I45egjnSDrt2DPDjI Content-Type: text/plain; charset=UTF-8; name="v43-0002-postgres_fdw-Add-used_in_xact-column-to-postgres.patch" Content-Disposition: attachment; filename*0="v43-0002-postgres_fdw-Add-used_in_xact-column-to-postgres.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiN2U2NWUyN2EyOGQzZmI0YTJkYTc1OTQ3YTgwOTNiZmZmMGU3ZDlhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IFRodSwgMjUgSnVsIDIwMjQgMjA6NDI6MDAgKzA5MDAKU3ViamVjdDogW1BB VENIIHY0MyAyLzNdIHBvc3RncmVzX2ZkdzogQWRkICJ1c2VkX2luX3hhY3QiIGNvbHVtbiB0 bwogcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucygpLgoKVGhpcyBjb21taXQgZXh0ZW5k cyB0aGUgcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucygpIGZ1bmN0aW9uIHRvCmluY2x1 ZGUgYSBuZXcgdXNlZF9pbl94YWN0IGNvbHVtbiwgaW5kaWNhdGluZyB3aGV0aGVyIGVhY2gg Y29ubmVjdGlvbgppcyB1c2VkIGluIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgoKVGhpcyBh ZGRpdGlvbiBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0aGUgdXBjb21pbmcgZmVhdHVy ZSB0aGF0CndpbGwgY2hlY2sgaWYgY29ubmVjdGlvbnMgYXJlIGNsb3NlZC4gQnkgdXNpbmcg dGhvc2UgaW5mb3JtYXRpb24sCnVzZXJzIGNhbiB2ZXJpZnkgaWYgcG9zdGdyZXNfZmR3IGNv bm5lY3Rpb25zIHVzZWQgaW4gYSB0cmFuc2FjdGlvbgpyZW1haW4gb3Blbi4gSWYgYW55IGNv bm5lY3Rpb24gaXMgY2xvc2VkLCB0aGUgdHJhbnNhY3Rpb24gY2Fubm90CmJlIGNvbW1pdHRl ZCBzdWNjZXNzZnVsbHkuIEluIHRoaXMgY2FzZSB1c2VycyBjYW4gcm9sbCBiYWNrIGl0Cmlt bWVkaWF0ZWx5IHdpdGhvdXQgd2FpdGluZyBmb3IgdHJhbnNhY3Rpb24gZW5kLgoKVGhlIFNR TCBBUEkgZm9yIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMoKSBpcyB1cGRhdGVkIGJ5 CnRoaXMgY29tbWl0IGFuZCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuIFRvIGhhbmRsZSBj b21wYXRpYmlsaXR5CndpdGggb2xkZXIgU1FMIGRlY2xhcmF0aW9ucywgYW4gQVBJIHZlcnNp b25pbmcgc3lzdGVtIGlzIGludHJvZHVjZWQsCmFsbG93aW5nIHRoZSBmdW5jdGlvbiB0byBi ZWhhdmUgZGlmZmVyZW50bHkgYmFzZWQgb24gdGhlIEFQSSB2ZXJzaW9uLgotLS0KIGNvbnRy aWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAyICstCiBjb250 cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMgICAgICAgICAgICAgfCA4NCArKysrKysr KysrKysrKysrKy0tCiAuLi4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5v dXQgICAgfCAgOCArLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvbWVzb24uYnVpbGQgICAgICAg ICAgICAgIHwgIDEgKwogLi4uL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMS0tMS4y LnNxbCAgIHwgMTYgKysrKwogY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmNv bnRyb2wgICAgIHwgIDIgKy0KIGRvYy9zcmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dtbCAgICAg ICAgICAgICAgICB8IDIxICsrKy0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCAgICAgICAgICAgICAgfCAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDExNCBpbnNlcnRpb25z KCspLCAyMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3Bvc3Rn cmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMS0tMS4yLnNxbAoKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcG9zdGdyZXNfZmR3L01ha2VmaWxlIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvTWFrZWZp bGUKaW5kZXggYjlmYTY5OTMwNS4uODhmZGNlNDBkNiAxMDA2NDQKLS0tIGEvY29udHJpYi9w b3N0Z3Jlc19mZHcvTWFrZWZpbGUKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvTWFrZWZp bGUKQEAgLTE0LDcgKzE0LDcgQEAgUEdfQ1BQRkxBR1MgPSAtSSQobGlicHFfc3JjZGlyKQog U0hMSUJfTElOS19JTlRFUk5BTCA9ICQobGlicHEpCiAKIEVYVEVOU0lPTiA9IHBvc3RncmVz X2ZkdwotREFUQSA9IHBvc3RncmVzX2Zkdy0tMS4wLnNxbCBwb3N0Z3Jlc19mZHctLTEuMC0t MS4xLnNxbAorREFUQSA9IHBvc3RncmVzX2Zkdy0tMS4wLnNxbCBwb3N0Z3Jlc19mZHctLTEu MC0tMS4xLnNxbCBwb3N0Z3Jlc19mZHctLTEuMS0tMS4yLnNxbAogCiBSRUdSRVNTID0gcG9z dGdyZXNfZmR3IHF1ZXJ5X2NhbmNlbAogCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVz X2Zkdy9jb25uZWN0aW9uLmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMK aW5kZXggMzNlODA1NGY2NC4uMmU1ODdkZTAyMyAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0 Z3Jlc19mZHcvY29ubmVjdGlvbi5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5l Y3Rpb24uYwpAQCAtMTA3LDEwICsxMDcsMjAgQEAgc3RhdGljIHVpbnQzMiBwZ2Zkd193ZV9n ZXRfcmVzdWx0ID0gMDsKIAkJCQkJIChlbnRyeSktPnhhY3RfZGVwdGgsIChlbnRyeSktPnhh Y3RfZGVwdGgpOyBcCiAJfSB3aGlsZSgwKQogCisvKgorICogRXh0ZW5zaW9uIHZlcnNpb24g bnVtYmVyLCBmb3Igc3VwcG9ydGluZyBvbGRlciBleHRlbnNpb24gdmVyc2lvbnMnIG9iamVj dHMKKyAqLwordHlwZWRlZiBlbnVtIHBnZmR3VmVyc2lvbgoreworCVBHRkRXX1YxXzEgPSAw LAorCVBHRkRXX1YxXzIsCit9IHBnZmR3VmVyc2lvbjsKKwogLyoKICAqIFNRTCBmdW5jdGlv bnMKICAqLwogUEdfRlVOQ1RJT05fSU5GT19WMShwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rp b25zKTsKK1BHX0ZVTkNUSU9OX0lORk9fVjEocG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9u c18xXzIpOwogUEdfRlVOQ1RJT05fSU5GT19WMShwb3N0Z3Jlc19mZHdfZGlzY29ubmVjdCk7 CiBQR19GVU5DVElPTl9JTkZPX1YxKHBvc3RncmVzX2Zkd19kaXNjb25uZWN0X2FsbCk7CiAK QEAgLTE1OSw2ICsxNjksOCBAQCBzdGF0aWMgdm9pZCBwZ2Zkd19zZWN1cml0eV9jaGVjayhj b25zdCBjaGFyICoqa2V5d29yZHMsIGNvbnN0IGNoYXIgKip2YWx1ZXMsCiAJCQkJCQkJCSBV c2VyTWFwcGluZyAqdXNlciwgUEdjb25uICpjb25uKTsKIHN0YXRpYyBib29sIFVzZXJNYXBw aW5nUGFzc3dvcmRSZXF1aXJlZChVc2VyTWFwcGluZyAqdXNlcik7CiBzdGF0aWMgYm9vbCBk aXNjb25uZWN0X2NhY2hlZF9jb25uZWN0aW9ucyhPaWQgc2VydmVyaWQpOworc3RhdGljIHZv aWQgcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9uc19pbnRlcm5hbChGdW5jdGlvbkNhbGxJ bmZvIGZjaW5mbywKKwkJCQkJCQkJCQkJCSAgcGdmZHdWZXJzaW9uIGFwaV92ZXJzaW9uKTsK IAogLyoKICAqIEdldCBhIFBHY29ubiB3aGljaCBjYW4gYmUgdXNlZCB0byBleGVjdXRlIHF1 ZXJpZXMgb24gdGhlIHJlbW90ZSBQb3N0Z3JlU1FMCkBAIC0xOTc3LDIzICsxOTg5LDM0IEBA IHBnZmR3X2ZpbmlzaF9hYm9ydF9jbGVhbnVwKExpc3QgKnBlbmRpbmdfZW50cmllcywgTGlz dCAqY2FuY2VsX3JlcXVlc3RlZCwKIAl9CiB9CiAKKy8qIE51bWJlciBvZiBvdXRwdXQgYXJn dW1lbnRzIChjb2x1bW5zKSBmb3IgdmFyaW91cyBBUEkgdmVyc2lvbnMgKi8KKyNkZWZpbmUg UE9TVEdSRVNfRkRXX0dFVF9DT05ORUNUSU9OU19DT0xTX1YxXzEJMgorI2RlZmluZSBQT1NU R1JFU19GRFdfR0VUX0NPTk5FQ1RJT05TX0NPTFNfVjFfMgkzCisjZGVmaW5lIFBPU1RHUkVT X0ZEV19HRVRfQ09OTkVDVElPTlNfQ09MUwkzCS8qIG1heGltdW0gb2YgYWJvdmUgKi8KKwog LyoKLSAqIExpc3QgYWN0aXZlIGZvcmVpZ24gc2VydmVyIGNvbm5lY3Rpb25zLgorICogSW50 ZXJuYWwgZnVuY3Rpb24gdXNlZCBieSBwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zIHZh cmlhbnRzLgorICoKKyAqIEZvciBBUEkgdmVyc2lvbiAxLjEsIHRoaXMgZnVuY3Rpb24gcmV0 dXJucyBhIHNldCBvZiByZWNvcmRzIHdpdGgKKyAqIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgog ICoKLSAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgbm8gaW5wdXQgcGFyYW1ldGVyIGFuZCByZXR1 cm5zIHNldG9mIHJlY29yZCBtYWRlIG9mCi0gKiBmb2xsb3dpbmcgdmFsdWVzOgogICogLSBz ZXJ2ZXJfbmFtZSAtIHNlcnZlciBuYW1lIG9mIGFjdGl2ZSBjb25uZWN0aW9uLiBJbiBjYXNl IHRoZSBmb3JlaWduIHNlcnZlcgogICogICBpcyBkcm9wcGVkIGJ1dCBzdGlsbCB0aGUgY29u bmVjdGlvbiBpcyBhY3RpdmUsIHRoZW4gdGhlIHNlcnZlciBuYW1lIHdpbGwKICAqICAgYmUg TlVMTCBpbiBvdXRwdXQuCiAgKiAtIHZhbGlkIC0gdHJ1ZS9mYWxzZSByZXByZXNlbnRpbmcg d2hldGhlciB0aGUgY29ubmVjdGlvbiBpcyB2YWxpZCBvciBub3QuCi0gKiAJIE5vdGUgdGhh dCB0aGUgY29ubmVjdGlvbnMgY2FuIGdldCBpbnZhbGlkYXRlZCBpbiBwZ2Zkd19pbnZhbF9j YWxsYmFjay4KKyAqICAgTm90ZSB0aGF0IGNvbm5lY3Rpb25zIGNhbiBiZWNvbWUgaW52YWxp ZCBpbiBwZ2Zkd19pbnZhbF9jYWxsYmFjay4KKyAqCisgKiBGb3IgQVBJIHZlcnNpb24gMS4y IGFuZCBsYXRlciwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBmb2xsb3dpbmcKKyAqIGFk ZGl0aW9uYWwgdmFsdWUgYWxvbmcgd2l0aCB0aGUgdHdvIHZhbHVlcyBmcm9tIHZlcnNpb24g MS4xOgorICoKKyAqIC0gdXNlZF9pbl94YWN0IC0gdHJ1ZSBpZiB0aGUgY29ubmVjdGlvbiBp cyB1c2VkIGluIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICoKICAqIE5vIHJlY29yZHMg YXJlIHJldHVybmVkIHdoZW4gdGhlcmUgYXJlIG5vIGNhY2hlZCBjb25uZWN0aW9ucyBhdCBh bGwuCiAgKi8KLURhdHVtCi1wb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zKFBHX0ZVTkNU SU9OX0FSR1MpCitzdGF0aWMgdm9pZAorcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9uc19p bnRlcm5hbChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywKKwkJCQkJCQkJCSAgcGdmZHdWZXJz aW9uIGFwaV92ZXJzaW9uKQogewotI2RlZmluZSBQT1NUR1JFU19GRFdfR0VUX0NPTk5FQ1RJ T05TX0NPTFMJMgogCVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICop IGZjaW5mby0+cmVzdWx0aW5mbzsKIAlIQVNIX1NFUV9TVEFUVVMgc2NhbjsKIAlDb25uQ2Fj aGVFbnRyeSAqZW50cnk7CkBAIC0yMDAyLDcgKzIwMjUsMjIgQEAgcG9zdGdyZXNfZmR3X2dl dF9jb25uZWN0aW9ucyhQR19GVU5DVElPTl9BUkdTKQogCiAJLyogSWYgY2FjaGUgZG9lc24n dCBleGlzdCwgd2UgcmV0dXJuIG5vIHJlY29yZHMgKi8KIAlpZiAoIUNvbm5lY3Rpb25IYXNo KQotCQlQR19SRVRVUk5fVk9JRCgpOworCQlyZXR1cm47CisKKwkvKiBDaGVjayB3ZSBoYXZl IHRoZSBleHBlY3RlZCBudW1iZXIgb2Ygb3V0cHV0IGFyZ3VtZW50cyAqLworCXN3aXRjaCAo cnNpbmZvLT5zZXREZXNjLT5uYXR0cykKKwl7CisJCWNhc2UgUE9TVEdSRVNfRkRXX0dFVF9D T05ORUNUSU9OU19DT0xTX1YxXzE6CisJCQlpZiAoYXBpX3ZlcnNpb24gIT0gUEdGRFdfVjFf MSkKKwkJCQllbG9nKEVSUk9SLCAiaW5jb3JyZWN0IG51bWJlciBvZiBvdXRwdXQgYXJndW1l bnRzIik7CisJCQlicmVhazsKKwkJY2FzZSBQT1NUR1JFU19GRFdfR0VUX0NPTk5FQ1RJT05T X0NPTFNfVjFfMjoKKwkJCWlmIChhcGlfdmVyc2lvbiAhPSBQR0ZEV19WMV8yKQorCQkJCWVs b2coRVJST1IsICJpbmNvcnJlY3QgbnVtYmVyIG9mIG91dHB1dCBhcmd1bWVudHMiKTsKKwkJ CWJyZWFrOworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwgImluY29ycmVjdCBudW1iZXIg b2Ygb3V0cHV0IGFyZ3VtZW50cyIpOworCX0KIAogCWhhc2hfc2VxX2luaXQoJnNjYW4sIENv bm5lY3Rpb25IYXNoKTsKIAl3aGlsZSAoKGVudHJ5ID0gKENvbm5DYWNoZUVudHJ5ICopIGhh c2hfc2VxX3NlYXJjaCgmc2NhbikpKQpAQCAtMjA2MSwxMCArMjA5OSwzOCBAQCBwb3N0Z3Jl c19mZHdfZ2V0X2Nvbm5lY3Rpb25zKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJdmFsdWVzWzFd ID0gQm9vbEdldERhdHVtKCFlbnRyeS0+aW52YWxpZGF0ZWQpOwogCisJCWlmIChhcGlfdmVy c2lvbiA+PSBQR0ZEV19WMV8yKQorCQl7CisJCQkvKiBJcyB0aGlzIGNvbm5lY3Rpb24gdXNl ZCBpbiB0aGUgY3VycmVudCB0cmFuc2FjdGlvbj8gKi8KKwkJCXZhbHVlc1syXSA9IEJvb2xH ZXREYXR1bShlbnRyeS0+eGFjdF9kZXB0aCA+IDApOworCQl9CisKIAkJdHVwbGVzdG9yZV9w dXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywgdmFsdWVzLCBu dWxscyk7CiAJfQorfQorCisvKgorICogTGlzdCBhY3RpdmUgZm9yZWlnbiBzZXJ2ZXIgY29u bmVjdGlvbnMuCisgKgorICogVGhlIFNRTCBBUEkgb2YgdGhpcyBmdW5jdGlvbiBoYXMgY2hh bmdlZCBtdWx0aXBsZSB0aW1lcywgYW5kIHdpbGwgbGlrZWx5CisgKiBkbyBzbyBhZ2FpbiBp biBmdXR1cmUuICBUbyBzdXBwb3J0IHRoZSBjYXNlIHdoZXJlIGEgbmV3ZXIgdmVyc2lvbiBv ZiB0aGlzCisgKiBsb2FkYWJsZSBtb2R1bGUgaXMgYmVpbmcgdXNlZCB3aXRoIGFuIG9sZCBT UUwgZGVjbGFyYXRpb24gb2YgdGhlIGZ1bmN0aW9uLAorICogd2UgY29udGludWUgdG8gc3Vw cG9ydCB0aGUgb2xkZXIgQVBJIHZlcnNpb25zLgorICovCitEYXR1bQorcG9zdGdyZXNfZmR3 X2dldF9jb25uZWN0aW9uc18xXzIoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlwb3N0Z3Jlc19m ZHdfZ2V0X2Nvbm5lY3Rpb25zX2ludGVybmFsKGZjaW5mbywgUEdGRFdfVjFfMik7CisKKwly ZXR1cm4gKERhdHVtKSAwOworfQorCitEYXR1bQorcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0 aW9ucyhQR19GVU5DVElPTl9BUkdTKQoreworCXBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlv bnNfaW50ZXJuYWwoZmNpbmZvLCBQR0ZEV19WMV8xKTsKIAotCVBHX1JFVFVSTl9WT0lEKCk7 CisJcmV0dXJuIChEYXR1bSkgMDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVz X2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CmluZGV4IDM5YjJiMzE3ZTguLjgyZmRj MGUyNmYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3Rn cmVzX2Zkdy5vdXQKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdy ZXNfZmR3Lm91dApAQCAtMTA0NjQsMTAgKzEwNDY0LDEwIEBAIGRyb3AgY2FzY2FkZXMgdG8g Zm9yZWlnbiB0YWJsZSBmdDcKIC0tIHNob3VsZCBiZSBvdXRwdXQgYXMgaW52YWxpZCBjb25u ZWN0aW9ucy4gQWxzbyB0aGUgc2VydmVyIG5hbWUgZm9yCiAtLSBsb29wYmFjazMgc2hvdWxk IGJlIE5VTEwgYmVjYXVzZSB0aGUgc2VydmVyIHdhcyBkcm9wcGVkLgogU0VMRUNUICogRlJP TSBwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zKCkgT1JERVIgQlkgMTsKLSBzZXJ2ZXJf bmFtZSB8IHZhbGlkIAotLS0tLS0tLS0tLS0tLSstLS0tLS0tCi0gbG9vcGJhY2sgICAgfCBm Ci0gICAgICAgICAgICAgfCBmCisgc2VydmVyX25hbWUgfCB2YWxpZCB8IHVzZWRfaW5feGFj dCAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIGxvb3BiYWNrICAg IHwgZiAgICAgfCB0CisgICAgICAgICAgICAgfCBmICAgICB8IHQKICgyIHJvd3MpCiAKIC0t IFRoZSBpbnZhbGlkIGNvbm5lY3Rpb25zIGdldCBjbG9zZWQgaW4gcGdmZHdfeGFjdF9jYWxs YmFjayBkdXJpbmcgY29tbWl0LgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcv bWVzb24uYnVpbGQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5idWlsZAppbmRleCBm MDgwM2VlMDc3Li4zMDE0MDg2YmE2IDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zk dy9tZXNvbi5idWlsZAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9tZXNvbi5idWlsZApA QCAtMjYsNiArMjYsNyBAQCBpbnN0YWxsX2RhdGEoCiAgICdwb3N0Z3Jlc19mZHcuY29udHJv bCcsCiAgICdwb3N0Z3Jlc19mZHctLTEuMC5zcWwnLAogICAncG9zdGdyZXNfZmR3LS0xLjAt LTEuMS5zcWwnLAorICAncG9zdGdyZXNfZmR3LS0xLjEtLTEuMi5zcWwnLAogICBrd2FyZ3M6 IGNvbnRyaWJfZGF0YV9hcmdzLAogKQogCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVz X2Zkdy9wb3N0Z3Jlc19mZHctLTEuMS0tMS4yLnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L3Bvc3RncmVzX2Zkdy0tMS4xLS0xLjIuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjBjNjViZjJlMTQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMS0tMS4yLnNxbApAQCAtMCwwICsxLDE2IEBA CisvKiBjb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMS0tMS4yLnNxbCAq LworCistLSBjb21wbGFpbiBpZiBzY3JpcHQgaXMgc291cmNlZCBpbiBwc3FsLCByYXRoZXIg dGhhbiB2aWEgQUxURVIgRVhURU5TSU9OCitcZWNobyBVc2UgIkFMVEVSIEVYVEVOU0lPTiBw b3N0Z3Jlc19mZHcgVVBEQVRFIFRPICcxLjInIiB0byBsb2FkIHRoaXMgZmlsZS4gXHF1aXQK KworLyogRmlyc3Qgd2UgaGF2ZSB0byByZW1vdmUgaXQgZnJvbSB0aGUgZXh0ZW5zaW9uICov CitBTFRFUiBFWFRFTlNJT04gcG9zdGdyZXNfZmR3IERST1AgRlVOQ1RJT04gcG9zdGdyZXNf ZmR3X2dldF9jb25uZWN0aW9ucyAoKTsKKworLyogVGhlbiB3ZSBjYW4gZHJvcCBpdCAqLwor RFJPUCBGVU5DVElPTiBwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zICgpOworCitDUkVB VEUgRlVOQ1RJT04gcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucyAoT1VUIHNlcnZlcl9u YW1lIHRleHQsCisgICAgICAgT1VUIHZhbGlkIGJvb2xlYW4sIE9VVCB1c2VkX2luX3hhY3Qg Ym9vbGVhbikKK1JFVFVSTlMgU0VUT0YgcmVjb3JkCitBUyAnTU9EVUxFX1BBVEhOQU1FJywg J3Bvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnNfMV8yJworTEFOR1VBR0UgQyBTVFJJQ1Qg UEFSQUxMRUwgUkVTVFJJQ1RFRDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L3Bvc3RncmVzX2Zkdy5jb250cm9sIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNf ZmR3LmNvbnRyb2wKaW5kZXggZDQ4OTM4MjA2NC4uYTRiODAwYmU0ZiAxMDA2NDQKLS0tIGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmNvbnRyb2wKKysrIGIvY29udHJp Yi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmNvbnRyb2wKQEAgLTEsNSArMSw1IEBACiAj IHBvc3RncmVzX2ZkdyBleHRlbnNpb24KIGNvbW1lbnQgPSAnZm9yZWlnbi1kYXRhIHdyYXBw ZXIgZm9yIHJlbW90ZSBQb3N0Z3JlU1FMIHNlcnZlcnMnCi1kZWZhdWx0X3ZlcnNpb24gPSAn MS4xJworZGVmYXVsdF92ZXJzaW9uID0gJzEuMicKIG1vZHVsZV9wYXRobmFtZSA9ICckbGli ZGlyL3Bvc3RncmVzX2ZkdycKIHJlbG9jYXRhYmxlID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLWZk dy5zZ21sCmluZGV4IGM3ZTBhN2QyYTYuLjgxOWRjYTNlMDAgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMt ZmR3LnNnbWwKQEAgLTc3Nyw3ICs3NzcsOSBAQCBPUFRJT05TIChBREQgcGFzc3dvcmRfcmVx dWlyZWQgJ2ZhbHNlJyk7CiAKICAgPHZhcmlhYmxlbGlzdD4KICAgIDx2YXJsaXN0ZW50cnk+ Ci0gICAgPHRlcm0+PGZ1bmN0aW9uPnBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMoT1VU IHNlcnZlcl9uYW1lIHRleHQsIE9VVCB2YWxpZCBib29sZWFuKSByZXR1cm5zIHNldG9mIHJl Y29yZDwvZnVuY3Rpb24+PC90ZXJtPgorICAgIDx0ZXJtPjxmdW5jdGlvbj5wb3N0Z3Jlc19m ZHdfZ2V0X2Nvbm5lY3Rpb25zKE9VVCBzZXJ2ZXJfbmFtZSB0ZXh0LAorICAgICAgT1VUIHZh bGlkIGJvb2xlYW4sIE9VVCB1c2VkX2luX3hhY3QgYm9vbGVhbikKKyAgICAgIHJldHVybnMg c2V0b2YgcmVjb3JkPC9mdW5jdGlvbj48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8 cGFyYT4KICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBh bGwgb3BlbiBjb25uZWN0aW9ucyB0aGF0CkBAIC03ODUsMTEgKzc4NywxMSBAQCBPUFRJT05T IChBREQgcGFzc3dvcmRfcmVxdWlyZWQgJ2ZhbHNlJyk7CiAgICAgICBJZiB0aGVyZSBhcmUg bm8gb3BlbiBjb25uZWN0aW9ucywgbm8gcmVjb3JkcyBhcmUgcmV0dXJuZWQuCiAgICAgICBF eGFtcGxlIHVzYWdlIG9mIHRoZSBmdW5jdGlvbjoKIDxzY3JlZW4+Ci1wb3N0Z3Jlcz0jIFNF TEVDVCAqIEZST00gcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucygpIE9SREVSIEJZIDE7 Ci0gc2VydmVyX25hbWUgfCB2YWxpZAotLS0tLS0tLS0tLS0tLSstLS0tLS0tCi0gbG9vcGJh Y2sxICAgfCB0Ci0gbG9vcGJhY2syICAgfCBmCitwb3N0Z3Jlcz0qIyBTRUxFQ1QgKiBGUk9N IHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMoKSBPUkRFUiBCWSAxOworIHNlcnZlcl9u YW1lIHwgdmFsaWQgfCB1c2VkX2luX3hhY3QKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tLQorIGxvb3BiYWNrMSAgIHwgdCAgICAgfCB0CisgbG9vcGJhY2syICAgfCBm ICAgICB8IHQKIDwvc2NyZWVuPgogICAgICAgVGhlIG91dHB1dCBjb2x1bW5zIGFyZSBkZXNj cmliZWQgaW4KICAgICAgIDx4cmVmIGxpbmtlbmQ9InBvc3RncmVzLWZkdy1nZXQtY29ubmVj dGlvbnMtY29sdW1ucyIvPi4KQEAgLTgyNyw2ICs4MjksMTMgQEAgcG9zdGdyZXM9IyBTRUxF Q1QgKiBGUk9NIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMoKSBPUkRFUiBCWSAxOwog ICAgICAgICAgdGhlIHRyYW5zYWN0aW9uLiBUcnVlIGlzIHJldHVybmVkIG90aGVyd2lzZS4K ICAgICAgICAgPC9lbnRyeT4KICAgICAgICA8L3Jvdz4KKyAgICAgICA8cm93PgorICAgICAg ICA8ZW50cnk+PHN0cnVjdGZpZWxkPnVzZWRfaW5feGFjdDwvc3RydWN0ZmllbGQ+PC9lbnRy eT4KKyAgICAgICAgPGVudHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAg ICAgPGVudHJ5PgorICAgICAgICAgVHJ1ZSBpZiB0aGlzIGNvbm5lY3Rpb24gaXMgdXNlZCBp biB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4KKyAgICAgICAgPC9lbnRyeT4KKyAgICAgICA8 L3Jvdz4KICAgICAgIDwvdGJvZHk+CiAgICAgIDwvdGdyb3VwPgogICAgIDwvdGFibGU+CmRp ZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGI0ZDdmOTIxN2MuLjUwOGM3NGEyMmIg MTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0zNzMxLDYgKzM3MzEsNyBAQCBw Z193Y19wcm9iZWZ1bmMKIHBnX3djaGFyCiBwZ193Y2hhcl90YmwKIHBncF9hcm1vcl9oZWFk ZXJzX3N0YXRlCitwZ2Zkd1ZlcnNpb24KIHBnc29ja2V0CiBwZ3NxbF90aGluZ190CiBwZ3Nz RW50cnkKLS0gCjIuNDUuMgoK --------------IyKzDt4I45egjnSDrt2DPDjI Content-Type: text/plain; charset=UTF-8; name="v43-0003-postgres_fdw-Add-connection-status-check-to-post.patch" Content-Disposition: attachment; filename*0="v43-0003-postgres_fdw-Add-connection-status-check-to-post.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmZTk4Y2NiZjBhNjBlNmM5NTI3MmQzZDgzN2RmN2JjOWNiN2NmMWYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBNYXNhbyA8ZnVqaWlAcG9zdGdyZXNxbC5v cmc+CkRhdGU6IEZyaSwgMjYgSnVsIDIwMjQgMDM6MDU6NTMgKzA5MDAKU3ViamVjdDogW1BB VENIIHY0MyAzLzNdIHBvc3RncmVzX2ZkdzogQWRkIGNvbm5lY3Rpb24gc3RhdHVzIGNoZWNr IHRvCiBwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zKCkuCgpUaGlzIGNvbW1pdCBleHRl bmRzIHRoZSBwb3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zKCkgZnVuY3Rpb24KdG8gY2hl Y2sgaWYgY29ubmVjdGlvbnMgYXJlIGNsb3NlZC4gVGhpcyBpcyB1c2VmdWwgZm9yIGRldGVj dGluZyBjbG9zZWQKcG9zdGdyZXNfZmR3IGNvbm5lY3Rpb25zIHRoYXQgY291bGQgcHJldmVu dCBzdWNjZXNzZnVsIHRyYW5zYWN0aW9uCmNvbW1pdHMuIFVzZXJzIGNhbiByb2xsIGJhY2sg dHJhbnNhY3Rpb25zIGltbWVkaWF0ZWx5IHVwb24gZGV0ZWN0aW5nCmNsb3NlZCBjb25uZWN0 aW9ucywgYXZvaWRpbmcgdW5uZWNlc3NhcnkgcHJvY2Vzc2luZyBvZiBmYWlsZWQKdHJhbnNh Y3Rpb25zLgoKVGhpcyBmZWF0dXJlIGlzIGF2YWlsYWJsZSBvbmx5IG9uIHN5c3RlbXMgc3Vw cG9ydGluZyB0aGUgbm9uLXN0YW5kYXJkClBPTExSREhVUCBleHRlbnNpb24gdG8gdGhlIHBv bGwgc3lzdGVtIGNhbGwsIGluY2x1ZGluZyBMaW51eC4KLS0tCiBjb250cmliL3Bvc3RncmVz X2Zkdy9jb25uZWN0aW9uLmMgICAgICAgICAgICAgfCA4NCArKysrKysrKysrKysrKysrKy0t CiAuLi4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAgfCA1NCAr KysrKysrKysrKy0KIC4uLi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LS0xLjEtLTEuMi5z cWwgICB8ICA1ICstCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNx bCAgICAgfCAzMyArKysrKysrKwogZG9jL3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sICAg ICAgICAgICAgICAgIHwgNDEgKysrKysrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDE5OSBpbnNl cnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3Rn cmVzX2Zkdy9jb25uZWN0aW9uLmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9u LmMKaW5kZXggMmU1ODdkZTAyMy4uN2NlMjllYTc2OCAxMDA2NDQKLS0tIGEvY29udHJpYi9w b3N0Z3Jlc19mZHcvY29ubmVjdGlvbi5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nv bm5lY3Rpb24uYwpAQCAtMTIsNiArMTIsMTAgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVz LmgiCiAKKyNpZiBIQVZFX1BPTExfSAorI2luY2x1ZGUgPHBvbGwuaD4KKyNlbmRpZgorCiAj aW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy94YWN0 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKQEAgLTE3MSw2ICsx NzUsOCBAQCBzdGF0aWMgYm9vbCBVc2VyTWFwcGluZ1Bhc3N3b3JkUmVxdWlyZWQoVXNlck1h cHBpbmcgKnVzZXIpOwogc3RhdGljIGJvb2wgZGlzY29ubmVjdF9jYWNoZWRfY29ubmVjdGlv bnMoT2lkIHNlcnZlcmlkKTsKIHN0YXRpYyB2b2lkIHBvc3RncmVzX2Zkd19nZXRfY29ubmVj dGlvbnNfaW50ZXJuYWwoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sCiAJCQkJCQkJCQkJCQkg IHBnZmR3VmVyc2lvbiBhcGlfdmVyc2lvbik7CitzdGF0aWMgaW50CXBnZmR3X2Nvbm5fY2hl Y2soUEdjb25uICpjb25uKTsKK3N0YXRpYyBib29sIHBnZmR3X2Nvbm5fY2hlY2thYmxlKHZv aWQpOwogCiAvKgogICogR2V0IGEgUEdjb25uIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGV4ZWN1 dGUgcXVlcmllcyBvbiB0aGUgcmVtb3RlIFBvc3RncmVTUUwKQEAgLTE5OTEsMTQgKzE5OTcs MTQgQEAgcGdmZHdfZmluaXNoX2Fib3J0X2NsZWFudXAoTGlzdCAqcGVuZGluZ19lbnRyaWVz LCBMaXN0ICpjYW5jZWxfcmVxdWVzdGVkLAogCiAvKiBOdW1iZXIgb2Ygb3V0cHV0IGFyZ3Vt ZW50cyAoY29sdW1ucykgZm9yIHZhcmlvdXMgQVBJIHZlcnNpb25zICovCiAjZGVmaW5lIFBP U1RHUkVTX0ZEV19HRVRfQ09OTkVDVElPTlNfQ09MU19WMV8xCTIKLSNkZWZpbmUgUE9TVEdS RVNfRkRXX0dFVF9DT05ORUNUSU9OU19DT0xTX1YxXzIJMwotI2RlZmluZSBQT1NUR1JFU19G RFdfR0VUX0NPTk5FQ1RJT05TX0NPTFMJMwkvKiBtYXhpbXVtIG9mIGFib3ZlICovCisjZGVm aW5lIFBPU1RHUkVTX0ZEV19HRVRfQ09OTkVDVElPTlNfQ09MU19WMV8yCTQKKyNkZWZpbmUg UE9TVEdSRVNfRkRXX0dFVF9DT05ORUNUSU9OU19DT0xTCTQJLyogbWF4aW11bSBvZiBhYm92 ZSAqLwogCiAvKgogICogSW50ZXJuYWwgZnVuY3Rpb24gdXNlZCBieSBwb3N0Z3Jlc19mZHdf Z2V0X2Nvbm5lY3Rpb25zIHZhcmlhbnRzLgogICoKLSAqIEZvciBBUEkgdmVyc2lvbiAxLjEs IHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIHNldCBvZiByZWNvcmRzIHdpdGgKLSAqIHRoZSBm b2xsb3dpbmcgdmFsdWVzOgorICogRm9yIEFQSSB2ZXJzaW9uIDEuMSwgdGhpcyBmdW5jdGlv biB0YWtlcyBubyBpbnB1dCBwYXJhbWV0ZXIgYW5kCisgKiByZXR1cm5zIGEgc2V0IG9mIHJl Y29yZHMgd2l0aCB0aGUgZm9sbG93aW5nIHZhbHVlczoKICAqCiAgKiAtIHNlcnZlcl9uYW1l IC0gc2VydmVyIG5hbWUgb2YgYWN0aXZlIGNvbm5lY3Rpb24uIEluIGNhc2UgdGhlIGZvcmVp Z24gc2VydmVyCiAgKiAgIGlzIGRyb3BwZWQgYnV0IHN0aWxsIHRoZSBjb25uZWN0aW9uIGlz IGFjdGl2ZSwgdGhlbiB0aGUgc2VydmVyIG5hbWUgd2lsbApAQCAtMjAwNiwxMCArMjAxMiwx MiBAQCBwZ2Zkd19maW5pc2hfYWJvcnRfY2xlYW51cChMaXN0ICpwZW5kaW5nX2VudHJpZXMs IExpc3QgKmNhbmNlbF9yZXF1ZXN0ZWQsCiAgKiAtIHZhbGlkIC0gdHJ1ZS9mYWxzZSByZXBy ZXNlbnRpbmcgd2hldGhlciB0aGUgY29ubmVjdGlvbiBpcyB2YWxpZCBvciBub3QuCiAgKiAg IE5vdGUgdGhhdCBjb25uZWN0aW9ucyBjYW4gYmVjb21lIGludmFsaWQgaW4gcGdmZHdfaW52 YWxfY2FsbGJhY2suCiAgKgotICogRm9yIEFQSSB2ZXJzaW9uIDEuMiBhbmQgbGF0ZXIsIHRo aXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgZm9sbG93aW5nCi0gKiBhZGRpdGlvbmFsIHZhbHVl IGFsb25nIHdpdGggdGhlIHR3byB2YWx1ZXMgZnJvbSB2ZXJzaW9uIDEuMToKKyAqIEZvciBB UEkgdmVyc2lvbiAxLjIgYW5kIGxhdGVyLCB0aGlzIGZ1bmN0aW9uIHRha2VzIGFuIGlucHV0 IHBhcmFtZXRlcgorICogdG8gY2hlY2sgYSBjb25uZWN0aW9uIHN0YXR1cyBhbmQgcmV0dXJu cyB0aGUgZm9sbG93aW5nCisgKiBhZGRpdGlvbmFsIHZhbHVlcyBhbG9uZyB3aXRoIHRoZSB0 d28gdmFsdWVzIGZyb20gdmVyc2lvbiAxLjE6CiAgKgogICogLSB1c2VkX2luX3hhY3QgLSB0 cnVlIGlmIHRoZSBjb25uZWN0aW9uIGlzIHVzZWQgaW4gdGhlIGN1cnJlbnQgdHJhbnNhY3Rp b24uCisgKiAtIGNsb3NlZDogdHJ1ZSBpZiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQuCiAg KgogICogTm8gcmVjb3JkcyBhcmUgcmV0dXJuZWQgd2hlbiB0aGVyZSBhcmUgbm8gY2FjaGVk IGNvbm5lY3Rpb25zIGF0IGFsbC4KICAqLwpAQCAtMjEwMSw4ICsyMTA5LDE5IEBAIHBvc3Rn cmVzX2Zkd19nZXRfY29ubmVjdGlvbnNfaW50ZXJuYWwoRnVuY3Rpb25DYWxsSW5mbyBmY2lu Zm8sCiAKIAkJaWYgKGFwaV92ZXJzaW9uID49IFBHRkRXX1YxXzIpCiAJCXsKKwkJCWJvb2wJ CWNoZWNrX2Nvbm4gPSBQR19HRVRBUkdfQk9PTCgwKTsKKwogCQkJLyogSXMgdGhpcyBjb25u ZWN0aW9uIHVzZWQgaW4gdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24/ICovCiAJCQl2YWx1ZXNb Ml0gPSBCb29sR2V0RGF0dW0oZW50cnktPnhhY3RfZGVwdGggPiAwKTsKKworCQkJLyoKKwkJ CSAqIElmIGEgY29ubmVjdGlvbiBzdGF0dXMgY2hlY2sgaXMgcmVxdWVzdGVkIGFuZCBzdXBw b3J0ZWQsIHJldHVybgorCQkJICogd2hldGhlciB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQu IE90aGVyd2lzZSwgcmV0dXJuIE5VTEwuCisJCQkgKi8KKwkJCWlmIChjaGVja19jb25uICYm IHBnZmR3X2Nvbm5fY2hlY2thYmxlKCkpCisJCQkJdmFsdWVzWzNdID0gQm9vbEdldERhdHVt KHBnZmR3X2Nvbm5fY2hlY2soZW50cnktPmNvbm4pICE9IDApOworCQkJZWxzZQorCQkJCW51 bGxzWzNdID0gdHJ1ZTsKIAkJfQogCiAJCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+ c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsIHZhbHVlcywgbnVsbHMpOwpAQCAtMjI1OCwz ICsyMjc3LDU2IEBAIGRpc2Nvbm5lY3RfY2FjaGVkX2Nvbm5lY3Rpb25zKE9pZCBzZXJ2ZXJp ZCkKIAogCXJldHVybiByZXN1bHQ7CiB9CisKKy8qCisgKiBDaGVjayBpZiB0aGUgcmVtb3Rl IHNlcnZlciBjbG9zZWQgdGhlIGNvbm5lY3Rpb24uCisgKgorICogUmV0dXJucyAxIGlmIHRo ZSBjb25uZWN0aW9uIGlzIGNsb3NlZCwgLTEgaWYgYW4gZXJyb3Igb2NjdXJyZWQsCisgKiBh bmQgMCBpZiBpdCdzIG5vdCBjbG9zZWQgb3IgaWYgdGhlIGNvbm5lY3Rpb24gY2hlY2sgaXMg dW5hdmFpbGFibGUKKyAqIG9uIHRoaXMgcGxhdGZvcm0uCisgKi8KK3N0YXRpYyBpbnQKK3Bn ZmR3X2Nvbm5fY2hlY2soUEdjb25uICpjb25uKQoreworCWludAkJCXNvY2sgPSBQUXNvY2tl dChjb25uKTsKKworCWlmIChQUXN0YXR1cyhjb25uKSAhPSBDT05ORUNUSU9OX09LIHx8IHNv Y2sgPT0gLTEpCisJCXJldHVybiAtMTsKKworI2lmIChkZWZpbmVkKEhBVkVfUE9MTCkgJiYg ZGVmaW5lZChQT0xMUkRIVVApKQorCXsKKwkJc3RydWN0IHBvbGxmZCBpbnB1dF9mZDsKKwkJ aW50CQkJcmVzdWx0OworCisJCWlucHV0X2ZkLmZkID0gc29jazsKKwkJaW5wdXRfZmQuZXZl bnRzID0gUE9MTFJESFVQOworCQlpbnB1dF9mZC5yZXZlbnRzID0gMDsKKworCQlkbworCQkJ cmVzdWx0ID0gcG9sbCgmaW5wdXRfZmQsIDEsIDApOworCQl3aGlsZSAocmVzdWx0IDwgMCAm JiBlcnJubyA9PSBFSU5UUik7CisKKwkJaWYgKHJlc3VsdCA8IDApCisJCQlyZXR1cm4gLTE7 CisKKwkJcmV0dXJuIChpbnB1dF9mZC5yZXZlbnRzICYgUE9MTFJESFVQKSA/IDEgOiAwOwor CX0KKyNlbHNlCisJcmV0dXJuIDA7CisjZW5kaWYKK30KKworLyoKKyAqIENoZWNrIGlmIGNv bm5lY3Rpb24gc3RhdHVzIGNoZWNraW5nIGlzIGF2YWlsYWJsZSBvbiB0aGlzIHBsYXRmb3Jt LgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiBhdmFpbGFibGUsIGZhbHNlIG90aGVyd2lzZS4K KyAqLworc3RhdGljIGJvb2wKK3BnZmR3X2Nvbm5fY2hlY2thYmxlKHZvaWQpCit7CisjaWYg KGRlZmluZWQoSEFWRV9QT0xMKSAmJiBkZWZpbmVkKFBPTExSREhVUCkpCisJcmV0dXJuIHRy dWU7CisjZWxzZQorCXJldHVybiBmYWxzZTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvY29u dHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggODJmZGMwZTI2 Zi4uMjEyNDM0NzExZSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0 ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3Rl ZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC0xMDQ2NCwxMCArMTA0NjQsMTAgQEAgZHJvcCBjYXNj YWRlcyB0byBmb3JlaWduIHRhYmxlIGZ0NwogLS0gc2hvdWxkIGJlIG91dHB1dCBhcyBpbnZh bGlkIGNvbm5lY3Rpb25zLiBBbHNvIHRoZSBzZXJ2ZXIgbmFtZSBmb3IKIC0tIGxvb3BiYWNr MyBzaG91bGQgYmUgTlVMTCBiZWNhdXNlIHRoZSBzZXJ2ZXIgd2FzIGRyb3BwZWQuCiBTRUxF Q1QgKiBGUk9NIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMoKSBPUkRFUiBCWSAxOwot IHNlcnZlcl9uYW1lIHwgdmFsaWQgfCB1c2VkX2luX3hhY3QgCi0tLS0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0KLSBsb29wYmFjayAgICB8IGYgICAgIHwgdAotICAgICAg ICAgICAgIHwgZiAgICAgfCB0Cisgc2VydmVyX25hbWUgfCB2YWxpZCB8IHVzZWRfaW5feGFj dCB8IGNsb3NlZCAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0t LS0tLQorIGxvb3BiYWNrICAgIHwgZiAgICAgfCB0ICAgICAgICAgICAgfCAKKyAgICAgICAg ICAgICB8IGYgICAgIHwgdCAgICAgICAgICAgIHwgCiAoMiByb3dzKQogCiAtLSBUaGUgaW52 YWxpZCBjb25uZWN0aW9ucyBnZXQgY2xvc2VkIGluIHBnZmR3X3hhY3RfY2FsbGJhY2sgZHVy aW5nIGNvbW1pdC4KQEAgLTEyMjg2LDMgKzEyMjg2LDQ5IEBAIEFOQUxZWkUgYW5hbHl6ZV90 YWJsZTsKIC0tIGNsZWFudXAKIERST1AgRk9SRUlHTiBUQUJMRSBhbmFseXplX2Z0YWJsZTsK IERST1AgVEFCTEUgYW5hbHl6ZV90YWJsZTsKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIHRlc3Qg Zm9yIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMgZnVuY3Rpb24gd2l0aCBjaGVja19j b25uID0gdHJ1ZQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gRGlzYWJsZSBkZWJ1Z19kaXNjYXJk X2NhY2hlcyBpbiBvcmRlciB0byBtYW5hZ2UgcmVtb3RlIGNvbm5lY3Rpb25zCitTRVQgZGVi dWdfZGlzY2FyZF9jYWNoZXMgVE8gJzAnOworLS0gVGhlIHRleHQgb2YgdGhlIGVycm9yIG1p Z2h0IHZhcnkgYWNyb3NzIHBsYXRmb3Jtcywgc28gb25seSBzaG93IFNRTFNUQVRFLgorXHNl dCBWRVJCT1NJVFkgc3Fsc3RhdGUKK1NFTEVDVCAxIEZST00gcG9zdGdyZXNfZmR3X2Rpc2Nv bm5lY3RfYWxsKCk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgICAgIDEKKygxIHJv dykKKworQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBhcHBsaWNhdGlvbl9u YW1lICdmZHdfY29ubl9jaGVjaycpOworU0VMRUNUIDEgRlJPTSBmdDEgTElNSVQgMTsKKyA/ Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgICAgMQorKDEgcm93KQorCistLSBTaW5jZSB0 aGUgcmVtb3RlIHNlcnZlciBpcyBzdGlsbCBjb25uZWN0ZWQsICJjbG9zZWQiIHNob3VsZCBi ZSBGQUxTRSwKKy0tIG9yIE5VTEwgaWYgdGhlIGNvbm5lY3Rpb24gc3RhdHVzIGNoZWNrIGlz IG5vdCBhdmFpbGFibGUuCitTRUxFQ1QgQ0FTRSBXSEVOIGNsb3NlZCBJUyBOT1QgdHJ1ZSBU SEVOIDEgRUxTRSAwIEVORAorICBGUk9NIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMo dHJ1ZSk7CisgY2FzZSAKKy0tLS0tLQorICAgIDEKKygxIHJvdykKKworLS0gQWZ0ZXIgdGVy bWluYXRpbmcgdGhlIHJlbW90ZSBiYWNrZW5kLCBzaW5jZSB0aGUgY29ubmVjdGlvbiBpcyBj bG9zZWQsCistLSAiY2xvc2VkIiBzaG91bGQgYmUgVFJVRSwgb3IgTlVMTCBpZiB0aGUgY29u bmVjdGlvbiBzdGF0dXMgY2hlY2sKKy0tIGlzIG5vdCBhdmFpbGFibGUuCitETyAkJCBCRUdJ TgorUEVSRk9STSBwZ190ZXJtaW5hdGVfYmFja2VuZChwaWQsIDE4MDAwMCkgRlJPTSBwZ19z dGF0X2FjdGl2aXR5CisgIFdIRVJFIGFwcGxpY2F0aW9uX25hbWUgPSAnZmR3X2Nvbm5fY2hl Y2snOworRU5EICQkOworU0VMRUNUIENBU0UgV0hFTiBjbG9zZWQgSVMgTk9UIGZhbHNlIFRI RU4gMSBFTFNFIDAgRU5ECisgIEZST00gcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucyh0 cnVlKTsKKyBjYXNlIAorLS0tLS0tCisgICAgMQorKDEgcm93KQorCistLSBDbGVhbiB1cAor XHNldCBWRVJCT1NJVFkgZGVmYXVsdAorUkVTRVQgZGVidWdfZGlzY2FyZF9jYWNoZXM7CmRp ZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHctLTEuMS0tMS4y LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4xLS0xLjIuc3Fs CmluZGV4IDBjNjViZjJlMTQuLjBkNDA2YzYwMjggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4xLS0xLjIuc3FsCisrKyBiL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy0tMS4xLS0xLjIuc3FsCkBAIC05LDggKzksOSBAQCBB TFRFUiBFWFRFTlNJT04gcG9zdGdyZXNfZmR3IERST1AgRlVOQ1RJT04gcG9zdGdyZXNfZmR3 X2dldF9jb25uZWN0aW9ucyAoKTsKIC8qIFRoZW4gd2UgY2FuIGRyb3AgaXQgKi8KIERST1Ag RlVOQ1RJT04gcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucyAoKTsKIAotQ1JFQVRFIEZV TkNUSU9OIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMgKE9VVCBzZXJ2ZXJfbmFtZSB0 ZXh0LAotICAgICAgIE9VVCB2YWxpZCBib29sZWFuLCBPVVQgdXNlZF9pbl94YWN0IGJvb2xl YW4pCitDUkVBVEUgRlVOQ1RJT04gcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucyAoCisg ICAgSU4gY2hlY2tfY29ubiBib29sZWFuIERFRkFVTFQgZmFsc2UsIE9VVCBzZXJ2ZXJfbmFt ZSB0ZXh0LAorICAgIE9VVCB2YWxpZCBib29sZWFuLCBPVVQgdXNlZF9pbl94YWN0IGJvb2xl YW4sIE9VVCBjbG9zZWQgYm9vbGVhbikKIFJFVFVSTlMgU0VUT0YgcmVjb3JkCiBBUyAnTU9E VUxFX1BBVEhOQU1FJywgJ3Bvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnNfMV8yJwogTEFO R1VBR0UgQyBTVFJJQ1QgUEFSQUxMRUwgUkVTVFJJQ1RFRDsKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsIGIvY29udHJpYi9wb3N0Z3Jl c19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5kZXggOGJlOWY5OWMxOS4uMzcxZTEzMTkz MyAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5z cWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKQEAg LTQyMzUsMyArNDIzNSwzNiBAQCBBTkFMWVpFIGFuYWx5emVfdGFibGU7CiAtLSBjbGVhbnVw CiBEUk9QIEZPUkVJR04gVEFCTEUgYW5hbHl6ZV9mdGFibGU7CiBEUk9QIFRBQkxFIGFuYWx5 emVfdGFibGU7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIHRlc3QgZm9yIHBvc3RncmVzX2Zk d19nZXRfY29ubmVjdGlvbnMgZnVuY3Rpb24gd2l0aCBjaGVja19jb25uID0gdHJ1ZQorLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCistLSBEaXNhYmxlIGRlYnVnX2Rpc2NhcmRfY2FjaGVzIGluIG9y ZGVyIHRvIG1hbmFnZSByZW1vdGUgY29ubmVjdGlvbnMKK1NFVCBkZWJ1Z19kaXNjYXJkX2Nh Y2hlcyBUTyAnMCc7CisKKy0tIFRoZSB0ZXh0IG9mIHRoZSBlcnJvciBtaWdodCB2YXJ5IGFj cm9zcyBwbGF0Zm9ybXMsIHNvIG9ubHkgc2hvdyBTUUxTVEFURS4KK1xzZXQgVkVSQk9TSVRZ IHNxbHN0YXRlCisKK1NFTEVDVCAxIEZST00gcG9zdGdyZXNfZmR3X2Rpc2Nvbm5lY3RfYWxs KCk7CitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoU0VUIGFwcGxpY2F0aW9uX25h bWUgJ2Zkd19jb25uX2NoZWNrJyk7CitTRUxFQ1QgMSBGUk9NIGZ0MSBMSU1JVCAxOworCist LSBTaW5jZSB0aGUgcmVtb3RlIHNlcnZlciBpcyBzdGlsbCBjb25uZWN0ZWQsICJjbG9zZWQi IHNob3VsZCBiZSBGQUxTRSwKKy0tIG9yIE5VTEwgaWYgdGhlIGNvbm5lY3Rpb24gc3RhdHVz IGNoZWNrIGlzIG5vdCBhdmFpbGFibGUuCitTRUxFQ1QgQ0FTRSBXSEVOIGNsb3NlZCBJUyBO T1QgdHJ1ZSBUSEVOIDEgRUxTRSAwIEVORAorICBGUk9NIHBvc3RncmVzX2Zkd19nZXRfY29u bmVjdGlvbnModHJ1ZSk7CisKKy0tIEFmdGVyIHRlcm1pbmF0aW5nIHRoZSByZW1vdGUgYmFj a2VuZCwgc2luY2UgdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLAorLS0gImNsb3NlZCIgc2hv dWxkIGJlIFRSVUUsIG9yIE5VTEwgaWYgdGhlIGNvbm5lY3Rpb24gc3RhdHVzIGNoZWNrCist LSBpcyBub3QgYXZhaWxhYmxlLgorRE8gJCQgQkVHSU4KK1BFUkZPUk0gcGdfdGVybWluYXRl X2JhY2tlbmQocGlkLCAxODAwMDApIEZST00gcGdfc3RhdF9hY3Rpdml0eQorICBXSEVSRSBh cHBsaWNhdGlvbl9uYW1lID0gJ2Zkd19jb25uX2NoZWNrJzsKK0VORCAkJDsKK1NFTEVDVCBD QVNFIFdIRU4gY2xvc2VkIElTIE5PVCBmYWxzZSBUSEVOIDEgRUxTRSAwIEVORAorICBGUk9N IHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnModHJ1ZSk7CisKKy0tIENsZWFuIHVwCitc c2V0IFZFUkJPU0lUWSBkZWZhdWx0CitSRVNFVCBkZWJ1Z19kaXNjYXJkX2NhY2hlczsKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dtbCBiL2RvYy9zcmMvc2dt bC9wb3N0Z3Jlcy1mZHcuc2dtbAppbmRleCA4MTlkY2EzZTAwLi45ZjMxNTFmNjQ3IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3Bvc3RncmVzLWZkdy5zZ21sCkBAIC03NzcsMjEgKzc3Nyw0MCBAQCBPUFRJT05TIChB REQgcGFzc3dvcmRfcmVxdWlyZWQgJ2ZhbHNlJyk7CiAKICAgPHZhcmlhYmxlbGlzdD4KICAg IDx2YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGZ1bmN0aW9uPnBvc3RncmVzX2Zkd19nZXRf Y29ubmVjdGlvbnMoT1VUIHNlcnZlcl9uYW1lIHRleHQsCi0gICAgICBPVVQgdmFsaWQgYm9v bGVhbiwgT1VUIHVzZWRfaW5feGFjdCBib29sZWFuKQorICAgIDx0ZXJtPjxmdW5jdGlvbj5w b3N0Z3Jlc19mZHdfZ2V0X2Nvbm5lY3Rpb25zKAorICAgICAgSU4gY2hlY2tfY29ubiBib29s ZWFuIERFRkFVTFQgZmFsc2UsIE9VVCBzZXJ2ZXJfbmFtZSB0ZXh0LAorICAgICAgT1VUIHZh bGlkIGJvb2xlYW4sIE9VVCB1c2VkX2luX3hhY3QgYm9vbGVhbiwgT1VUIGNsb3NlZCBib29s ZWFuKQogICAgICAgcmV0dXJucyBzZXRvZiByZWNvcmQ8L2Z1bmN0aW9uPjwvdGVybT4KICAg ICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5z IGluZm9ybWF0aW9uIGFib3V0IGFsbCBvcGVuIGNvbm5lY3Rpb25zIHRoYXQKICAgICAgIHBv c3RncmVzX2ZkdyBoYXMgZXN0YWJsaXNoZWQgZnJvbSB0aGUgbG9jYWwgc2Vzc2lvbiB0byBm b3JlaWduIHNlcnZlcnMuCiAgICAgICBJZiB0aGVyZSBhcmUgbm8gb3BlbiBjb25uZWN0aW9u cywgbm8gcmVjb3JkcyBhcmUgcmV0dXJuZWQuCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+ CisgICAgICBJZiA8bGl0ZXJhbD5jaGVja19jb25uPC9saXRlcmFsPiBpcyBzZXQgdG8gPGxp dGVyYWw+dHJ1ZTwvbGl0ZXJhbD4sCisgICAgICB0aGUgZnVuY3Rpb24gY2hlY2tzIHRoZSBz dGF0dXMgb2YgZWFjaCBjb25uZWN0aW9uIGFuZCBzaG93cworICAgICAgdGhlIHJlc3VsdCBp biB0aGUgPGxpdGVyYWw+Y2xvc2VkPC9saXRlcmFsPiBjb2x1bW4uCisgICAgICBUaGlzIGZl YXR1cmUgaXMgY3VycmVudGx5IGF2YWlsYWJsZSBvbmx5IG9uIHN5c3RlbXMgdGhhdCBzdXBw b3J0CisgICAgICB0aGUgbm9uLXN0YW5kYXJkIDxzeW1ib2w+UE9MTFJESFVQPC9zeW1ib2w+ IGV4dGVuc2lvbiB0bworICAgICAgdGhlIDxzeW1ib2w+cG9sbDwvc3ltYm9sPiBzeXN0ZW0g Y2FsbCwgaW5jbHVkaW5nIExpbnV4LgorICAgICAgVGhpcyBpcyB1c2VmdWwgdG8gY2hlY2sg aWYgYWxsIGNvbm5lY3Rpb25zIHVzZWQgd2l0aGluCisgICAgICBhIHRyYW5zYWN0aW9uIGFy ZSBzdGlsbCBvcGVuLiBJZiBhbnkgY29ubmVjdGlvbnMgYXJlIGNsb3NlZCwKKyAgICAgIHRo ZSB0cmFuc2FjdGlvbiBjYW5ub3QgYmUgY29tbWl0dGVkIHN1Y2Nlc3NmdWxseSwKKyAgICAg IHNvIGl0IGlzIGJldHRlciB0byByb2xsIGJhY2sgYXMgc29vbiBhcyBhIGNsb3NlZCBjb25u ZWN0aW9uIGlzIGRldGVjdGVkLAorICAgICAgcmF0aGVyIHRoYW4gY29udGludWluZyB0byB0 aGUgZW5kLiBVc2VycyBjYW4gcm9sbCBiYWNrIHRoZSB0cmFuc2FjdGlvbgorICAgICAgaW1t ZWRpYXRlbHkgaWYgdGhlIGZ1bmN0aW9uIHJlcG9ydHMgY29ubmVjdGlvbnMgd2hlcmUgYm90 aAorICAgICAgPGxpdGVyYWw+dXNlZF9pbl94YWN0PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+ Y2xvc2VkPC9saXRlcmFsPiBhcmUKKyAgICAgIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+Lgor ICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgogICAgICAgRXhhbXBsZSB1c2FnZSBvZiB0aGUg ZnVuY3Rpb246CiA8c2NyZWVuPgogcG9zdGdyZXM9KiMgU0VMRUNUICogRlJPTSBwb3N0Z3Jl c19mZHdfZ2V0X2Nvbm5lY3Rpb25zKCkgT1JERVIgQlkgMTsKLSBzZXJ2ZXJfbmFtZSB8IHZh bGlkIHwgdXNlZF9pbl94YWN0Ci0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0KLSBsb29wYmFjazEgICB8IHQgICAgIHwgdAotIGxvb3BiYWNrMiAgIHwgZiAgICAgfCB0 Cisgc2VydmVyX25hbWUgfCB2YWxpZCB8IHVzZWRfaW5feGFjdCB8IGNsb3NlZAorLS0tLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisgbG9vcGJhY2sxICAg fCB0ICAgICB8IHQgICAgICAgICAgICB8CisgbG9vcGJhY2syICAgfCBmICAgICB8IHQgICAg ICAgICAgICB8CiA8L3NjcmVlbj4KICAgICAgIFRoZSBvdXRwdXQgY29sdW1ucyBhcmUgZGVz Y3JpYmVkIGluCiAgICAgICA8eHJlZiBsaW5rZW5kPSJwb3N0Z3Jlcy1mZHctZ2V0LWNvbm5l Y3Rpb25zLWNvbHVtbnMiLz4uCkBAIC04MzYsNiArODU1LDE2IEBAIHBvc3RncmVzPSojIFNF TEVDVCAqIEZST00gcG9zdGdyZXNfZmR3X2dldF9jb25uZWN0aW9ucygpIE9SREVSIEJZIDE7 CiAgICAgICAgICBUcnVlIGlmIHRoaXMgY29ubmVjdGlvbiBpcyB1c2VkIGluIHRoZSBjdXJy ZW50IHRyYW5zYWN0aW9uLgogICAgICAgICA8L2VudHJ5PgogICAgICAgIDwvcm93PgorICAg ICAgIDxyb3c+CisgICAgICAgIDxlbnRyeT48c3RydWN0ZmllbGQ+Y2xvc2VkPC9zdHJ1Y3Rm aWVsZD48L2VudHJ5PgorICAgICAgICA8ZW50cnk+PHR5cGU+Ym9vbGVhbjwvdHlwZT48L2Vu dHJ5PgorICAgICAgICA8ZW50cnk+CisgICAgICAgICBUcnVlIGlmIHRoaXMgY29ubmVjdGlv biBpcyBjbG9zZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgICAgIDxsaXRlcmFsPk5VTEw8 L2xpdGVyYWw+IGlzIHJldHVybmVkIGlmIDxsaXRlcmFsPmNoZWNrX2Nvbm48L2xpdGVyYWw+ CisgICAgICAgICBpcyBzZXQgdG8gPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+IG9yIGlmIHRo ZSBjb25uZWN0aW9uIHN0YXR1cyBjaGVjaworICAgICAgICAgaXMgbm90IGF2YWlsYWJsZSBv biB0aGlzIHBsYXRmb3JtLgorICAgICAgICA8L2VudHJ5PgorICAgICAgIDwvcm93PgogICAg ICAgPC90Ym9keT4KICAgICAgPC90Z3JvdXA+CiAgICAgPC90YWJsZT4KLS0gCjIuNDUuMgoK --------------IyKzDt4I45egjnSDrt2DPDjI--