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 1vvC2X-007uBS-0B for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Feb 2026 10:22:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vvC2W-005Vej-03 for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Feb 2026 10:22:44 +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 1vvC2V-005Vea-27 for pgsql-hackers@lists.postgresql.org; Wed, 25 Feb 2026 10:22:43 +0000 Received: from mail-dy1-x132c.google.com ([2607:f8b0:4864:20::132c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vvC2S-00000001CZ2-1Grf for pgsql-hackers@lists.postgresql.org; Wed, 25 Feb 2026 10:22:43 +0000 Received: by mail-dy1-x132c.google.com with SMTP id 5a478bee46e88-2b6b0500e06so8433364eec.1 for ; Wed, 25 Feb 2026 02:22:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772014959; cv=none; d=google.com; s=arc-20240605; b=WEaXwyp3CgBaTM2XSAT+hkPtEYVo2mAjs/yhuCxpqqmFHq962+SKqFA2o+M3uPL9ss EVBSgDSFnqN5eweGWXrZv739h1489RbNWr5g3jvvFlOM+CvB3mJcwC24y+TV3PujjhKv hc0z9gOFPoN1XvE9RvYNti6NHfY2/y3A5s8dC0wNvo9doso4tzsaem4vmJN/xSbr4v9C N+lH4k/t/p3L9Q2eXH9BeVOwu2IIHii3O47vcSoCH35kkH5PVa4adRr1Cglz2qwyPxcL JhFz/T1ljIzXXTFJwG2X+li9e/HWBOHb8akh3XoxelrjUEYnq/S0ney48JCb9V6t+asJ lBWA== 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=2YBC8IrzDQ0ngRYRz3LrV0Vv+OLXSQBc9TuuIGQH8ZU=; fh=bJmsIfQ6s6hofQXkylWp7eG8kfpELV2jwHy9RDo2jAc=; b=EARV7A/vuotXOP/tKQti9+FMVZKg+NuOtWbnaS2WssKTN2aOzjJ1/Ou9tsmWaNTlGT 7/YrZ9S31/yrMgK/neiNOwgusSA1sbhBx9QKzS2TB1tFbGzKRKp1lP9VU+MJUDtpvoFE Dikmdm5jghGpBT3FmM72jzZZMqAJ1Dy7ykH2LUjMfliX3TDiIKin2ZaUeDLAHkKRX0ae sUbSr5ZbzyZt+V7q3e5tCBlJyq0FIYzjWDUYaq9FRZIHe4g0YCJS9N1g6gJpfW3Ww91j hRjln4Watb7rCQvoBuszBdyyT4F3xuXhopeHpIYAD9odijCcarPKmW2Vg3g1jib09jy8 1+Ig==; 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=1772014959; x=1772619759; 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=2YBC8IrzDQ0ngRYRz3LrV0Vv+OLXSQBc9TuuIGQH8ZU=; b=VzMR3cT2CvHCaiZtS7qr3UnIXwGg46bnCGv4H2UQzSRQ1HGTgOtKVnfoSJXkqHE6e7 KVogrYXJcb+6McZ4fbKW9sLLjBBVh1gSbdZieQjvCijDxUuNd54TFbEgY9ZJFcjz9z8m WQGvKZYb4pQAAfCuBUiaFuWDv6yuhsF3nFnlIIMlC0Nj8k0KPZsh2D/sKLbRFUJ0fsZH HfTmHhq8So3SB4DLN9VWGTa6eh2z9Gcqn5KXwAU51RQ541IrYE8Ry0mgoDUNyGqTrvK6 7vZZrDRJzeW0i/eR+BX6rehOAXC6qXzXMpFqgY9GLgzE9AyY/aNNSM/OYrk5VQUQSrbZ Eogw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772014959; x=1772619759; 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=2YBC8IrzDQ0ngRYRz3LrV0Vv+OLXSQBc9TuuIGQH8ZU=; b=MQ4fAO39YCvRMzWQAlPw7HF5n38p3jVmjytu8aqp11SufTHk4OMPb534dn47EkMGeE xdAtphaRj9qj+zpqujodT32f5TJ/MeDKKpFZEjRDRYsa5N6ggOek78SYWZVLacflY4Mr tyu4f/3+e0jRoycEz3c3vQFMlP0RuvGYBVTDoSL/Pq+EuYGcinoh1UInNDR2S3Iy+1JP lgdp/atzxxic8BQcpecHADdTf4oT8pw1/u/eJaIRUCblj4ZpLgMNwRBZRdFNcximJjDn PI7NtvAl3Nv5k4WD3r+2v/bnFSdtYVeUucvcVk3SbUNjKzOY4ZB7srRt0C3MS0XVRDOB +h3g== X-Forwarded-Encrypted: i=1; AJvYcCVplgtpGYwBap/B0qz8lwzXbmCCUEKCCrIyMrcpClqcHNLOD8cDngKWmcUQ7B2iDFVh25+IzFpzJs+6J+xr@lists.postgresql.org X-Gm-Message-State: AOJu0YxjWFs00u9HXd0mCRBS5dZtyhtSJg074oBf8XCYCaTc2mcbhzIE BcbJr7Pr3SemxfKBe40KoR1ZzrwDKlRTG4b6VvkunaTlULLanDKiUvoGlr9+FSUV4bUXMZ52KeB C+CwxBi78JxtB7MqR/dFlWFjkX1fuyLU= X-Gm-Gg: ATEYQzxOjCIjcqXXhFjmvDUpSReHdZCN0dXEQeXmpv/XOf8rNByaAHW0TasEn9fjHSD t6O+C75ywatv0AsiAIWobLndMp93k4ehYIbpVz/1vWXLmHK9oKfOIYG+dahPKzffftHq4TyerzV Oy1v7rkova9nKH41rv0uI391VsbYiJqgdWyrJFCq0bv5nTqn826Ofv4ClbcSf4H7ST0umGZ/BIU mFyAb8AYH3lfnOpvJ3pTTnQT4OpQ1ytRilLxngaMBWon0BDzO8rWpPL52XZ5m7jZdBm9jdnMoSx 7tV/pVkG1OLByPpicVS8njVY+lsg5Fh1nXz15lHHUzb692PvNP3mK774Ax7rGn282gYGCi7clzD /gFqQnj9l+DlTxir1Rnbl820qUTm2sjYteZrq0Qyl X-Received: by 2002:a05:7300:d718:b0:2ae:5a9f:d98c with SMTP id 5a478bee46e88-2bd7bd5d2fdmr5459076eec.33.1772014958805; Wed, 25 Feb 2026 02:22:38 -0800 (PST) MIME-Version: 1.0 References: <3660951.1741016970@sss.pgh.pa.us> In-Reply-To: From: Etsuro Fujita Date: Wed, 25 Feb 2026 19:22:26 +0900 X-Gm-Features: AaiRm52bsIvZvPsXYkqXS-lEmgpLNWRgt40sBouUoV6CirwATMBzTw0HesU4M1k 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="000000000000291293064ba362d9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000291293064ba362d9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Jun 1, 2025 at 5:44=E2=80=AFPM Etsuro Fujita wrote: > On Sun, May 25, 2025 at 2:39=E2=80=AFPM Etsuro Fujita wrote: > > Here is a new version of the patch where I added a comment for a new > > function, fixed indentation, and added the commit message. If there > > are no objections, I will push this as a master-only fix, as noted in > > the commit message. > > Pushed after extending the comment a little bit. 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. Best regards, Etsuro Fujita [1] https://www.postgresql.org/message-id/CAPmGK14yYoO2iBg7SoT3WdnAKoCpWy_L= PdoTDepJ21-Yf8TiKA%40mail.gmail.com --000000000000291293064ba362d9 Content-Type: application/octet-stream; name="v6-0001-postgres_fdw-Inherit-the-local-transaction-s-access-.patch" Content-Disposition: attachment; filename="v6-0001-postgres_fdw-Inherit-the-local-transaction-s-access-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm1vxu630 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYwppbmRleCBhZGQ2NzNhNDc3Ni4uM2NlOGU1OTZhOWUg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYworKysgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMKQEAgLTU5LDYgKzU5LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgQ29ubkNhY2hlRW50cnkKIAkvKiBSZW1haW5pbmcgZmllbGRzIGFyZSBpbnZhbGlkIHdo ZW4gY29ubiBpcyBOVUxMOiAqLwogCWludAkJCXhhY3RfZGVwdGg7CQkvKiAwID0gbm8geGFjdCBv cGVuLCAxID0gbWFpbiB4YWN0IG9wZW4sIDIgPQogCQkJCQkJCQkgKiBvbmUgbGV2ZWwgb2Ygc3Vi eGFjdCBvcGVuLCBldGMgKi8KKwlib29sCQl4YWN0X3JlYWRfb25seTsgLyogeGFjdCByL28gc3Rh dGUgKi8KIAlib29sCQloYXZlX3ByZXBfc3RtdDsgLyogaGF2ZSB3ZSBwcmVwYXJlZCBhbnkgc3Rt dHMgaW4gdGhpcyB4YWN0PyAqLwogCWJvb2wJCWhhdmVfZXJyb3I7CQkvKiBoYXZlIGFueSBzdWJ4 YWN0cyBhYm9ydGVkIGluIHRoaXMgeGFjdD8gKi8KIAlib29sCQljaGFuZ2luZ194YWN0X3N0YXRl OwkvKiB4YWN0IHN0YXRlIGNoYW5nZSBpbiBwcm9jZXNzICovCkBAIC04NSw2ICs4NiwxMiBAQCBz dGF0aWMgdW5zaWduZWQgaW50IHByZXBfc3RtdF9udW1iZXIgPSAwOwogLyogdHJhY2tzIHdoZXRo ZXIgYW55IHdvcmsgaXMgbmVlZGVkIGluIGNhbGxiYWNrIGZ1bmN0aW9ucyAqLwogc3RhdGljIGJv b2wgeGFjdF9nb3RfY29ubmVjdGlvbiA9IGZhbHNlOwogCisvKgorICogdHJhY2tzIHRoZSBuZXN0 aW5nIGxldmVsIG9mIHRoZSB0b3Btb3N0IHJlYWQtb25seSB0cmFuc2FjdGlvbiBkZXRlcm1pbmVk CisgKiBieSBHZXRUb3BSZWFkT25seVRyYW5zYWN0aW9uTmVzdExldmVsKCkKKyAqLworc3RhdGlj IGludAl0b3BfcmVhZF9vbmx5X2xldmVsID0gMDsKKwogLyogY3VzdG9tIHdhaXQgZXZlbnQgdmFs dWVzLCByZXRyaWV2ZWQgZnJvbSBzaGFyZWQgbWVtb3J5ICovCiBzdGF0aWMgdWludDMyIHBnZmR3 X3dlX2NsZWFudXBfcmVzdWx0ID0gMDsKIHN0YXRpYyB1aW50MzIgcGdmZHdfd2VfY29ubmVjdCA9 IDA7CkBAIC0zNzYsNiArMzgzLDcgQEAgbWFrZV9uZXdfY29ubmVjdGlvbihDb25uQ2FjaGVFbnRy eSAqZW50cnksIFVzZXJNYXBwaW5nICp1c2VyKQogCiAJLyogUmVzZXQgYWxsIHRyYW5zaWVudCBz dGF0ZSBmaWVsZHMsIHRvIGJlIHN1cmUgYWxsIGFyZSBjbGVhbiAqLwogCWVudHJ5LT54YWN0X2Rl cHRoID0gMDsKKwllbnRyeS0+eGFjdF9yZWFkX29ubHkgPSBmYWxzZTsKIAllbnRyeS0+aGF2ZV9w cmVwX3N0bXQgPSBmYWxzZTsKIAllbnRyeS0+aGF2ZV9lcnJvciA9IGZhbHNlOwogCWVudHJ5LT5j aGFuZ2luZ194YWN0X3N0YXRlID0gZmFsc2U7CkBAIC04NTAsMjkgKzg1OCw4MSBAQCBkb19zcWxf Y29tbWFuZF9lbmQoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpzcWwsIGJvb2wgY29uc3VtZV9p bnB1dCkKICAqIHRob3NlIHNjYW5zLiAgQSBkaXNhZHZhbnRhZ2UgaXMgdGhhdCB3ZSBjYW4ndCBw cm92aWRlIHNhbmUgZW11bGF0aW9uIG9mCiAgKiBSRUFEIENPTU1JVFRFRCBiZWhhdmlvciAtLS0g aXQgd291bGQgYmUgbmljZSBpZiB3ZSBoYWQgc29tZSBvdGhlciB3YXkgdG8KICAqIGNvbnRyb2wg d2hpY2ggcmVtb3RlIHF1ZXJpZXMgc2hhcmUgYSBzbmFwc2hvdC4KKyAqCisgKiBOb3RlIGFsc28g dGhhdCB3ZSBhbHdheXMgc3RhcnQgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbiB3aXRoIHRoZSBzYW1l CisgKiByZWFkL3dyaXRlIGFuZCBkZWZlcnJhYmxlIHByb3BlcnRpZXMgYXMgdGhlIGxvY2FsIHRy YW5zYWN0aW9uLCBhbmQgc3RhcnQKKyAqIHRoZSByZW1vdGUgc3VidHJhbnNhY3Rpb24gd2l0aCB0 aGUgc2FtZSByZWFkL3dyaXRlIHByb3BlcnR5IGFzIHRoZSBsb2NhbAorICogc3VidHJhbnNhY3Rp b24uCiAgKi8KIHN0YXRpYyB2b2lkCiBiZWdpbl9yZW1vdGVfeGFjdChDb25uQ2FjaGVFbnRyeSAq ZW50cnkpCiB7CiAJaW50CQkJY3VybGV2ZWwgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25OZXN0TGV2 ZWwoKTsKIAotCS8qIFN0YXJ0IG1haW4gdHJhbnNhY3Rpb24gaWYgd2UgaGF2ZW4ndCB5ZXQgKi8K KwkvKgorCSAqIFNldCB0aGUgbmVzdGluZyBsZXZlbCBvZiB0aGUgdG9wbW9zdCByZWFkLW9ubHkg dHJhbnNhY3Rpb24gaWYgdGhlCisJICogY3VycmVudCB0cmFuc2FjdGlvbiBpcyByZWFkLW9ubHkg YW5kIHdlIGhhdmVuJ3QgeWV0LiAgT25jZSBpdCdzIHNldCwKKwkgKiBpdCdzIHJldGFpbmVkIHVu dGlsIHRoYXQgdHJhbnNhY3Rpb24gaXMgY29tbWl0dGVkL2Fib3J0ZWQsIGFuZCB0aGVuCisJICog cmVzZXQgKHNlZSBwZ2Zkd194YWN0X2NhbGxiYWNrIGFuZCBwZ2Zkd19zdWJ4YWN0X2NhbGxiYWNr KS4KKwkgKi8KKwlpZiAoWGFjdFJlYWRPbmx5KQorCXsKKwkJaWYgKHRvcF9yZWFkX29ubHlfbGV2 ZWwgPT0gMCkKKwkJCXRvcF9yZWFkX29ubHlfbGV2ZWwgPSBHZXRUb3BSZWFkT25seVRyYW5zYWN0 aW9uTmVzdExldmVsKCk7CisJCUFzc2VydCh0b3BfcmVhZF9vbmx5X2xldmVsID4gMCk7CisJfQor CWVsc2UKKwkJQXNzZXJ0KHRvcF9yZWFkX29ubHlfbGV2ZWwgPT0gMCk7CisKKwkvKgorCSAqIFN0 YXJ0IG1haW4gdHJhbnNhY3Rpb24gaWYgd2UgaGF2ZW4ndCB5ZXQ7IG90aGVyd2lzZSwgY2hhbmdl IHRoZQorCSAqIGFscmVhZHktc3RhcnRlZCByZW1vdGUgdHJhbnNhY3Rpb24vc3VidHJhbnNhY3Rp b24gdG8gcmVhZC1vbmx5IGlmIHRoZQorCSAqIGxvY2FsIHRyYW5zYWN0aW9uL3N1YnRyYW5zYWN0 aW9uIGhhdmUgYmVlbiBkb25lIHNvIGFmdGVyIHN0YXJ0aW5nIHRoZW0KKwkgKiBhbmQgd2UgaGF2 ZW4ndCB5ZXQuCisJICovCiAJaWYgKGVudHJ5LT54YWN0X2RlcHRoIDw9IDApCiAJewotCQljb25z dCBjaGFyICpzcWw7CisJCVN0cmluZ0luZm9EYXRhIHNxbDsKKwkJYm9vbAkJcm8gPSAodG9wX3Jl YWRfb25seV9sZXZlbCA9PSAxKTsKIAogCQllbG9nKERFQlVHMywgInN0YXJ0aW5nIHJlbW90ZSB0 cmFuc2FjdGlvbiBvbiBjb25uZWN0aW9uICVwIiwKIAkJCSBlbnRyeS0+Y29ubik7CiAKKwkJaW5p dFN0cmluZ0luZm8oJnNxbCk7CisJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnNxbCwgIlNUQVJU IFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCAiKTsKIAkJaWYgKElzb2xhdGlvbklzU2VyaWFs aXphYmxlKCkpCi0JCQlzcWwgPSAiU1RBUlQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNF UklBTElaQUJMRSI7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZzcWwsICJTRVJJQUxJWkFC TEUiKTsKIAkJZWxzZQotCQkJc3FsID0gIlNUQVJUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZF TCBSRVBFQVRBQkxFIFJFQUQiOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmc3FsLCAiUkVQ RUFUQUJMRSBSRUFEIik7CisJCWlmIChybykKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnNx bCwgIiBSRUFEIE9OTFkiKTsKKwkJaWYgKFhhY3REZWZlcnJhYmxlKQorCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZygmc3FsLCAiIERFRkVSUkFCTEUiKTsKIAkJZW50cnktPmNoYW5naW5nX3hhY3Rf c3RhdGUgPSB0cnVlOwotCQlkb19zcWxfY29tbWFuZChlbnRyeS0+Y29ubiwgc3FsKTsKKwkJZG9f c3FsX2NvbW1hbmQoZW50cnktPmNvbm4sIHNxbC5kYXRhKTsKIAkJZW50cnktPnhhY3RfZGVwdGgg PSAxOworCQlpZiAocm8pCisJCXsKKwkJCUFzc2VydCghZW50cnktPnhhY3RfcmVhZF9vbmx5KTsK KwkJCWVudHJ5LT54YWN0X3JlYWRfb25seSA9IHRydWU7CisJCX0KIAkJZW50cnktPmNoYW5naW5n X3hhY3Rfc3RhdGUgPSBmYWxzZTsKIAl9CisJZWxzZSBpZiAoIWVudHJ5LT54YWN0X3JlYWRfb25s eSkKKwl7CisJCUFzc2VydCh0b3BfcmVhZF9vbmx5X2xldmVsID09IDAgfHwKKwkJCSAgIGVudHJ5 LT54YWN0X2RlcHRoIDw9IHRvcF9yZWFkX29ubHlfbGV2ZWwpOworCQlpZiAoZW50cnktPnhhY3Rf ZGVwdGggPT0gdG9wX3JlYWRfb25seV9sZXZlbCkKKwkJeworCQkJZW50cnktPmNoYW5naW5nX3hh Y3Rfc3RhdGUgPSB0cnVlOworCQkJZG9fc3FsX2NvbW1hbmQoZW50cnktPmNvbm4sICJTRVQgdHJh bnNhY3Rpb25fcmVhZF9vbmx5ID0gb24iKTsKKwkJCWVudHJ5LT54YWN0X3JlYWRfb25seSA9IHRy dWU7CisJCQllbnRyeS0+Y2hhbmdpbmdfeGFjdF9zdGF0ZSA9IGZhbHNlOworCQl9CisJfQorCWVs c2UKKwkJQXNzZXJ0KHRvcF9yZWFkX29ubHlfbGV2ZWwgPiAwICYmCisJCQkgICBlbnRyeS0+eGFj dF9kZXB0aCA+PSB0b3BfcmVhZF9vbmx5X2xldmVsKTsKIAogCS8qCiAJICogSWYgd2UncmUgaW4g YSBzdWJ0cmFuc2FjdGlvbiwgc3RhY2sgdXAgc2F2ZXBvaW50cyB0byBtYXRjaCBvdXIgbGV2ZWwu CkBAIC04ODEsMTIgKzk0MSwyMSBAQCBiZWdpbl9yZW1vdGVfeGFjdChDb25uQ2FjaGVFbnRyeSAq ZW50cnkpCiAJICovCiAJd2hpbGUgKGVudHJ5LT54YWN0X2RlcHRoIDwgY3VybGV2ZWwpCiAJewot CQljaGFyCQlzcWxbNjRdOworCQlTdHJpbmdJbmZvRGF0YSBzcWw7CisJCWJvb2wJCXJvID0gKGVu dHJ5LT54YWN0X2RlcHRoICsgMSA9PSB0b3BfcmVhZF9vbmx5X2xldmVsKTsKIAotCQlzbnByaW50 ZihzcWwsIHNpemVvZihzcWwpLCAiU0FWRVBPSU5UIHMlZCIsIGVudHJ5LT54YWN0X2RlcHRoICsg MSk7CisJCWluaXRTdHJpbmdJbmZvKCZzcWwpOworCQlhcHBlbmRTdHJpbmdJbmZvKCZzcWwsICJT QVZFUE9JTlQgcyVkIiwgZW50cnktPnhhY3RfZGVwdGggKyAxKTsKKwkJaWYgKHJvKQorCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZygmc3FsLCAiOyBTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0g b24iKTsKIAkJZW50cnktPmNoYW5naW5nX3hhY3Rfc3RhdGUgPSB0cnVlOwotCQlkb19zcWxfY29t bWFuZChlbnRyeS0+Y29ubiwgc3FsKTsKKwkJZG9fc3FsX2NvbW1hbmQoZW50cnktPmNvbm4sIHNx bC5kYXRhKTsKIAkJZW50cnktPnhhY3RfZGVwdGgrKzsKKwkJaWYgKHJvKQorCQl7CisJCQlBc3Nl cnQoIWVudHJ5LT54YWN0X3JlYWRfb25seSk7CisJCQllbnRyeS0+eGFjdF9yZWFkX29ubHkgPSB0 cnVlOworCQl9CiAJCWVudHJ5LT5jaGFuZ2luZ194YWN0X3N0YXRlID0gZmFsc2U7CiAJfQogfQpA QCAtMTE5MSw2ICsxMjYwLDkgQEAgcGdmZHdfeGFjdF9jYWxsYmFjayhYYWN0RXZlbnQgZXZlbnQs IHZvaWQgKmFyZykKIAogCS8qIEFsc28gcmVzZXQgY3Vyc29yIG51bWJlcmluZyBmb3IgbmV4dCB0 cmFuc2FjdGlvbiAqLwogCWN1cnNvcl9udW1iZXIgPSAwOworCisJLyogTGlrZXdpc2UgZm9yIHRv cF9yZWFkX29ubHlfbGV2ZWwgKi8KKwl0b3BfcmVhZF9vbmx5X2xldmVsID0gMDsKIH0KIAogLyoK QEAgLTEyODksNiArMTM2MSwxMCBAQCBwZ2Zkd19zdWJ4YWN0X2NhbGxiYWNrKFN1YlhhY3RFdmVu dCBldmVudCwgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAogCQkJCQkJCQkJICAgZmFsc2UpOwog CQl9CiAJfQorCisJLyogSWYgaW4gdGhlIHRvcG1vc3QgcmVhZC1vbmx5IHRyYW5zYWN0aW9uLCBy ZXNldCB0b3BfcmVhZF9vbmx5X2xldmVsICovCisJaWYgKGN1cmxldmVsID09IHRvcF9yZWFkX29u bHlfbGV2ZWwpCisJCXRvcF9yZWFkX29ubHlfbGV2ZWwgPSAwOwogfQogCiAvKgpAQCAtMTM5MSw2 ICsxNDY3LDkgQEAgcGdmZHdfcmVzZXRfeGFjdF9zdGF0ZShDb25uQ2FjaGVFbnRyeSAqZW50cnks IGJvb2wgdG9wbGV2ZWwpCiAJCS8qIFJlc2V0IHN0YXRlIHRvIHNob3cgd2UncmUgb3V0IG9mIGEg dHJhbnNhY3Rpb24gKi8KIAkJZW50cnktPnhhY3RfZGVwdGggPSAwOwogCisJCS8qIFJlc2V0IHhh Y3Qgci9vIHN0YXRlICovCisJCWVudHJ5LT54YWN0X3JlYWRfb25seSA9IGZhbHNlOworCiAJCS8q CiAJCSAqIElmIHRoZSBjb25uZWN0aW9uIGlzbid0IGluIGEgZ29vZCBpZGxlIHN0YXRlLCBpdCBp cyBtYXJrZWQgYXMKIAkJICogaW52YWxpZCBvciBrZWVwX2Nvbm5lY3Rpb25zIG9wdGlvbiBvZiBp dHMgc2VydmVyIGlzIGRpc2FibGVkLCB0aGVuCkBAIC0xNDExLDYgKzE0OTAsMTAgQEAgcGdmZHdf cmVzZXRfeGFjdF9zdGF0ZShDb25uQ2FjaGVFbnRyeSAqZW50cnksIGJvb2wgdG9wbGV2ZWwpCiAJ ewogCQkvKiBSZXNldCBzdGF0ZSB0byBzaG93IHdlJ3JlIG91dCBvZiBhIHN1YnRyYW5zYWN0aW9u ICovCiAJCWVudHJ5LT54YWN0X2RlcHRoLS07CisKKwkJLyogSWYgaW4gdGhlIHRvcG1vc3QgcmVh ZC1vbmx5IHRyYW5zYWN0aW9uLCByZXNldCB4YWN0IHIvbyBzdGF0ZSAqLworCQlpZiAoZW50cnkt PnhhY3RfZGVwdGggKyAxID09IHRvcF9yZWFkX29ubHlfbGV2ZWwpCisJCQllbnRyeS0+eGFjdF9y ZWFkX29ubHkgPSBmYWxzZTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNf ZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBl Y3RlZC9wb3N0Z3Jlc19mZHcub3V0CmluZGV4IDJjY2I3MmM1MzlhLi43M2JhMTQ5NjBmMyAxMDA2 NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAor KysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC0x MjUyNCw2ICsxMjUyNCwxNDAgQEAgU0VMRUNUIGNvdW50KCopIEZST00gcmVtb3RlX2FwcGxpY2F0 aW9uX25hbWUKIERST1AgRk9SRUlHTiBUQUJMRSByZW1vdGVfYXBwbGljYXRpb25fbmFtZTsKIERS T1AgVklFVyBteV9hcHBsaWNhdGlvbl9uYW1lOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gdGVzdCByZWFk LW9ubHkgYW5kL29yIGRlZmVycmFibGUgdHJhbnNhY3Rpb25zCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDUkVB VEUgVEFCTEUgbG9jdCAoZjEgaW50LCBmMiB0ZXh0KTsKK0NSRUFURSBGVU5DVElPTiBsb2NmKCkg UkVUVVJOUyBTRVRPRiBsb2N0IExBTkdVQUdFIFNRTCBBUworICAnVVBEQVRFIHB1YmxpYy5sb2N0 IFNFVCBmMiA9IGYyIHx8IGYyIFJFVFVSTklORyAqJzsKK0NSRUFURSBWSUVXIGxvY3YgQVMgU0VM RUNUIHQuKiBGUk9NIGxvY2YoKSB0OworQ1JFQVRFIEZPUkVJR04gVEFCTEUgcmVtdCAoZjEgaW50 LCBmMiB0ZXh0KQorICBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAodGFibGVfbmFtZSAnbG9jdicp OworQ1JFQVRFIEZPUkVJR04gVEFCTEUgcmVtdDIgKGYxIGludCwgZjIgdGV4dCkKKyAgU0VSVkVS IGxvb3BiYWNrMiBPUFRJT05TICh0YWJsZV9uYW1lICdsb2N2Jyk7CitJTlNFUlQgSU5UTyBsb2N0 IFZBTFVFUyAoMSwgJ2ZvbycpLCAoMiwgJ2JhcicpOworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBP TkxZOworU0FWRVBPSU5UIHM7CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFpbAor RVJST1I6ICBjYW5ub3QgZXhlY3V0ZSBVUERBVEUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24K K0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gImxvY2YiIHN0YXRlbWVudCAxCityZW1vdGUgU1FMIGNv bW1hbmQ6IFNFTEVDVCBmMSwgZjIgRlJPTSBwdWJsaWMubG9jdgorUk9MTEJBQ0sgVE8gczsKK1JF TEVBU0UgU0FWRVBPSU5UIHM7CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFpbAor RVJST1I6ICBjYW5ub3QgZXhlY3V0ZSBVUERBVEUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24K K0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gImxvY2YiIHN0YXRlbWVudCAxCityZW1vdGUgU1FMIGNv bW1hbmQ6IFNFTEVDVCBmMSwgZjIgRlJPTSBwdWJsaWMubG9jdgorUk9MTEJBQ0s7CitTVEFSVCBU UkFOU0FDVElPTjsKK1NBVkVQT0lOVCBzOworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9u OworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwKK0VSUk9SOiAgY2Fubm90IGV4 ZWN1dGUgVVBEQVRFIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uCitDT05URVhUOiAgU1FMIGZ1 bmN0aW9uICJsb2NmIiBzdGF0ZW1lbnQgMQorcmVtb3RlIFNRTCBjb21tYW5kOiBTRUxFQ1QgZjEs IGYyIEZST00gcHVibGljLmxvY3YKK1JPTExCQUNLIFRPIHM7CitSRUxFQVNFIFNBVkVQT0lOVCBz OworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10OyAg LS0gc2hvdWxkIGZhaWwKK0VSUk9SOiAgY2Fubm90IGV4ZWN1dGUgVVBEQVRFIGluIGEgcmVhZC1v bmx5IHRyYW5zYWN0aW9uCitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJsb2NmIiBzdGF0ZW1lbnQg MQorcmVtb3RlIFNRTCBjb21tYW5kOiBTRUxFQ1QgZjEsIGYyIEZST00gcHVibGljLmxvY3YKK1JP TExCQUNLOworU1RBUlQgVFJBTlNBQ1RJT047CitTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00g cmVtdDsgIC0tIHNob3VsZCB3b3JrCisgZjEgfCAgIGYyICAgCistLS0tKy0tLS0tLS0tCisgIDEg fCBmb29mb28KKyAgMiB8IGJhcmJhcgorKDIgcm93cykKKworU0VUIHRyYW5zYWN0aW9uX3JlYWRf b25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwKK0VSUk9SOiAg Y2Fubm90IGV4ZWN1dGUgVVBEQVRFIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uCitDT05URVhU OiAgU1FMIGZ1bmN0aW9uICJsb2NmIiBzdGF0ZW1lbnQgMQorcmVtb3RlIFNRTCBjb21tYW5kOiBT RUxFQ1QgZjEsIGYyIEZST00gcHVibGljLmxvY3YKK1JPTExCQUNLIFRPIHM7CitSRUxFQVNFIFNB VkVQT0lOVCBzOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIHdvcmsKKyBmMSB8ICAg ZjIgICAKKy0tLS0rLS0tLS0tLS0KKyAgMSB8IGZvb2ZvbworICAyIHwgYmFyYmFyCisoMiByb3dz KQorCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQ7 ICAtLSBzaG91bGQgZmFpbAorRVJST1I6ICBjYW5ub3QgZXhlY3V0ZSBVUERBVEUgaW4gYSByZWFk LW9ubHkgdHJhbnNhY3Rpb24KK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gImxvY2YiIHN0YXRlbWVu dCAxCityZW1vdGUgU1FMIGNvbW1hbmQ6IFNFTEVDVCBmMSwgZjIgRlJPTSBwdWJsaWMubG9jdgor Uk9MTEJBQ0s7CitTVEFSVCBUUkFOU0FDVElPTjsKK1NBVkVQT0lOVCBzOworU0VMRUNUICogRlJP TSByZW10OyAgLS0gc2hvdWxkIHdvcmsKKyBmMSB8ICAgZjIgICAKKy0tLS0rLS0tLS0tLS0KKyAg MSB8IGZvb2ZvbworICAyIHwgYmFyYmFyCisoMiByb3dzKQorCitTRVQgdHJhbnNhY3Rpb25fcmVh ZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQyOyAgLS0gc2hvdWxkIGZhaWwKK0VSUk9S OiAgY2Fubm90IGV4ZWN1dGUgVVBEQVRFIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uCitDT05U RVhUOiAgU1FMIGZ1bmN0aW9uICJsb2NmIiBzdGF0ZW1lbnQgMQorcmVtb3RlIFNRTCBjb21tYW5k OiBTRUxFQ1QgZjEsIGYyIEZST00gcHVibGljLmxvY3YKK1JPTExCQUNLIFRPIHM7CitSRUxFQVNF IFNBVkVQT0lOVCBzOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIHdvcmsKKyBmMSB8 ICAgZjIgICAKKy0tLS0rLS0tLS0tLS0KKyAgMSB8IGZvb2ZvbworICAyIHwgYmFyYmFyCisoMiBy b3dzKQorCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJl bXQyOyAgLS0gc2hvdWxkIGZhaWwKK0VSUk9SOiAgY2Fubm90IGV4ZWN1dGUgVVBEQVRFIGluIGEg cmVhZC1vbmx5IHRyYW5zYWN0aW9uCitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJsb2NmIiBzdGF0 ZW1lbnQgMQorcmVtb3RlIFNRTCBjb21tYW5kOiBTRUxFQ1QgZjEsIGYyIEZST00gcHVibGljLmxv Y3YKK1JPTExCQUNLOworRFJPUCBGT1JFSUdOIFRBQkxFIHJlbXQ7CitDUkVBVEUgRk9SRUlHTiBU QUJMRSByZW10IChmMSBpbnQsIGYyIHRleHQpCisgIFNFUlZFUiBsb29wYmFjayBPUFRJT05TICh0 YWJsZV9uYW1lICdsb2N0Jyk7CitTVEFSVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgU0VS SUFMSVpBQkxFIFJFQUQgT05MWTsKK1NFTEVDVCAqIEZST00gcmVtdDsKKyBmMSB8IGYyICAKKy0t LS0rLS0tLS0KKyAgMSB8IGZvbworICAyIHwgYmFyCisoMiByb3dzKQorCitDT01NSVQ7CitTVEFS VCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFIERFRkVSUkFCTEU7CitT RUxFQ1QgKiBGUk9NIHJlbXQ7CisgZjEgfCBmMiAgCistLS0tKy0tLS0tCisgIDEgfCBmb28KKyAg MiB8IGJhcgorKDIgcm93cykKKworQ09NTUlUOworU1RBUlQgVFJBTlNBQ1RJT04gSVNPTEFUSU9O IExFVkVMIFNFUklBTElaQUJMRSBSRUFEIE9OTFkgREVGRVJSQUJMRTsKK1NFTEVDVCAqIEZST00g cmVtdDsKKyBmMSB8IGYyICAKKy0tLS0rLS0tLS0KKyAgMSB8IGZvbworICAyIHwgYmFyCisoMiBy b3dzKQorCitDT01NSVQ7CistLSBDbGVhbiB1cAorRFJPUCBGT1JFSUdOIFRBQkxFIHJlbXQ7CitE Uk9QIEZPUkVJR04gVEFCTEUgcmVtdDI7CitEUk9QIFZJRVcgbG9jdjsKK0RST1AgRlVOQ1RJT04g bG9jZigpOworRFJPUCBUQUJMRSBsb2N0OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gdGVzdCBwYXJhbGxl bCBjb21taXQgYW5kIHBhcmFsbGVsIGFib3J0CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBBTFRFUiBTRVJWRVIg bG9vcGJhY2sgT1BUSU9OUyAoQUREIHBhcmFsbGVsX2NvbW1pdCAndHJ1ZScpOwpkaWZmIC0tZ2l0 IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAppbmRleCA3MmQyZDljMzExYi4uNGNlZmQ4 MzRmNmMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcu c3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC00 Mjg3LDYgKzQyODcsODQgQEAgU0VMRUNUIGNvdW50KCopIEZST00gcmVtb3RlX2FwcGxpY2F0aW9u X25hbWUKIERST1AgRk9SRUlHTiBUQUJMRSByZW1vdGVfYXBwbGljYXRpb25fbmFtZTsKIERST1Ag VklFVyBteV9hcHBsaWNhdGlvbl9uYW1lOwogCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSB0ZXN0IHJlYWQt b25seSBhbmQvb3IgZGVmZXJyYWJsZSB0cmFuc2FjdGlvbnMKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NSRUFU RSBUQUJMRSBsb2N0IChmMSBpbnQsIGYyIHRleHQpOworQ1JFQVRFIEZVTkNUSU9OIGxvY2YoKSBS RVRVUk5TIFNFVE9GIGxvY3QgTEFOR1VBR0UgU1FMIEFTCisgICdVUERBVEUgcHVibGljLmxvY3Qg U0VUIGYyID0gZjIgfHwgZjIgUkVUVVJOSU5HIConOworQ1JFQVRFIFZJRVcgbG9jdiBBUyBTRUxF Q1QgdC4qIEZST00gbG9jZigpIHQ7CitDUkVBVEUgRk9SRUlHTiBUQUJMRSByZW10IChmMSBpbnQs IGYyIHRleHQpCisgIFNFUlZFUiBsb29wYmFjayBPUFRJT05TICh0YWJsZV9uYW1lICdsb2N2Jyk7 CitDUkVBVEUgRk9SRUlHTiBUQUJMRSByZW10MiAoZjEgaW50LCBmMiB0ZXh0KQorICBTRVJWRVIg bG9vcGJhY2syIE9QVElPTlMgKHRhYmxlX25hbWUgJ2xvY3YnKTsKK0lOU0VSVCBJTlRPIGxvY3Qg VkFMVUVTICgxLCAnZm9vJyksICgyLCAnYmFyJyk7CisKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQg T05MWTsKK1NBVkVQT0lOVCBzOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwK K1JPTExCQUNLIFRPIHM7CitSRUxFQVNFIFNBVkVQT0lOVCBzOworU0VMRUNUICogRlJPTSByZW10 OyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNLOworCitTVEFSVCBUUkFOU0FDVElPTjsKK1NBVkVQ T0lOVCBzOworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSBy ZW10OyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNLIFRPIHM7CitSRUxFQVNFIFNBVkVQT0lOVCBz OworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10OyAg LS0gc2hvdWxkIGZhaWwKK1JPTExCQUNLOworCitTVEFSVCBUUkFOU0FDVElPTjsKK1NBVkVQT0lO VCBzOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIHdvcmsKK1NFVCB0cmFuc2FjdGlv bl9yZWFkX29ubHkgPSBvbjsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCBmYWlsCitS T0xMQkFDSyBUTyBzOworUkVMRUFTRSBTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsg IC0tIHNob3VsZCB3b3JrCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1Qg KiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFpbAorUk9MTEJBQ0s7CisKK1NUQVJUIFRSQU5TQUNU SU9OOworU0FWRVBPSU5UIHM7CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgd29yawor U0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10MjsgIC0t IHNob3VsZCBmYWlsCitST0xMQkFDSyBUTyBzOworUkVMRUFTRSBTQVZFUE9JTlQgczsKK1NFTEVD VCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCB3b3JrCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5 ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQyOyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNLOwor CitEUk9QIEZPUkVJR04gVEFCTEUgcmVtdDsKK0NSRUFURSBGT1JFSUdOIFRBQkxFIHJlbXQgKGYx IGludCwgZjIgdGV4dCkKKyAgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ2xv Y3QnKTsKKworU1RBUlQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSBS RUFEIE9OTFk7CitTRUxFQ1QgKiBGUk9NIHJlbXQ7CitDT01NSVQ7CisKK1NUQVJUIFRSQU5TQUNU SU9OIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEUgREVGRVJSQUJMRTsKK1NFTEVDVCAqIEZS T00gcmVtdDsKK0NPTU1JVDsKKworU1RBUlQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNF UklBTElaQUJMRSBSRUFEIE9OTFkgREVGRVJSQUJMRTsKK1NFTEVDVCAqIEZST00gcmVtdDsKK0NP TU1JVDsKKworLS0gQ2xlYW4gdXAKK0RST1AgRk9SRUlHTiBUQUJMRSByZW10OworRFJPUCBGT1JF SUdOIFRBQkxFIHJlbXQyOworRFJPUCBWSUVXIGxvY3Y7CitEUk9QIEZVTkNUSU9OIGxvY2YoKTsK K0RST1AgVEFCTEUgbG9jdDsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gdGVzdCBwYXJhbGxlbCBjb21t aXQgYW5kIHBhcmFsbGVsIGFib3J0CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwK aW5kZXggZmNmMTBlNDMxN2UuLmY3NDViM2Q0Y2UwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cG9zdGdyZXMtZmR3LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sCkBA IC0xMDc3LDYgKzEwNzcsMjMgQEAgcG9zdGdyZXM9IyBTRUxFQ1QgcG9zdGdyZXNfZmR3X2Rpc2Nv bm5lY3RfYWxsKCk7CiAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHJl bGVhc2UgbWlnaHQgbW9kaWZ5IHRoZXNlIHJ1bGVzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+Cisg ICBUaGUgcmVtb3RlIHRyYW5zYWN0aW9uIGlzIG9wZW5lZCBpbiB0aGUgc2FtZSByZWFkL3dyaXRl IG1vZGUgYXMgdGhlIGxvY2FsCisgICB0cmFuc2FjdGlvbjogaWYgdGhlIGxvY2FsIHRyYW5zYWN0 aW9uIGlzIDxsaXRlcmFsPlJFQUQgT05MWTwvbGl0ZXJhbD4sCisgICB0aGUgcmVtb3RlIHRyYW5z YWN0aW9uIGlzIG9wZW5lZCBpbiA8bGl0ZXJhbD5SRUFEIE9OTFk8L2xpdGVyYWw+IG1vZGUsCisg ICBvdGhlcndpc2UgaXQgaXMgb3BlbmVkIGluIDxsaXRlcmFsPlJFQUQgV1JJVEU8L2xpdGVyYWw+ IG1vZGUuCisgICAoVGhpcyBydWxlIGlzIGFsc28gYXBwbGllZCB0byByZW1vdGUgYW5kIGxvY2Fs IHN1YnRyYW5zYWN0aW9ucy4pCisgICBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBwcmV2ZW50IGxv Z2luIHRyaWdnZXJzIGV4ZWN1dGVkIG9uIHRoZSByZW1vdGUKKyAgIHNlcnZlciBmcm9tIHdyaXRp bmcuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSByZW1vdGUgdHJhbnNhY3Rpb24gaXMg YWxzbyBvcGVuZWQgaW4gdGhlIHNhbWUgZGVmZXJyYWJsZSBtb2RlIGFzIHRoZQorICAgbG9jYWwg dHJhbnNhY3Rpb246IGlmIHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBpcyA8bGl0ZXJhbD5ERUZFUlJB QkxFPC9saXRlcmFsPiwKKyAgIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24gaXMgb3BlbmVkIGluIDxs aXRlcmFsPkRFRkVSUkFCTEU8L2xpdGVyYWw+IG1vZGUsCisgICBvdGhlcndpc2UgaXQgaXMgb3Bl bmVkIGluIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiBtb2RlLgorICA8L3BhcmE+ CisKICAgPHBhcmE+CiAgICBOb3RlIHRoYXQgaXQgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQg YnkKICAgIDxmaWxlbmFtZT5wb3N0Z3Jlc19mZHc8L2ZpbGVuYW1lPiB0byBwcmVwYXJlIHRoZSBy ZW1vdGUgdHJhbnNhY3Rpb24gZm9yCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS94YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZWJh NGYwNjMxNjguLmVmYzgxZmQ5M2I2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS94YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0x MDQ1LDYgKzEwNDUsMzQgQEAgVHJhbnNhY3Rpb25TdGFydGVkRHVyaW5nUmVjb3Zlcnkodm9pZCkK IAlyZXR1cm4gQ3VycmVudFRyYW5zYWN0aW9uU3RhdGUtPnN0YXJ0ZWRJblJlY292ZXJ5OwogfQog CisvKgorICoJR2V0VG9wUmVhZE9ubHlUcmFuc2FjdGlvbk5lc3RMZXZlbAorICoKKyAqIE5vdGU6 IHRoaXMgd2lsbCByZXR1cm4gemVybyB3aGVuIG5vdCBpbnNpZGUgYW55IHRyYW5zYWN0aW9uIG9y IHdoZW4gbmVpdGhlcgorICogYSB0b3AtbGV2ZWwgdHJhbnNhY3Rpb24gbm9yIHN1YnRyYW5zYWN0 aW9ucyBhcmUgcmVhZC1vbmx5LCBvbmUgd2hlbiB0aGUKKyAqIHRvcC1sZXZlbCB0cmFuc2FjdGlv biBpcyByZWFkLW9ubHksIHR3byB3aGVuIG9uZSBsZXZlbCBvZiBzdWJ0cmFuc2FjdGlvbiBpcwor ICogcmVhZC1vbmx5LCBldGMuCisgKgorICogTm90ZTogc3VidHJhbnNhY3Rpb25zIG9mIHRoZSB0 b3Btb3N0IHJlYWQtb25seSB0cmFuc2FjdGlvbiBhcmUgYWxzbworICogcmVhZC1vbmx5LCBiZWNh dXNlIHRoZXkgaW5oZXJpdCByZWFkLW9ubHkgbW9kZSBmcm9tIHRoZSB0cmFuc2FjdGlvbiwgYW5k CisgKiB0aHVzIGNhbid0IGNoYW5nZSB0byByZWFkLXdyaXRlIG1vZGUuICBTZWUgY2hlY2tfdHJh bnNhY3Rpb25fcmVhZF9vbmx5KCkuCisgKi8KK2ludAorR2V0VG9wUmVhZE9ubHlUcmFuc2FjdGlv bk5lc3RMZXZlbCh2b2lkKQoreworCVRyYW5zYWN0aW9uU3RhdGUgcyA9IEN1cnJlbnRUcmFuc2Fj dGlvblN0YXRlOworCisJaWYgKCFYYWN0UmVhZE9ubHkpCisJCXJldHVybiAwOworCXdoaWxlIChz LT5uZXN0aW5nTGV2ZWwgPiAxKQorCXsKKwkJaWYgKCFzLT5wcmV2WGFjdFJlYWRPbmx5KQorCQkJ cmV0dXJuIHMtPm5lc3RpbmdMZXZlbDsKKwkJcyA9IHMtPnBhcmVudDsKKwl9CisJcmV0dXJuIHMt Pm5lc3RpbmdMZXZlbDsKK30KKwogLyoKICAqCUVudGVyUGFyYWxsZWxNb2RlCiAgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94YWN0LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGFj dC5oCmluZGV4IGYwYjRkNzk1MDcxLi5hOGNiZGYyNDdjOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvYWNjZXNzL3hhY3QuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGFjdC5oCkBAIC00NTks NiArNDU5LDcgQEAgZXh0ZXJuIFRpbWVzdGFtcFR6IEdldEN1cnJlbnRUcmFuc2FjdGlvblN0b3BU aW1lc3RhbXAodm9pZCk7CiBleHRlcm4gdm9pZCBTZXRDdXJyZW50U3RhdGVtZW50U3RhcnRUaW1l c3RhbXAodm9pZCk7CiBleHRlcm4gaW50CUdldEN1cnJlbnRUcmFuc2FjdGlvbk5lc3RMZXZlbCh2 b2lkKTsKIGV4dGVybiBib29sIFRyYW5zYWN0aW9uSWRJc0N1cnJlbnRUcmFuc2FjdGlvbklkKFRy YW5zYWN0aW9uSWQgeGlkKTsKK2V4dGVybiBpbnQJR2V0VG9wUmVhZE9ubHlUcmFuc2FjdGlvbk5l c3RMZXZlbCh2b2lkKTsKIGV4dGVybiB2b2lkIENvbW1hbmRDb3VudGVySW5jcmVtZW50KHZvaWQp OwogZXh0ZXJuIHZvaWQgRm9yY2VTeW5jQ29tbWl0KHZvaWQpOwogZXh0ZXJuIHZvaWQgU3RhcnRU cmFuc2FjdGlvbkNvbW1hbmQodm9pZCk7Cg== --000000000000291293064ba362d9--