From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#71866: 30.0.50; [macOS] Cursor hiding char behind it with certain theme customization Date: Fri, 19 Jul 2024 04:57:12 +0300 Message-ID: <56cc929b-5491-4ed4-a527-d0b1a369e625@gutov.dev> References: <86frstfiop.fsf@gnu.org> <03b9a1c2-986d-40ea-bdd6-d13b419c9aa0@gutov.dev> <86v81i526t.fsf@gnu.org> <1f5f741f-d599-4051-8a34-27d349360eb8@gutov.dev> <86sewiztr2.fsf@gnu.org> <867cdto3uk.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------cvD7BA4HwbuitJcRuuW0uYaX" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18718"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 71866@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jul 19 16:53:39 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sUozJ-0004gm-GG for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 19 Jul 2024 16:53:38 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sUoyq-0004sW-Gb; Fri, 19 Jul 2024 10:53:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sUoyn-0004rx-D0 for bug-gnu-emacs@gnu.org; Fri, 19 Jul 2024 10:53:06 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sUoym-0002YS-NC for bug-gnu-emacs@gnu.org; Fri, 19 Jul 2024 10:53:05 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sUoyk-0000Ng-Rs for bug-gnu-emacs@gnu.org; Fri, 19 Jul 2024 10:53:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 19 Jul 2024 14:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71866 X-GNU-PR-Package: emacs Original-Received: via spool by 71866-submit@debbugs.gnu.org id=B71866.17214007371389 (code B ref 71866); Fri, 19 Jul 2024 14:53:02 +0000 Original-Received: (at 71866) by debbugs.gnu.org; 19 Jul 2024 14:52:17 +0000 Original-Received: from localhost ([127.0.0.1]:50044 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUoxz-0000MH-CC for submit@debbugs.gnu.org; Fri, 19 Jul 2024 10:52:16 -0400 Original-Received: from fout6-smtp.messagingengine.com ([103.168.172.149]:34277) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sUoxp-0000Ku-4M for 71866@debbugs.gnu.org; Fri, 19 Jul 2024 10:52:08 -0400 Original-Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfout.nyi.internal (Postfix) with ESMTP id 5088813800CD; Thu, 18 Jul 2024 21:57:18 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Thu, 18 Jul 2024 21:57:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1721354238; x=1721440638; bh=40Dj4iKhBm guJ2A+q0xMlF7am+utSKD/Ac1F33WfQk0=; b=mv6zWnTsSzJt1XYCBofUfPZ26v DTbr3joeTJDUHf+rSyLsp8SzdeUPn6TByPKaxp3VVDMgrQscfB/Sc/6GnPIaca7K r+VyuFaveGBh5KC3SceOIhEAGlFCxmGEKA5uVLIVNnJhCogxg4SaFgWyqWlhICpZ sl226xti2W5NJ4FJqaR1Aai6IFzoJ1irq5cvygTxL2rxE2kUWGKGq+VAvMhEtZhI c59gk6biNjCaTqo1dBtL82pXyUsg8qx6+PQp/iMT+yDvXmWwwmz9mgqeY3ShL6DQ NmtJPOUTt2p6+zAnMVhPs9qE/B6tyk35lBX4z8FGo9bFqyLYEborHNnt4xZw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1721354238; x=1721440638; bh=40Dj4iKhBmguJ2A+q0xMlF7am+ut SKD/Ac1F33WfQk0=; b=ifLnJ95zH0OS+20Ke/e0BOZrK7xQeO8w8z2FVOsilXzr +kmQUEFhy02Y4YTLQ482bOmrPF5VZIY8KH387l9Ox5NF4moaBXUBgz+nINIVZJgZ 0jZgbyL4nskVRCSaEGTzO1V0t0JTZDoQ8hKdo1xX058mdzGZ294MkcdXiWWvaiBM I5bWB6TH52zUvhuxKMrWpj5jquEuqswmzuQgVMFvzdW4slDqDFj2HIecXHTq1yA0 zttqZDMA2Z1LijWh9bQLcWfTuxwsBX8Bdh3WJKJqQibPcE5IuLRfgVjMZE4FpQTO JH4b7RKGyq6VWQmY5cOZ+1IIVsK7059z9cdJ53xC/A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrhedtgdehvdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtkfffgggfuffvvehfhfgjsehmtderredtvdejnecuhfhrohhmpeffmhhithhr hicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrthhtvg hrnhepheelfedukeduudevkeeilefgieffvdekhfekleejueejgeeukeevffekjeejveeh necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepughmih htrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 18 Jul 2024 21:57:15 -0400 (EDT) Content-Language: en-US In-Reply-To: <867cdto3uk.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:288981 Archived-At: This is a multi-part message in MIME format. --------------cvD7BA4HwbuitJcRuuW0uYaX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/07/2024 14:58, Eli Zaretskii wrote: >> Date: Wed, 10 Jul 2024 05:46:35 +0300 >> Cc: 71866@debbugs.gnu.org >> From: Dmitry Gutov >> >>>> It does get called. Unfortunately, as soon as I put a breakpoint there, >>>> any attempt to switch to the Emacs window drops into the debugger again >>>> - and I have switch back to the terminal emulator to enter 'c RET' 20 >>>> times or so. >>> >>> I don't think I understand what you are trying to do. I thought you >>> needed to "switch to the Emacs window" just once: to trigger the >>> situation which you want to investigate. Once you trigger it, the >>> debugger will indeed kick in, but all you need to do next is step >>> through the code, so why do you care about switching to Emacs again? >> >> Somehow, the problem manifests when I switch between frames (two frames >> in the current repro) using C-` (bound to `other-frame'). >> >> But if I Alt-Tab to a different application and then Alt-Tab back to >> Emacs, then the glyph is rendered fine - even if the "problematic" frame >> gets selected. > > I thought you see the problem when you switch from another application > to Emacs, not only when you switch between two Emacs frames. I see I > was mistaken. > >>> (gdb) print f >>> $1 = (struct frame *) 0x1234567812345600 >>> (gdb) condition 3 f == 0x1234567812345600 >>> >>> This makes breakpoint 3 trigger only when struct frame variable f has >>> the value of this frame. >> >> So step 1 find out the address of the second frame, step 2 switch to >> first frame, step 3 enable a conditional breakpoint. > > Yes. Okay, I have tried that, and the results might or might not be useful. Similarly to the case of switching from another application, when I have to switch to another application to handle the breakpoints (just typing 'c RET'), the behavior is different. BUT the last call to ns_draw_window_cursor (out of 14) before the control is returned results in the cursor getting hidden (in the new selected Emacs frame only). Unlike the problem I described, the character under the cursor stays drawn, but the cursor rectangle goes away (and that happens after the last breakpoint hit, before that the text and the cursor look correctly - hollow cursor around the character). I'm attaching the last debugging log - maybe the backtrace can be useful? - but note that the backtrace printing is halfway broken as well - it freezes and I have to press ^C a bunch of times to see something. Anyway, while wrong, the behavior is not the same, so I can't be sure it's the same problem that is being triggered. --------------cvD7BA4HwbuitJcRuuW0uYaX Content-Type: text/plain; charset=UTF-8; name="emacs-lldb-log.txt" Content-Disposition: attachment; filename="emacs-lldb-log.txt" Content-Transfer-Encoding: base64 UHJvY2VzcyA4MjQ2MSBzdG9wcGVkCiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUu bWFpbi10aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQgNC4xCiAgICBmcmFtZSAj MDogMHgwMDAwMDAwMTAwMjdkYTZjIGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4 MDAwMDAwMDEzMjhiNDE4OCwgZ2x5cGhfcm93PTB4MDAwMDAwMDEzMmFkMDAwMCwgeD08dW5h dmFpbGFibGU+LCB5PTx1bmF2YWlsYWJsZT4sIGN1cnNvcl90eXBlPUZJTExFRF9CT1hfQ1VS U09SLCBjdXJzb3Jfd2lkdGg9MSwgb25fcD10cnVlLCBhY3RpdmVfcD08dW5hdmFpbGFibGU+ KSBhdCBuc3Rlcm0ubTozMDQ1OjIzIFtvcHRdCiAgIDMwNDIJICBpZiAoIW9uX3ApCiAgIDMw NDMJICAgIHJldHVybjsKICAgMzA0NAotPiAzMDQ1CSAgdy0+cGh5c19jdXJzb3JfdHlwZSA9 IGN1cnNvcl90eXBlOwogICAzMDQ2CSAgdy0+cGh5c19jdXJzb3Jfb25fcCA9IG9uX3A7CiAg IDMwNDcKICAgMzA0OAkgIGlmIChjdXJzb3JfdHlwZSA9PSBOT19DVVJTT1IpClRhcmdldCAw OiAoZW1hY3MpIHN0b3BwZWQuCihsbGRiKSBjClByb2Nlc3MgODI0NjEgcmVzdW1pbmcKUHJv Y2VzcyA4MjQ2MSBzdG9wcGVkCiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFp bi10aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQgNC4xCiAgICBmcmFtZSAjMDog MHgwMDAwMDAwMTAwMjdkYTZjIGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAw MDAwMDEzMjhiNDE4OCwgZ2x5cGhfcm93PTB4MDAwMDAwMDEzMmFkMDAwMCwgeD08dW5hdmFp bGFibGU+LCB5PTx1bmF2YWlsYWJsZT4sIGN1cnNvcl90eXBlPUZJTExFRF9CT1hfQ1VSU09S LCBjdXJzb3Jfd2lkdGg9MSwgb25fcD10cnVlLCBhY3RpdmVfcD08dW5hdmFpbGFibGU+KSBh dCBuc3Rlcm0ubTozMDQ1OjIzIFtvcHRdCiAgIDMwNDIJICBpZiAoIW9uX3ApCiAgIDMwNDMJ ICAgIHJldHVybjsKICAgMzA0NAotPiAzMDQ1CSAgdy0+cGh5c19jdXJzb3JfdHlwZSA9IGN1 cnNvcl90eXBlOwogICAzMDQ2CSAgdy0+cGh5c19jdXJzb3Jfb25fcCA9IG9uX3A7CiAgIDMw NDcKICAgMzA0OAkgIGlmIChjdXJzb3JfdHlwZSA9PSBOT19DVVJTT1IpClRhcmdldCAwOiAo ZW1hY3MpIHN0b3BwZWQuCihsbGRiKSBjClByb2Nlc3MgODI0NjEgcmVzdW1pbmcKUHJvY2Vz cyA4MjQ2MSBzdG9wcGVkCiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFpbi10 aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQgNC4xCiAgICBmcmFtZSAjMDogMHgw MDAwMDAwMTAwMjdkYTZjIGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAwMDAw MDEzMjhiNDQzMCwgZ2x5cGhfcm93PTB4MDAwMDAwMDEzMDhkMTIwMCwgeD08dW5hdmFpbGFi bGU+LCB5PTx1bmF2YWlsYWJsZT4sIGN1cnNvcl90eXBlPU5PX0NVUlNPUiwgY3Vyc29yX3dp ZHRoPTAsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9PHVuYXZhaWxhYmxlPikgYXQgbnN0ZXJtLm06 MzA0NToyMyBbb3B0XQogICAzMDQyCSAgaWYgKCFvbl9wKQogICAzMDQzCSAgICByZXR1cm47 CiAgIDMwNDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vyc29yX3R5cGUgPSBjdXJzb3JfdHlwZTsK ICAgMzA0NgkgIHctPnBoeXNfY3Vyc29yX29uX3AgPSBvbl9wOwogICAzMDQ3CiAgIDMwNDgJ ICBpZiAoY3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09SKQpUYXJnZXQgMDogKGVtYWNzKSBzdG9w cGVkLgoobGxkYikgYwpQcm9jZXNzIDgyNDYxIHJlc3VtaW5nCjIwMjQtMDctMTkgMDQ6Mzk6 NTQuNTM4ODcxKzAzMDAgZW1hY3NbODI0NjE6MjgzMDAyNl0gW0N1cnNvclVJXSAtW1RVSU5T Q3Vyc29yVUlDb250cm9sbGVyIGFjdGl2YXRlOl06IEVtYWNzVmlldyBkb2Vzbid0IGNvbmZv cm0gdG8gTlNUZXh0SW5wdXRDbGllbnQgcHJvdG9jb2wuClByb2Nlc3MgODI0NjEgc3RvcHBl ZAoqIHRocmVhZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4tdGhyZWFkJywgc3RvcCBy ZWFzb24gPSBicmVha3BvaW50IDQuMQogICAgZnJhbWUgIzA6IDB4MDAwMDAwMDEwMDI3ZGE2 YyBlbWFjc2Buc19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMzI4YjQxODgsIGds eXBoX3Jvdz0weDAwMDAwMDAxMzJhZDAwMDAsIHg9PHVuYXZhaWxhYmxlPiwgeT08dW5hdmFp bGFibGU+LCBjdXJzb3JfdHlwZT1IT0xMT1dfQk9YX0NVUlNPUiwgY3Vyc29yX3dpZHRoPTEs IG9uX3A9dHJ1ZSwgYWN0aXZlX3A9PHVuYXZhaWxhYmxlPikgYXQgbnN0ZXJtLm06MzA0NToy MyBbb3B0XQogICAzMDQyCSAgaWYgKCFvbl9wKQogICAzMDQzCSAgICByZXR1cm47CiAgIDMw NDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vyc29yX3R5cGUgPSBjdXJzb3JfdHlwZTsKICAgMzA0 NgkgIHctPnBoeXNfY3Vyc29yX29uX3AgPSBvbl9wOwogICAzMDQ3CiAgIDMwNDgJICBpZiAo Y3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09SKQpUYXJnZXQgMDogKGVtYWNzKSBzdG9wcGVkLgoo bGxkYikgYwpQcm9jZXNzIDgyNDYxIHJlc3VtaW5nClByb2Nlc3MgODI0NjEgc3RvcHBlZAoq IHRocmVhZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4tdGhyZWFkJywgc3RvcCByZWFz b24gPSBicmVha3BvaW50IDQuMQogICAgZnJhbWUgIzA6IDB4MDAwMDAwMDEwMDI3ZGE2YyBl bWFjc2Buc19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMzI4YjQ0MzAsIGdseXBo X3Jvdz0weDAwMDAwMDAxMzA4ZDEyMDAsIHg9PHVuYXZhaWxhYmxlPiwgeT08dW5hdmFpbGFi bGU+LCBjdXJzb3JfdHlwZT1OT19DVVJTT1IsIGN1cnNvcl93aWR0aD0wLCBvbl9wPXRydWUs IGFjdGl2ZV9wPTx1bmF2YWlsYWJsZT4pIGF0IG5zdGVybS5tOjMwNDU6MjMgW29wdF0KICAg MzA0MgkgIGlmICghb25fcCkKICAgMzA0MwkgICAgcmV0dXJuOwogICAzMDQ0Ci0+IDMwNDUJ ICB3LT5waHlzX2N1cnNvcl90eXBlID0gY3Vyc29yX3R5cGU7CiAgIDMwNDYJICB3LT5waHlz X2N1cnNvcl9vbl9wID0gb25fcDsKICAgMzA0NwogICAzMDQ4CSAgaWYgKGN1cnNvcl90eXBl ID09IE5PX0NVUlNPUikKVGFyZ2V0IDA6IChlbWFjcykgc3RvcHBlZC4KKGxsZGIpIGMKUHJv Y2VzcyA4MjQ2MSByZXN1bWluZwpQcm9jZXNzIDgyNDYxIHN0b3BwZWQKKiB0aHJlYWQgIzEs IHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29uID0gYnJlYWtw b2ludCA0LjEKICAgIGZyYW1lICMwOiAweDAwMDAwMDAxMDAyN2RhNmMgZW1hY3NgbnNfZHJh d193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTMyOGI0MTg4LCBnbHlwaF9yb3c9MHgwMDAw MDAwMTMyYWQwMDAwLCB4PTx1bmF2YWlsYWJsZT4sIHk9PHVuYXZhaWxhYmxlPiwgY3Vyc29y X3R5cGU9RklMTEVEX0JPWF9DVVJTT1IsIGN1cnNvcl93aWR0aD0xLCBvbl9wPXRydWUsIGFj dGl2ZV9wPTx1bmF2YWlsYWJsZT4pIGF0IG5zdGVybS5tOjMwNDU6MjMgW29wdF0KICAgMzA0 MgkgIGlmICghb25fcCkKICAgMzA0MwkgICAgcmV0dXJuOwogICAzMDQ0Ci0+IDMwNDUJICB3 LT5waHlzX2N1cnNvcl90eXBlID0gY3Vyc29yX3R5cGU7CiAgIDMwNDYJICB3LT5waHlzX2N1 cnNvcl9vbl9wID0gb25fcDsKICAgMzA0NwogICAzMDQ4CSAgaWYgKGN1cnNvcl90eXBlID09 IE5PX0NVUlNPUikKVGFyZ2V0IDA6IChlbWFjcykgc3RvcHBlZC4KKGxsZGIpIGMKUHJvY2Vz cyA4MjQ2MSByZXN1bWluZwpQcm9jZXNzIDgyNDYxIHN0b3BwZWQKKiB0aHJlYWQgIzEsIHF1 ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29uID0gYnJlYWtwb2lu dCA0LjEKICAgIGZyYW1lICMwOiAweDAwMDAwMDAxMDAyN2RhNmMgZW1hY3NgbnNfZHJhd193 aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTMyOGI0MTg4LCBnbHlwaF9yb3c9MHgwMDAwMDAw MTMyYWQwMDAwLCB4PTx1bmF2YWlsYWJsZT4sIHk9PHVuYXZhaWxhYmxlPiwgY3Vyc29yX3R5 cGU9RklMTEVEX0JPWF9DVVJTT1IsIGN1cnNvcl93aWR0aD0xLCBvbl9wPXRydWUsIGFjdGl2 ZV9wPTx1bmF2YWlsYWJsZT4pIGF0IG5zdGVybS5tOjMwNDU6MjMgW29wdF0KICAgMzA0Mgkg IGlmICghb25fcCkKICAgMzA0MwkgICAgcmV0dXJuOwogICAzMDQ0Ci0+IDMwNDUJICB3LT5w aHlzX2N1cnNvcl90eXBlID0gY3Vyc29yX3R5cGU7CiAgIDMwNDYJICB3LT5waHlzX2N1cnNv cl9vbl9wID0gb25fcDsKICAgMzA0NwogICAzMDQ4CSAgaWYgKGN1cnNvcl90eXBlID09IE5P X0NVUlNPUikKVGFyZ2V0IDA6IChlbWFjcykgc3RvcHBlZC4KKGxsZGIpIGMKUHJvY2VzcyA4 MjQ2MSByZXN1bWluZwpQcm9jZXNzIDgyNDYxIHN0b3BwZWQKKiB0aHJlYWQgIzEsIHF1ZXVl ID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29uID0gYnJlYWtwb2ludCA0 LjEKICAgIGZyYW1lICMwOiAweDAwMDAwMDAxMDAyN2RhNmMgZW1hY3NgbnNfZHJhd193aW5k b3dfY3Vyc29yKHc9MHgwMDAwMDAwMTMyOGI0NDMwLCBnbHlwaF9yb3c9MHgwMDAwMDAwMTMw OGQxMjAwLCB4PTx1bmF2YWlsYWJsZT4sIHk9PHVuYXZhaWxhYmxlPiwgY3Vyc29yX3R5cGU9 Tk9fQ1VSU09SLCBjdXJzb3Jfd2lkdGg9MCwgb25fcD10cnVlLCBhY3RpdmVfcD08dW5hdmFp bGFibGU+KSBhdCBuc3Rlcm0ubTozMDQ1OjIzIFtvcHRdCiAgIDMwNDIJICBpZiAoIW9uX3Ap CiAgIDMwNDMJICAgIHJldHVybjsKICAgMzA0NAotPiAzMDQ1CSAgdy0+cGh5c19jdXJzb3Jf dHlwZSA9IGN1cnNvcl90eXBlOwogICAzMDQ2CSAgdy0+cGh5c19jdXJzb3Jfb25fcCA9IG9u X3A7CiAgIDMwNDcKICAgMzA0OAkgIGlmIChjdXJzb3JfdHlwZSA9PSBOT19DVVJTT1IpClRh cmdldCAwOiAoZW1hY3MpIHN0b3BwZWQuCihsbGRiKSBjClByb2Nlc3MgODI0NjEgcmVzdW1p bmcKMjAyNC0wNy0xOSAwNDo0MDoxMC41MjMxMjArMDMwMCBlbWFjc1s4MjQ2MToyODMwMDI2 XSBbQ3Vyc29yVUldIC1bVFVJTlNDdXJzb3JVSUNvbnRyb2xsZXIgYWN0aXZhdGU6XTogRW1h Y3NWaWV3IGRvZXNuJ3QgY29uZm9ybSB0byBOU1RleHRJbnB1dENsaWVudCBwcm90b2NvbC4K UHJvY2VzcyA4MjQ2MSBzdG9wcGVkCiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUu bWFpbi10aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQgNC4xCiAgICBmcmFtZSAj MDogMHgwMDAwMDAwMTAwMjdkYTZjIGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4 MDAwMDAwMDEzMjhiNDE4OCwgZ2x5cGhfcm93PTB4MDAwMDAwMDEzMmFkMDAwMCwgeD08dW5h dmFpbGFibGU+LCB5PTx1bmF2YWlsYWJsZT4sIGN1cnNvcl90eXBlPUhPTExPV19CT1hfQ1VS U09SLCBjdXJzb3Jfd2lkdGg9MSwgb25fcD10cnVlLCBhY3RpdmVfcD08dW5hdmFpbGFibGU+ KSBhdCBuc3Rlcm0ubTozMDQ1OjIzIFtvcHRdCiAgIDMwNDIJICBpZiAoIW9uX3ApCiAgIDMw NDMJICAgIHJldHVybjsKICAgMzA0NAotPiAzMDQ1CSAgdy0+cGh5c19jdXJzb3JfdHlwZSA9 IGN1cnNvcl90eXBlOwogICAzMDQ2CSAgdy0+cGh5c19jdXJzb3Jfb25fcCA9IG9uX3A7CiAg IDMwNDcKICAgMzA0OAkgIGlmIChjdXJzb3JfdHlwZSA9PSBOT19DVVJTT1IpClRhcmdldCAw OiAoZW1hY3MpIHN0b3BwZWQuCihsbGRiKSBjClByb2Nlc3MgODI0NjEgcmVzdW1pbmcKUHJv Y2VzcyA4MjQ2MSBzdG9wcGVkCiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFp bi10aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQgNC4xCiAgICBmcmFtZSAjMDog MHgwMDAwMDAwMTAwMjdkYTZjIGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAw MDAwMDEzMjhiNDQzMCwgZ2x5cGhfcm93PTB4MDAwMDAwMDEzMDhkMTIwMCwgeD08dW5hdmFp bGFibGU+LCB5PTx1bmF2YWlsYWJsZT4sIGN1cnNvcl90eXBlPU5PX0NVUlNPUiwgY3Vyc29y X3dpZHRoPTAsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9PHVuYXZhaWxhYmxlPikgYXQgbnN0ZXJt Lm06MzA0NToyMyBbb3B0XQogICAzMDQyCSAgaWYgKCFvbl9wKQogICAzMDQzCSAgICByZXR1 cm47CiAgIDMwNDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vyc29yX3R5cGUgPSBjdXJzb3JfdHlw ZTsKICAgMzA0NgkgIHctPnBoeXNfY3Vyc29yX29uX3AgPSBvbl9wOwogICAzMDQ3CiAgIDMw NDgJICBpZiAoY3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09SKQpUYXJnZXQgMDogKGVtYWNzKSBz dG9wcGVkLgoobGxkYikgYwpQcm9jZXNzIDgyNDYxIHJlc3VtaW5nClByb2Nlc3MgODI0NjEg c3RvcHBlZAoqIHRocmVhZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4tdGhyZWFkJywg c3RvcCByZWFzb24gPSBicmVha3BvaW50IDQuMQogICAgZnJhbWUgIzA6IDB4MDAwMDAwMDEw MDI3ZGE2YyBlbWFjc2Buc19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMzI4YjQ0 MzAsIGdseXBoX3Jvdz0weDAwMDAwMDAxMzA4ZDEyMDAsIHg9PHVuYXZhaWxhYmxlPiwgeT08 dW5hdmFpbGFibGU+LCBjdXJzb3JfdHlwZT1OT19DVVJTT1IsIGN1cnNvcl93aWR0aD0wLCBv bl9wPXRydWUsIGFjdGl2ZV9wPTx1bmF2YWlsYWJsZT4pIGF0IG5zdGVybS5tOjMwNDU6MjMg W29wdF0KICAgMzA0MgkgIGlmICghb25fcCkKICAgMzA0MwkgICAgcmV0dXJuOwogICAzMDQ0 Ci0+IDMwNDUJICB3LT5waHlzX2N1cnNvcl90eXBlID0gY3Vyc29yX3R5cGU7CiAgIDMwNDYJ ICB3LT5waHlzX2N1cnNvcl9vbl9wID0gb25fcDsKICAgMzA0NwogICAzMDQ4CSAgaWYgKGN1 cnNvcl90eXBlID09IE5PX0NVUlNPUikKVGFyZ2V0IDA6IChlbWFjcykgc3RvcHBlZC4KKGxs ZGIpIGMKUHJvY2VzcyA4MjQ2MSByZXN1bWluZwpQcm9jZXNzIDgyNDYxIHN0b3BwZWQKKiB0 aHJlYWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29u ID0gYnJlYWtwb2ludCA0LjEKICAgIGZyYW1lICMwOiAweDAwMDAwMDAxMDAyN2RhNmMgZW1h Y3NgbnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTMyOGI0MTg4LCBnbHlwaF9y b3c9MHgwMDAwMDAwMTMyYWQwMDAwLCB4PTx1bmF2YWlsYWJsZT4sIHk9PHVuYXZhaWxhYmxl PiwgY3Vyc29yX3R5cGU9SE9MTE9XX0JPWF9DVVJTT1IsIGN1cnNvcl93aWR0aD0xLCBvbl9w PXRydWUsIGFjdGl2ZV9wPTx1bmF2YWlsYWJsZT4pIGF0IG5zdGVybS5tOjMwNDU6MjMgW29w dF0KICAgMzA0MgkgIGlmICghb25fcCkKICAgMzA0MwkgICAgcmV0dXJuOwogICAzMDQ0Ci0+ IDMwNDUJICB3LT5waHlzX2N1cnNvcl90eXBlID0gY3Vyc29yX3R5cGU7CiAgIDMwNDYJICB3 LT5waHlzX2N1cnNvcl9vbl9wID0gb25fcDsKICAgMzA0NwogICAzMDQ4CSAgaWYgKGN1cnNv cl90eXBlID09IE5PX0NVUlNPUikKVGFyZ2V0IDA6IChlbWFjcykgc3RvcHBlZC4KKGxsZGIp IGMKUHJvY2VzcyA4MjQ2MSByZXN1bWluZwpQcm9jZXNzIDgyNDYxIHN0b3BwZWQKKiB0aHJl YWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29uID0g YnJlYWtwb2ludCA0LjEKICAgIGZyYW1lICMwOiAweDAwMDAwMDAxMDAyN2RhNmMgZW1hY3Ng bnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTMyOGI0NDMwLCBnbHlwaF9yb3c9 MHgwMDAwMDAwMTMwOGQxMjAwLCB4PTx1bmF2YWlsYWJsZT4sIHk9PHVuYXZhaWxhYmxlPiwg Y3Vyc29yX3R5cGU9Tk9fQ1VSU09SLCBjdXJzb3Jfd2lkdGg9MCwgb25fcD10cnVlLCBhY3Rp dmVfcD08dW5hdmFpbGFibGU+KSBhdCBuc3Rlcm0ubTozMDQ1OjIzIFtvcHRdCiAgIDMwNDIJ ICBpZiAoIW9uX3ApCiAgIDMwNDMJICAgIHJldHVybjsKICAgMzA0NAotPiAzMDQ1CSAgdy0+ cGh5c19jdXJzb3JfdHlwZSA9IGN1cnNvcl90eXBlOwogICAzMDQ2CSAgdy0+cGh5c19jdXJz b3Jfb25fcCA9IG9uX3A7CiAgIDMwNDcKICAgMzA0OAkgIGlmIChjdXJzb3JfdHlwZSA9PSBO T19DVVJTT1IpClRhcmdldCAwOiAoZW1hY3MpIHN0b3BwZWQuCihsbGRiKSBjClByb2Nlc3Mg ODI0NjEgcmVzdW1pbmcKUHJvY2VzcyA4MjQ2MSBzdG9wcGVkCiogdGhyZWFkICMxLCBxdWV1 ZSA9ICdjb20uYXBwbGUubWFpbi10aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQg NC4xCiAgICBmcmFtZSAjMDogMHgwMDAwMDAwMTAwMjdkYTZjIGVtYWNzYG5zX2RyYXdfd2lu ZG93X2N1cnNvcih3PTB4MDAwMDAwMDEzMjhiNDQzMCwgZ2x5cGhfcm93PTB4MDAwMDAwMDEz MDhkMTIwMCwgeD08dW5hdmFpbGFibGU+LCB5PTx1bmF2YWlsYWJsZT4sIGN1cnNvcl90eXBl PU5PX0NVUlNPUiwgY3Vyc29yX3dpZHRoPTAsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9PHVuYXZh aWxhYmxlPikgYXQgbnN0ZXJtLm06MzA0NToyMyBbb3B0XQogICAzMDQyCSAgaWYgKCFvbl9w KQogICAzMDQzCSAgICByZXR1cm47CiAgIDMwNDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vyc29y X3R5cGUgPSBjdXJzb3JfdHlwZTsKICAgMzA0NgkgIHctPnBoeXNfY3Vyc29yX29uX3AgPSBv bl9wOwogICAzMDQ3CiAgIDMwNDgJICBpZiAoY3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09SKQpU YXJnZXQgMDogKGVtYWNzKSBzdG9wcGVkLgoobGxkYikgYnQKXkMKXkMqKiogZXhjZXB0aW9u IGluIGNoaWxkIHByb3ZpZGVyIHVwZGF0ZSBmb3IgTGlzcF9TeW1ib2wKXkNeQyoqKiBleGNl cHRpb24gaW4gY2hpbGQgcHJvdmlkZXIgdXBkYXRlIGZvciBMaXNwX1N5bWJvbApeQ15DKiB0 aHJlYWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29u ID0gYnJlYWtwb2ludCA0LjEKICAqIGZyYW1lICMwOiAweDAwMDAwMDAxMDAyN2RhNmMgZW1h Y3NgbnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTMyOGI0NDMwLCBnbHlwaF9y b3c9MHgwMDAwMDAwMTMwOGQxMjAwLCB4PTx1bmF2YWlsYWJsZT4sIHk9PHVuYXZhaWxhYmxl PiwgY3Vyc29yX3R5cGU9Tk9fQ1VSU09SLCBjdXJzb3Jfd2lkdGg9MCwgb25fcD10cnVlLCBh Y3RpdmVfcD08dW5hdmFpbGFibGU+KSBhdCBuc3Rlcm0ubTozMDQ1OjIzIFtvcHRdCiAgICBm cmFtZSAjMTogMHgwMDAwMDAwMTAwMDA5MTIwIGVtYWNzYGd1aV91cGRhdGVfd2luZG93X2Vu ZCh3PTB4MDAwMDAwMDEzMjhiNDQzMCwgY3Vyc29yX29uX3A9dHJ1ZSwgbW91c2VfZmFjZV9v dmVyd3JpdHRlbl9wPWZhbHNlKSBhdCBkaXNwbmV3LmM6Mzk0MToyIFtvcHRdCiAgICBmcmFt ZSAjMjogMHgwMDAwMDAwMTAwMDA3ZTk0IGVtYWNzYHVwZGF0ZV93aW5kb3codz0weDAwMDAw MDAxMzI4YjQ0MzAsIGZvcmNlX3A9PHVuYXZhaWxhYmxlPikgYXQgZGlzcG5ldy5jOjM4Njk6 NyBbb3B0XQogICAgZnJhbWUgIzM6IDB4MDAwMDAwMDEwMDAwODM1YyBlbWFjc2B1cGRhdGVf d2luZG93X3RyZWUodz0weDAwMDAwMDAxMzI4YjQ0MzAsIGZvcmNlX3A9dHJ1ZSkgYXQgZGlz cG5ldy5jOjM0OTE6MTQgW29wdF0KICAgIGZyYW1lICM0OiAweDAwMDAwMDAxMDAwMDVjOGMg ZW1hY3NgdXBkYXRlX2ZyYW1lKGY9MHgwMDAwMDAwMTMyOGIzZjM4LCBmb3JjZV9wPXRydWUs IGluaGliaXRfaGFpcnlfaWRfcD08dW5hdmFpbGFibGU+KSBhdCBkaXNwbmV3LmM6MzMyNjox OCBbb3B0XQogICAgZnJhbWUgIzU6IDB4MDAwMDAwMDEwMDAzYjEzMCBlbWFjc2ByZWRpc3Bs YXlfaW50ZXJuYWwgYXQgeGRpc3AuYzoxNzQ4MDoxNiBbb3B0XQogICAgZnJhbWUgIzY6IDB4 MDAwMDAwMDEwMDA0MTYyMCBlbWFjc2ByZWRpc3BsYXkgYXQgeGRpc3AuYzoxNjU3NTozIFtv cHRdIFthcnRpZmljaWFsXQogICAgZnJhbWUgIzc6IDB4MDAwMDAwMDEwMDEwZDFlMCBlbWFj c2ByZWFkX2NoYXIoY29tbWFuZGZsYWc9PHVuYXZhaWxhYmxlPiwgbWFwPTx1bmF2YWlsYWJs ZT4sIHByZXZfZXZlbnQ9KHN0cnVjdCBMaXNwX1N5bWJvbCAqKSAkMzUwNDMgPSAweDAwMDAw MDAxMDBhOGNmMzgsIHVzZWRfbW91c2VfbWVudT08dW5hdmFpbGFibGU+LCBlbmRfdGltZT08 dW5hdmFpbGFibGU+KSBhdCBrZXlib2FyZC5jOjI2Nzg6NiBbb3B0XQoKLi4uIEludGVycnVw dGVkLgoobGxkYikgYwpQcm9jZXNzIDgyNDYxIHJlc3VtaW5nCg== --------------cvD7BA4HwbuitJcRuuW0uYaX--