<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[C# Dockable dialog undocked freezes Notepad++]]></title><description><![CDATA[<p dir="auto">I’m no C# coder, but have been adding to a <a href="https://github.com/vinsworldcom/nppmarkdownpanel" rel="nofollow ugc">fork</a> of the <a href="https://github.com/mohzy83/NppMarkdownPanel/" rel="nofollow ugc">MarkdownPanel</a> and there is a nasty bug that I can’t solve.</p>
<p dir="auto">Basically, undock the main MarkdownPanel viewer dockable dialog and Notepad++ freezes / crashes.  There is some allusion to this in the issues though it mentions scrollbar interaction as well.  I think it is really the undocking which causes the issue.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rdipardo" aria-label="Profile: rdipardo">@<bdi>rdipardo</bdi></a> mentions this C# undocking / Notepad++ freezing is “<a href="https://community.notepad-plus-plus.org/topic/25315/notepad-v8-6-1-release/15">a relatively trivial fix</a>”, but alas my C# skills are not up to par to decipher the fix.</p>
<p dir="auto">Any C# developer care to spoon-feed me?</p>
<p dir="auto">Cheers.</p>
]]></description><link>https://community.notepad-plus-plus.org/topic/25393/c-dockable-dialog-undocked-freezes-notepad</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 06:49:47 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/25393.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 21 Jan 2024 23:45:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Fri, 20 Dec 2024 00:04:33 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/guido-thelen" aria-label="Profile: Guido-Thelen">@<bdi>Guido-Thelen</bdi></a></p>
<p dir="auto"><a href="https://github.com/molsonkiko/JsonToolsNppPlugin/blob/main/JsonToolsNppPlugin%2FForms%2FNppFormHelper.cs" rel="nofollow ugc">This file in JsonTools</a> contains a lot of the helper code you would need to make your forms compatible with NPP’s more recent releases.</p>
<p dir="auto">As you may notice from reading the file, making your forms compliant with NPP’s expectations introduces a lot of frustrating issues, but IMO this is just the cost of maintaining a C# plugin.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/98673</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98673</guid><dc:creator><![CDATA[Mark Olson]]></dc:creator><pubDate>Fri, 20 Dec 2024 00:04:33 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Thu, 19 Dec 2024 23:01:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/guido-thelen" aria-label="Profile: Guido-Thelen">@<bdi>Guido-Thelen</bdi></a></p>
<p dir="auto">I fear I can’t be of much help here. I suggested <a href="https://npp-user-manual.org/docs/plugin-communication/#2036nppm_modelessdialog" rel="nofollow ugc">NPPM_MODELESSDIALOG</a> to solve a problem with common keyboard shortcuts not working in modeless dialogs (docking or not); Notepad++ eventually incorporated a different way of working around the problem for dialogs that don’t send that message, and C# programmers observed troublesome changes in behavior when they did send it.</p>
<p dir="auto">I don’t know C#, so I don’t have a way of trying it. I don’t <em>think</em> it will help here, but I don’t know for sure.</p>
<p dir="auto">I’m not familiar with docking dialogs, either; I don’t see a way to prevent undocking them, but someone who uses them more might know for sure.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/98670</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98670</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Thu, 19 Dec 2024 23:01:46 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Thu, 19 Dec 2024 21:42:17 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a> many thanks for your answer. I am not a C++ programmer. Therefore I will try to solve it the “hacky” way .</p>
<p dir="auto">I found another comment from you suggesting to send a MODELESS message.</p>
<p dir="auto"><a href="https://community.notepad-plus-plus.org/post/91817">https://community.notepad-plus-plus.org/post/91817</a></p>
<p dir="auto">Would this also be a way to go?</p>
<p dir="auto">Another option for me would be to not allow to unlock the dialog Panel. Is this possible?</p>
<p dir="auto">Regards<br />
Guido</p>
]]></description><link>https://community.notepad-plus-plus.org/post/98667</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98667</guid><dc:creator><![CDATA[Guido Thelen]]></dc:creator><pubDate>Thu, 19 Dec 2024 21:42:17 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Thu, 19 Dec 2024 17:57:15 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/guido-thelen" aria-label="Profile: Guido-Thelen">@<bdi>Guido-Thelen</bdi></a> said in <a href="/post/98633">C# Dockable dialog undocked freezes Notepad++</a>:</p>
<blockquote>
<p dir="auto">It looks like I have the same issue with my SQLinForm plugin, i.e. When the plugin is undocked, N++ freezes after a while.<br />
Reading the discussion I do not understand what is the final suggestion to fix this issue. could you be so kind and point me to the solution?</p>
</blockquote>
<p dir="auto">Since <a href="https://www.sqlinform.com/" rel="nofollow ugc">SQLinForm</a> appears to be a professional product, for which I presume stable and reliable solutions are in order, I’ll make this observation:</p>
<p dir="auto">The best solution is not to use C# to write plugins for a C++ program.</p>
<p dir="auto">If that is not practical, then the current best suggestion is to read <a href="https://community.notepad-plus-plus.org/post/92268">the patch above</a> from <a class="plugin-mentions-user plugin-mentions-a" href="/user/rdipardo" aria-label="Profile: rdipardo">@<bdi>rdipardo</bdi></a> and figure out how to apply the same logic in your plugin. There is no simple, clean solution because the problem lies in some expectations that non-modal C# forms have regarding the environment in which they run, and Microsoft has not bothered to document anywhere what those expectations are, nor to indicate how a C++ program can provide an appropriate environment for a C# plugin. I believe C# does something in its message loop that is different from a “normal” Win32 API message loop. Without specific documentation, all fixes are going to be somewhat “hacky.”</p>
]]></description><link>https://community.notepad-plus-plus.org/post/98653</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98653</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Thu, 19 Dec 2024 17:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Thu, 19 Dec 2024 10:16:15 GMT]]></title><description><![CDATA[<p dir="auto">It looks like I have the same issue with my SQLinForm plugin, i.e. When the plugin is undocked, N++ freezes after a while.<br />
Reading the discussion I do not understand what is the final suggestion to fix this issue. could you be so kind and point me to the solution?<br />
Also, ist it possible to make a dialog not-undockable?</p>
<p dir="auto">Regards<br />
Guido</p>
]]></description><link>https://community.notepad-plus-plus.org/post/98633</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/98633</guid><dc:creator><![CDATA[Guido Thelen]]></dc:creator><pubDate>Thu, 19 Dec 2024 10:16:15 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Mon, 22 Jan 2024 21:41:39 GMT]]></title><description><![CDATA[<p dir="auto"><strong>Edit</strong><br />
If you tried the first iteration of the patch and found that 32-bit Notepad++ threw a <code>System.EntryPointNotFoundException</code>, you can read the explanation <a href="https://stackoverflow.com/questions/3343724/how-do-i-pinvoke-to-getwindowlongptr-and-setwindowlongptr-on-32-bit-platforms" rel="nofollow ugc">on Stack Overflow</a>.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/92269</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/92269</guid><dc:creator><![CDATA[rdipardo]]></dc:creator><pubDate>Mon, 22 Jan 2024 21:41:39 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Mon, 22 Jan 2024 21:29:40 GMT]]></title><description><![CDATA[<p dir="auto">This quick patch will at least keep the UI thread from hanging up.</p>
<p dir="auto">Kludge of this sort is best hidden behind a base class, so the attribute-setting method takes a generic <code>Control</code> for easier extraction someday. An updated template would ideally define classes for basic docking and modeless forms, similar to the <a href="https://community.notepad-plus-plus.org/post/91764">GUI toolkit</a> that <a class="plugin-mentions-user plugin-mentions-a" href="/user/thosrtanner" aria-label="Profile: ThosRTanner">@<bdi>ThosRTanner</bdi></a> has been developing.</p>
<p dir="auto">Note that nothing is or should have to be added to the docking panel’s constructor, contrary to the pattern of Damjan’s template. Debugging showed that only the <code>WM_NOTIFY</code> handler actually works, and only if it loops recursively into every child control(!)</p>
<pre><code class="language-diff">diff --git a/NppMarkdownPanel/MarkdownPanelController.cs b/NppMarkdownPanel/MarkdownPanelController.cs
index 6631772..3ed6e70 100644
--- a/NppMarkdownPanel/MarkdownPanelController.cs
+++ b/NppMarkdownPanel/MarkdownPanelController.cs
@@ -475,6 +475,24 @@ namespace NppMarkdownPanel
             {
                 case (int)WindowsMessage.WM_NOTIFY:
                     var notify = (NMHDR)Marshal.PtrToStructure(m.LParam, typeof(NMHDR));
+                    var panel = (MarkdownPreviewForm)viewerInterface;
+
+                    // do not intercept Npp notifications like DMN_CLOSE, etc.
+                    if (notify.hwndFrom != PluginBase.nppData._nppHandle)
+                    {
+                        panel.Invalidate(true);
+                        if (IntPtr.Size == 8)
+                        {
+                            SetControlParent(panel, Win32.GetWindowLongPtr, Win32.SetWindowLongPtr);
+                        }
+                        else
+                        {
+                            SetControlParent(panel, Win32.GetWindowLong, Win32.SetWindowLong);
+                        }
+
+                        panel.Update();
+                        return;
+                    }
                     if (notify.code == (int)DockMgrMsg.DMN_CLOSE)
                     {
                         ToolWindowCloseAction();
@@ -482,5 +500,31 @@ namespace NppMarkdownPanel
                     break;
             }
         }
+
+        /// &lt;summary&gt;
+        /// Sets the &lt;see cref="Win32.WS_EX_CONTROLPARENT"/&gt; extended attribute on &lt;paramref name="parent"/&gt; and any child controls,
+        /// following @mahee96's advice on the archived Plugin.Net issue tracker.
+        /// &lt;para&gt;
+        /// &lt;seealso href="https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net/issues/17#issuecomment-683455467"/&gt;
+        /// &lt;/para&gt;
+        /// &lt;/summary&gt;
+        /// &lt;param name="parent"&gt;
+        /// A WinForm that's been registered with Npp's Docking Manager by sending &lt;see cref="NppMsg.NPPM_DMMREGASDCKDLG"/&gt;.
+        /// &lt;/param&gt;
+        private void SetControlParent(Control parent, Func&lt;IntPtr, int, IntPtr&gt; wndLongGetter, Func&lt;IntPtr, int, IntPtr, IntPtr&gt; wndLongSetter)
+        {
+            if (parent.HasChildren)
+            {
+                long extAttrs = (long)wndLongGetter(parent.Handle, Win32.GWL_EXSTYLE);
+                if (Win32.WS_EX_CONTROLPARENT != (extAttrs &amp; Win32.WS_EX_CONTROLPARENT))
+                {
+                    wndLongSetter(parent.Handle, Win32.GWL_EXSTYLE, new IntPtr(extAttrs | Win32.WS_EX_CONTROLPARENT));
+                }
+                foreach (Control c in parent.Controls)
+                {
+                    SetControlParent(c, wndLongGetter, wndLongSetter);
+                }
+            }
+        }
     }
 }
