From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from conssluserg-02.nifty.com (conssluserg-02.nifty.com [210.131.2.81]) by sourceware.org (Postfix) with ESMTPS id 993153858402 for ; Tue, 14 Sep 2021 10:19:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 993153858402 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=nifty.ne.jp Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nifty.ne.jp Received: from Express5800-S70 (z221123.dynamic.ppp.asahi-net.or.jp [110.4.221.123]) (authenticated) by conssluserg-02.nifty.com with ESMTP id 18EAJOFx012874 for ; Tue, 14 Sep 2021 19:19:24 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-02.nifty.com 18EAJOFx012874 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp; s=dec2015msa; t=1631614764; bh=Up9ls5zuoz/MmkveGVEEepGyKDkHKj+RfUiZgT8PkXI=; h=Date:From:To:Subject:In-Reply-To:References:From; b=H48151IXFeopakmeacZYco15xIrso7D5/OQDjrGZtciZM0UUMwaMUrLvic0zO7oym PqPGoRIQRJjRWor+voIZ8hjh64zeTAhjwMa0vzyUUzESDN/IgP8yEQV2ih4rzlEaZt PJDqKQcCLQzc7V6G3NAZa03AiMZFeCaCrRI60tXeYkDC4VIcXfAB0gEmV/8N9/i7lf x6CrHAaL6VR8qm42gacXX/Nxlmbm+57CpGXXMNu0rekU0QCmHUsb2DIV2svYD9FfXg M2zHZ4iGK2J308HFXiMSptY1WjHZwZ7ndhfvmQiKuiO2aBtKSB3ZPzguYqqdOpmnkv rhCw96vw6R3oA== X-Nifty-SrcIP: [110.4.221.123] Date: Tue, 14 Sep 2021 19:19:24 +0900 From: Takashi Yano To: cygwin-developers@cygwin.com Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? Message-Id: <20210914191924.5092f63762d62c88431b5313@nifty.ne.jp> In-Reply-To: <20210914185623.0488635bf6d1e925baee5fe8@nifty.ne.jp> References: <33386baf-3b2d-d57f-2ad3-1bd328ed7935@cornell.edu> <20210911075734.aaf37697ba7db2ad14d911a3@nifty.ne.jp> <20210911113517.f74fc3ac1971bbf04c7a9bd1@nifty.ne.jp> <695ce1f4-4f7d-f3f3-6dd3-087467d67b28@cornell.edu> <20210912174849.3d38107568065a95aeb19c7c@nifty.ne.jp> <20210912200423.667e40eb1adc52461bbefa20@nifty.ne.jp> <20210914043718.f420491c6723f3dc2e2d9753@nifty.ne.jp> <20210914170838.6393026ac3eaa4cd4e3d9618@nifty.ne.jp> <20210914185623.0488635bf6d1e925baee5fe8@nifty.ne.jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Tue__14_Sep_2021_19_19_24_+0900_pgu+VM/tBIB5pRmF" X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: cygwin-developers@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component developers mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2021 10:19:45 -0000 This is a multi-part message in MIME format. --Multipart=_Tue__14_Sep_2021_19_19_24_+0900_pgu+VM/tBIB5pRmF Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 14 Sep 2021 18:56:23 +0900 Takashi Yano wrote: > On Tue, 14 Sep 2021 11:03:39 +0200 > Corinna Vinschen wrote: > > I don't quite follow the argument. Blocking pipes are using > > asynchronous IO, so they are in fact not blocking calls on the > > OS level. After calling NtWriteFile, the blocking variation > > will go into the subsequent > > > > waitret = cygwait (evt, INFINITE, cw_cancel | cw_sig); > > > > So, wouldn't you get the same effect by keeping the pipe in > > FILE_PIPE_QUEUE_OPERATION mode and just add a timeout to the above > > cygwait call and handle select_sem in a not yet existing WAIT_TIMEOUT > > conditional? > > Sounds reasonable. I revised the patches. Do you mean something like > patch attached? Revised a bit. -- Takashi Yano --Multipart=_Tue__14_Sep_2021_19_19_24_+0900_pgu+VM/tBIB5pRmF Content-Type: application/octet-stream; name="0001-Cygwin-pipe-Use-read-pipe-handle-for-select-on-write.patch" Content-Disposition: attachment; filename="0001-Cygwin-pipe-Use-read-pipe-handle-for-select-on-write.patch" Content-Transfer-Encoding: base64 RnJvbSA2ZmMzNmI1ZWM3YTI2NWQ3OGU4MGQ0NDljODg2NGRkZWU0NmVkYTEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogVHVlLCAxNCBTZXAgMjAyMSAxOToxMDo0OCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg MS8yXSBDeWd3aW46IHBpcGU6IFVzZSByZWFkIHBpcGUgaGFuZGxlIGZvciBzZWxlY3QoKSBvbiB3 cml0ZQogcGlwZS4KCi0gVXN1YWxseSBXcml0ZVF1b3RhQXZhaWxhYmxlIHJldHJpZXZlZCBieSBO dFF1ZXJ5SW5mb3JtYXRpb25GaWxlKCkKICBvbiB0aGUgd3JpdGUgc2lkZSByZWZsZWN0cyB0aGUg c3BhY2UgYXZhaWxhYmxlIGluIHRoZSBpbmJvdW5kIGJ1ZmZlcgogIG9uIHRoZSByZWFkIHNpZGUu IEhvd2V2ZXIsIGlmIGEgcGlwZSByZWFkIGlzIGN1cnJlbnRseSBwZW5kaW5nLAogIFdyaXRlUXVv dGFBdmFpbGFibGUgb24gdGhlIHdyaXRlIHNpZGUgaXMgZGVjcmVtZW50ZWQgYnkgdGhlIG51bWJl cgogIG9mIGJ5dGVzIHRoZSByZWFkIHNpZGUgaXMgcmVxdWVzdGluZy4gU28gaXQncyBwb3NzaWJs ZSAoZXZlbiBsaWtlbHkpCiAgdGhhdCBXcml0ZVF1b3RhQXZhaWxhYmxlIGlzIDAsIGV2ZW4gaWYg dGhlIGluYm91bmQgYnVmZmVyIG9uIHRoZQogIHJlYWQgc2lkZSBpcyBub3QgZnVsbC4gVGhpcyBj YW4gbGVhZCB0byBhIGRlYWRsb2NrIHNpdHVhdGlvbjoKICBUaGUgcmVhZGVyIGlzIHdhaXRpbmcg Zm9yIGRhdGEsIGJ1dCBzZWxlY3Qgb24gdGhlIHdyaXRlciBzaWRlCiAgYXNzdW1lcyB0aGF0IG5v IHNwYWNlIGlzIGF2YWlsYWJsZSBpbiB0aGUgcmVhZCBzaWRlIGluYm91bmQgYnVmZmVyLgoKICBD dXJyZW50bHksIHRvIGF2b2lkIHRoaXMgc3R1YXRpb24sIHJlYWQoKSBkb2VzIG5vdCByZXF1ZXN0 IGxhcmdlcgogIGJsb2NrIHRoYW4gcGlwZSBzaXplIC0gMS4gSG93ZXZlciwgdGhpcyBtZWNoYW5p c20gZG9lcyBub3QgdGFrZQogIGVmZmVjdCBpZiB0aGUgcmVhZGVyIHNpZGUgaXMgbm9uLWN5Z3dp biBhcHAuCgogIFRoZSBvbmx5IHJlbGlhYmxlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBvbiB0 aGUgcmVhZCBzaWRlLCBzbwogIGZldGNoIGluZm8gZnJvbSB0aGUgcmVhZCBzaWRlIHZpYSB0aGUg cGlwZS1zcGVjaWZpYyBxdWVyeSBoYW5kbGUKICAocXVlcnlfaGRsKSBpbnRyb2R1Y2VkLgoKICBJ ZiB0aGUgcXVlcnlfaGRsIChyZWFkIGhhbmRsZSkgaXMga2VwdCBpbiB3cml0ZSBzaWRlLCB3cml0 ZXIgY2FuCiAgbm90IGRldGVjdCBjbG9zdXJlIG9mIHJlYWQgcGlwZS4gVGhlcmVmb3JlLCByYXdf d3JpdGUoKSBjb3VudHMKICB3cml0ZSBoYW5kbGUgYW5kIHF1ZXJ5X2hkbC4gSWYgdGhleSBhcmUg ZXF1YWwsIG9ubHkgdGhlIHBhaXJzIG9mCiAgd3JpdGUgaGFuZGxlIGFuZCBxdWVyeV9oZGwgYXJl IGFsaXZlLiBJbiB0aGlzIGNhc2UsIHJhd193cml0ZSgpCiAgcmV0dXJucyBFUElQRSBhbmQgcmFp c2VzIFNJR1BJUEUuCi0tLQogd2luc3VwL2N5Z3dpbi9maGFuZGxlci5oICAgICAgIHwgMTQgKysr KystCiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MgfCA5MiArKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tCiB3aW5zdXAvY3lnd2luL3NlbGVjdC5jYyAgICAgICAgfCA1MiAr KysrKysrKysrKysrKysrLS0tCiB3aW5zdXAvY3lnd2luL3NwYXduLmNjICAgICAgICAgfCAxMSAr KysrCiA0IGZpbGVzIGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmggYi93aW5zdXAvY3lnd2luL2Zo YW5kbGVyLmgKaW5kZXggNDYzODFjMzk3Li5kYjIzMjUxNDQgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9j eWd3aW4vZmhhbmRsZXIuaAorKysgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmgKQEAgLTExNzYs MTAgKzExNzYsMjIgQEAgY2xhc3MgZmhhbmRsZXJfcGlwZV9maWZvOiBwdWJsaWMgZmhhbmRsZXJf YmFzZQogewogIHByb3RlY3RlZDoKICAgc2l6ZV90IHBpcGVfYnVmX3NpemU7CisgIEhBTkRMRSBx dWVyeV9oZGw7CiAKICBwdWJsaWM6CiAgIGZoYW5kbGVyX3BpcGVfZmlmbyAoKTsKIAorICBIQU5E TEUgZ2V0X3F1ZXJ5X2hhbmRsZSAoKSBjb25zdCB7IHJldHVybiBxdWVyeV9oZGw7IH0KKyAgdm9p ZCBjbG9zZV9xdWVyeV9oYW5kbGUgKCkKKyAgeworICAgIGlmIChxdWVyeV9oZGwpCisgICAgICB7 CisJQ2xvc2VIYW5kbGUgKHF1ZXJ5X2hkbCk7CisJcXVlcnlfaGRsID0gTlVMTDsKKyAgICAgIH0K KyAgfQorICBib29sIHJlYWRlcl9jbG9zZWQgKCk7CisKICAgc3NpemVfdCBfX3JlZzMgcmF3X3dy aXRlIChjb25zdCB2b2lkICpwdHIsIHNpemVfdCBsZW4pOwogCiB9OwpAQCAtMTE4OSw3ICsxMjAx LDYgQEAgY2xhc3MgZmhhbmRsZXJfcGlwZTogcHVibGljIGZoYW5kbGVyX3BpcGVfZmlmbwogcHJp dmF0ZToKICAgSEFORExFIHJlYWRfbXR4OwogICBwaWRfdCBwb3Blbl9waWQ7Ci0gIHZvaWQgc2V0 X3BpcGVfbm9uX2Jsb2NraW5nIChib29sIG5vbmJsb2NraW5nKTsKIHB1YmxpYzoKICAgZmhhbmRs ZXJfcGlwZSAoKTsKIApAQCAtMTIzNyw2ICsxMjQ4LDcgQEAgcHVibGljOgogICAgIGZoLT5jb3B5 X2Zyb20gKHRoaXMpOwogICAgIHJldHVybiBmaDsKICAgfQorICB2b2lkIHNldF9waXBlX25vbl9i bG9ja2luZyAoYm9vbCBub25ibG9ja2luZyk7CiB9OwogCiAjZGVmaW5lIENZR1dJTl9GSUZPX1BJ UEVfTkFNRV9MRU4gICAgIDQ3CmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3Bp cGUuY2MgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MKaW5kZXggZGE0NzNhMWRjLi5i N2Q0Y2I1Y2MgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcGlwZS5jYworKysg Yi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MKQEAgLTIwMiw2ICsyMDIsOCBAQCBmaGFu ZGxlcl9waXBlOjpvcGVuX3NldHVwIChpbnQgZmxhZ3MpCiAgICAgICBpZiAoIXJlYWRfbXR4KQog CWRlYnVnX3ByaW50ZiAoIkNyZWF0ZU11dGV4IGZhaWxlZDogJUUiKTsKICAgICB9CisgIGlmIChn ZXRfZGV2ICgpID09IEZIX1BJUEVXICYmICFxdWVyeV9oZGwpCisgICAgc2V0X3BpcGVfbm9uX2Js b2NraW5nIChpc19ub25ibG9ja2luZyAoKSk7CiB9CiAKIG9mZl90CkBAIC0yNjgsMzkgKzI3MCwy MiBAQCBmaGFuZGxlcl9waXBlOjpyYXdfcmVhZCAodm9pZCAqcHRyLCBzaXplX3QmIGxlbikKICAg d2hpbGUgKG5ieXRlcyA8IGxlbikKICAgICB7CiAgICAgICBVTE9OR19QVFIgbmJ5dGVzX25vdyA9 IDA7Ci0gICAgICBzaXplX3QgbGVmdCA9IGxlbiAtIG5ieXRlczsKLSAgICAgIFVMT05HIGxlbjEg PSAoVUxPTkcpIGxlZnQ7CisgICAgICBVTE9ORyBsZW4xID0gKFVMT05HKSAobGVuIC0gbmJ5dGVz KTsKICAgICAgIHdhaXRyZXQgPSBXQUlUX09CSkVDVF8wOwogCiAgICAgICBpZiAoZXZ0KQogCVJl c2V0RXZlbnQgKGV2dCk7Ci0gICAgICBpZiAoIWlzX25vbmJsb2NraW5nICgpKQorICAgICAgRklM RV9QSVBFX0xPQ0FMX0lORk9STUFUSU9OIGZwbGk7CisgICAgICBzdGF0dXMgPSBOdFF1ZXJ5SW5m b3JtYXRpb25GaWxlIChnZXRfaGFuZGxlICgpLCAmaW8sCisJCQkJICAgICAgICZmcGxpLCBzaXpl b2YgKGZwbGkpLAorCQkJCSAgICAgICBGaWxlUGlwZUxvY2FsSW5mb3JtYXRpb24pOworICAgICAg aWYgKE5UX1NVQ0NFU1MgKHN0YXR1cykpCiAJewotCSAgRklMRV9QSVBFX0xPQ0FMX0lORk9STUFU SU9OIGZwbGk7Ci0KLQkgIC8qIElmIHRoZSBwaXBlIGlzIGVtcHR5LCBkb24ndCByZXF1ZXN0IG1v cmUgYnl0ZXMgdGhhbiBwaXBlCi0JICAgICBidWZmZXIgc2l6ZSAtIDEuIFBlbmRpbmcgcmVhZCBs b3dlcnMgV3JpdGVRdW90YUF2YWlsYWJsZSBvbgotCSAgICAgdGhlIHdyaXRlIHNpZGUgYW5kIHRo dXMgYWZmZWN0cyBzZWxlY3QncyBhYmlsaXR5IHRvIHJldHVybgotCSAgICAgbW9yZSBvciBsZXNz IHJlbGlhYmxlIGluZm8gd2hldGhlciBhIHdyaXRlIHN1Y2NlZWRzIG9yIG5vdC4gKi8KLQkgIFVM T05HIGNodW5rID0gcGlwZV9idWZfc2l6ZSAtIDE7Ci0JICBzdGF0dXMgPSBOdFF1ZXJ5SW5mb3Jt YXRpb25GaWxlIChnZXRfaGFuZGxlICgpLCAmaW8sCi0JCQkJCSAgICZmcGxpLCBzaXplb2YgKGZw bGkpLAotCQkJCQkgICBGaWxlUGlwZUxvY2FsSW5mb3JtYXRpb24pOwotCSAgaWYgKE5UX1NVQ0NF U1MgKHN0YXR1cykpCi0JICAgIHsKLQkgICAgICBpZiAoZnBsaS5SZWFkRGF0YUF2YWlsYWJsZSA+ IDApCi0JCWNodW5rID0gbGVmdDsKLQkgICAgICBlbHNlIGlmIChuYnl0ZXMgIT0gMCkKLQkJYnJl YWs7Ci0JICAgICAgZWxzZQotCQljaHVuayA9IGZwbGkuSW5ib3VuZFF1b3RhIC0gMTsKLQkgICAg fQotCSAgZWxzZSBpZiAobmJ5dGVzICE9IDApCi0JICAgIGJyZWFrOwotCi0JICBpZiAobGVuMSA+ IGNodW5rKQotCSAgICBsZW4xID0gY2h1bms7CisJaWYgKGZwbGkuUmVhZERhdGFBdmFpbGFibGUg PT0gMCAmJiBuYnl0ZXMgIT0gMCkKKwkgIGJyZWFrOwogCX0KKyAgICAgIGVsc2UgaWYgKG5ieXRl cyAhPSAwKQorCWJyZWFrOwogICAgICAgc3RhdHVzID0gTnRSZWFkRmlsZSAoZ2V0X2hhbmRsZSAo KSwgZXZ0LCBOVUxMLCBOVUxMLCAmaW8sIHB0ciwKIAkJCSAgIGxlbjEsIE5VTEwsIE5VTEwpOwog ICAgICAgaWYgKGV2dCAmJiBzdGF0dXMgPT0gU1RBVFVTX1BFTkRJTkcpCkBAIC0zODUsNiArMzcw LDE2IEBAIGZoYW5kbGVyX3BpcGU6OnJhd19yZWFkICh2b2lkICpwdHIsIHNpemVfdCYgbGVuKQog ICBsZW4gPSBuYnl0ZXM7CiB9CiAKK2Jvb2wKK2ZoYW5kbGVyX3BpcGVfZmlmbzo6cmVhZGVyX2Ns b3NlZCAoKQoreworICBpZiAoIXF1ZXJ5X2hkbCkKKyAgICByZXR1cm4gZmFsc2U7CisgIGludCBu X3JlYWRlciA9IGdldF9vYmpfaGFuZGxlX2NvdW50IChxdWVyeV9oZGwpOworICBpbnQgbl93cml0 ZXIgPSBnZXRfb2JqX2hhbmRsZV9jb3VudCAoZ2V0X2hhbmRsZSAoKSk7CisgIHJldHVybiBuX3Jl YWRlciA9PSBuX3dyaXRlcjsKK30KKwogc3NpemVfdCBfX3JlZzMKIGZoYW5kbGVyX3BpcGVfZmlm bzo6cmF3X3dyaXRlIChjb25zdCB2b2lkICpwdHIsIHNpemVfdCBsZW4pCiB7CkBAIC00NTcsNyAr NDUyLDE5IEBAIGZoYW5kbGVyX3BpcGVfZmlmbzo6cmF3X3dyaXRlIChjb25zdCB2b2lkICpwdHIs IHNpemVfdCBsZW4pCiAJfQogICAgICAgaWYgKGV2dCAmJiBzdGF0dXMgPT0gU1RBVFVTX1BFTkRJ TkcpCiAJewotCSAgd2FpdHJldCA9IGN5Z3dhaXQgKGV2dCwgSU5GSU5JVEUsIGN3X2NhbmNlbCB8 IGN3X3NpZyk7CisJICB3aGlsZSAoV0FJVF9USU1FT1VUID09CisJCSAod2FpdHJldCA9IGN5Z3dh aXQgKGV2dCwgKERXT1JEKSAwLCBjd19jYW5jZWwgfCBjd19zaWcpKSkKKwkgICAgeworCSAgICAg IGlmIChyZWFkZXJfY2xvc2VkICgpKQorCQl7CisJCSAgQ2FuY2VsSW8gKGdldF9oYW5kbGUgKCkp OworCQkgIHNldF9lcnJubyAoRVBJUEUpOworCQkgIHJhaXNlIChTSUdQSVBFKTsKKwkJICBicmVh azsKKwkJfQorCSAgICAgIGVsc2UKKwkJY3lnd2FpdCAoc2VsZWN0X3NlbSwgMTApOworCSAgICB9 CiAJICAvKiBJZiBpby5TdGF0dXMgaXMgU1RBVFVTX0NBTkNFTExFRCBhZnRlciBDYW5jZWxJbywg SU8gaGFzIGFjdHVhbGx5CiAJICAgICBiZWVuIGNhbmNlbGxlZCBhbmQgaW8uSW5mb3JtYXRpb24g Y29udGFpbnMgdGhlIG51bWJlciBvZiBieXRlcwogCSAgICAgcHJvY2Vzc2VkIHNvIGZhci4KQEAg LTUyMyw2ICs1MzAsOCBAQCBmaGFuZGxlcl9waXBlOjpzZXRfY2xvc2Vfb25fZXhlYyAoYm9vbCB2 YWwpCiAgICAgc2V0X25vX2luaGVyaXRhbmNlIChyZWFkX210eCwgdmFsKTsKICAgaWYgKHNlbGVj dF9zZW0pCiAgICAgc2V0X25vX2luaGVyaXRhbmNlIChzZWxlY3Rfc2VtLCB2YWwpOworICBpZiAo cXVlcnlfaGRsKQorICAgIHNldF9ub19pbmhlcml0YW5jZSAocXVlcnlfaGRsLCB2YWwpOwogfQog CiB2b2lkCkBAIC01MzIsNiArNTQxLDkgQEAgZmhhbmRsZXJfcGlwZTo6Zml4dXBfYWZ0ZXJfZm9y ayAoSEFORExFIHBhcmVudCkKICAgICBmb3JrX2ZpeHVwIChwYXJlbnQsIHJlYWRfbXR4LCAicmVh ZF9tdHgiKTsKICAgaWYgKHNlbGVjdF9zZW0pCiAgICAgZm9ya19maXh1cCAocGFyZW50LCBzZWxl Y3Rfc2VtLCAic2VsZWN0X3NlbSIpOworICBpZiAocXVlcnlfaGRsKQorICAgIGZvcmtfZml4dXAg KHBhcmVudCwgcXVlcnlfaGRsLCAicXVlcnlfaGRsIik7CisKICAgZmhhbmRsZXJfYmFzZTo6Zml4 dXBfYWZ0ZXJfZm9yayAocGFyZW50KTsKIH0KIApAQCAtNTYyLDYgKzU3NCwxNSBAQCBmaGFuZGxl cl9waXBlOjpkdXAgKGZoYW5kbGVyX2Jhc2UgKmNoaWxkLCBpbnQgZmxhZ3MpCiAgICAgICBmdHAt PmNsb3NlICgpOwogICAgICAgcmVzID0gLTE7CiAgICAgfQorICBlbHNlIGlmIChxdWVyeV9oZGwg JiYKKwkgICAhRHVwbGljYXRlSGFuZGxlIChHZXRDdXJyZW50UHJvY2VzcyAoKSwgcXVlcnlfaGRs LAorCQkJICAgIEdldEN1cnJlbnRQcm9jZXNzICgpLCAmZnRwLT5xdWVyeV9oZGwsCisJCQkgICAg MCwgIShmbGFncyAmIE9fQ0xPRVhFQyksIERVUExJQ0FURV9TQU1FX0FDQ0VTUykpCisgICAgewor ICAgICAgX19zZXRlcnJubyAoKTsKKyAgICAgIGZ0cC0+Y2xvc2UgKCk7CisgICAgICByZXMgPSAt MTsKKyAgICB9CiAKICAgZGVidWdfcHJpbnRmICgicmVzICVkIiwgcmVzKTsKICAgcmV0dXJuIHJl czsKQEAgLTU3Nyw2ICs1OTgsOCBAQCBmaGFuZGxlcl9waXBlOjpjbG9zZSAoKQogICAgICAgUmVs ZWFzZVNlbWFwaG9yZSAoc2VsZWN0X3NlbSwgZ2V0X29ial9oYW5kbGVfY291bnQgKHNlbGVjdF9z ZW0pLCBOVUxMKTsKICAgICAgIENsb3NlSGFuZGxlIChzZWxlY3Rfc2VtKTsKICAgICB9CisgIGlm IChxdWVyeV9oZGwpCisgICAgQ2xvc2VIYW5kbGUgKHF1ZXJ5X2hkbCk7CiAgIHJldHVybiBmaGFu ZGxlcl9iYXNlOjpjbG9zZSAoKTsKIH0KIApAQCAtNzk3LDYgKzgyMCwxOSBAQCBmaGFuZGxlcl9w aXBlOjpjcmVhdGUgKGZoYW5kbGVyX3BpcGUgKmZoc1syXSwgdW5zaWduZWQgcHNpemUsIGludCBt b2RlKQogCUR1cGxpY2F0ZUhhbmRsZSAoR2V0Q3VycmVudFByb2Nlc3MgKCksIGZoc1swXS0+c2Vs ZWN0X3NlbSwKIAkJCSBHZXRDdXJyZW50UHJvY2VzcyAoKSwgJmZoc1sxXS0+c2VsZWN0X3NlbSwK IAkJCSAwLCBzYS0+YkluaGVyaXRIYW5kbGUsIERVUExJQ0FURV9TQU1FX0FDQ0VTUyk7CisgICAg ICBpZiAoIUR1cGxpY2F0ZUhhbmRsZSAoR2V0Q3VycmVudFByb2Nlc3MgKCksIHIsCisJCQkgICAg R2V0Q3VycmVudFByb2Nlc3MgKCksICZmaHNbMV0tPnF1ZXJ5X2hkbCwKKwkJCSAgICBGSUxFX1JF QURfREFUQSwgc2EtPmJJbmhlcml0SGFuZGxlLCAwKSkKKwl7CisJICBDbG9zZUhhbmRsZSAoZmhz WzBdLT5zZWxlY3Rfc2VtKTsKKwkgIGRlbGV0ZSBmaHNbMF07CisJICBDbG9zZUhhbmRsZSAocik7 CisJICBDbG9zZUhhbmRsZSAoZmhzWzFdLT5zZWxlY3Rfc2VtKTsKKwkgIGRlbGV0ZSBmaHNbMV07 CisJICBDbG9zZUhhbmRsZSAodyk7CisJfQorICAgICAgZWxzZQorCXJlcyA9IDA7CiAgICAgfQog CiAgIGRlYnVnX3ByaW50ZiAoIiVSID0gcGlwZShbJXAsICVwXSwgJWQsICV5KSIsIHJlcywgZmhz WzBdLCBmaHNbMV0sIHBzaXplLCBtb2RlKTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vc2Vs ZWN0LmNjIGIvd2luc3VwL2N5Z3dpbi9zZWxlY3QuY2MKaW5kZXggNWU1ODM0MzRjLi5hYzJmM2E5 ZTAgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vc2VsZWN0LmNjCisrKyBiL3dpbnN1cC9jeWd3 aW4vc2VsZWN0LmNjCkBAIC02MDgsMTYgKzYwOCw0NyBAQCBwaXBlX2RhdGFfYXZhaWxhYmxlIChp bnQgZmQsIGZoYW5kbGVyX2Jhc2UgKmZoLCBIQU5ETEUgaCwgYm9vbCB3cml0aW5nKQogICAgIH0K ICAgaWYgKHdyaXRpbmcpCiAgICAgewotICAgICAgLyogV3JpdGVRdW90YUF2YWlsYWJsZSBpcyBk ZWNyZW1lbnRlZCBieSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVlc3RlZAotCSBieSBhIGJsb2Nr aW5nIHJlYWRlciBvbiB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgcGlwZS4gIEN5Z3dpbiByZWFkZXJz Ci0JIGFyZSBzZXJpYWxpemVkIGFuZCBuZXZlciByZXF1ZXN0IGEgbnVtYmVyIG9mIGJ5dGVzIGVx dWl2YWxlbnQgdG8gdGhlCi0JIGZ1bGwgYnVmZmVyIHNpemUuICBTbyBXcml0ZVF1b3RhQXZhaWxh YmxlIGlzIDAgb25seSBpZiBlaXRoZXIgdGhlCi0JIHJlYWQgYnVmZmVyIG9uIHRoZSBvdGhlciBz aWRlIGlzIHJlYWxseSBmdWxsLCBvciBpZiB3ZSBoYXZlIG5vbi1DeWd3aW4KLQkgcmVhZGVycy4g Ki8KKyAgICAgIC8qIElmIHRoZXJlIGlzIGFueXRoaW5nIGF2YWlsYWJsZSBpbiB0aGUgcGlwZSBi dWZmZXIgdGhlbiBzaWduYWwKKyAgICAgICAgdGhhdC4gIFRoaXMgbWVhbnMgdGhhdCBhIHBpcGUg Y291bGQgc3RpbGwgYmxvY2sgc2luY2UgeW91IGNvdWxkCisgICAgICAgIGJlIHRyeWluZyB0byB3 cml0ZSBtb3JlIHRvIHRoZSBwaXBlIHRoYW4gaXMgYXZhaWxhYmxlIGluIHRoZQorICAgICAgICBi dWZmZXIgYnV0IHRoYXQgaXMgdGhlIGhhemFyZCBvZiBzZWxlY3QoKS4KKworICAgICAgICBOb3Rl IHRoYXQgV3JpdGVRdW90YUF2YWlsYWJsZSBpcyB1bnJlbGlhYmxlLgorCisgICAgICAgIFVzdWFs bHkgV3JpdGVRdW90YUF2YWlsYWJsZSBvbiB0aGUgd3JpdGUgc2lkZSByZWZsZWN0cyB0aGUgc3Bh Y2UKKyAgICAgICAgYXZhaWxhYmxlIGluIHRoZSBpbmJvdW5kIGJ1ZmZlciBvbiB0aGUgcmVhZCBz aWRlLiAgSG93ZXZlciwgaWYgYQorICAgICAgICBwaXBlIHJlYWQgaXMgY3VycmVudGx5IHBlbmRp bmcsIFdyaXRlUXVvdGFBdmFpbGFibGUgb24gdGhlIHdyaXRlIHNpZGUKKyAgICAgICAgaXMgZGVj cmVtZW50ZWQgYnkgdGhlIG51bWJlciBvZiBieXRlcyB0aGUgcmVhZCBzaWRlIGlzIHJlcXVlc3Rp bmcuCisgICAgICAgIFNvIGl0J3MgcG9zc2libGUgKGV2ZW4gbGlrZWx5KSB0aGF0IFdyaXRlUXVv dGFBdmFpbGFibGUgaXMgMCwgZXZlbgorICAgICAgICBpZiB0aGUgaW5ib3VuZCBidWZmZXIgb24g dGhlIHJlYWQgc2lkZSBpcyBub3QgZnVsbC4gIFRoaXMgY2FuIGxlYWQgdG8KKyAgICAgICAgYSBk ZWFkbG9jayBzaXR1YXRpb246IFRoZSByZWFkZXIgaXMgd2FpdGluZyBmb3IgZGF0YSwgYnV0IHNl bGVjdAorICAgICAgICBvbiB0aGUgd3JpdGVyIHNpZGUgYXNzdW1lcyB0aGF0IG5vIHNwYWNlIGlz IGF2YWlsYWJsZSBpbiB0aGUgcmVhZAorICAgICAgICBzaWRlIGluYm91bmQgYnVmZmVyLgorCisg ICAgICAgIENvbnNlcXVlbnRpYWxseSwgdGhlIG9ubHkgcmVsaWFibGUgaW5mb3JtYXRpb24gaXMg YXZhaWxhYmxlIG9uIHRoZQorICAgICAgICByZWFkIHNpZGUsIHNvIGZldGNoIGluZm8gZnJvbSB0 aGUgcmVhZCBzaWRlIHZpYSB0aGUgcGlwZS1zcGVjaWZpYworICAgICAgICBxdWVyeSBoYW5kbGUu ICBVc2UgZnBsaS5Xcml0ZVF1b3RhQXZhaWxhYmxlIGFzIHN0b3JhZ2UgZm9yIHRoZSBhY3R1YWwK KyAgICAgICAgaW50ZXJlc3RpbmcgdmFsdWUsIHdoaWNoIGlzIHRoZSBJbmJvdW5kUXVvdGUgb24g dGhlIHdyaXRlIHNpZGUsCisgICAgICAgIGRlY3JlbWVudGVkIGJ5IHRoZSBudW1iZXIgb2YgYnl0 ZXMgb2YgZGF0YSBpbiB0aGF0IGJ1ZmZlci4gKi8KKyAgICAgIC8qIE5vdGU6IERvIG5vdCB1c2Ug TnRRdWVyeUluZm9ybWF0aW9uRmlsZSgpIGZvciBxdWVyeV9oZGwgYmVjYXVzZQorCSBOdFF1ZXJ5 SW5mb3JtYXRpb25GaWxlKCkgc2VlbXMgdG8gaW50ZXJmZXJlIHdpdGggcmVhZGluZyBwaXBlcwor CSBpbiBub24tY3lnd2luIGFwcHMuIEluc3RlYWQsIHVzZSBQZWVrTmFtZWRQaXBlKCkgaGVyZS4g Ki8KKyAgICAgIGlmIChmaC0+Z2V0X2RldmljZSAoKSA9PSBGSF9QSVBFVykKKwl7CisJICBIQU5E TEUgcXVlcnlfaGRsID0gKChmaGFuZGxlcl9waXBlICopIGZoKS0+Z2V0X3F1ZXJ5X2hhbmRsZSAo KTsKKwkgIGlmIChxdWVyeV9oZGwpCisJICAgIHsKKwkgICAgICBEV09SRCBuYnl0ZXNfaW5fcGlw ZTsKKwkgICAgICBQZWVrTmFtZWRQaXBlIChxdWVyeV9oZGwsIE5VTEwsIDAsIE5VTEwsICZuYnl0 ZXNfaW5fcGlwZSwgTlVMTCk7CisJICAgICAgZnBsaS5Xcml0ZVF1b3RhQXZhaWxhYmxlID0gZnBs aS5JbmJvdW5kUXVvdGEgLSBuYnl0ZXNfaW5fcGlwZTsKKwkgICAgfQorCSAgZWxzZQorCSAgICBy ZXR1cm4gMTsKKwl9CiAgICAgICBpZiAoZnBsaS5Xcml0ZVF1b3RhQXZhaWxhYmxlID4gMCkKIAl7 CiAJICBwYXJhbm9pZF9wcmludGYgKCJmZCAlZCwgJXMsIHdyaXRlOiBzaXplICV1LCBhdmFpbCAl dSIsIGZkLAotCQkJICAgZmgtPmdldF9uYW1lICgpLCBmcGxpLk91dGJvdW5kUXVvdGEsCisJCQkg ICBmaC0+Z2V0X25hbWUgKCksIGZwbGkuSW5ib3VuZFF1b3RhLAogCQkJICAgZnBsaS5Xcml0ZVF1 b3RhQXZhaWxhYmxlKTsKIAkgIHJldHVybiAxOwogCX0KQEAgLTcxMiw2ICs3NDMsMTMgQEAgb3V0 OgogICBoID0gZmgtPmdldF9vdXRwdXRfaGFuZGxlICgpOwogICBpZiAocy0+d3JpdGVfc2VsZWN0 ZWQgJiYgZGV2ICE9IEZIX1BJUEVSKQogICAgIHsKKyAgICAgIGlmIChkZXYgPT0gRkhfUElQRVcg JiYgKChmaGFuZGxlcl9waXBlICopIGZoKS0+cmVhZGVyX2Nsb3NlZCAoKSkKKwl7CisJICBnb3Rv bmUgKz0gcy0+d3JpdGVfcmVhZHkgPSB0cnVlOworCSAgaWYgKHMtPmV4Y2VwdF9zZWxlY3RlZCkK KwkgICAgZ290b25lICs9IHMtPmV4Y2VwdF9yZWFkeSA9IHRydWU7CisJICByZXR1cm4gZ290b25l OworCX0KICAgICAgIGdvdG9uZSArPSBzLT53cml0ZV9yZWFkeSA9ICBwaXBlX2RhdGFfYXZhaWxh YmxlIChzLT5mZCwgZmgsIGgsIHRydWUpOwogICAgICAgc2VsZWN0X3ByaW50ZiAoIndyaXRlOiAl cywgZ290b25lICVkIiwgZmgtPmdldF9uYW1lICgpLCBnb3RvbmUpOwogICAgIH0KZGlmZiAtLWdp dCBhL3dpbnN1cC9jeWd3aW4vc3Bhd24uY2MgYi93aW5zdXAvY3lnd2luL3NwYXduLmNjCmluZGV4 IDBiZGUwYjA0ZC4uNmIyMDI2Nzc2IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL3NwYXduLmNj CisrKyBiL3dpbnN1cC9jeWd3aW4vc3Bhd24uY2MKQEAgLTY1Nyw2ICs2NTcsMTcgQEAgY2hpbGRf aW5mb19zcGF3bjo6d29ya2VyIChjb25zdCBjaGFyICpwcm9nX2FyZywgY29uc3QgY2hhciAqY29u c3QgKmFyZ3YsCiAJCXB0eXMtPmNyZWF0ZV9pbnZpc2libGVfY29uc29sZSAoKTsKIAkJcHR5cy0+ c2V0dXBfbG9jYWxlICgpOwogCSAgICAgIH0KKwkgICAgZWxzZSBpZiAoY2ZkLT5nZXRfZGV2ICgp ID09IEZIX1BJUEVXKQorCSAgICAgIHsKKwkJZmhhbmRsZXJfcGlwZSAqcGlwZSA9IChmaGFuZGxl cl9waXBlICopKGZoYW5kbGVyX2Jhc2UgKikgY2ZkOworCQlwaXBlLT5jbG9zZV9xdWVyeV9oYW5k bGUgKCk7CisJCXBpcGUtPnNldF9waXBlX25vbl9ibG9ja2luZyAoZmFsc2UpOworCSAgICAgIH0K KwkgICAgZWxzZSBpZiAoY2ZkLT5nZXRfZGV2ICgpID09IEZIX1BJUEVSKQorCSAgICAgIHsKKwkJ ZmhhbmRsZXJfcGlwZSAqcGlwZSA9IChmaGFuZGxlcl9waXBlICopKGZoYW5kbGVyX2Jhc2UgKikg Y2ZkOworCQlwaXBlLT5zZXRfcGlwZV9ub25fYmxvY2tpbmcgKGZhbHNlKTsKKwkgICAgICB9CiAJ fQogCiAgICAgICBib29sIGVuYWJsZV9wY29uID0gZmFsc2U7Ci0tIAoyLjMzLjAKCg== --Multipart=_Tue__14_Sep_2021_19_19_24_+0900_pgu+VM/tBIB5pRmF Content-Type: application/octet-stream; name="0002-Cygwin-pipe-fifo-Release-select_sem-semaphore-as-muc.patch" Content-Disposition: attachment; filename="0002-Cygwin-pipe-fifo-Release-select_sem-semaphore-as-muc.patch" Content-Transfer-Encoding: base64 RnJvbSBiOGVmZDJiMzZjYjc5OTJiMWZiNWFkMmZkYzQzMzcwYTJkZjFjZDUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogVHVlLCAxNCBTZXAgMjAyMSAxODo1MDo0OSArMDkwMApTdWJqZWN0OiBbUEFUQ0gg Mi8yXSBDeWd3aW46IHBpcGUsIGZpZm86IFJlbGVhc2Ugc2VsZWN0X3NlbSBzZW1hcGhvcmUgYXMg bXVjaAogYXMgbmVlZGVkLgoKLSBDdXJyZW50bHksIHJhd19yZWFkKCksIHJhd193cml0ZSgpIGFu ZCBjbG9zZSgpIHJlbGVhc2Ugc2VsZWN0X3NlbQogIHVuY29uZGl0aW9uYWxseSBldmVuIGlmIG5v IHdhaXRlciBmb3Igc2VsZWN0X3NlbSBleGlzdHMuIFdpdGggdGhpcwogIHBhdGNoLCBvbmx5IHRo ZSBtaW5pbXVtIG51bWJlciBvZiBzZW1hcGhvcmVzIHJlcXVpcmVkIGlzIHJlbGVhc2VkLgotLS0K IHdpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaCAgICAgICB8ICA0ICsrKysKIHdpbnN1cC9jeWd3aW4v ZmhhbmRsZXJfZmlmby5jYyB8IDI4ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHdpbnN1 cC9jeWd3aW4vZmhhbmRsZXJfcGlwZS5jYyB8IDI4ICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0KIDMgZmlsZXMgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlci5oIGIvd2luc3VwL2N5Z3dpbi9maGFu ZGxlci5oCmluZGV4IGRiMjMyNTE0NC4uOTU4MGE2OThjIDEwMDY0NAotLS0gYS93aW5zdXAvY3ln d2luL2ZoYW5kbGVyLmgKKysrIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlci5oCkBAIC0xMTc3LDYg KzExNzcsNyBAQCBjbGFzcyBmaGFuZGxlcl9waXBlX2ZpZm86IHB1YmxpYyBmaGFuZGxlcl9iYXNl CiAgcHJvdGVjdGVkOgogICBzaXplX3QgcGlwZV9idWZfc2l6ZTsKICAgSEFORExFIHF1ZXJ5X2hk bDsKKyAgdmlydHVhbCB2b2lkIHJlbGVhc2Vfc2VsZWN0X3NlbSAoY29uc3QgY2hhciAqKSB7fTsK IAogIHB1YmxpYzoKICAgZmhhbmRsZXJfcGlwZV9maWZvICgpOwpAQCAtMTIwMSw2ICsxMjAyLDcg QEAgY2xhc3MgZmhhbmRsZXJfcGlwZTogcHVibGljIGZoYW5kbGVyX3BpcGVfZmlmbwogcHJpdmF0 ZToKICAgSEFORExFIHJlYWRfbXR4OwogICBwaWRfdCBwb3Blbl9waWQ7CisgIHZvaWQgcmVsZWFz ZV9zZWxlY3Rfc2VtIChjb25zdCBjaGFyICopOwogcHVibGljOgogICBmaGFuZGxlcl9waXBlICgp OwogCkBAIC0xNDQ0LDYgKzE0NDYsOCBAQCBjbGFzcyBmaGFuZGxlcl9maWZvOiBwdWJsaWMgZmhh bmRsZXJfcGlwZV9maWZvCiAgIHZvaWQgc2hhcmVkX2ZjX2hhbmRsZXJfdXBkYXRlZCAoYm9vbCB2 YWwpCiAgIHsgc2htZW0tPnNoYXJlZF9mY19oYW5kbGVyX3VwZGF0ZWQgKHZhbCk7IH0KIAorICB2 b2lkIHJlbGVhc2Vfc2VsZWN0X3NlbSAoY29uc3QgY2hhciAqKTsKKwogcHVibGljOgogICBmaGFu ZGxlcl9maWZvICgpOwogICB+ZmhhbmRsZXJfZmlmbyAoKQpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5 Z3dpbi9maGFuZGxlcl9maWZvLmNjIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9maWZvLmNjCmlu ZGV4IDM3NDk4ZjU0Ny4uNDg5YmE1MjhjIDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2ZoYW5k bGVyX2ZpZm8uY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9maWZvLmNjCkBAIC0xMTg1 LDYgKzExODUsMjIgQEAgZmhhbmRsZXJfZmlmbzo6dGFrZV9vd25lcnNoaXAgKERXT1JEIHRpbWVv dXQpCiAgIHJldHVybiByZXQ7CiB9CiAKK3ZvaWQKK2ZoYW5kbGVyX2ZpZm86OnJlbGVhc2Vfc2Vs ZWN0X3NlbSAoY29uc3QgY2hhciAqZnJvbSkKK3sKKyAgTE9ORyBuX3JlbGVhc2U7CisgIGlmIChy ZWFkZXIpIC8qIE51bWJlciBvZiBzZWxlY3QoKSBjYWxsLiAqLworICAgIG5fcmVsZWFzZSA9IGdl dF9vYmpfaGFuZGxlX2NvdW50IChzZWxlY3Rfc2VtKQorICAgICAgLSBnZXRfb2JqX2hhbmRsZV9j b3VudCAocmVhZF9yZWFkeSk7CisgIGVsc2UgLyogTnVtYmVyIG9mIHNlbGVjdCgpIGFuZCByZWFk ZXIgKi8KKyAgICBuX3JlbGVhc2UgPSBnZXRfb2JqX2hhbmRsZV9jb3VudCAoc2VsZWN0X3NlbSkK KyAgICAgIC0gZ2V0X29ial9oYW5kbGVfY291bnQgKGdldF9oYW5kbGUgKCkpOworICBkZWJ1Z19w cmludGYoIiVzKCVzKSByZWxlYXNlICVkIiwgZnJvbSwKKwkgICAgICAgcmVhZGVyID8gInJlYWRl ciIgOiAid3JpdGVyIiwgbl9yZWxlYXNlKTsKKyAgaWYgKG5fcmVsZWFzZSkKKyAgICBSZWxlYXNl U2VtYXBob3JlIChzZWxlY3Rfc2VtLCBuX3JlbGVhc2UsIE5VTEwpOworfQorCiB2b2lkIF9fcmVn MwogZmhhbmRsZXJfZmlmbzo6cmF3X3JlYWQgKHZvaWQgKmluX3B0ciwgc2l6ZV90JiBsZW4pCiB7 CkBAIC0xMzcyLDcgKzEzODgsNyBAQCBvdXQ6CiAgIGZpZm9fY2xpZW50X3VubG9jayAoKTsKICAg cmVhZGluZ191bmxvY2sgKCk7CiAgIGlmIChzZWxlY3Rfc2VtKQotICAgIFJlbGVhc2VTZW1hcGhv cmUgKHNlbGVjdF9zZW0sIGdldF9vYmpfaGFuZGxlX2NvdW50IChzZWxlY3Rfc2VtKSwgTlVMTCk7 CisgICAgcmVsZWFzZV9zZWxlY3Rfc2VtICgicmF3X3JlYWQiKTsKIH0KIAogaW50IF9fcmVnMgpA QCAtMTQ4Myw2ICsxNDk5LDExIEBAIGZoYW5kbGVyX2ZpZm86OmNhbmNlbF9yZWFkZXJfdGhyZWFk ICgpCiBpbnQKIGZoYW5kbGVyX2ZpZm86OmNsb3NlICgpCiB7CisgIGlmIChzZWxlY3Rfc2VtKQor ICAgIHsKKyAgICAgIHJlbGVhc2Vfc2VsZWN0X3NlbSAoImNsb3NlIik7CisgICAgICBOdENsb3Nl IChzZWxlY3Rfc2VtKTsKKyAgICB9CiAgIGlmICh3cml0ZXIpCiAgICAgewogICAgICAgbndyaXRl cnNfbG9jayAoKTsKQEAgLTE1NzQsMTEgKzE1OTUsNiBAQCBmaGFuZGxlcl9maWZvOjpjbG9zZSAo KQogICAgIE50Q2xvc2UgKHdyaXRlX3JlYWR5KTsKICAgaWYgKHdyaXRlcl9vcGVuaW5nKQogICAg IE50Q2xvc2UgKHdyaXRlcl9vcGVuaW5nKTsKLSAgaWYgKHNlbGVjdF9zZW0pCi0gICAgewotICAg ICAgUmVsZWFzZVNlbWFwaG9yZSAoc2VsZWN0X3NlbSwgZ2V0X29ial9oYW5kbGVfY291bnQgKHNl bGVjdF9zZW0pLCBOVUxMKTsKLSAgICAgIE50Q2xvc2UgKHNlbGVjdF9zZW0pOwotICAgIH0KICAg aWYgKG5vaGFuZGxlICgpKQogICAgIHJldHVybiAwOwogICBlbHNlCmRpZmYgLS1naXQgYS93aW5z dXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUu Y2MKaW5kZXggYjdkNGNiNWNjLi43ZTVhYjMyOGMgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4v ZmhhbmRsZXJfcGlwZS5jYworKysgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MKQEAg LTIzMyw2ICsyMzMsMjIgQEAgZmhhbmRsZXJfcGlwZTo6Z2V0X3Byb2NfZmRfbmFtZSAoY2hhciAq YnVmKQogICByZXR1cm4gYnVmOwogfQogCit2b2lkCitmaGFuZGxlcl9waXBlOjpyZWxlYXNlX3Nl bGVjdF9zZW0gKGNvbnN0IGNoYXIgKmZyb20pCit7CisgIExPTkcgbl9yZWxlYXNlOworICBpZiAo Z2V0X2RldiAoKSA9PSBGSF9QSVBFUikgLyogTnVtYmVyIG9mIHNlbGVjdCgpIGFuZCB3cml0ZXIg Ki8KKyAgICBuX3JlbGVhc2UgPSBnZXRfb2JqX2hhbmRsZV9jb3VudCAoc2VsZWN0X3NlbSkKKyAg ICAgIC0gZ2V0X29ial9oYW5kbGVfY291bnQgKHJlYWRfbXR4KTsKKyAgZWxzZSAvKiBOdW1iZXIg b2Ygc2VsZWN0KCkgY2FsbCAqLworICAgIG5fcmVsZWFzZSA9IGdldF9vYmpfaGFuZGxlX2NvdW50 IChzZWxlY3Rfc2VtKQorICAgICAgLSBnZXRfb2JqX2hhbmRsZV9jb3VudCAocXVlcnlfaGRsKTsK KyAgZGVidWdfcHJpbnRmKCIlcyglcykgcmVsZWFzZSAlZCIsIGZyb20sCisJICAgICAgIGdldF9k ZXYgKCkgPT0gRkhfUElQRVIgPyAiUElQRVIiIDogIlBJUEVXIiwgbl9yZWxlYXNlKTsKKyAgaWYg KG5fcmVsZWFzZSkKKyAgICBSZWxlYXNlU2VtYXBob3JlIChzZWxlY3Rfc2VtLCBuX3JlbGVhc2Us IE5VTEwpOworfQorCiB2b2lkIF9fcmVnMwogZmhhbmRsZXJfcGlwZTo6cmF3X3JlYWQgKHZvaWQg KnB0ciwgc2l6ZV90JiBsZW4pCiB7CkBAIC0zMjQsOCArMzQwLDcgQEAgZmhhbmRsZXJfcGlwZTo6 cmF3X3JlYWQgKHZvaWQgKnB0ciwgc2l6ZV90JiBsZW4pCiAJICBwdHIgPSAoKGNoYXIgKikgcHRy KSArIG5ieXRlc19ub3c7CiAJICBuYnl0ZXMgKz0gbmJ5dGVzX25vdzsKIAkgIGlmIChzZWxlY3Rf c2VtICYmIG5ieXRlc19ub3cgPiAwKQotCSAgICBSZWxlYXNlU2VtYXBob3JlIChzZWxlY3Rfc2Vt LAotCQkJICAgICAgZ2V0X29ial9oYW5kbGVfY291bnQgKHNlbGVjdF9zZW0pLCBOVUxMKTsKKwkg ICAgcmVsZWFzZV9zZWxlY3Rfc2VtICgicmF3X3JlYWQiKTsKIAl9CiAgICAgICBlbHNlCiAJewpA QCAtNDk2LDggKzUxMSw3IEBAIGZoYW5kbGVyX3BpcGVfZmlmbzo6cmF3X3dyaXRlIChjb25zdCB2 b2lkICpwdHIsIHNpemVfdCBsZW4pCiAJICBwdHIgPSAoKGNoYXIgKikgcHRyKSArIG5ieXRlc19u b3c7CiAJICBuYnl0ZXMgKz0gbmJ5dGVzX25vdzsKIAkgIGlmIChzZWxlY3Rfc2VtICYmIG5ieXRl c19ub3cgPiAwKQotCSAgICBSZWxlYXNlU2VtYXBob3JlIChzZWxlY3Rfc2VtLAotCQkJICAgICAg Z2V0X29ial9oYW5kbGVfY291bnQgKHNlbGVjdF9zZW0pLCBOVUxMKTsKKwkgICAgcmVsZWFzZV9z ZWxlY3Rfc2VtICgicmF3X3dyaXRlIik7CiAJICAvKiAwIGJ5dGVzIHJldHVybmVkPyAgRUFHQUlO LiAgU2VlIGFib3ZlLiAqLwogCSAgaWYgKE5UX1NVQ0NFU1MgKHN0YXR1cykgJiYgbmJ5dGVzID09 IDApCiAJICAgIHNldF9lcnJubyAoRUFHQUlOKTsKQEAgLTU5MSwxMyArNjA1LDEzIEBAIGZoYW5k bGVyX3BpcGU6OmR1cCAoZmhhbmRsZXJfYmFzZSAqY2hpbGQsIGludCBmbGFncykKIGludAogZmhh bmRsZXJfcGlwZTo6Y2xvc2UgKCkKIHsKLSAgaWYgKHJlYWRfbXR4KQotICAgIENsb3NlSGFuZGxl IChyZWFkX210eCk7CiAgIGlmIChzZWxlY3Rfc2VtKQogICAgIHsKLSAgICAgIFJlbGVhc2VTZW1h cGhvcmUgKHNlbGVjdF9zZW0sIGdldF9vYmpfaGFuZGxlX2NvdW50IChzZWxlY3Rfc2VtKSwgTlVM TCk7CisgICAgICByZWxlYXNlX3NlbGVjdF9zZW0gKCJjbG9zZSIpOwogICAgICAgQ2xvc2VIYW5k bGUgKHNlbGVjdF9zZW0pOwogICAgIH0KKyAgaWYgKHJlYWRfbXR4KQorICAgIENsb3NlSGFuZGxl IChyZWFkX210eCk7CiAgIGlmIChxdWVyeV9oZGwpCiAgICAgQ2xvc2VIYW5kbGUgKHF1ZXJ5X2hk bCk7CiAgIHJldHVybiBmaGFuZGxlcl9iYXNlOjpjbG9zZSAoKTsKLS0gCjIuMzMuMAoK --Multipart=_Tue__14_Sep_2021_19_19_24_+0900_pgu+VM/tBIB5pRmF--