| delorie.com/archives/browse.cgi | search |
| DMARC-Filter: | OpenDMARC Filter v1.4.2 delorie.com 5B38vAnw3931145 |
| Authentication-Results: | delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com |
| Authentication-Results: | delorie.com; spf=pass smtp.mailfrom=cygwin.com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 delorie.com 5B38vAnw3931145 |
| Authentication-Results: | delorie.com; |
| dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=HEghgPFv | |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 72CFE4D108F5 |
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; |
| s=default; t=1764752228; | |
| bh=gytH5XCDxeTGBSTYFFOOTbEA2XwhSKAJQVZCWAuG0kQ=; | |
| h=Date:To:Subject:In-Reply-To:References:List-Id:List-Unsubscribe: | |
| List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: | |
| From; | |
| b=HEghgPFv22bL4cEk6FqxGAoMscnXCkKN7rLcxknsBeNeL4G11Nn9Ll9bnBlXkpCCW | |
| i92gtofrcbacDzA4RiimkDmgyj99cgxFAIuII6eU6Qjov23mz707MixRCLywdmb/Gl | |
| LBJywgyqJColJpBwksiuCbBLARpsujXKWUeRw660= | |
| X-Original-To: | cygwin AT cygwin DOT com |
| Delivered-To: | cygwin AT cygwin DOT com |
| DMARC-Filter: | OpenDMARC Filter v1.4.2 sourceware.org 937544D108C8 |
| ARC-Filter: | OpenARC Filter v1.0.0 sourceware.org 937544D108C8 |
| ARC-Seal: | i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1764752203; cv=none; |
| b=P9QH4F7M9usAlvnn37wt7R1CIsSrkvUQIQl5Gq1v8S/Ro+fnN9AUW1N92vYIYQETivEywrQMAUWDYRL/xPwTbBRvHaHA/Ev7bBNamU8K6tXc2zgtodVVpaXBpA6utvxu5RES6vNHKHag4C4//mrEDWCb9ec5RxAPBShF8qMq+Y8= | |
| ARC-Message-Signature: | i=1; a=rsa-sha256; d=sourceware.org; s=key; |
| t=1764752203; c=relaxed/simple; | |
| bh=hppTy1zZ0oXu7w68XjQSJuKyrRlMgrt3lzTfRcmXrHY=; | |
| h=Date:From:To:Subject:Message-Id:Mime-Version:DKIM-Signature; | |
| b=N8ai3mfjOrXcdEwYf2K7Xzw6pCEcgRWsevrbUmv5J8/0u9nK4rcFuvq1pfNLE2G4+XFbcJEaW3ZnJDA2Jkhky4SbGsgNVubXEo6HyiMV0hFpcDyhqqNdqvwkTQ67GrhJww55YvXeHYVzBTcOP5AhB4KCNc9lctUojbB6wFjwwRE= | |
| ARC-Authentication-Results: | i=1; server2.sourceware.org |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 937544D108C8 |
| Date: | Wed, 3 Dec 2025 17:56:38 +0900 |
| To: | cygwin AT cygwin DOT com |
| Subject: | Re: dynamic conpty loading |
| Message-Id: | <20251203175638.0b4f51242c8fdab685ad9b7e@nifty.ne.jp> |
| In-Reply-To: | <20251127172026.6b6f876fd341f9c0cbd1f876@nifty.ne.jp> |
| References: | <f52d9663-b210-497a-867b-5193b420ea0b AT towo DOT net> |
| <30deef29-ba20-49d9-9b38-28020941b0ef AT towo DOT net> | |
| <707f4d4c-a20d-4f1d-bdbd-65a2392dea15 AT towo DOT net> | |
| <20251121190433 DOT 4a37dc959848a0aea89a8922 AT nifty DOT ne DOT jp> | |
| <62f3c1ae-1fd9-477d-a837-d865094dab06 AT towo DOT net> | |
| <aSCXcoeDbrGOrUTu AT calimero DOT vinschen DOT de> | |
| <cc6b613b-1c02-41e3-b045-5b1723b706ab AT towo DOT net> | |
| <20251126193220 DOT 1b890f58a121add2f0d05fa5 AT nifty DOT ne DOT jp> | |
| <3a6ed5bc-24fd-42b0-9f57-83c8eb678a1b AT towo DOT net> | |
| <20251127172026 DOT 6b6f876fd341f9c0cbd1f876 AT nifty DOT ne DOT jp> | |
| X-Mailer: | Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) |
| Mime-Version: | 1.0 |
| X-BeenThere: | cygwin AT cygwin DOT com |
| X-Mailman-Version: | 2.1.30 |
| List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com> |
| List-Unsubscribe: | <https://cygwin.com/mailman/options/cygwin>, |
| <mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe> | |
| List-Archive: | <https://cygwin.com/pipermail/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help> |
| List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>, |
| <mailto:cygwin-request AT cygwin DOT com?subject=subscribe> | |
| From: | Takashi Yano via Cygwin <cygwin AT cygwin DOT com> |
| Reply-To: | Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp> |
| Errors-To: | cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com |
| Sender: | "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com> |
This is a multi-part message in MIME format.
--Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
On Thu, 27 Nov 2025 17:20:26 +0900
Takashi Yano via Cygwin <cygwin AT cygwin DOT com> wrote:
> On Wed, 26 Nov 2025 19:50:07 +0100
> Thomas Wolff wrote:
> >
> > Am 26.11.2025 um 11:32 schrieb Takashi Yano via Cygwin:
> > > On Fri, 21 Nov 2025 17:58:01 +0100
> > > Thomas Wolff wrote:
> > >
> > >> Am 21.11.2025 um 17:46 schrieb Corinna Vinschen via Cygwin:
> > >>> Hi Thomas,
> > >>>
> > >>> On Nov 21 16:46, Thomas Wolff via Cygwin wrote:
> > >>>> Am 21.11.2025 um 11:04 schrieb Takashi Yano via Cygwin:
> > >>>>> On Sun, 5 Oct 2025 10:15:55 +0200
> > >>>>> Thomas Wolff wrote:
> > >>>>>>>> The procedure seems to be:
> > >>>>>>>> try LoadLibrary("conpty.dll"), (if not successful, fallback to
> > >>>>>>>> GetModuleHandle("kernel32") instead) to retrieve GetProcAddress for
> > >>>>>>>> CreatePseudoConsole, ResizePseudoConsole, ClosePseudoConsole, and
> > >>>>>>>> then somehow (?) use those while calling CreateProcess.
> > >>>>>>>> The latter is woven into the cygwin library and I don't think it's a
> > >>>>>>>> good idea to clone that out of cygwin for a patched process creation
> > >>>>>>>> in mintty.
> > >>>>>>>>
> > >>>>>>>> My question/suggestion:
> > >>>>>>>> Can a cygwin mode switch to a selected conpty library instead of the
> > >>>>>>>> default one please?
> > >>> Where do you expect this conpty.dll to reside?
> > >>>
> > >>> If we do something like that, I would suggest to make sure that this
> > >>> conpty.dll is in a well-defined place. /bin or /lib might be a good
> > >>> idea. And if it exists in this defined place, it will be used by Cygwin.
> > >>>
> > >>> We can tweak the autoload mechanism to allow a primary DLL and a fallback
> > >>> DLL, that drops the need to set the CYWIN env var.
> > >>>
> > >>> The mintty package could contain a post-install script, or some other
> > >>> script in /bin to allow a user with admin rights downloading the latest
> > >>> (or the most sensible) conpty.dll from MSFT.
> > >>>
> > >>> Would that make sense?
> > >>>
> > >>>
> > >>> Corinna
> > >>>
> > >> That makes much sense, yes, thank you. /bin/conpty.dll would probably be
> > >> a good place.
> > > I checked the source of conpty.dll
> > > https://github.com/microsoft/terminal/blob/main/src/winconpty/winconpty.cpp
> > >
> > > conpty.dll seems to launch OpenConsole.exe in the directory where
> > > WindowsTerminal is installed.
> > > However, BUILTIN\Users does not have permission to execute OpenConsole.exe.
> > >
> > > Do you have some idea how to solve this problem?
> > > WindowsTerminal itself can launch OpenConsole.exe, so there should be
> > > some solutions, I think.
> > Did you install the nuget package? It can be extracted with zip, so you
> > can install OpenConsole as a normal program...
> > I did not find a way, though, to invoke it explicitly so that it would
> > solve the pty interworking problems.
>
> Thanks.
>
> I've made an experimental patch against fhandler/pty.cc and
> draft package named openconsole that installs official OpenConsole.exe
> binary into /usr/bin.
>
> I confirmed the patch with openconsole package enables the mouse
> support for vim91 and neovim 0.8.0 (native windows binary) in
> pseudo console.
pty patch and openconsole package files are revised.
> Any comments and suggestions would be appreciated.
--
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
--Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY
Content-Type: text/plain;
name="v2-0001-Cygwin-pty-Experimental-OpenConsole.exe-support.patch"
Content-Disposition: attachment;
filename="v2-0001-Cygwin-pty-Experimental-OpenConsole.exe-support.patch"
Content-Transfer-Encoding: base64
RnJvbSAyODU3MGJkNDY0NDQ2ZWIzMjdiNTg4YjYyM2Y3MGY4Y2Y4ZjQ2YjNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQ0KRnJvbTogVGFrYXNoaSBZYW5vIDx0YWthc2hpLnlhbm9AbmlmdHkubmUu
anA+DQpEYXRlOiBUaHUsIDI3IE5vdiAyMDI1IDE1OjUyOjEyICswOTAwDQpTdWJqZWN0OiBbUEFU
Q0ggdjJdIEN5Z3dpbjogcHR5OiBFeHBlcmltZW50YWwgT3BlbkNvbnNvbGUuZXhlIHN1cHBvcnQN
Cg0KU2lnbmVkLW9mZi1ieTogVGFrYXNoaSBZYW5vIDx0YWthc2hpLnlhbm9AbmlmdHkubmUuanA+
DQotLS0NCiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyL3B0eS5jYyB8IDI4MSArKysrKysrKysrKysr
KysrKysrKysrKysrKysrKystLS0tDQogMSBmaWxlIGNoYW5nZWQsIDI1MSBpbnNlcnRpb25zKCsp
LCAzMCBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIv
cHR5LmNjIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlci9wdHkuY2MNCmluZGV4IDY3OTA2OGVhMi4u
MmM5YWYxNzQyIDEwMDY0NA0KLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlci9wdHkuY2MNCisr
KyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIvcHR5LmNjDQpAQCAtMzMsNiArMzMsMTM2IEBAIGRl
dGFpbHMuICovDQogI2RlZmluZSBQUk9DX1RIUkVBRF9BVFRSSUJVVEVfUFNFVURPQ09OU09MRSAw
eDAwMDIwMDE2DQogI2VuZGlmIC8qIFBST0NfVEhSRUFEX0FUVFJJQlVURV9QU0VVRE9DT05TT0xF
ICovDQogDQorc3RhdGljIE5UU1RBVFVTDQorY3JlYXRlX2hhbmRsZSAoUEhBTkRMRSBoYW5kbGUs
IFBDV1NUUiBkZXZpY2VfbmFtZSwNCisJICAgICAgIEFDQ0VTU19NQVNLIGRlc2lyZWRfYWNjZXNz
LCBIQU5ETEUgcGFyZW50LA0KKwkgICAgICAgQk9PTEVBTiBpbmhlcml0YWJsZSwgVUxPTkcgb3Bl
bl9vcHRpb25zKQ0KK3sNCisgIFVMT05HIGZsYWdzID0gT0JKX0NBU0VfSU5TRU5TSVRJVkU7DQor
ICBpZiAoaW5oZXJpdGFibGUpDQorICAgIGZsYWdzIHw9IE9CSl9JTkhFUklUOw0KKw0KKyAgVU5J
Q09ERV9TVFJJTkcgbmFtZTsNCisgIFJ0bEluaXRVbmljb2RlU3RyaW5nICgmbmFtZSwgZGV2aWNl
X25hbWUpOw0KKw0KKyAgT0JKRUNUX0FUVFJJQlVURVMgb2JqZWN0X2F0dHJpYnV0ZXM7DQorICBJ
bml0aWFsaXplT2JqZWN0QXR0cmlidXRlcyAoJm9iamVjdF9hdHRyaWJ1dGVzLCAmbmFtZSwgZmxh
Z3MsIHBhcmVudCwgTlVMTCk7DQorDQorICBJT19TVEFUVVNfQkxPQ0sgaW87DQorICByZXR1cm4g
TnRPcGVuRmlsZSAoaGFuZGxlLCBkZXNpcmVkX2FjY2VzcywgJm9iamVjdF9hdHRyaWJ1dGVzLCAm
aW8sDQorCQkgICAgIEZJTEVfU0hBUkVfUkVBRCB8IEZJTEVfU0hBUkVfV1JJVEUgfCBGSUxFX1NI
QVJFX0RFTEVURSwNCisJCSAgICAgb3Blbl9vcHRpb25zKTsNCit9DQorDQorZXh0ZXJuICJDIiBX
SU5CQVNFQVBJIEhSRVNVTFQgV0lOQVBJDQorQ3JlYXRlUHNldWRvQ29uc29sZV9uZXcgKENPT1JE
IHNpemUsIEhBTkRMRSBoX2lucHV0LCBIQU5ETEUgaF9vdXRwdXQsDQorCQkJIERXT1JEIGZsYWdz
LCBIUENPTiAqaHBjb24pDQorew0KKw0KKyAgSEFORExFIGhfY29uX3NlcnZlciwgaF9jb25fcmVm
ZXJlbmNlOw0KKyAgTlRTVEFUVVMgc3RhdHVzOw0KKyAgQk9PTCByZXM7DQorICBIQU5ETEUgaF9y
ZWFkX3BpcGUsIGhfd3JpdGVfcGlwZTsNCisgIEJPT0wgaW5oZXJpdF9jdXJzb3I7DQorICBwYXRo
X2NvbnYgY29uaG9zdCAoIi91c3IvYmluL09wZW5Db25zb2xlLmV4ZSIpOw0KKyAgc2l6ZV90IGxl
bjsNCisgIEhBTkRMRSBpbmhlcml0ZWRfaGFuZGxlc1s0XTsNCisgIFNUQVJUVVBJTkZPRVhXIHNp
ID0gezAsIH07DQorICBQUk9DRVNTX0lORk9STUFUSU9OIHBpOw0KKyAgU0laRV9UIGxpc3Rfc2l6
ZSA9IDA7DQorICBMUFBST0NfVEhSRUFEX0FUVFJJQlVURV9MSVNUIGF0dHJfbGlzdDsNCisgIEhQ
Q09OX0lOVEVSTkFMICpocGNvbl9pbnRlcm5hbDsNCisNCisgIHN0YXR1cyA9IGNyZWF0ZV9oYW5k
bGUgKCZoX2Nvbl9zZXJ2ZXIsIEwiXFxEZXZpY2VcXENvbkRydlxcU2VydmVyIiwNCisJCQkgIEdF
TkVSSUNfQUxMLCBOVUxMLCBUUlVFLCAwKTsNCisgIGlmICghTlRfU1VDQ0VTUyAoc3RhdHVzKSkN
CisgICAgZ290byBjbGVhbnVwOw0KKyAgc3RhdHVzID0gY3JlYXRlX2hhbmRsZSAoJmhfY29uX3Jl
ZmVyZW5jZSwgTCJcXFJlZmVyZW5jZSIsDQorCQkJIEdFTkVSSUNfUkVBRCB8IEdFTkVSSUNfV1JJ
VEUgfCBTWU5DSFJPTklaRSwNCisJCQkgaF9jb25fc2VydmVyLCBGQUxTRSwgRklMRV9TWU5DSFJP
Tk9VU19JT19OT05BTEVSVCk7DQorICBpZiAoIU5UX1NVQ0NFU1MgKHN0YXR1cykpDQorICAgIGdv
dG8gY2xlYW51cF9oX2Nvbl9zZXJ2ZXI7DQorDQorICByZXMgPSBDcmVhdGVQaXBlICgmaF9yZWFk
X3BpcGUsICZoX3dyaXRlX3BpcGUsICZzZWNfbm9uZSwgMCk7DQorICBpZiAoIXJlcykNCisgICAg
Z290byBjbGVhbnVwX2hfY29uX3JlZmVyZW5jZTsNCisgIHJlcyA9IFNldEhhbmRsZUluZm9ybWF0
aW9uIChoX3JlYWRfcGlwZSwNCisJCQkgICAgICBIQU5ETEVfRkxBR19JTkhFUklULCBIQU5ETEVf
RkxBR19JTkhFUklUKTsNCisgIGlmICghcmVzKQ0KKyAgICBnb3RvIGNsZWFudXBfcGlwZTsNCisN
CisgIGluaGVyaXRfY3Vyc29yID0gKGZsYWdzICYgUFNFVURPQ09OU09MRV9JTkhFUklUX0NVUlNP
UikgPyBUUlVFIDogRkFMU0U7DQorDQorICBXQ0hBUiBjbWRbTUFYX1BBVEhdOw0KKyAgbGVuID0g
Y29uaG9zdC5nZXRfd2lkZV93aW4zMl9wYXRoX2xlbiAoKTsNCisgIGNvbmhvc3QuZ2V0X3dpZGVf
d2luMzJfcGF0aCAoY21kKTsNCisgIF9fc21hbGxfc3dwcmludGYgKGNtZCArIGxlbiwNCisJCSAg
ICBMIiAtLWhlYWRsZXNzICVXIg0KKwkJICAgICItLXdpZHRoICVkIC0taGVpZ2h0ICVkIC0tc2ln
bmFsIDB4JXggLS1zZXJ2ZXIgMHgleCIsDQorCQkgICAgaW5oZXJpdF9jdXJzb3IgPyBMIi0taW5o
ZXJpdGN1cnNvciAiIDogTCIiLA0KKwkJICAgIHNpemUuWCwgc2l6ZS5ZLCBoX3JlYWRfcGlwZSwg
aF9jb25fc2VydmVyKTsNCisNCisgIHNpLlN0YXJ0dXBJbmZvLmNiID0gc2l6ZW9mIChTVEFSVFVQ
SU5GT0VYVyk7DQorICBzaS5TdGFydHVwSW5mby5oU3RkSW5wdXQgPSBoX2lucHV0Ow0KKyAgc2ku
U3RhcnR1cEluZm8uaFN0ZE91dHB1dCA9IGhfb3V0cHV0Ow0KKyAgc2kuU3RhcnR1cEluZm8uaFN0
ZEVycm9yID0gaF9vdXRwdXQ7DQorICBzaS5TdGFydHVwSW5mby5kd0ZsYWdzIHw9IFNUQVJURl9V
U0VTVERIQU5ETEVTOw0KKw0KKyAgaW5oZXJpdGVkX2hhbmRsZXNbMF0gPSBoX2Nvbl9zZXJ2ZXI7
DQorICBpbmhlcml0ZWRfaGFuZGxlc1sxXSA9IGhfaW5wdXQ7DQorICBpbmhlcml0ZWRfaGFuZGxl
c1syXSA9IGhfb3V0cHV0Ow0KKyAgaW5oZXJpdGVkX2hhbmRsZXNbM10gPSBoX3JlYWRfcGlwZTsN
CisNCisgIEluaXRpYWxpemVQcm9jVGhyZWFkQXR0cmlidXRlTGlzdCAoTlVMTCwgMSwgMCwgJmxp
c3Rfc2l6ZSk7DQorICBhdHRyX2xpc3QgPQ0KKyAgICAoTFBQUk9DX1RIUkVBRF9BVFRSSUJVVEVf
TElTVCkgSGVhcEFsbG9jIChHZXRQcm9jZXNzSGVhcCAoKSwgMCwgbGlzdF9zaXplKTsNCisgIGlm
ICghYXR0cl9saXN0KQ0KKyAgICBnb3RvIGNsZWFudXBfcGlwZTsNCisNCisgIHNpLmxwQXR0cmli
dXRlTGlzdCA9IGF0dHJfbGlzdDsNCisgIEluaXRpYWxpemVQcm9jVGhyZWFkQXR0cmlidXRlTGlz
dCAoc2kubHBBdHRyaWJ1dGVMaXN0LCAxLCAwLCAmbGlzdF9zaXplKTsNCisgIFVwZGF0ZVByb2NU
aHJlYWRBdHRyaWJ1dGUgKHNpLmxwQXR0cmlidXRlTGlzdCwgMCwNCisJCQkgICAgIFBST0NfVEhS
RUFEX0FUVFJJQlVURV9IQU5ETEVfTElTVCwNCisJCQkgICAgIGluaGVyaXRlZF9oYW5kbGVzLCBz
aXplb2YgKGluaGVyaXRlZF9oYW5kbGVzKSwNCisJCQkgICAgIE5VTEwsIE5VTEwpOw0KKw0KKw0K
KyAgcmVzID0gQ3JlYXRlUHJvY2Vzc1cgKE5VTEwsIGNtZCwgTlVMTCwgTlVMTCwNCisJCQlUUlVF
LCBFWFRFTkRFRF9TVEFSVFVQSU5GT19QUkVTRU5ULA0KKwkJCU5VTEwsIE5VTEwsICZzaS5TdGFy
dHVwSW5mbywgJnBpKTsNCisgIGlmICghcmVzKQ0KKyAgICBnb3RvIGNsZWFudXBfaGVhcDsNCisN
CisgIGhwY29uX2ludGVybmFsID0gKEhQQ09OX0lOVEVSTkFMICopDQorICAgIEhlYXBBbGxvYyAo
R2V0UHJvY2Vzc0hlYXAgKCksIDAsIHNpemVvZiAoSFBDT05fSU5URVJOQUwpKTsNCisgIGlmICgh
aHBjb25faW50ZXJuYWwpDQorICAgIGdvdG8gY2xlYW51cF9oZWFwOw0KKyAgaHBjb25faW50ZXJu
YWwtPmhXcml0ZVBpcGUgPSBoX3dyaXRlX3BpcGU7DQorICBocGNvbl9pbnRlcm5hbC0+aENvbkRy
dlJlZmVyZW5jZSA9IGhfY29uX3JlZmVyZW5jZTsNCisgIGhwY29uX2ludGVybmFsLT5oQ29uSG9z
dFByb2Nlc3MgPSBwaS5oUHJvY2VzczsNCisgICpocGNvbiA9IChIUENPTikgaHBjb25faW50ZXJu
YWw7DQorDQorICBIZWFwRnJlZSAoR2V0UHJvY2Vzc0hlYXAoKSwgMCwgYXR0cl9saXN0KTsNCisg
IENsb3NlSGFuZGxlIChoX2Nvbl9zZXJ2ZXIpOw0KKyAgQ2xvc2VIYW5kbGUgKHBpLmhUaHJlYWQp
Ow0KKyAgQ2xvc2VIYW5kbGUgKHBpLmhQcm9jZXNzKTsNCisNCisgIHJldHVybiBTX09LOw0KKw0K
K2NsZWFudXBfaGVhcDoNCisgIEhlYXBGcmVlIChHZXRQcm9jZXNzSGVhcCgpLCAwLCBhdHRyX2xp
c3QpOw0KK2NsZWFudXBfcGlwZToNCisgIENsb3NlSGFuZGxlIChoX3JlYWRfcGlwZSk7DQorICBD
bG9zZUhhbmRsZSAoaF93cml0ZV9waXBlKTsNCitjbGVhbnVwX2hfY29uX3JlZmVyZW5jZToNCisg
IENsb3NlSGFuZGxlIChoX2Nvbl9yZWZlcmVuY2UpOw0KK2NsZWFudXBfaF9jb25fc2VydmVyOg0K
KyAgQ2xvc2VIYW5kbGUgKGhfY29uX3NlcnZlcik7DQorY2xlYW51cDoNCisgIHJldHVybiBFX0ZB
SUw7DQorfQ0KKw0KKw0KIGV4dGVybiAiQyIgaW50IHNzY2FuZiAoY29uc3QgY2hhciAqLCBjb25z
dCBjaGFyICosIC4uLik7DQogDQogI2RlZmluZSBjbG9zZV9tYXliZShoKSBcDQpAQCAtMjEzNiw2
ICsyMjY2LDggQEAgZmhhbmRsZXJfcHR5X21hc3Rlcjo6Y2xvc2UgKGludCBmbGFnKQ0KIHNzaXpl
X3QNCiBmaGFuZGxlcl9wdHlfbWFzdGVyOjp3cml0ZSAoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3Qg
bGVuKQ0KIHsNCisgIHNpemVfdCB0b3dyaXRlID0gbGVuOw0KKw0KICAgc3NpemVfdCByZXQ7DQog
ICBjaGFyICpwID0gKGNoYXIgKikgcHRyOw0KICAgdGVybWlvcyAmdGkgPSB0YyAoKS0+dGk7DQpA
QCAtMjE1Miw3ICsyMjg0LDcgQEAgZmhhbmRsZXJfcHR5X21hc3Rlcjo6d3JpdGUgKGNvbnN0IHZv
aWQgKnB0ciwgc2l6ZV90IGxlbikNCiAJIElmIHRoZSByZXBseSBmb3IgIkNTSTZuIiBpcyBkaXZp
ZGVkIGludG8gbXVsdGlwbGUgd3JpdGVzLA0KIAkgcHNldWRvIGNvbnNvbGUgc29tZXRpbWVzIGRv
ZXMgbm90IHJlY29nbml6ZSBpdC4gIFRoZXJlZm9yZSwNCiAJIHB1dCB0aGVtIHRvZ2V0aGVyIGlu
dG8gd3BidWYgYW5kIHdyaXRlIGFsbCBhdCBvbmNlLiAqLw0KLSAgICAgIHN0YXRpYyBjb25zdCBp
bnQgd3BidWZfbGVuID0gc3RybGVuICgiXDAzM1szMjc2ODszMjg2OFIiKTsNCisgICAgICBzdGF0
aWMgY29uc3QgaW50IHdwYnVmX2xlbiA9IDY0OyAvKiBmb3IgcmVzcG9uc2UgdG8gQ1NJNm4gbmFk
IENTSWMgKi8NCiAgICAgICBzdGF0aWMgY2hhciB3cGJ1Zlt3cGJ1Zl9sZW5dOw0KICAgICAgIHN0
YXRpYyBpbnQgaXhwdXQgPSAwOw0KICAgICAgIHN0YXRpYyBpbnQgc3RhdGUgPSAwOw0KQEAgLTIx
NzAsNiArMjMwMiw3IEBAIGZoYW5kbGVyX3B0eV9tYXN0ZXI6OndyaXRlIChjb25zdCB2b2lkICpw
dHIsIHNpemVfdCBsZW4pDQogCSAgICB9DQogCSAgaWYgKHN0YXRlID09IDEpDQogCSAgICB7DQor
CSAgICAgIHRvd3JpdGUtLTsNCiAJICAgICAgaWYgKGl4cHV0IDwgd3BidWZfbGVuKQ0KIAkJd3Bi
dWZbaXhwdXQrK10gPSBwW2ldOw0KIAkgICAgICBlbHNlDQpAQCAtMjE4MSwyMSArMjMxNCwyNyBA
QCBmaGFuZGxlcl9wdHlfbWFzdGVyOjp3cml0ZSAoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3QgbGVu
KQ0KIAkJfQ0KIAkgICAgfQ0KIAkgIGVsc2UNCi0JICAgIGxpbmVfZWRpdCAocCArIGksIDEsIHRp
LCAmcmV0KTsNCi0JICBpZiAoc3RhdGUgPT0gMSAmJiBwW2ldID09ICdSJykNCisJICAgIHsNCisJ
ICAgICAgaWYgKGl4cHV0KQ0KKwkJbGluZV9lZGl0ICh3cGJ1ZiwgaXhwdXQsIHRpLCAmcmV0KTsN
CisJICAgICAgZ2V0X3R0eXAgKCktPnBjb25fc3RhcnQgPSBmYWxzZTsNCisJICAgICAgcHRyID0g
cCArIGk7DQorCSAgICAgIGJyZWFrOw0KKwkgICAgfQ0KKwkgIGlmIChzdGF0ZSA9PSAxICYmIGlz
YWxwaGEocFtpXSkpDQogCSAgICBzdGF0ZSA9IDI7DQotCX0NCi0gICAgICBpZiAoc3RhdGUgPT0g
MikNCi0Jew0KLQkgIC8qIHJlcV94ZmVyX2lucHV0IGlzIHRydWUgaWYgIkVTQ1s2biIgd2FzIHNl
bnQganVzdCBmb3INCi0JICAgICB0cmlnZ2VyaW5nIHRyYW5zZmVyX2lucHV0KCkgaW4gbWFzdGVy
LiBJbiB0aGlzIGNhc2UsDQotCSAgICAgdGhlIHJlc3BvbmNlIHNlcXVlbmNlIHNob3VsZCBub3Qg
YmUgd3JpdHRlbi4gKi8NCi0JICBpZiAoIWdldF90dHlwICgpLT5yZXFfeGZlcl9pbnB1dCkNCi0J
ICAgIFdyaXRlRmlsZSAodG9fc2xhdmVfbmF0LCB3cGJ1ZiwgaXhwdXQsICZuLCBOVUxMKTsNCi0J
ICBpeHB1dCA9IDA7DQotCSAgc3RhdGUgPSAwOw0KLQkgIGdldF90dHlwICgpLT5yZXFfeGZlcl9p
bnB1dCA9IGZhbHNlOw0KLQkgIGdldF90dHlwICgpLT5wY29uX3N0YXJ0ID0gZmFsc2U7DQorCSAg
aWYgKHN0YXRlID09IDIpDQorCSAgICB7DQorCSAgICAgIC8qIHJlcV94ZmVyX2lucHV0IGlzIHRy
dWUgaWYgIkVTQ1s2biIgd2FzIHNlbnQganVzdCBmb3INCisJCSB0cmlnZ2VyaW5nIHRyYW5zZmVy
X2lucHV0KCkgaW4gbWFzdGVyLiBJbiB0aGlzIGNhc2UsDQorCQkgdGhlIHJlc3BvbmNlIHNlcXVl
bmNlIHNob3VsZCBub3QgYmUgd3JpdHRlbi4gKi8NCisJICAgICAgaWYgKCFnZXRfdHR5cCAoKS0+
cmVxX3hmZXJfaW5wdXQpDQorCQlXcml0ZUZpbGUgKHRvX3NsYXZlX25hdCwgd3BidWYsIGl4cHV0
LCAmbiwgTlVMTCk7DQorCSAgICAgIGlmIChwW2ldID09ICdSJykNCisJCWdldF90dHlwICgpLT5y
ZXFfeGZlcl9pbnB1dCA9IGZhbHNlOw0KKwkgICAgICBpeHB1dCA9IDA7DQorCSAgICAgIHN0YXRl
ID0gMDsNCisJICAgIH0NCiAJfQ0KICAgICAgIFJlbGVhc2VNdXRleCAoaW5wdXRfbXV0ZXgpOw0K
IA0KQEAgLTIyMTksOCArMjM1OCw4IEBAIGZoYW5kbGVyX3B0eV9tYXN0ZXI6OndyaXRlIChjb25z
dCB2b2lkICpwdHIsIHNpemVfdCBsZW4pDQogCSAgICB9DQogCSAgZ2V0X3R0eXAgKCktPnBjb25f
c3RhcnRfcGlkID0gMDsNCiAJfQ0KLQ0KLSAgICAgIHJldHVybiBsZW47DQorICAgICAgaWYgKHRv
d3JpdGUgPT0gMCkNCisJcmV0dXJuIGxlbjsNCiAgICAgfQ0KIA0KICAgLyogV3JpdGUgdGVybWlu
YWwgaW5wdXQgdG8gdG9fc2xhdmVfbmF0IHBpcGUgaW5zdGVhZCBvZiBvdXRwdXRfaGFuZGxlDQpA
QCAtMjIzMiwxNCArMjM3MSwxNCBAQCBmaGFuZGxlcl9wdHlfbWFzdGVyOjp3cml0ZSAoY29uc3Qg
dm9pZCAqcHRyLCBzaXplX3QgbGVuKQ0KIAkgaXMgYWN0aXZhdGVkLiAqLw0KICAgICAgIHRtcF9w
YXRoYnVmIHRwOw0KICAgICAgIGNoYXIgKmJ1ZiA9IChjaGFyICopIHB0cjsNCi0gICAgICBzaXpl
X3QgbmxlbiA9IGxlbjsNCisgICAgICBzaXplX3QgbmxlbiA9IHRvd3JpdGU7DQogICAgICAgaWYg
KGdldF90dHlwICgpLT50ZXJtX2NvZGVfcGFnZSAhPSBDUF9VVEY4KQ0KIAl7DQogCSAgc3RhdGlj
IG1ic3RhdGVfdCBtYnA7DQogCSAgYnVmID0gdHAuY19nZXQgKCk7DQogCSAgbmxlbiA9IE5UX01B
WF9QQVRIOw0KIAkgIGNvbnZlcnRfbWJfc3RyIChDUF9VVEY4LCBidWYsICZubGVuLA0KLQkJCSAg
Z2V0X3R0eXAgKCktPnRlcm1fY29kZV9wYWdlLCAoY29uc3QgY2hhciAqKSBwdHIsIGxlbiwNCisJ
CQkgIGdldF90dHlwICgpLT50ZXJtX2NvZGVfcGFnZSwgKGNvbnN0IGNoYXIgKikgcHRyLCBubGVu
LA0KIAkJCSAgJm1icCk7DQogCX0NCiANCkBAIC0yMjU1LDggKzIzOTQsNTAgQEAgZmhhbmRsZXJf
cHR5X21hc3Rlcjo6d3JpdGUgKGNvbnN0IHZvaWQgKnB0ciwgc2l6ZV90IGxlbikNCiAJICAgIH0N
CiAJfQ0KIA0KKyAgICAgIGNoYXIgKmJzX3BvcyA9IChjaGFyICopIG1lbWNociAoYnVmLCAnXDAx
MCcgLyogXkggKi8sIG5sZW4pOw0KKyAgICAgIEhBTkRMRSBwY29uX293bmVyID0gTlVMTDsNCisg
ICAgICBIQU5ETEUgaF9wY29uX2luID0gTlVMTDsNCisgICAgICBEV09SRCByZXN1bWVfcGlkID0g
MDsNCisgICAgICBpZiAoYnNfcG9zKQ0KKwl7DQorCSAgcGNvbl9vd25lciA9IE9wZW5Qcm9jZXNz
IChQUk9DRVNTX0RVUF9IQU5ETEUsIEZBTFNFLA0KKwkJCQkgICAgZ2V0X3R0eXAgKCktPm5hdF9w
aXBlX293bmVyX3BpZCk7DQorCSAgRHVwbGljYXRlSGFuZGxlIChwY29uX293bmVyLCBnZXRfdHR5
cCAoKS0+aF9wY29uX2luLA0KKwkJCSAgIEdldEN1cnJlbnRQcm9jZXNzICgpLCAmaF9wY29uX2lu
LA0KKwkJCSAgIDAsIEZBTFNFLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpOw0KKwkgIHJlc3VtZV9w
aWQgPQ0KKwkgICAgYXR0YWNoX2NvbnNvbGVfdGVtcG9yYXJpbHkgKGdldF90dHlwKCktPm5hdF9w
aXBlX293bmVyX3BpZCk7DQorCX0NCisNCiAgICAgICBEV09SRCBuOw0KLSAgICAgIFdyaXRlRmls
ZSAodG9fc2xhdmVfbmF0LCBidWYsIG5sZW4sICZuLCBOVUxMKTsNCisgICAgICB3aGlsZSAoYnNf
cG9zKQ0KKwl7DQorCSAgaWYgKGJzX3BvcyAtIGJ1ZiA+IDApDQorCSAgICBXcml0ZUZpbGUgKHRv
X3NsYXZlX25hdCwgYnVmLCBic19wb3MgLSBidWYsICZuLCBOVUxMKTsNCisJICBJTlBVVF9SRUNP
UkQgcjsNCisJICByLkV2ZW50VHlwZSA9IEtFWV9FVkVOVDsNCisJICByLkV2ZW50LktleUV2ZW50
LmJLZXlEb3duID0gMTsNCisJICByLkV2ZW50LktleUV2ZW50LndSZXBlYXRDb3VudCA9IDA7DQor
CSAgci5FdmVudC5LZXlFdmVudC53VmlydHVhbEtleUNvZGUgPSAwOw0KKwkgIHIuRXZlbnQuS2V5
RXZlbnQud1ZpcnR1YWxTY2FuQ29kZSA9IDA7DQorCSAgci5FdmVudC5LZXlFdmVudC51Q2hhci5B
c2NpaUNoYXIgPSAnXDAxMCc7IC8qIF5IICovDQorCSAgci5FdmVudC5LZXlFdmVudC5kd0NvbnRy
b2xLZXlTdGF0ZSA9IExFRlRfQ1RSTF9QUkVTU0VEOw0KKwkgIFdyaXRlQ29uc29sZUlucHV0KGhf
cGNvbl9pbiwgJnIsIDEsICZuKTsNCisJICByLkV2ZW50LktleUV2ZW50LmJLZXlEb3duID0gMDsN
CisJICBXcml0ZUNvbnNvbGVJbnB1dChoX3Bjb25faW4sICZyLCAxLCAmbik7DQorCSAgbmxlbiAt
PSBic19wb3MgLSBidWYgKyAxOw0KKwkgIGJ1ZiA9IGJzX3BvcyArIDE7DQorCSAgYnNfcG9zID0g
KGNoYXIgKikgbWVtY2hyIChidWYsICdcMDEwJyAvKiBeSCAqLywgbmxlbik7DQorCX0NCisgICAg
ICBpZiAobmxlbiA+IDApDQorCVdyaXRlRmlsZSAodG9fc2xhdmVfbmF0LCBidWYsIG5sZW4sICZu
LCBOVUxMKTsNCisNCisgICAgICBpZiAocmVzdW1lX3BpZCkNCisJcmVzdW1lX2Zyb21fdGVtcG9y
YXJpbHlfYXR0YWNoIChyZXN1bWVfcGlkKTsNCisgICAgICBpZiAoaF9wY29uX2luKQ0KKwlDbG9z
ZUhhbmRsZShoX3Bjb25faW4pOw0KKyAgICAgIGlmIChwY29uX293bmVyKQ0KKwlDbG9zZUhhbmRs
ZShwY29uX293bmVyKTsNCiAgICAgICBSZWxlYXNlTXV0ZXggKGlucHV0X211dGV4KTsNCiANCiAg
ICAgICByZXR1cm4gbGVuOw0KQEAgLTIzMDIsMTEgKzI0ODMsMzAgQEAgaW50DQogZmhhbmRsZXJf
cHR5X21hc3Rlcjo6dGNnZXRhdHRyIChzdHJ1Y3QgdGVybWlvcyAqdCkNCiB7DQogICAqdCA9IGN5
Z3dpbl9zaGFyZWQtPnR0eVtnZXRfbWlub3IgKCldLT50aTsNCi0gIC8qIFdvcmthcm91bmQgZm9y
IHJsd3JhcCB2MC40MCBvciBsYXRlciAqLw0KLSAgaWYgKGdldF90dHlwICgpLT5wY29uX3N0YXJ0
KQ0KLSAgICB0LT5jX2xmbGFnICY9IH4oSUNBTk9OIHwgRUNITyk7DQorDQogICBpZiAoZ2V0X3R0
eXAgKCktPnBjb25fYWN0aXZhdGVkKQ0KLSAgICB0LT5jX2lmbGFnICY9IH5JQ1JOTDsNCisgICAg
ew0KKyAgICAgIHQtPmNfbGZsYWcgJj0gfihJQ0FOT04gfCBFQ0hPKTsNCisgICAgICB0LT5jX2lm
bGFnICY9IH5JQ1JOTDsNCisNCisgICAgICBIQU5ETEUgcGNvbl9vd25lciA9IE9wZW5Qcm9jZXNz
IChQUk9DRVNTX0RVUF9IQU5ETEUsIEZBTFNFLA0KKwkJCQkgICAgICAgZ2V0X3R0eXAgKCktPm5h
dF9waXBlX293bmVyX3BpZCk7DQorICAgICAgSEFORExFIGhfcGNvbl9pbjsNCisgICAgICBEdXBs
aWNhdGVIYW5kbGUgKHBjb25fb3duZXIsIGdldF90dHlwICgpLT5oX3Bjb25faW4sDQorCQkgICAg
ICAgR2V0Q3VycmVudFByb2Nlc3MgKCksICZoX3Bjb25faW4sDQorCQkgICAgICAgMCwgRkFMU0Us
IERVUExJQ0FURV9TQU1FX0FDQ0VTUyk7DQorICAgICAgRFdPUkQgcmVzdW1lX3BpZCA9DQorCWF0
dGFjaF9jb25zb2xlX3RlbXBvcmFyaWx5IChnZXRfdHR5cCgpLT5uYXRfcGlwZV9vd25lcl9waWQp
Ow0KKyAgICAgIERXT1JEIG1vZGU7DQorICAgICAgR2V0Q29uc29sZU1vZGUgKGhfcGNvbl9pbiwg
Jm1vZGUpOw0KKyAgICAgIHJlc3VtZV9mcm9tX3RlbXBvcmFyaWx5X2F0dGFjaCAocmVzdW1lX3Bp
ZCk7DQorICAgICAgQ2xvc2VIYW5kbGUgKGhfcGNvbl9pbik7DQorICAgICAgQ2xvc2VIYW5kbGUg
KHBjb25fb3duZXIpOw0KKyAgICAgIGlmIChtb2RlICYgRU5BQkxFX0xJTkVfSU5QVVQpDQorCXQt
PmNfbGZsYWcgfD0gSUNBTk9OOw0KKyAgICAgIGlmIChtb2RlICYgRU5BQkxFX0VDSE9fSU5QVVQp
DQorCXQtPmNfbGZsYWcgfD0gRUNITzsNCisgICAgfQ0KICAgcmV0dXJuIDA7DQogfQ0KIA0KQEAg
LTI2ODAsNyArMjg4MCw3IEBAIGZoYW5kbGVyX3B0eV9tYXN0ZXI6OnB0eV9tYXN0ZXJfZndkX3Ro
cmVhZCAoY29uc3QgbWFzdGVyX2Z3ZF90aHJlYWRfcGFyYW1fdCAqcCkNCiAJICBpbnQgc3RhdGUg
PSAwOw0KIAkgIGludCBzdGFydF9hdCA9IDA7DQogCSAgZm9yIChEV09SRCBpPTA7IGk8cmxlbjsg
aSsrKQ0KLQkgICAgaWYgKG91dGJ1ZltpXSA9PSAnXDAzMycpDQorCSAgICBpZiAoc3RhdGUgPT0g
MCAmJiBvdXRidWZbaV0gPT0gJ1wwMzMnKQ0KIAkgICAgICB7DQogCQlzdGFydF9hdCA9IGk7DQog
CQlzdGF0ZSA9IDE7DQpAQCAtMjY4OCwxMiArMjg4OCwxNCBAQCBmaGFuZGxlcl9wdHlfbWFzdGVy
OjpwdHlfbWFzdGVyX2Z3ZF90aHJlYWQgKGNvbnN0IG1hc3Rlcl9md2RfdGhyZWFkX3BhcmFtX3Qg
KnApDQogCSAgICAgIH0NCiAJICAgIGVsc2UgaWYgKChzdGF0ZSA9PSAxICYmIG91dGJ1ZltpXSA9
PSAnXScpIHx8DQogCQkgICAgIChzdGF0ZSA9PSAyICYmIG91dGJ1ZltpXSA9PSAnMCcpIHx8DQot
CQkgICAgIChzdGF0ZSA9PSAzICYmIG91dGJ1ZltpXSA9PSAnOycpKQ0KKwkJICAgICAoc3RhdGUg
PT0gMyAmJiBvdXRidWZbaV0gPT0gJzsnKSB8fA0KKwkJICAgICAoc3RhdGUgPT0gNCAmJiBvdXRi
dWZbaV0gPT0gJ1wwMzMnKSkNCiAJICAgICAgew0KIAkJc3RhdGUgKys7DQogCQljb250aW51ZTsN
CiAJICAgICAgfQ0KLQkgICAgZWxzZSBpZiAoc3RhdGUgPT0gNCAmJiBvdXRidWZbaV0gPT0gJ1xh
JykNCisJICAgIGVsc2UgaWYgKChzdGF0ZSA9PSA0ICYmIG91dGJ1ZltpXSA9PSAnXGEnKQ0KKwkJ
ICAgICB8fCAoc3RhdGUgPT0gNSAmJiBvdXRidWZbaV0gPT0gJ1xcJykpDQogCSAgICAgIHsNCiAJ
CWNvbnN0IGNoYXIgKmhlbHBlcl9zdHIgPSAiXFxiaW5cXGN5Z3dpbi1jb25zb2xlLWhlbHBlci5l
eGUiOw0KIAkJaWYgKG1lbW1lbSAoJm91dGJ1ZltzdGFydF9hdF0sIGkgKyAxIC0gc3RhcnRfYXQs
DQpAQCAtMzI2OCw5ICszNDcwLDE0IEBAIGZoYW5kbGVyX3B0eV9zbGF2ZTo6c2V0dXBfcHNldWRv
Y29uc29sZSAoKQ0KICAgICAgIGNvbnN0IERXT1JEIGluaGVyaXRfY3Vyc29yID0gMTsNCiAgICAg
ICBocGNvbiA9IE5VTEw7DQogICAgICAgU2V0TGFzdEVycm9yIChFUlJPUl9TVUNDRVNTKTsNCi0g
ICAgICBIUkVTVUxUIHJlcyA9IENyZWF0ZVBzZXVkb0NvbnNvbGUgKHNpemUsIGdldF9oYW5kbGVf
bmF0ICgpLA0KLQkJCQkJIGdldF9vdXRwdXRfaGFuZGxlX25hdCAoKSwNCi0JCQkJCSBpbmhlcml0
X2N1cnNvciwgJmhwY29uKTsNCisgICAgICAvKiBUcnkgT3BlbkNvbnNvbGUuZXhlIGJlZm9yZSBj
b25ob3N0LmV4ZSAqLw0KKyAgICAgIEhSRVNVTFQgcmVzID0gQ3JlYXRlUHNldWRvQ29uc29sZV9u
ZXcgKHNpemUsIGdldF9oYW5kbGVfbmF0ICgpLA0KKwkJCQkJICAgICBnZXRfb3V0cHV0X2hhbmRs
ZV9uYXQgKCksDQorCQkJCQkgICAgIGluaGVyaXRfY3Vyc29yLCAmaHBjb24pOw0KKyAgICAgIGlm
IChyZXMgIT0gU19PSykgLyogRmFsbGJhY2sgdG8gbGVnYWN5IGNvbmhvc3QuZXhlICovDQorICAg
ICAgICByZXMgPSBDcmVhdGVQc2V1ZG9Db25zb2xlIChzaXplLCBnZXRfaGFuZGxlX25hdCAoKSwN
CisJCQkJICAgZ2V0X291dHB1dF9oYW5kbGVfbmF0ICgpLA0KKwkJCQkgICBpbmhlcml0X2N1cnNv
ciwgJmhwY29uKTsNCiAgICAgICBpZiAocmVzICE9IFNfT0sgfHwgR2V0TGFzdEVycm9yICgpID09
IEVSUk9SX1BST0NfTk9UX0ZPVU5EKQ0KIAl7DQogCSAgaWYgKHJlcyAhPSBTX09LKQ0KQEAgLTM2
MjcsNiArMzgzNCwyMCBAQCBmaGFuZGxlcl9wdHlfc2xhdmU6OmNsb3NlX3BzZXVkb2NvbnNvbGUg
KHR0eSAqdHR5cCwgRFdPUkQgZm9yY2Vfc3dpdGNoX3RvKQ0KIAkgIHR0eXAtPm5hdF9waXBlX293
bmVyX3BpZCA9IDA7DQogCSAgdHR5cC0+cGNvbl9zdGFydCA9IGZhbHNlOw0KIAkgIHR0eXAtPnBj
b25fc3RhcnRfcGlkID0gMDsNCisJICBkbw0KKwkgICAgew0KKwkgICAgICBwaW5mbyBwICh0dHlw
LT5tYXN0ZXJfcGlkKTsNCisJICAgICAgSEFORExFIHB0eV9tYXN0ZXIgPSBPcGVuUHJvY2VzcyAo
UFJPQ0VTU19EVVBfSEFORExFLCBGQUxTRSwNCisJCQkJCSAgICAgICBwLT5kd1Byb2Nlc3NJZCk7
DQorCSAgICAgIEhBTkRMRSB0b19tYXN0ZXJfbmF0Ow0KKwkgICAgICBEdXBsaWNhdGVIYW5kbGUg
KHB0eV9tYXN0ZXIsIHR0eXAtPnRvX21hc3Rlcl9uYXQgKCksDQorCQkJICAgICAgIEdldEN1cnJl
bnRQcm9jZXNzICgpLCAmdG9fbWFzdGVyX25hdCwNCisJCQkgICAgICAgMCwgRkFMU0UsIERVUExJ
Q0FURV9TQU1FX0FDQ0VTUyk7DQorCSAgICAgIFdyaXRlRmlsZSAodG9fbWFzdGVyX25hdCwgIlww
MzNbPzEwMDRsIiwgOCwgTlVMTCwgTlVMTCk7DQorCSAgICAgIENsb3NlSGFuZGxlICh0b19tYXN0
ZXJfbmF0KTsNCisJICAgICAgQ2xvc2VIYW5kbGUgKHB0eV9tYXN0ZXIpOw0KKwkgICAgfQ0KKwkg
IHdoaWxlIChmYWxzZSk7DQogCX0NCiAgICAgfQ0KICAgZWxzZQ0KLS0gDQoyLjUxLjANCg0K
--Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY
Content-Type: text/plain;
name="libopenconsole.postinstall"
Content-Disposition: attachment;
filename="libopenconsole.postinstall"
Content-Transfer-Encoding: base64
aWYgWyAkKHVuYW1lIC1tKSA9ICJ4ODZfNjQiIF0NCnRoZW4NCglQT1NURklYPSJ4NjQiDQplbHNl
DQoJUE9TVEZJWD0ieDg2Ig0KZmkNClZFUlNJT049JChjYXQgL2V0Yy9saWJvcGVuY29uc29sZS92
ZXJzaW9uLnR4dCkNCmNkIC90bXANCndnZXQgLXEgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29m
dC90ZXJtaW5hbC9yZWxlYXNlcy9kb3dubG9hZC92JHtWRVJTSU9OfS9NaWNyb3NvZnQuV2luZG93
c1Rlcm1pbmFsXyR7VkVSU0lPTn1fJHtQT1NURklYfS56aXAgLU8gLSA+IE1pY3Jvc29mdC5XaW5k
b3dzVGVybWluYWxfJHtWRVJTSU9OfV8ke1BPU1RGSVh9LnRtcA0KaWYgc2hhMjU2c3VtIC0tc3Rh
dHVzIC1jIC9ldGMvbGlib3BlbmNvbnNvbGUvTWljcm9zb2Z0LldpbmRvd3NUZXJtaW5hbF8ke1ZF
UlNJT059XyR7UE9TVEZJWH0uemlwLnNoYTI1Ng0KdGhlbg0KCW12IE1pY3Jvc29mdC5XaW5kb3dz
VGVybWluYWxfJHtWRVJTSU9OfV8ke1BPU1RGSVh9LnRtcCBNaWNyb3NvZnQuV2luZG93c1Rlcm1p
bmFsXyR7VkVSU0lPTn1fJHtQT1NURklYfS56aXANCgl1bnppcCAtanEgTWljcm9zb2Z0LldpbmRv
d3NUZXJtaW5hbF8ke1ZFUlNJT059XyR7UE9TVEZJWH0uemlwICcqL09wZW5Db25zb2xlLmV4ZScN
CgltdiBPcGVuQ29uc29sZS5leGUgL3Vzci9iaW4vLg0KZWxzZQ0KCSMgSGFzaCBtaXNtYXRjaCAo
b3IgZmFpbGVkIHRvIGRvd25sb2FkKQ0KCXJtIE1pY3Jvc29mdC5XaW5kb3dzVGVybWluYWxfJHtW
RVJTSU9OfV8ke1BPU1RGSVh9LnRtcA0KCWV4aXQgMQ0KZmkNCmNobW9kIGEreCAvdXNyL2Jpbi9P
cGVuQ29uc29sZS5leGUNCg==
--Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY
Content-Type: text/plain;
name="libopenconsole.preremove"
Content-Disposition: attachment;
filename="libopenconsole.preremove"
Content-Transfer-Encoding: base64
cm0gLWYgL3Vzci9iaW4vT3BlbkNvbnNvbGUuZXhlDQo=
--Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY
Content-Type: text/plain;
name="openconsole.cygport"
Content-Disposition: attachment;
filename="openconsole.cygport"
Content-Transfer-Encoding: base64
TkFNRT0ib3BlbmNvbnNvbGUiDQpWRVJTSU9OPTEuMjMuMTI4MTEuMA0KUkVMRUFTRT0xDQpDQVRF
R09SWT0iTGlicyINClNVTU1BUlk9ImNvbmhvc3QuZXhlIGFsdGVybmF0aXZlIg0KREVTQ1JJUFRJ
T049ImNvbmhvc3QuZXhlIGFsdGVybmF0aXZlIGZvciBuZXcgZmVhdHVyZXMgb2YgcHVzZWRvIGNv
bnNvbGUiDQpIT01FUEFHRT0iaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC90ZXJtaW5hbC8i
DQpMSUNFTlNFPSJNSVQiDQpBUkNIPSJub2FyY2giICMgVGhpcyBpcyBub2FyY2ggYmVjYXVzZSBp
dCdzIGp1c3QgaGVscGVyIHNoZWxsIHNjcnBpdHMuDQpTUkNfVVJJPSIke05BTUV9LSR7VkVSU0lP
Tn0udGFyLnh6Ig0KQ1lHV0lOX0ZJTEVTPSINCglsaWIke05BTUV9LnBvc3RpbnN0YWxsDQoJbGli
JHtOQU1FfS5wcmVyZW1vdmUNCiINCg0KIyBNYWtlIGR1bW15IHNvdXJjZSBmaWxlIGZvciBwcmVw
DQppZiBbICEgLWYgJHtTUkNfVVJJfSBdDQp0aGVuDQoJbWtkaXIgLXAgJHtOQU1FfS0ke1ZFUlNJ
T059DQoJdGFyIGFjZiAke1NSQ19VUkl9ICR7TkFNRX0tJHtWRVJTSU9OfQ0KCXJtIC1yZiAke05B
TUV9LSR7VkVSU0lPTn0NCmZpDQoNClBLR19OQU1FUz0ibGlib3BlbmNvbnNvbGUiDQpsaWJvcGVu
Y29uc29sZV9DT05URU5UUz0iZXRjLyINCmxpYm9wZW5jb25zb2xlX1JFUVVJUkVTPSJ3Z2V0IHVu
emlwIg0KDQpzcmNfY29tcGlsZSgpIHsNCgk6DQp9DQoNCnNyY19pbnN0YWxsKCkgew0KCW1rZGly
IC1wICR7RH0vZXRjL2xpYiR7TkFNRX0NCgkjIE1ha2Ugc2hhMjU2IGhhc2gNCgl3Z2V0IC1xIGh0
dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvdGVybWluYWwvcmVsZWFzZXMvZG93bmxvYWQvdiR7
VkVSU0lPTn0vTWljcm9zb2Z0LldpbmRvd3NUZXJtaW5hbF8ke1ZFUlNJT059X3g2NC56aXAgLU8g
LSB8IHNoYTI1NnN1bSB8IHNlZCAicy8tJC9NaWNyb3NvZnQuV2luZG93c1Rlcm1pbmFsXyR7VkVS
U0lPTn1feDY0LnRtcC8iID4gJHtEfS9ldGMvbGliJHtOQU1FfS9NaWNyb3NvZnQuV2luZG93c1Rl
cm1pbmFsXyR7VkVSU0lPTn1feDY0LnppcC5zaGEyNTYNCgl3Z2V0IC1xIGh0dHBzOi8vZ2l0aHVi
LmNvbS9taWNyb3NvZnQvdGVybWluYWwvcmVsZWFzZXMvZG93bmxvYWQvdiR7VkVSU0lPTn0vTWlj
cm9zb2Z0LldpbmRvd3NUZXJtaW5hbF8ke1ZFUlNJT059X3g4Ni56aXAgLU8gLSB8IHNoYTI1NnN1
bSB8IHNlZCAicy8tJC9NaWNyb3NvZnQuV2luZG93c1Rlcm1pbmFsXyR7VkVSU0lPTn1feDg2LnRt
cC8iID4gJHtEfS9ldGMvbGliJHtOQU1FfS9NaWNyb3NvZnQuV2luZG93c1Rlcm1pbmFsXyR7VkVS
U0lPTn1feDg2LnppcC5zaGEyNTYNCgkjIE1ha2UgdmVyc2lvbiB0ZXh0DQoJZWNobyAke1ZFUlNJ
T059ID4gJHtEfS9ldGMvbGliJHtOQU1FfS92ZXJzaW9uLnR4dA0KfQ0K
--Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
--Multipart=_Wed__3_Dec_2025_17_56_38_+0900_AQ0kd8lVd0GlvVBY--
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |