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.96) (envelope-from ) id 1vxw1B-00HGp3-2A for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Mar 2026 23:52:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vxw19-00Exp1-1y for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Mar 2026 23:52:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vxw19-00Exor-0n for pgsql-hackers@lists.postgresql.org; Wed, 04 Mar 2026 23:52:39 +0000 Received: from mail-dl1-x1236.google.com ([2607:f8b0:4864:20::1236]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vxw17-00000000hGC-0ax8 for pgsql-hackers@lists.postgresql.org; Wed, 04 Mar 2026 23:52:39 +0000 Received: by mail-dl1-x1236.google.com with SMTP id a92af1059eb24-1270adc5121so9352948c88.0 for ; Wed, 04 Mar 2026 15:52:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772668355; cv=none; d=google.com; s=arc-20240605; b=kfdMxsfePGXqIJXXU6aHvrw1lEKv+zaukwbRx1eYYRdPix2O5f0HSnlYGj2yp4br0x krzS9P2qvMXqZkBANeNSUYm9O7ksChsCOwCI0ume/gUIIblNgtFc3EoyG9IvJgW6djHc kECmCHCwwqdQHoAs0erD4TblNQGWsSqce1fMd9BZtbZNFwYOOWw00d4WKYzA6wNe2af2 Pory0Cd6GFI+jRYUbT2Hut/KLhF0PGhTAK5h9ZTHgjoq589IkssU8H+dRaDACH+oku2A GlcyNsNlztKdRKhTfK1X1asbQCZKxNYMiOrvNRrZvH6ENh0S40iaJfdm2GgWEUQvg9+i leag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=MbqvrCbjyp/UIUnO8VnZ7/5sb5r/keKPVP30aJTp8l4=; fh=HqiWZC4Uv6ZmZnFUN/dNchYL9Tg7Qyw/GsdwcX5qRQo=; b=ca78C2sDv+mqzBdeyFRlsnh2JUPA5hnH+04tnXv7L9jj+Mw+/DiuczphoD7sYcYf8U FqC4XaIKHvRCfVrTBbh+uJqv7KRYaE5HGVvtM5a0G51FLCTnqQ3t3PX71IC0t5jIoYPQ dEEtnRCfAxO3zu+y0wvLie8sDLnnAwJn9Q+Jlkm9LBEuTjrNCWrbAy1GmWZkz9N9AiW5 b9kOSWqHZc87SFNyVdSHvBWM8OOdkZg63O65TkARndQobPXUTumTXZntVN0XK9Uj3lBU SYSzxQDWsjHrKTb9XYfPPeUk1rJJ5/7WMQa/y876xeo0mFTVFlPmUzMwy8eL4WXsvM6J a7Zw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772668355; x=1773273155; 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=MbqvrCbjyp/UIUnO8VnZ7/5sb5r/keKPVP30aJTp8l4=; b=aHOkFImGaR2tBNSUsdkQghlzvnMqsa/sEeUSXwBMjqTqB1gbwNxzrLIjnxCHI+DumZ GAC6ic7RY/P1Gv3v+JEw3xF0RtMqNlVtSiHf4APqQRzRVAiVEwM1SliIMW0tm+jWhmxT 8zUGm+vG7D/9Qikof66qJNk0cJFrhPQf0/0CrokhazcFStZAKGksWSxOWdQAYv4/Wh3G 5aHWwKRUFbKTkUBA1LloO/QUMwn4KRC8YchFdwVVafijL6Loit/LJjxDgBQDdlGFiO2p AEAoTpKdZC3sFtzKl6Nr7P6YVg/TEYo5xbZZxpgxI3CMw9yojjODj8unt7hIX4ZMsnWh TC+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772668355; x=1773273155; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=MbqvrCbjyp/UIUnO8VnZ7/5sb5r/keKPVP30aJTp8l4=; b=HJRrpkAxgEjGHHIcYY1Y5o++670QSxB486l1IvhXDyPAzQQZ2iMwg63Pd3dTkKlneo SQIicTRio9OvdW+ApUBC5J2BBo11hKme4u7cHVlKbBG3kr2QvEAspqlFPq+C2fkJ0VAi b4wrUFplnceOg8nir0ZHEKhkjkR7AU0AUWeQAYuHN6Qfm9ERKX3i1vNKlysbgk2Gu1nx EsbJISQfitSiUGyyLyjAjuVI9OKqHzfAIGPjm3l0ZRGbQL/OiKI7Kzp8fjso6rQkNnyS 3C3D4f4EDy2oRerWqlZ5bhBR8LeOJ+6rPAo0Z/VA6wP4cxQQ8VBmc7IlYyUAkeSx7Abb 4dXQ== X-Forwarded-Encrypted: i=1; AJvYcCWuTDDpLUWkEgGAEOqz3ADAeGL+m+fe47WyJM92XQepCzvePErviSV066FdgLLkrA9/jLyIaQ2LCMWgGrL7@lists.postgresql.org X-Gm-Message-State: AOJu0YyxjEmnQL/rPlCAK0m7b1RlngbdqWmvu+fDOMOgf7fk1Yf9+iCH 77Rkcr58y5aCiSqGHOdMhqXGMUoIRQ28QUO50nQRn906hbJeL6PHnIOpah4YvgXjSCIlhIaHVve cB5N9K86S1WeD3gNh2kk4Ik9iIQEr72Q= X-Gm-Gg: ATEYQzyu9yCQuhUmGo6aNQ5iGOPZuoXpAOELAiQx2BCUItTxWgNFC+SY0lzA0dZw0GA CySQ67lhECj8LddWDo/6S2kg3WZYef6fmisYpAxOF7N10rqGNddP+lAKPlxZ1anp2KA7hDQKhB2 rh4WijeEVN+N//7Hp+Q36l2sai4l17tq9avcnXdJV8TRPFJxzI4ZSdsfMkq6nmjHNzrCodCN5t0 tZ2hYWFHoIHM8GvjYKM2bryJ7eUWiEFaB2GD6qlWcutp4l9S2ZV9JUBHDgmo+FhkULtVjJb97Gl 058jTob6NCAZk9kOo7dcVvXreZDPGTQendw6B4FkZi3xvoDHDc6rte76R0vxFz2DMoJSzuVp0F5 oue/S+eDBddNqBaWzSk+E/TLJpWTVl11/gKwNrKVe X-Received: by 2002:a05:7022:6712:b0:127:6e92:a944 with SMTP id a92af1059eb24-128b70ec14amr1043587c88.30.1772668354641; Wed, 04 Mar 2026 15:52:34 -0800 (PST) MIME-Version: 1.0 References: <3660951.1741016970@sss.pgh.pa.us> In-Reply-To: From: Etsuro Fujita Date: Thu, 5 Mar 2026 08:52:22 +0900 X-Gm-Features: AaiRm51LlnTF8SXO4zXTq0ABcl56KF5dSy6zsb2Py8KUWZS-3W-uySkaD1jGmyo Message-ID: Subject: =?UTF-8?Q?Re=3A_Options_to_control_remote_transactions=E2=80=99_access?= =?UTF-8?Q?=2Fdeferrable_modes_in_postgres=5Ffdw?= To: Ashutosh Bapat Cc: Tom Lane , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000095ee22064c3b83bf" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000095ee22064c3b83bf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Feb 25, 2026 at 7:22=E2=80=AFPM Etsuro Fujita wrote: > This was reverted in commit 7d4667c62. I'd like to re-propose it for > v19, as mentioned in [1]. Attached is a new patch, in which I added > to the documentation a note about login triggers executed on the > remote side, as discussed in [1]. Other than that, no changes. I've > added this to the upcoming CF. Here is an updated version of the patch. Changes are: * On second thought, I think the name of the variable top_read_only_level added to connection.c by the patch is a bit long, so I renamed it to top_read_only. Does that make sense? Other than that, no code changes. * I also added/modified some comments. Comments welcome! Best regards, Etsuro Fujita --00000000000095ee22064c3b83bf Content-Type: application/octet-stream; name="v7-0001-postgres_fdw-Inherit-the-local-transaction-s-access-.patch" Content-Disposition: attachment; filename="v7-0001-postgres_fdw-Inherit-the-local-transaction-s-access-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmcoy4va0 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYwppbmRleCAzMTE5MzY0MDZmMi4uNjJkNTBiNmZhZmUg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYworKysgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMKQEAgLTU5LDYgKzU5LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgQ29ubkNhY2hlRW50cnkKIAkvKiBSZW1haW5pbmcgZmllbGRzIGFyZSBpbnZhbGlkIHdo ZW4gY29ubiBpcyBOVUxMOiAqLwogCWludAkJCXhhY3RfZGVwdGg7CQkvKiAwID0gbm8geGFjdCBv cGVuLCAxID0gbWFpbiB4YWN0IG9wZW4sIDIgPQogCQkJCQkJCQkgKiBvbmUgbGV2ZWwgb2Ygc3Vi eGFjdCBvcGVuLCBldGMgKi8KKwlib29sCQl4YWN0X3JlYWRfb25seTsgLyogeGFjdCByL28gc3Rh dGUgKi8KIAlib29sCQloYXZlX3ByZXBfc3RtdDsgLyogaGF2ZSB3ZSBwcmVwYXJlZCBhbnkgc3Rt dHMgaW4gdGhpcyB4YWN0PyAqLwogCWJvb2wJCWhhdmVfZXJyb3I7CQkvKiBoYXZlIGFueSBzdWJ4 YWN0cyBhYm9ydGVkIGluIHRoaXMgeGFjdD8gKi8KIAlib29sCQljaGFuZ2luZ194YWN0X3N0YXRl OwkvKiB4YWN0IHN0YXRlIGNoYW5nZSBpbiBwcm9jZXNzICovCkBAIC04NSw2ICs4NiwxMiBAQCBz dGF0aWMgdW5zaWduZWQgaW50IHByZXBfc3RtdF9udW1iZXIgPSAwOwogLyogdHJhY2tzIHdoZXRo ZXIgYW55IHdvcmsgaXMgbmVlZGVkIGluIGNhbGxiYWNrIGZ1bmN0aW9ucyAqLwogc3RhdGljIGJv b2wgeGFjdF9nb3RfY29ubmVjdGlvbiA9IGZhbHNlOwogCisvKgorICogdHJhY2tzIHRoZSB0b3Bt b3N0IHJlYWQtb25seSBsb2NhbCB0cmFuc2FjdGlvbidzIG5lc3RpbmcgbGV2ZWwgZGV0ZXJtaW5l ZAorICogYnkgR2V0VG9wUmVhZE9ubHlUcmFuc2FjdGlvbk5lc3RMZXZlbCgpCisgKi8KK3N0YXRp YyBpbnQJcmVhZF9vbmx5X2xldmVsID0gMDsKKwogLyogY3VzdG9tIHdhaXQgZXZlbnQgdmFsdWVz LCByZXRyaWV2ZWQgZnJvbSBzaGFyZWQgbWVtb3J5ICovCiBzdGF0aWMgdWludDMyIHBnZmR3X3dl X2NsZWFudXBfcmVzdWx0ID0gMDsKIHN0YXRpYyB1aW50MzIgcGdmZHdfd2VfY29ubmVjdCA9IDA7 CkBAIC0zNzYsNiArMzgzLDcgQEAgbWFrZV9uZXdfY29ubmVjdGlvbihDb25uQ2FjaGVFbnRyeSAq ZW50cnksIFVzZXJNYXBwaW5nICp1c2VyKQogCiAJLyogUmVzZXQgYWxsIHRyYW5zaWVudCBzdGF0 ZSBmaWVsZHMsIHRvIGJlIHN1cmUgYWxsIGFyZSBjbGVhbiAqLwogCWVudHJ5LT54YWN0X2RlcHRo ID0gMDsKKwllbnRyeS0+eGFjdF9yZWFkX29ubHkgPSBmYWxzZTsKIAllbnRyeS0+aGF2ZV9wcmVw X3N0bXQgPSBmYWxzZTsKIAllbnRyeS0+aGF2ZV9lcnJvciA9IGZhbHNlOwogCWVudHJ5LT5jaGFu Z2luZ194YWN0X3N0YXRlID0gZmFsc2U7CkBAIC04NTEsMjkgKzg1OSwxMDUgQEAgZG9fc3FsX2Nv bW1hbmRfZW5kKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3FsLCBib29sIGNvbnN1bWVfaW5w dXQpCiAgKiB0aG9zZSBzY2Fucy4gIEEgZGlzYWR2YW50YWdlIGlzIHRoYXQgd2UgY2FuJ3QgcHJv dmlkZSBzYW5lIGVtdWxhdGlvbiBvZgogICogUkVBRCBDT01NSVRURUQgYmVoYXZpb3IgLS0tIGl0 IHdvdWxkIGJlIG5pY2UgaWYgd2UgaGFkIHNvbWUgb3RoZXIgd2F5IHRvCiAgKiBjb250cm9sIHdo aWNoIHJlbW90ZSBxdWVyaWVzIHNoYXJlIGEgc25hcHNob3QuCisgKgorICogTm90ZSBhbHNvIHRo YXQgd2UgYWx3YXlzIHN0YXJ0IHRoZSByZW1vdGUgdHJhbnNhY3Rpb24gd2l0aCB0aGUgc2FtZQor ICogcmVhZC93cml0ZSBhbmQgZGVmZXJyYWJsZSBwcm9wZXJ0aWVzIGFzIHRoZSBsb2NhbCB0cmFu c2FjdGlvbiwgYW5kIHN0YXJ0CisgKiB0aGUgcmVtb3RlIHN1YnRyYW5zYWN0aW9uIHdpdGggdGhl IHNhbWUgcmVhZC93cml0ZSBwcm9wZXJ0eSBhcyB0aGUgbG9jYWwKKyAqIHN1YnRyYW5zYWN0aW9u LgogICovCiBzdGF0aWMgdm9pZAogYmVnaW5fcmVtb3RlX3hhY3QoQ29ubkNhY2hlRW50cnkgKmVu dHJ5KQogewogCWludAkJCWN1cmxldmVsID0gR2V0Q3VycmVudFRyYW5zYWN0aW9uTmVzdExldmVs KCk7CiAKLQkvKiBTdGFydCBtYWluIHRyYW5zYWN0aW9uIGlmIHdlIGhhdmVuJ3QgeWV0ICovCisJ LyoKKwkgKiBJZiB0aGUgY3VycmVudCBsb2NhbCAoc3ViKXRyYW5zYWN0aW9uIGlzIHJlYWQtb25s eSwgc2V0IHRoZSB0b3Btb3N0CisJICogcmVhZC1vbmx5IGxvY2FsIHRyYW5zYWN0aW9uJ3MgbmVz dGluZyBsZXZlbCBpZiB3ZSBoYXZlbid0IHlldC4KKwkgKgorCSAqIE5vdGU6IG9uY2UgaXQncyBz ZXQsIGl0J3MgcmV0YWluZWQgdW50aWwgdGhlIHRvcG1vc3QgcmVhZC1vbmx5IGxvY2FsCisJICog dHJhbnNhY3Rpb24gaXMgY29tbWl0dGVkL2Fib3J0ZWQgKHNlZSBwZ2Zkd194YWN0X2NhbGxiYWNr IGFuZAorCSAqIHBnZmR3X3N1YnhhY3RfY2FsbGJhY2spLgorCSAqLworCWlmIChYYWN0UmVhZE9u bHkpCisJeworCQlpZiAocmVhZF9vbmx5X2xldmVsID09IDApCisJCQlyZWFkX29ubHlfbGV2ZWwg PSBHZXRUb3BSZWFkT25seVRyYW5zYWN0aW9uTmVzdExldmVsKCk7CisJCUFzc2VydChyZWFkX29u bHlfbGV2ZWwgPiAwKTsKKwl9CisJZWxzZQorCQlBc3NlcnQocmVhZF9vbmx5X2xldmVsID09IDAp OworCisJLyoKKwkgKiBTdGFydCBtYWluIHRyYW5zYWN0aW9uIGlmIHdlIGhhdmVuJ3QgeWV0OyBv dGhlcndpc2UsIGNoYW5nZSB0aGUKKwkgKiBjdXJyZW50IHJlbW90ZSAoc3ViKXRyYW5zYWN0aW9u J3MgcmVhZC93cml0ZSBtb2RlIGlmIG5lZWRlZC4KKwkgKi8KIAlpZiAoZW50cnktPnhhY3RfZGVw dGggPD0gMCkKIAl7Ci0JCWNvbnN0IGNoYXIgKnNxbDsKKwkJLyoKKwkJICogVGhpcyBpcyB0aGUg Y2FzZSB3aGVuIHdlIGhhdmVuJ3QgeWV0IHN0YXJ0ZWQgYSBtYWluIHRyYW5zYWN0aW9uLgorCQkg Ki8KKwkJU3RyaW5nSW5mb0RhdGEgc3FsOworCQlib29sCQlybyA9IChyZWFkX29ubHlfbGV2ZWwg PT0gMSk7CiAKIAkJZWxvZyhERUJVRzMsICJzdGFydGluZyByZW1vdGUgdHJhbnNhY3Rpb24gb24g Y29ubmVjdGlvbiAlcCIsCiAJCQkgZW50cnktPmNvbm4pOwogCisJCWluaXRTdHJpbmdJbmZvKCZz cWwpOworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZzcWwsICJTVEFSVCBUUkFOU0FDVElPTiBJ U09MQVRJT04gTEVWRUwgIik7CiAJCWlmIChJc29sYXRpb25Jc1NlcmlhbGl6YWJsZSgpKQotCQkJ c3FsID0gIlNUQVJUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEUiOwor CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmc3FsLCAiU0VSSUFMSVpBQkxFIik7CiAJCWVsc2UK LQkJCXNxbCA9ICJTVEFSVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBS RUFEIjsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnNxbCwgIlJFUEVBVEFCTEUgUkVBRCIp OworCQlpZiAocm8pCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZzcWwsICIgUkVBRCBPTkxZ Iik7CisJCWlmIChYYWN0RGVmZXJyYWJsZSkKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnNx bCwgIiBERUZFUlJBQkxFIik7CiAJCWVudHJ5LT5jaGFuZ2luZ194YWN0X3N0YXRlID0gdHJ1ZTsK LQkJZG9fc3FsX2NvbW1hbmQoZW50cnktPmNvbm4sIHNxbCk7CisJCWRvX3NxbF9jb21tYW5kKGVu dHJ5LT5jb25uLCBzcWwuZGF0YSk7CiAJCWVudHJ5LT54YWN0X2RlcHRoID0gMTsKKwkJaWYgKHJv KQorCQl7CisJCQlBc3NlcnQoIWVudHJ5LT54YWN0X3JlYWRfb25seSk7CisJCQllbnRyeS0+eGFj dF9yZWFkX29ubHkgPSB0cnVlOworCQl9CiAJCWVudHJ5LT5jaGFuZ2luZ194YWN0X3N0YXRlID0g ZmFsc2U7CiAJfQorCWVsc2UgaWYgKCFlbnRyeS0+eGFjdF9yZWFkX29ubHkpCisJeworCQkvKgor CQkgKiBUaGUgcmVtb3RlIChzdWIpdHJhbnNhY3Rpb24gaGFzIGJlZW4gb3BlbmVkIGluIHJlYWQt d3JpdGUgbW9kZS4KKwkJICovCisJCUFzc2VydChyZWFkX29ubHlfbGV2ZWwgPT0gMCB8fAorCQkJ ICAgZW50cnktPnhhY3RfZGVwdGggPD0gcmVhZF9vbmx5X2xldmVsKTsKKworCQkvKgorCQkgKiBJ ZiBpdHMgZGVwdGggaXMgZXF1YWwgdG8gcmVhZF9vbmx5X2xldmVsLCBpdCBtZWFucyB0aGF0IHRo ZQorCQkgKiBjb3JyZXNwb25kaW5nIGxvY2FsIHJlYWQtd3JpdGUgKHN1Yil0cmFuc2FjdGlvbiBo YXMgY2hhbmdlZCB0bworCQkgKiAodG9wbW9zdCkgcmVhZC1vbmx5IGFmdGVyIHN0YXJ0aW5nIGl0 IGluIHRoYXQgbW9kZTsgY2hhbmdlIGl0cyBtb2RlCisJCSAqIHRvIHJlYWQtb25seSBpbiB0aGF0 IGNhc2UuCisJCSAqLworCQlpZiAoZW50cnktPnhhY3RfZGVwdGggPT0gcmVhZF9vbmx5X2xldmVs KQorCQl7CisJCQllbnRyeS0+Y2hhbmdpbmdfeGFjdF9zdGF0ZSA9IHRydWU7CisJCQlkb19zcWxf Y29tbWFuZChlbnRyeS0+Y29ubiwgIlNFVCB0cmFuc2FjdGlvbl9yZWFkX29ubHkgPSBvbiIpOwor CQkJZW50cnktPnhhY3RfcmVhZF9vbmx5ID0gdHJ1ZTsKKwkJCWVudHJ5LT5jaGFuZ2luZ194YWN0 X3N0YXRlID0gZmFsc2U7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJLyoKKwkJICogVGhlIHJlbW90 ZSAoc3ViKXRyYW5zYWN0aW9uIGhhcyBiZWVuIG9wZW5lZCBpbiByZWFkLW9ubHkgbW9kZS4KKwkJ ICovCisJCUFzc2VydChyZWFkX29ubHlfbGV2ZWwgPiAwICYmCisJCQkgICBlbnRyeS0+eGFjdF9k ZXB0aCA+PSByZWFkX29ubHlfbGV2ZWwpOworCisJCS8qCisJCSAqIFNpbmNlIHRoZSBjb3JyZXNw b25kaW5nIGxvY2FsIHJlYWQtb25seSAoc3ViKXRyYW5zYWN0aW9uIGNhbid0CisJCSAqIGNoYW5n ZSB0byByZWFkLXdyaXRlIGFueW1vcmUgKHNlZSBjaGVja190cmFuc2FjdGlvbl9yZWFkX29ubHkp LAorCQkgKiB0aGVyZSBpcyBubyBuZWVkIHRvIGRvIGFueXRoaW5nLgorCQkgKi8KKwl9CiAKIAkv KgogCSAqIElmIHdlJ3JlIGluIGEgc3VidHJhbnNhY3Rpb24sIHN0YWNrIHVwIHNhdmVwb2ludHMg dG8gbWF0Y2ggb3VyIGxldmVsLgpAQCAtODgyLDEyICs5NjYsMjEgQEAgYmVnaW5fcmVtb3RlX3hh Y3QoQ29ubkNhY2hlRW50cnkgKmVudHJ5KQogCSAqLwogCXdoaWxlIChlbnRyeS0+eGFjdF9kZXB0 aCA8IGN1cmxldmVsKQogCXsKLQkJY2hhcgkJc3FsWzY0XTsKKwkJU3RyaW5nSW5mb0RhdGEgc3Fs OworCQlib29sCQlybyA9IChlbnRyeS0+eGFjdF9kZXB0aCArIDEgPT0gcmVhZF9vbmx5X2xldmVs KTsKIAotCQlzbnByaW50ZihzcWwsIHNpemVvZihzcWwpLCAiU0FWRVBPSU5UIHMlZCIsIGVudHJ5 LT54YWN0X2RlcHRoICsgMSk7CisJCWluaXRTdHJpbmdJbmZvKCZzcWwpOworCQlhcHBlbmRTdHJp bmdJbmZvKCZzcWwsICJTQVZFUE9JTlQgcyVkIiwgZW50cnktPnhhY3RfZGVwdGggKyAxKTsKKwkJ aWYgKHJvKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmc3FsLCAiOyBTRVQgdHJhbnNhY3Rp b25fcmVhZF9vbmx5ID0gb24iKTsKIAkJZW50cnktPmNoYW5naW5nX3hhY3Rfc3RhdGUgPSB0cnVl OwotCQlkb19zcWxfY29tbWFuZChlbnRyeS0+Y29ubiwgc3FsKTsKKwkJZG9fc3FsX2NvbW1hbmQo ZW50cnktPmNvbm4sIHNxbC5kYXRhKTsKIAkJZW50cnktPnhhY3RfZGVwdGgrKzsKKwkJaWYgKHJv KQorCQl7CisJCQlBc3NlcnQoIWVudHJ5LT54YWN0X3JlYWRfb25seSk7CisJCQllbnRyeS0+eGFj dF9yZWFkX29ubHkgPSB0cnVlOworCQl9CiAJCWVudHJ5LT5jaGFuZ2luZ194YWN0X3N0YXRlID0g ZmFsc2U7CiAJfQogfQpAQCAtMTE5Miw2ICsxMjg1LDkgQEAgcGdmZHdfeGFjdF9jYWxsYmFjayhY YWN0RXZlbnQgZXZlbnQsIHZvaWQgKmFyZykKIAogCS8qIEFsc28gcmVzZXQgY3Vyc29yIG51bWJl cmluZyBmb3IgbmV4dCB0cmFuc2FjdGlvbiAqLwogCWN1cnNvcl9udW1iZXIgPSAwOworCisJLyog TGlrZXdpc2UgZm9yIHJlYWRfb25seV9sZXZlbCAqLworCXJlYWRfb25seV9sZXZlbCA9IDA7CiB9 CiAKIC8qCkBAIC0xMjkwLDYgKzEzODYsMTAgQEAgcGdmZHdfc3VieGFjdF9jYWxsYmFjayhTdWJY YWN0RXZlbnQgZXZlbnQsIFN1YlRyYW5zYWN0aW9uSWQgbXlTdWJpZCwKIAkJCQkJCQkJCSAgIGZh bHNlKTsKIAkJfQogCX0KKworCS8qIElmIGluIHJlYWRfb25seV9sZXZlbCwgcmVzZXQgaXQgKi8K KwlpZiAoY3VybGV2ZWwgPT0gcmVhZF9vbmx5X2xldmVsKQorCQlyZWFkX29ubHlfbGV2ZWwgPSAw OwogfQogCiAvKgpAQCAtMTM5Miw2ICsxNDkyLDkgQEAgcGdmZHdfcmVzZXRfeGFjdF9zdGF0ZShD b25uQ2FjaGVFbnRyeSAqZW50cnksIGJvb2wgdG9wbGV2ZWwpCiAJCS8qIFJlc2V0IHN0YXRlIHRv IHNob3cgd2UncmUgb3V0IG9mIGEgdHJhbnNhY3Rpb24gKi8KIAkJZW50cnktPnhhY3RfZGVwdGgg PSAwOwogCisJCS8qIFJlc2V0IHhhY3Qgci9vIHN0YXRlICovCisJCWVudHJ5LT54YWN0X3JlYWRf b25seSA9IGZhbHNlOworCiAJCS8qCiAJCSAqIElmIHRoZSBjb25uZWN0aW9uIGlzbid0IGluIGEg Z29vZCBpZGxlIHN0YXRlLCBpdCBpcyBtYXJrZWQgYXMKIAkJICogaW52YWxpZCBvciBrZWVwX2Nv bm5lY3Rpb25zIG9wdGlvbiBvZiBpdHMgc2VydmVyIGlzIGRpc2FibGVkLCB0aGVuCkBAIC0xNDEy LDYgKzE1MTUsMTAgQEAgcGdmZHdfcmVzZXRfeGFjdF9zdGF0ZShDb25uQ2FjaGVFbnRyeSAqZW50 cnksIGJvb2wgdG9wbGV2ZWwpCiAJewogCQkvKiBSZXNldCBzdGF0ZSB0byBzaG93IHdlJ3JlIG91 dCBvZiBhIHN1YnRyYW5zYWN0aW9uICovCiAJCWVudHJ5LT54YWN0X2RlcHRoLS07CisKKwkJLyog SWYgaW4gcmVhZF9vbmx5X2xldmVsLCByZXNldCB4YWN0IHIvbyBzdGF0ZSAqLworCQlpZiAoZW50 cnktPnhhY3RfZGVwdGggKyAxID09IHJlYWRfb25seV9sZXZlbCkKKwkJCWVudHJ5LT54YWN0X3Jl YWRfb25seSA9IGZhbHNlOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19m ZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVj dGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggMmNjYjcyYzUzOWEuLjhlMTdkZmUwMjlhIDEwMDY0 NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0Cisr KyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTEy NTI0LDYgKzEyNTI0LDE0MiBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSByZW1vdGVfYXBwbGljYXRp b25fbmFtZQogRFJPUCBGT1JFSUdOIFRBQkxFIHJlbW90ZV9hcHBsaWNhdGlvbl9uYW1lOwogRFJP UCBWSUVXIG15X2FwcGxpY2F0aW9uX25hbWU7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSB0ZXN0IHJlYWQt b25seSBhbmQvb3IgZGVmZXJyYWJsZSB0cmFuc2FjdGlvbnMKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NSRUFU RSBUQUJMRSBsb2N0IChmMSBpbnQsIGYyIHRleHQpOworQ1JFQVRFIEZVTkNUSU9OIGxvY2YoKSBS RVRVUk5TIFNFVE9GIGxvY3QgTEFOR1VBR0UgU1FMIEFTCisgICdVUERBVEUgcHVibGljLmxvY3Qg U0VUIGYyID0gZjIgfHwgZjIgUkVUVVJOSU5HIConOworQ1JFQVRFIFZJRVcgbG9jdiBBUyBTRUxF Q1QgdC4qIEZST00gbG9jZigpIHQ7CitDUkVBVEUgRk9SRUlHTiBUQUJMRSByZW10IChmMSBpbnQs IGYyIHRleHQpCisgIFNFUlZFUiBsb29wYmFjayBPUFRJT05TICh0YWJsZV9uYW1lICdsb2N2Jyk7 CitDUkVBVEUgRk9SRUlHTiBUQUJMRSByZW10MiAoZjEgaW50LCBmMiB0ZXh0KQorICBTRVJWRVIg bG9vcGJhY2syIE9QVElPTlMgKHRhYmxlX25hbWUgJ2xvY3YnKTsKK0lOU0VSVCBJTlRPIGxvY3Qg VkFMVUVTICgxLCAnZm9vJyksICgyLCAnYmFyJyk7CitTVEFSVCBUUkFOU0FDVElPTiBSRUFEIE9O TFk7CitTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCBmYWlsCitF UlJPUjogIGNhbm5vdCBleGVjdXRlIFVQREFURSBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbgor Q09OVEVYVDogIFNRTCBmdW5jdGlvbiAibG9jZiIgc3RhdGVtZW50IDEKK3JlbW90ZSBTUUwgY29t bWFuZDogU0VMRUNUIGYxLCBmMiBGUk9NIHB1YmxpYy5sb2N2CitST0xMQkFDSyBUTyBzOworUkVM RUFTRSBTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCBmYWlsCitF UlJPUjogIGNhbm5vdCBleGVjdXRlIFVQREFURSBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbgor Q09OVEVYVDogIFNRTCBmdW5jdGlvbiAibG9jZiIgc3RhdGVtZW50IDEKK3JlbW90ZSBTUUwgY29t bWFuZDogU0VMRUNUIGYxLCBmMiBGUk9NIHB1YmxpYy5sb2N2CitST0xMQkFDSzsKK1NUQVJUIFRS QU5TQUNUSU9OOworU0FWRVBPSU5UIHM7CitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247 CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFpbAorRVJST1I6ICBjYW5ub3QgZXhl Y3V0ZSBVUERBVEUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24KK0NPTlRFWFQ6ICBTUUwgZnVu Y3Rpb24gImxvY2YiIHN0YXRlbWVudCAxCityZW1vdGUgU1FMIGNvbW1hbmQ6IFNFTEVDVCBmMSwg ZjIgRlJPTSBwdWJsaWMubG9jdgorUk9MTEJBQ0sgVE8gczsKK1JFTEVBU0UgU0FWRVBPSU5UIHM7 CitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAt LSBzaG91bGQgZmFpbAorRVJST1I6ICBjYW5ub3QgZXhlY3V0ZSBVUERBVEUgaW4gYSByZWFkLW9u bHkgdHJhbnNhY3Rpb24KK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gImxvY2YiIHN0YXRlbWVudCAx CityZW1vdGUgU1FMIGNvbW1hbmQ6IFNFTEVDVCBmMSwgZjIgRlJPTSBwdWJsaWMubG9jdgorUk9M TEJBQ0s7CitTVEFSVCBUUkFOU0FDVElPTjsKK1NBVkVQT0lOVCBzOworU0VMRUNUICogRlJPTSBy ZW10OyAgLS0gc2hvdWxkIHdvcmsKKyBmMSB8ICAgZjIgICAKKy0tLS0rLS0tLS0tLS0KKyAgMSB8 IGZvb2ZvbworICAyIHwgYmFyYmFyCisoMiByb3dzKQorCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9v bmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFpbAorRVJST1I6ICBj YW5ub3QgZXhlY3V0ZSBVUERBVEUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24KK0NPTlRFWFQ6 ICBTUUwgZnVuY3Rpb24gImxvY2YiIHN0YXRlbWVudCAxCityZW1vdGUgU1FMIGNvbW1hbmQ6IFNF TEVDVCBmMSwgZjIgRlJPTSBwdWJsaWMubG9jdgorUk9MTEJBQ0sgVE8gczsKK1JFTEVBU0UgU0FW RVBPSU5UIHM7CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgd29yaworIGYxIHwgICBm MiAgIAorLS0tLSstLS0tLS0tLQorICAxIHwgZm9vZm9vCisgIDIgfCBiYXJiYXIKKygyIHJvd3Mp CisKK1NFVCB0cmFuc2FjdGlvbl9yZWFkX29ubHkgPSBvbjsKK1NFTEVDVCAqIEZST00gcmVtdDsg IC0tIHNob3VsZCBmYWlsCitFUlJPUjogIGNhbm5vdCBleGVjdXRlIFVQREFURSBpbiBhIHJlYWQt b25seSB0cmFuc2FjdGlvbgorQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAibG9jZiIgc3RhdGVtZW50 IDEKK3JlbW90ZSBTUUwgY29tbWFuZDogU0VMRUNUIGYxLCBmMiBGUk9NIHB1YmxpYy5sb2N2CitS T0xMQkFDSzsKKy0tIEV4ZXJjaXNlIGFib3J0IGNvZGUgcGF0aHMgaW4gcGdmZHdfeGFjdF9jYWxs YmFjay9wZ2Zkd19zdWJ4YWN0X2NhbGxiYWNrCistLSBpbiBzaXR1YXRpb25zIHdoZXJlIG11bHRp cGxlIGNvbm5lY3Rpb25zIGFyZSBpbnZvbHZlZAorU1RBUlQgVFJBTlNBQ1RJT047CitTQVZFUE9J TlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCB3b3JrCisgZjEgfCAgIGYyICAg CistLS0tKy0tLS0tLS0tCisgIDEgfCBmb29mb28KKyAgMiB8IGJhcmJhcgorKDIgcm93cykKKwor U0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10MjsgIC0t IHNob3VsZCBmYWlsCitFUlJPUjogIGNhbm5vdCBleGVjdXRlIFVQREFURSBpbiBhIHJlYWQtb25s eSB0cmFuc2FjdGlvbgorQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAibG9jZiIgc3RhdGVtZW50IDEK K3JlbW90ZSBTUUwgY29tbWFuZDogU0VMRUNUIGYxLCBmMiBGUk9NIHB1YmxpYy5sb2N2CitST0xM QkFDSyBUTyBzOworUkVMRUFTRSBTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0t IHNob3VsZCB3b3JrCisgZjEgfCAgIGYyICAgCistLS0tKy0tLS0tLS0tCisgIDEgfCBmb29mb28K KyAgMiB8IGJhcmJhcgorKDIgcm93cykKKworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9u OworU0VMRUNUICogRlJPTSByZW10MjsgIC0tIHNob3VsZCBmYWlsCitFUlJPUjogIGNhbm5vdCBl eGVjdXRlIFVQREFURSBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbgorQ09OVEVYVDogIFNRTCBm dW5jdGlvbiAibG9jZiIgc3RhdGVtZW50IDEKK3JlbW90ZSBTUUwgY29tbWFuZDogU0VMRUNUIGYx LCBmMiBGUk9NIHB1YmxpYy5sb2N2CitST0xMQkFDSzsKK0RST1AgRk9SRUlHTiBUQUJMRSByZW10 OworQ1JFQVRFIEZPUkVJR04gVEFCTEUgcmVtdCAoZjEgaW50LCBmMiB0ZXh0KQorICBTRVJWRVIg bG9vcGJhY2sgT1BUSU9OUyAodGFibGVfbmFtZSAnbG9jdCcpOworU1RBUlQgVFJBTlNBQ1RJT04g SVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSBSRUFEIE9OTFk7CitTRUxFQ1QgKiBGUk9NIHJl bXQ7CisgZjEgfCBmMiAgCistLS0tKy0tLS0tCisgIDEgfCBmb28KKyAgMiB8IGJhcgorKDIgcm93 cykKKworQ09NTUlUOworU1RBUlQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTEla QUJMRSBERUZFUlJBQkxFOworU0VMRUNUICogRlJPTSByZW10OworIGYxIHwgZjIgIAorLS0tLSst LS0tLQorICAxIHwgZm9vCisgIDIgfCBiYXIKKygyIHJvd3MpCisKK0NPTU1JVDsKK1NUQVJUIFRS QU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEUgUkVBRCBPTkxZIERFRkVSUkFC TEU7CitTRUxFQ1QgKiBGUk9NIHJlbXQ7CisgZjEgfCBmMiAgCistLS0tKy0tLS0tCisgIDEgfCBm b28KKyAgMiB8IGJhcgorKDIgcm93cykKKworQ09NTUlUOworLS0gQ2xlYW4gdXAKK0RST1AgRk9S RUlHTiBUQUJMRSByZW10OworRFJPUCBGT1JFSUdOIFRBQkxFIHJlbXQyOworRFJPUCBWSUVXIGxv Y3Y7CitEUk9QIEZVTkNUSU9OIGxvY2YoKTsKK0RST1AgVEFCTEUgbG9jdDsKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tIHRlc3QgcGFyYWxsZWwgY29tbWl0IGFuZCBwYXJhbGxlbCBhYm9ydAogLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBwYXJhbGxlbF9jb21taXQg J3RydWUnKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19m ZHcuc3FsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5kZXgg NzJkMmQ5YzMxMWIuLjRlOTc5NGIzNDdmIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zk dy9zcWwvcG9zdGdyZXNfZmR3LnNxbAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbApAQCAtNDI4Nyw2ICs0Mjg3LDg2IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9N IHJlbW90ZV9hcHBsaWNhdGlvbl9uYW1lCiBEUk9QIEZPUkVJR04gVEFCTEUgcmVtb3RlX2FwcGxp Y2F0aW9uX25hbWU7CiBEUk9QIFZJRVcgbXlfYXBwbGljYXRpb25fbmFtZTsKIAorLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gdGVzdCByZWFkLW9ubHkgYW5kL29yIGRlZmVycmFibGUgdHJhbnNhY3Rpb25zCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CitDUkVBVEUgVEFCTEUgbG9jdCAoZjEgaW50LCBmMiB0ZXh0KTsKK0NSRUFU RSBGVU5DVElPTiBsb2NmKCkgUkVUVVJOUyBTRVRPRiBsb2N0IExBTkdVQUdFIFNRTCBBUworICAn VVBEQVRFIHB1YmxpYy5sb2N0IFNFVCBmMiA9IGYyIHx8IGYyIFJFVFVSTklORyAqJzsKK0NSRUFU RSBWSUVXIGxvY3YgQVMgU0VMRUNUIHQuKiBGUk9NIGxvY2YoKSB0OworQ1JFQVRFIEZPUkVJR04g VEFCTEUgcmVtdCAoZjEgaW50LCBmMiB0ZXh0KQorICBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAo dGFibGVfbmFtZSAnbG9jdicpOworQ1JFQVRFIEZPUkVJR04gVEFCTEUgcmVtdDIgKGYxIGludCwg ZjIgdGV4dCkKKyAgU0VSVkVSIGxvb3BiYWNrMiBPUFRJT05TICh0YWJsZV9uYW1lICdsb2N2Jyk7 CitJTlNFUlQgSU5UTyBsb2N0IFZBTFVFUyAoMSwgJ2ZvbycpLCAoMiwgJ2JhcicpOworCitTVEFS VCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVt dDsgIC0tIHNob3VsZCBmYWlsCitST0xMQkFDSyBUTyBzOworUkVMRUFTRSBTQVZFUE9JTlQgczsK K1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCBmYWlsCitST0xMQkFDSzsKKworU1RBUlQg VFJBTlNBQ1RJT047CitTQVZFUE9JTlQgczsKK1NFVCB0cmFuc2FjdGlvbl9yZWFkX29ubHkgPSBv bjsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCBmYWlsCitST0xMQkFDSyBUTyBzOwor UkVMRUFTRSBTQVZFUE9JTlQgczsKK1NFVCB0cmFuc2FjdGlvbl9yZWFkX29ubHkgPSBvbjsKK1NF TEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCBmYWlsCitST0xMQkFDSzsKKworU1RBUlQgVFJB TlNBQ1RJT047CitTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCB3 b3JrCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQ7 ICAtLSBzaG91bGQgZmFpbAorUk9MTEJBQ0sgVE8gczsKK1JFTEVBU0UgU0FWRVBPSU5UIHM7CitT RUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgd29yaworU0VUIHRyYW5zYWN0aW9uX3JlYWRf b25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNL OworCistLSBFeGVyY2lzZSBhYm9ydCBjb2RlIHBhdGhzIGluIHBnZmR3X3hhY3RfY2FsbGJhY2sv cGdmZHdfc3VieGFjdF9jYWxsYmFjaworLS0gaW4gc2l0dWF0aW9ucyB3aGVyZSBtdWx0aXBsZSBj b25uZWN0aW9ucyBhcmUgaW52b2x2ZWQKK1NUQVJUIFRSQU5TQUNUSU9OOworU0FWRVBPSU5UIHM7 CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgd29yaworU0VUIHRyYW5zYWN0aW9uX3Jl YWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10MjsgIC0tIHNob3VsZCBmYWlsCitST0xM QkFDSyBUTyBzOworUkVMRUFTRSBTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0t IHNob3VsZCB3b3JrCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1QgKiBG Uk9NIHJlbXQyOyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNLOworCitEUk9QIEZPUkVJR04gVEFC TEUgcmVtdDsKK0NSRUFURSBGT1JFSUdOIFRBQkxFIHJlbXQgKGYxIGludCwgZjIgdGV4dCkKKyAg U0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ2xvY3QnKTsKKworU1RBUlQgVFJB TlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSBSRUFEIE9OTFk7CitTRUxFQ1Qg KiBGUk9NIHJlbXQ7CitDT01NSVQ7CisKK1NUQVJUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZF TCBTRVJJQUxJWkFCTEUgREVGRVJSQUJMRTsKK1NFTEVDVCAqIEZST00gcmVtdDsKK0NPTU1JVDsK KworU1RBUlQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSBSRUFEIE9O TFkgREVGRVJSQUJMRTsKK1NFTEVDVCAqIEZST00gcmVtdDsKK0NPTU1JVDsKKworLS0gQ2xlYW4g dXAKK0RST1AgRk9SRUlHTiBUQUJMRSByZW10OworRFJPUCBGT1JFSUdOIFRBQkxFIHJlbXQyOwor RFJPUCBWSUVXIGxvY3Y7CitEUk9QIEZVTkNUSU9OIGxvY2YoKTsKK0RST1AgVEFCTEUgbG9jdDsK KwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gdGVzdCBwYXJhbGxlbCBjb21taXQgYW5kIHBhcmFsbGVsIGFi b3J0CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3 LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwKaW5kZXggZmNmMTBlNDMxN2Uu LmY3NDViM2Q0Y2UwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sCkBAIC0xMDc3LDYgKzEwNzcsMjMg QEAgcG9zdGdyZXM9IyBTRUxFQ1QgcG9zdGdyZXNfZmR3X2Rpc2Nvbm5lY3RfYWxsKCk7CiAgICA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHJlbGVhc2UgbWlnaHQgbW9kaWZ5 IHRoZXNlIHJ1bGVzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgcmVtb3RlIHRyYW5z YWN0aW9uIGlzIG9wZW5lZCBpbiB0aGUgc2FtZSByZWFkL3dyaXRlIG1vZGUgYXMgdGhlIGxvY2Fs CisgICB0cmFuc2FjdGlvbjogaWYgdGhlIGxvY2FsIHRyYW5zYWN0aW9uIGlzIDxsaXRlcmFsPlJF QUQgT05MWTwvbGl0ZXJhbD4sCisgICB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uIGlzIG9wZW5lZCBp biA8bGl0ZXJhbD5SRUFEIE9OTFk8L2xpdGVyYWw+IG1vZGUsCisgICBvdGhlcndpc2UgaXQgaXMg b3BlbmVkIGluIDxsaXRlcmFsPlJFQUQgV1JJVEU8L2xpdGVyYWw+IG1vZGUuCisgICAoVGhpcyBy dWxlIGlzIGFsc28gYXBwbGllZCB0byByZW1vdGUgYW5kIGxvY2FsIHN1YnRyYW5zYWN0aW9ucy4p CisgICBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBwcmV2ZW50IGxvZ2luIHRyaWdnZXJzIGV4ZWN1 dGVkIG9uIHRoZSByZW1vdGUKKyAgIHNlcnZlciBmcm9tIHdyaXRpbmcuCisgIDwvcGFyYT4KKwor ICA8cGFyYT4KKyAgIFRoZSByZW1vdGUgdHJhbnNhY3Rpb24gaXMgYWxzbyBvcGVuZWQgaW4gdGhl IHNhbWUgZGVmZXJyYWJsZSBtb2RlIGFzIHRoZQorICAgbG9jYWwgdHJhbnNhY3Rpb246IGlmIHRo ZSBsb2NhbCB0cmFuc2FjdGlvbiBpcyA8bGl0ZXJhbD5ERUZFUlJBQkxFPC9saXRlcmFsPiwKKyAg IHRoZSByZW1vdGUgdHJhbnNhY3Rpb24gaXMgb3BlbmVkIGluIDxsaXRlcmFsPkRFRkVSUkFCTEU8 L2xpdGVyYWw+IG1vZGUsCisgICBvdGhlcndpc2UgaXQgaXMgb3BlbmVkIGluIDxsaXRlcmFsPk5P VCBERUZFUlJBQkxFPC9saXRlcmFsPiBtb2RlLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBO b3RlIHRoYXQgaXQgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkKICAgIDxmaWxlbmFtZT5w b3N0Z3Jlc19mZHc8L2ZpbGVuYW1lPiB0byBwcmVwYXJlIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24g Zm9yCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZWJhNGYwNjMxNjguLjM5YmYxMTJi M2ZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0xMDQ1LDYgKzEwNDUsMzQgQEAg VHJhbnNhY3Rpb25TdGFydGVkRHVyaW5nUmVjb3Zlcnkodm9pZCkKIAlyZXR1cm4gQ3VycmVudFRy YW5zYWN0aW9uU3RhdGUtPnN0YXJ0ZWRJblJlY292ZXJ5OwogfQogCisvKgorICoJR2V0VG9wUmVh ZE9ubHlUcmFuc2FjdGlvbk5lc3RMZXZlbAorICoKKyAqIE5vdGU6IHRoaXMgd2lsbCByZXR1cm4g emVybyB3aGVuIG5vdCBpbnNpZGUgYW55IHRyYW5zYWN0aW9uIG9yIHdoZW4gbmVpdGhlcgorICog YSB0b3AtbGV2ZWwgdHJhbnNhY3Rpb24gbm9yIHN1YnRyYW5zYWN0aW9ucyBhcmUgcmVhZC1vbmx5 LCBvbmUgd2hlbiB0aGUKKyAqIHRvcC1sZXZlbCB0cmFuc2FjdGlvbiBpcyByZWFkLW9ubHksIHR3 byB3aGVuIG9uZSBsZXZlbCBvZiBzdWJ0cmFuc2FjdGlvbiBpcworICogcmVhZC1vbmx5LCBldGMu CisgKgorICogTm90ZTogc3VidHJhbnNhY3Rpb25zIG9mIHRoZSB0b3Btb3N0IHJlYWQtb25seSB0 cmFuc2FjdGlvbiBhcmUgYWxzbworICogcmVhZC1vbmx5LCBiZWNhdXNlIHRoZXkgaW5oZXJpdCBy ZWFkLW9ubHkgbW9kZSBmcm9tIHRoZSB0cmFuc2FjdGlvbiwgYW5kCisgKiB0aHVzIGNhbid0IGNo YW5nZSB0byByZWFkLXdyaXRlIG1vZGUgKHNlZSBjaGVja190cmFuc2FjdGlvbl9yZWFkX29ubHkp LgorICovCitpbnQKK0dldFRvcFJlYWRPbmx5VHJhbnNhY3Rpb25OZXN0TGV2ZWwodm9pZCkKK3sK KwlUcmFuc2FjdGlvblN0YXRlIHMgPSBDdXJyZW50VHJhbnNhY3Rpb25TdGF0ZTsKKworCWlmICgh WGFjdFJlYWRPbmx5KQorCQlyZXR1cm4gMDsKKwl3aGlsZSAocy0+bmVzdGluZ0xldmVsID4gMSkK Kwl7CisJCWlmICghcy0+cHJldlhhY3RSZWFkT25seSkKKwkJCXJldHVybiBzLT5uZXN0aW5nTGV2 ZWw7CisJCXMgPSBzLT5wYXJlbnQ7CisJfQorCXJldHVybiBzLT5uZXN0aW5nTGV2ZWw7Cit9CisK IC8qCiAgKglFbnRlclBhcmFsbGVsTW9kZQogICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9h Y2Nlc3MveGFjdC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hhY3QuaAppbmRleCBmMGI0ZDc5NTA3 MS4uYThjYmRmMjQ3YzggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94YWN0LmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hhY3QuaApAQCAtNDU5LDYgKzQ1OSw3IEBAIGV4dGVybiBU aW1lc3RhbXBUeiBHZXRDdXJyZW50VHJhbnNhY3Rpb25TdG9wVGltZXN0YW1wKHZvaWQpOwogZXh0 ZXJuIHZvaWQgU2V0Q3VycmVudFN0YXRlbWVudFN0YXJ0VGltZXN0YW1wKHZvaWQpOwogZXh0ZXJu IGludAlHZXRDdXJyZW50VHJhbnNhY3Rpb25OZXN0TGV2ZWwodm9pZCk7CiBleHRlcm4gYm9vbCBU cmFuc2FjdGlvbklkSXNDdXJyZW50VHJhbnNhY3Rpb25JZChUcmFuc2FjdGlvbklkIHhpZCk7Citl eHRlcm4gaW50CUdldFRvcFJlYWRPbmx5VHJhbnNhY3Rpb25OZXN0TGV2ZWwodm9pZCk7CiBleHRl cm4gdm9pZCBDb21tYW5kQ291bnRlckluY3JlbWVudCh2b2lkKTsKIGV4dGVybiB2b2lkIEZvcmNl U3luY0NvbW1pdCh2b2lkKTsKIGV4dGVybiB2b2lkIFN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKHZv aWQpOwo= --00000000000095ee22064c3b83bf--