diff --git a/NppMarkdownPanel/PluginInfrastructure/Win32.cs b/NppMarkdownPanel/PluginInfrastructure/Win32.cs
index db80520..471143d 100644
--- a/NppMarkdownPanel/PluginInfrastructure/Win32.cs
+++ b/NppMarkdownPanel/PluginInfrastructure/Win32.cs
@@ -303,6 +303,54 @@ namespace Kbg.NppPluginNET.PluginInfrastructure
 
         public const int WM_CREATE = 1;
 
+        public const int GWL_EXSTYLE     = -20;
+        public const int GWLP_HINSTANCE  = -6;
+        public const int GWLP_HWNDPARENT = -8;
+        public const int GWLP_ID         = -12;
+        public const int GWL_STYLE       = -16;
+        public const int GWLP_USERDATA   = -21;
+        public const int GWLP_WNDPROC    = -4;
+
+        public const long WS_EX_ACCEPTFILES         = 0x00000010L;
+        public const long WS_EX_APPWINDOW           = 0x00040000L;
+        public const long WS_EX_CLIENTEDGE          = 0x00000200L;
+        public const long WS_EX_COMPOSITED          = 0x02000000L;
+        public const long WS_EX_CONTEXTHELP         = 0x00000400L;
+        public const long WS_EX_CONTROLPARENT       = 0x00010000L;
+        public const long WS_EX_DLGMODALFRAME       = 0x00000001L;
+        public const long WS_EX_LAYERED             = 0x00080000L;
+        public const long WS_EX_LAYOUTRTL           = 0x00400000L;
+        public const long WS_EX_LEFT                = 0x00000000L;
+        public const long WS_EX_LEFTSCROLLBAR       = 0x00004000L;
+        public const long WS_EX_LTRREADING          = 0x00000000L;
+        public const long WS_EX_MDICHILD            = 0x00000040L;
+        public const long WS_EX_NOACTIVATE          = 0x08000000L;
+        public const long WS_EX_NOINHERITLAYOUT     = 0x00100000L;
+        public const long WS_EX_NOPARENTNOTIFY      = 0x00000004L;
+        public const long WS_EX_NOREDIRECTIONBITMAP = 0x00200000L;
+        public const long WS_EX_OVERLAPPEDWINDOW    = (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE);
+        public const long WS_EX_PALETTEWINDOW       = (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST);
+        public const long WS_EX_RIGHT               = 0x00001000L;
+        public const long WS_EX_RIGHTSCROLLBAR      = 0x00000000L;
+        public const long WS_EX_RTLREADING          = 0x00002000L;
+        public const long WS_EX_STATICEDGE          = 0x00020000L;
+        public const long WS_EX_TOOLWINDOW          = 0x00000080L;
+        public const long WS_EX_TOPMOST             = 0x00000008L;
+        public const long WS_EX_TRANSPARENT         = 0x00000020L;
+        public const long WS_EX_WINDOWEDGE          = 0x00000100L;
+
+        [DllImport("user32")]
+        public static extern IntPtr GetWindowLongPtr(IntPtr hWnd, int nIndex);
+
+        [DllImport("user32")]
+        public static extern IntPtr GetWindowLong(IntPtr hWnd, int nIndex);
+
+        [DllImport("user32")]
+        public static extern IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong);
+
+        [DllImport("user32")]
+        public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong);
+
         [DllImport("user32")]
         public static extern bool ClientToScreen(IntPtr hWnd, ref Point lpPoint);
 
</code></pre>
]]></description><link>https://community.notepad-plus-plus.org/post/92268</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/92268</guid><dc:creator><![CDATA[rdipardo]]></dc:creator><pubDate>Mon, 22 Jan 2024 21:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Mon, 22 Jan 2024 01:14:19 GMT]]></title><description><![CDATA[<blockquote>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rdipardo" aria-label="Profile: rdipardo">@<bdi>rdipardo</bdi></a> mentions this C# undocking / Notepad++ freezing is “<a href="https://community.notepad-plus-plus.org/topic/25315/notepad-v8-6-1-release/15">a relatively trivial fix</a>” . . .</p>
</blockquote>
<p dir="auto">The comment which <a class="plugin-mentions-user plugin-mentions-a" href="/user/michael-vincent" aria-label="Profile: Michael-Vincent">@<bdi>Michael-Vincent</bdi></a> linked as giving the <a href="https://community.notepad-plus-plus.org/topic/25315/notepad-v8-6-1-release/15?_=1705884169361">relatively trivial fix</a> was specifically in response to <a href="https://community.notepad-plus-plus.org/post/91795">my comment mentioning that CSVLint does have this problem</a>.</p>
</blockquote>
<p dir="auto">Don’t look at me. Damjan Cvetko <a href="https://bitbucket.org/rdipardo/dbgp/src/7901eeb3dad66b788add1df8b5acddcccb883eaf/src/forms/npp/NppDockingForm.pas#lines-187" rel="nofollow ugc">correctly diagnosed this problem</a> about 17 years ago — in the forgotten language of Delphi, the “.NET of the '90s”. The linked GitHub issue just gave me the idea that his hack would be translatable to C#, following <a href="https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net/issues/17#issuecomment-683455467" rel="nofollow ugc">the suggestion of @mahee96</a>.</p>
<p dir="auto">The gist is that you set the <code>WS_EX_CONTROLPARENT</code> bit on the docking form’s <code>GWL_EXSTYLE</code> attribute whenever the OS emits <code>WM_NOTIFY</code>. Damjan used <a href="https://bitbucket.org/rdipardo/dbgp/src/7901eeb3dad66b788add1df8b5acddcccb883eaf/src/forms/npp/NppDockingForm.pas#lines-101" rel="nofollow ugc">an intercepting message procedure</a> (originally to <em>clear</em> the <code>WS_EX_CONTROLPARENT</code> bit, but both @mahee96 <a href="https://bitbucket.org/rdipardo/dbgp/commits/5b0af29" rel="nofollow ugc">and I</a> found that <em>setting</em> it was more effective).</p>
<p dir="auto">The .NET way probably involves <a href="https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.control.wndproc" rel="nofollow ugc">overriding <code>Windows.Forms.WndProc</code></a>, checking that the <code>Msg</code> field of the passed-in <code>struct</code> equals <code>WM_NOTIFY</code>, accessing and modifying the receiving form’s <code>GWL_EXSTYLE</code> attribute if true . . .  Never tried it, though 😉</p>
]]></description><link>https://community.notepad-plus-plus.org/post/92251</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/92251</guid><dc:creator><![CDATA[rdipardo]]></dc:creator><pubDate>Mon, 22 Jan 2024 01:14:19 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Mon, 22 Jan 2024 00:56:09 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mark-olson" aria-label="Profile: Mark-Olson">@<bdi>Mark-Olson</bdi></a> said in <a href="/post/92249">C# Dockable dialog undocked freezes Notepad++</a>:</p>
<blockquote>
<p dir="auto">can be undocked without causing the issues you’re describing<br />
[…]</p>
<ul>
<li><a href="https://github.com/BdR76/CSVLint/blob/29c250e4aa174acd74b43480df5e4d5a93658260/CSVLintNppPlugin/Main.cs#L721" rel="nofollow ugc">CsvLint</a></li>
</ul>
</blockquote>
<p dir="auto">The comment which <a class="plugin-mentions-user plugin-mentions-a" href="/user/michael-vincent" aria-label="Profile: Michael-Vincent">@<bdi>Michael-Vincent</bdi></a> linked as giving the <a href="https://community.notepad-plus-plus.org/topic/25315/notepad-v8-6-1-release/15?_=1705884169361">relatively trivial fix</a> was specifically in response to <a href="https://community.notepad-plus-plus.org/post/91795">my comment mentioning that CSVLint does have this problem</a>.</p>
<p dir="auto">The code given as a fix is simple and explicit, but not being a C# programmer myself, I don’t know how to tell him how to identify the <a href="https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net/issues/17#issuecomment-683455467" rel="nofollow ugc">grid(group) control</a> for which the extended style attribute must be set.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/92250</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/92250</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Mon, 22 Jan 2024 00:56:09 GMT</pubDate></item><item><title><![CDATA[Reply to C# Dockable dialog undocked freezes Notepad++ on Mon, 22 Jan 2024 00:37:25 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/michael-vincent" aria-label="Profile: Michael-Vincent">@<bdi>Michael-Vincent</bdi></a><br />
I mean, I doubt I could figure out what is causing your issue, but what if you just look at the initialization code for these dockable dialogs, which I know can be undocked without causing the issues you’re describing, and compare their code to the code for your buggy form:</p>
<ul>
<li><a href="https://github.com/young-developer/nppNavigateTo/blob/eafa43f7382e94a3554734f2056b5bfbda2ab6dd/NppNavigateTo/NppNavigateTo.cs#L156" rel="nofollow ugc">NavigateTo</a></li>
<li><a href="https://github.com/molsonkiko/JsonToolsNppPlugin/blob/57452adac0326a6b3fe3346fa0440948b18dadd6/JsonToolsNppPlugin/Main.cs#L1424" rel="nofollow ugc">JsonTools</a></li>
<li><a href="https://github.com/BdR76/CSVLint/blob/29c250e4aa174acd74b43480df5e4d5a93658260/CSVLintNppPlugin/Main.cs#L721" rel="nofollow ugc">CsvLint</a></li>
<li><a href="https://github.com/molsonkiko/NppCSharpPluginPack/blob/66cf11610265cf87eef4c0b44c919fec223eb128/NppCSharpPluginPack/Main.cs#L492" rel="nofollow ugc">NppCSharpPluginPack</a></li>
</ul>
]]></description><link>https://community.notepad-plus-plus.org/post/92249</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/92249</guid><dc:creator><![CDATA[Mark Olson]]></dc:creator><pubDate>Mon, 22 Jan 2024 00:37:25 GMT</pubDate></item></channel></rss>