<?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" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Hot Config]]></title><description><![CDATA[Hot Config]]></description><link>https://www.hotconfig.com/</link><image><url>https://www.hotconfig.com/favicon.png</url><title>Hot Config</title><link>https://www.hotconfig.com/</link></image><generator>Ghost 4.48</generator><lastBuildDate>Sat, 03 Oct 2026 21:32:32 GMT</lastBuildDate><atom:link href="https://www.hotconfig.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[ZebraDraw: localLLM Bulk Drawing Orchestrator]]></title><description><![CDATA[We use a localLLM to generate 1000's of amazing space art!]]></description><link>https://www.hotconfig.com/zebradraw-llm-bulk-drawing-orchestrator/</link><guid isPermaLink="false">6a9f846a7083c00001141618</guid><category><![CDATA[zebradraw]]></category><category><![CDATA[LLM Drawing Orchestrator]]></category><category><![CDATA[localLLM]]></category><category><![CDATA[HouseGPU]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Tue, 22 Sep 2026 05:16:53 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/ee6d9f77-4e4d-441d-b951-6f40e35a55e7.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/ee6d9f77-4e4d-441d-b951-6f40e35a55e7.png" alt="ZebraDraw: localLLM Bulk Drawing Orchestrator"><p>ZebraDraw is a bulk drawing tool, that can allow a localLLM to draw hundreds of batched photos all night!</p><p>Licensing: Please ensure you have the correct license for whatever diffusion engine you are using if you are going for commercial work. &#xA0;ZebraDraw is completely <code>opensource</code></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-66.png" class="kg-image" alt="ZebraDraw: localLLM Bulk Drawing Orchestrator" loading="lazy" width="800" height="600" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-66.png 600w, https://www.hotconfig.com/content/images/2026/09/image-66.png 800w" sizes="(min-width: 720px) 720px"><figcaption>Seriously - Your house LLM drawing this all night!?</figcaption></figure><h3 id="pull-and-run-it-as-a-docker-image">Pull and run it as a Docker Image</h3><ul><li>This can be easily pulled and ran with a few simple commands.</li></ul><pre><code class="language-bash">sudo mkdir -p \
  /opt/zebra-draw/models \
  /opt/zebra-draw/config \
  /opt/zebra-draw/results

docker run -d \
  --name zebra-draw \
  --gpus all \
  --restart unless-stopped \
  -p 0.0.0.0:8080:8080 \
  -p 0.0.0.0:8081:8081 \
  -p 0.0.0.0:8082:8082 \
  -e MODEL_PATHS=/models \
  -v /opt/zebra-draw/models:/models:ro \
  -v /opt/zebra-draw/config:/config \
  -v /opt/zebra-draw/results:/results \
  cnmcdee/zebradraw:latest</code></pre><p>You will probably want to give your local user access to those directories it&apos;s just easier for testing so <code>chown -R user:user /opt/zebra-draw</code></p><h3 id="port-8081gpu-diffusion-model-setup">Port 8081 - GPU Diffusion Model Setup.</h3><p>We needed to show this port first, as port <code>8080</code> and <code>8082</code> will not work if this is not setup. There are lots of different ways this can work but simply you will want a model configuration that looks like this: &#xA0;Whatever the local ip of your machine is you should be able to find it by opening a browser window: <code>192.168.0.&lt;your ip&gt;:8081</code> which you type into your local browser.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-67.png" class="kg-image" alt="ZebraDraw: localLLM Bulk Drawing Orchestrator" loading="lazy" width="1163" height="385" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-67.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-67.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-67.png 1163w" sizes="(min-width: 720px) 720px"><figcaption>A working setup</figcaption></figure><p>There are three parts to this model, not all are sometimes required..</p><ul><li>Main image model <code>krea2_turbo_Q6K - 9.86</code> - It draws.</li><li>VAE <code>wan_2.1_vae - 242.0 mb</code> The translator between latent space and normal engine space.</li><li>Text Encoder <code>Qwen3VL-4B-Instruct-Q4-K_M</code> This converts your text into <code>image embeddings</code> that your <code>wan_2.1_vae</code> will require.</li><li>Click off <code>Standalone diffusion model</code> if you are using this setup.</li></ul><p>To get and pull these models - remember to save them to your <code>/opt/zebra-draw/models</code> directory.</p><pre><code class="language-bash">cd /model

wget -c -O krea2_turbo-Q6_K.gguf \
&quot;https://huggingface.co/vantagewithai/Krea-2-Turbo-GGUF/resolve/main/krea2_turbo-Q6_K.gguf&quot;

wget -c -O qwen_image_vae.safetensors \
&quot;https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors&quot;

wget -c -O Qwen3VL-4B-Instruct-Q4_K_M.gguf \
&quot;https://huggingface.co/Qwen/Qwen3-VL-4B-Instruct-GGUF/resolve/main/Qwen3VL-4B-Instruct-Q4_K_M.gguf&quot;</code></pre><p>If it is loaded cleanly - you will will not get an error, it will look something like this at the bottom inside your <code>sd-server.log</code></p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-68.png" class="kg-image" alt="ZebraDraw: localLLM Bulk Drawing Orchestrator" loading="lazy" width="735" height="501" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-68.png 600w, https://www.hotconfig.com/content/images/2026/09/image-68.png 735w" sizes="(min-width: 720px) 720px"></figure><h3 id="port-8080single-image-creation">Port 8080 - Single Image Creation</h3><ul><li>Once you are comfortable that your GPU inference engine is setup correctly, you can test a single draw, this is what <code>Port 8080</code> is for: <code>192.168.1.&lt;your ip&gt;:8080</code> in your local browser</li><li><code>Seed -1</code> will make it completely random thus the same prompt will draw exactly the same if you used any number other than <code>-1</code></li><li><code>Steps 20</code> is the number of iterations &#xA0;that the LLM will take to ensure empty spaces are filled int</li><li><code>CFG Scale</code> &#xA0;Low 0-2 get really creative 5-7 be pretty strict about following the prompt. <code>NOTE: After some investigation it is recommended in this instance to set it to 0.0</code></li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-69.png" class="kg-image" alt="ZebraDraw: localLLM Bulk Drawing Orchestrator" loading="lazy" width="1200" height="767" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-69.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-69.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-69.png 1200w" sizes="(min-width: 720px) 720px"><figcaption>the Incredible Art Drawn by AI.</figcaption></figure><p>Note: Your diffusion model may not support resolutions very high - it is important to test it here.</p><h3 id="port-8082bulk-drawing-images">Port 8082 - Bulk Drawing Images</h3><ul><li><code>192.168.1.&lt;your ip&gt;:8082</code> in your browser</li><li>It is important to trial this on one or two images before bulking. The interface will look like this:</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-70.png" class="kg-image" alt="ZebraDraw: localLLM Bulk Drawing Orchestrator" loading="lazy" width="1216" height="930" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-70.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-70.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-70.png 1216w" sizes="(min-width: 720px) 720px"></figure><p>As it draws each one - it will show the image in the progress window, you can use the <code>DOWNLOAD ALL</code> button to have it pack and send you a <code>zip file</code></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-71.png" class="kg-image" alt="ZebraDraw: localLLM Bulk Drawing Orchestrator" loading="lazy" width="1147" height="843" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-71.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-71.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-71.png 1147w" sizes="(min-width: 720px) 720px"><figcaption>Incredible Art.</figcaption></figure><p>Use <a href="https://www.chatgpt.com">Chatgpt.com</a> to write up 100 drawing prompts, here is an example prompt list:</p><p>Just drag-n-drop this file into the drag-n-drop box on the port and upload it!</p>
        <div class="kg-card kg-file-card kg-file-card-medium">
            <a class="kg-file-card-container" href="https://www.hotconfig.com/content/files/2026/09/spaceship_prompts_100.txt" title="Download" download>
                <div class="kg-file-card-contents">
                    <div class="kg-file-card-title">Spaceship prompts 100</div>
                    
                    <div class="kg-file-card-metadata">
                        <div class="kg-file-card-filename">spaceship_prompts_100.txt</div>
                        <div class="kg-file-card-filesize">10 KB</div>
                    </div>
                </div>
                <div class="kg-file-card-icon">
                    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><defs><style>.a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}</style></defs><title>download-circle</title><polyline class="a" points="8.25 14.25 12 18 15.75 14.25"/><line class="a" x1="12" y1="6.75" x2="12" y2="18"/><circle class="a" cx="12" cy="12" r="11.25"/></svg>
                </div>
            </a>
        </div>
        <h3 id="conclusions">Conclusions</h3><p>This is really powerful stuff - it is local and it is completely opensource and free. You can mix-n-match different models that you can save. It runs in a docker. &#xA0;If you need to see what your docker container looks like while running: <code>docker ps -a</code>, and finally <code>watch nvidia-smi</code> will show you a hard working GPU:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-73.png" class="kg-image" alt="ZebraDraw: localLLM Bulk Drawing Orchestrator" loading="lazy" width="757" height="341" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-73.png 600w, https://www.hotconfig.com/content/images/2026/09/image-73.png 757w" sizes="(min-width: 720px) 720px"></figure><h3 id="source-included">Source Included</h3>
        <div class="kg-card kg-file-card kg-file-card-medium">
            <a class="kg-file-card-container" href="https://www.hotconfig.com/content/files/2026/09/zebradraw-staged-fixed.zip" title="Download" download>
                <div class="kg-file-card-contents">
                    <div class="kg-file-card-title">Zebradraw staged fixed</div>
                    
                    <div class="kg-file-card-metadata">
                        <div class="kg-file-card-filename">zebradraw-staged-fixed.zip</div>
                        <div class="kg-file-card-filesize">89 KB</div>
                    </div>
                </div>
                <div class="kg-file-card-icon">
                    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><defs><style>.a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}</style></defs><title>download-circle</title><polyline class="a" points="8.25 14.25 12 18 15.75 14.25"/><line class="a" x1="12" y1="6.75" x2="12" y2="18"/><circle class="a" cx="12" cy="12" r="11.25"/></svg>
                </div>
            </a>
        </div>
        ]]></content:encoded></item><item><title><![CDATA[FreeMaxxing Chat: Token Surfers Free-to-Use LLMs]]></title><description><![CDATA[We Showcase Completely Free-to-use-LLMs.
]]></description><link>https://www.hotconfig.com/token-surfers-guide-to-free-llms/</link><guid isPermaLink="false">6ab027977083c00001141664</guid><category><![CDATA[FreeMaxxing]]></category><category><![CDATA[LLMs]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Sun, 20 Sep 2026 22:53:44 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/4a4c991f-0cf6-4754-bc9b-97ca299d0d32.webp" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/4a4c991f-0cf6-4754-bc9b-97ca299d0d32.webp" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs"><p><strong><em>A Long List of Free LLM Resources. </em></strong></p><ul><li>As we developed this list, the more features and capabilities that were offered on free-tier the more we bumped it.</li><li>Ones that could go on the internet, store files, generate images were definitely the top-tiers</li></ul><h3 id="museai-1st-placewinner"><a href="https://muse.ai">muse.ai</a> (1st Place - Winner!)</h3><ol><li><strong>200K Context &#xA0;- 180-240 Token/s - TTFT - ~30 Seconds &#xA0;</strong></li><li><strong>WEB ENABLED </strong></li><li>This is the only offering integrating it&apos;s own 2-core 100GB VM! &#xA0;This would allow you to upload whole projects and pick one to work at them. &#xA0; This really surprised us - for this reason alone it took first place - nobody came close in this regards.</li><li><strong>1 BILLION</strong> free tokens if you refer someone. &#xA0;No real &apos;chat limit&apos; perse it will simply % progress you as you go, with a weekly reset.</li><li>Image generation was very realistic.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_145007.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="428" height="478"><figcaption>A crop shot of us building LLMtron type Images.</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://muse.ai/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Muse &#x2014; Your Personal AI Agent</div><div class="kg-bookmark-description">Try Muse, your personal AI agent that gets things done. Give Muse a goal or an everyday task and it handles the rest, from finances and health to shopping and the people you care about.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://muse.ai/favicon.ico" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs"><span class="kg-bookmark-author">Muse</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://muse.ai/landing/brand/og-image.jpg?v=3" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs"></div></a></figure><h3 id="chatgptcom-2nd-placerunner-up"><a href="https://www.chatgpt.com">chatgpt.com</a> (2nd Place - Runner Up)</h3><ol><li><strong>1.05M / 128K Context In/Out </strong></li><li><strong>UNLIMITED CHAT / WEB ENABLED w/GPT 5.6 Luna</strong></li><li>Rich set for projects / libraries / plugins / <strong>currently slow</strong></li><li>Very high quality image generation for free-tier. This has UNLIMITED free chat - that&apos;s pretty powerful.</li><li>Currently world&apos;s most advanced LLM with Astra, however high subscription usage has many feeling nerfed and &apos;reset economy&apos; has popped up.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_152402.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="870" height="499" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/Screenshot_20260920_152402.png 600w, https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_152402.png 870w" sizes="(min-width: 720px) 720px"><figcaption>ChatGPT Nails it on Images - but be prepared to wait a few minutes..</figcaption></figure><h3 id="grokcom-3rd-place"><a href="https://grok.com">grok.com</a> (3rd-Place)</h3><ol><li><strong>128K / 16K Context In/Out &#xA0;Approximately 50-70 Tokens/s &#xA0;Chat limit - 10 prompts / 2 hours</strong></li><li><strong>WEB ENABLED (With very good page summarizing - others were truncated.)</strong></li><li>Projects / Files / Images </li><li>Very high quality image generation on free-tier. &#xA0; However it&apos;s smaller context windows bumped it down from chatgpt.com.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_154416.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="409" height="504"><figcaption>Grok type Robot at Beach - we had to prompt it twice the first was creepy AF.</figcaption></figure><h3 id="huggingfacecom-general-free-models100s"><a href="https://www.huggingface.com">huggingface.com</a> (General Free Models - 100&apos;s)</h3><ol><li>A hidden feature of the world&apos;s largest repository of models is in a buried side-feature of <a href="www.huggingface.com">huggingface.com</a></li><li>Select a model, and if you look on the right - one or model providers will offer &#xA0;example free example inference. In this example on the right side for example - for <code>DeepSeek</code> you will see the following chat window:</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-64.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="522" height="419"><figcaption>A testing window is expandable.</figcaption></figure><p>Because it&apos;s sorta a sub-window and not very usually friendly it&apos;s sorta &apos;hidden&apos; to the public, and people probably don&apos;t expect you to use it as a &apos;daily driver&apos; however simply expand the chat window to a full-window. It is basic chat, so.</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-65.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="133" height="102"></figure><h3 id="openrouterai-general-free-models-x20"><a href="https://openrouter.ai">openrouter.ai</a> (General Free Models x20)</h3><ol><li>Various contexts depending on the model.</li><li>Much more directed to developers and coders, you will need to register a card, but after that you can access many of the models in a chat window by selecting the <code>Playground</code> button, on the right it will have a chat window</li><li>Because there are at the time of this writing approximately 21 completely free models &#xA0;- that can change often. &#xA0;We recommend <code><a href="https://openrouter.ai/nvidia/nemotron-3.5-lightning:free">nemotron 3.5 30b</a></code> <code><a href="https://openrouter.ai/inclusionai/ling-3.0-flash-vl:free">inclusionAI - 124B</a></code> along with others. </li><li>This is one of the few places on the internet where you can access programmatic access for free.</li></ol><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-62.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="932" height="300" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-62.png 600w, https://www.hotconfig.com/content/images/2026/09/image-62.png 932w" sizes="(min-width: 720px) 720px"></figure><p>Then select <code>open in chat widnow</code> and you will have a full chat window for that model.</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-63.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="1361" height="753" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-63.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-63.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-63.png 1361w" sizes="(min-width: 720px) 720px"></figure><p></p><h3 id="chatmistralai"><a href="http://www.chat.mistral.ai">chat.mistral.ai</a></h3><ol><li><strong>128K Context / &#xA0;80 Token/s &#xA0;Inference.</strong></li><li><strong>NO WEB</strong></li><li>mistral is built for <em>coders</em> - it focuses on lots of API integration, agents, and workflows. If you are into really building agents / workflows etc. Check them out.</li><li>We bumped up mistral to #4 it&apos;s actually not bad.</li><li>Only one that offered a &apos;incognito mode&apos; we presume these prompts are not harvested.. </li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-61.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="45" height="28"><figcaption>Interesting&#xA0;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/ffe50464-20a6-41a9-94a7-e10c58d4da80.jpg" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="800" height="600" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/ffe50464-20a6-41a9-94a7-e10c58d4da80.jpg 600w, https://www.hotconfig.com/content/images/2026/09/ffe50464-20a6-41a9-94a7-e10c58d4da80.jpg 800w" sizes="(min-width: 720px) 720px"><figcaption>For a NO WEB free-tier they do offer nice images.</figcaption></figure><h3 id="geminigooglecom"><a href="https://gemini.google.com">gemini.google.com</a></h3><ol><li><strong>32K Context In/Out - Flash Tier 280-300 Tokens/s &#xA0;5 hour timeouts </strong></li><li><strong>NO WEB</strong></li><li>flash-lite / flash / pro versions / library for storing files and images</li><li><em>At least their honest</em> - they tell you up front they&apos;re harvesting your prompt.</li><li>Images are in the images tab - Main Window May Draw Less</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_145827.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="341" height="376"><figcaption>Gemini&apos;s Version of LLMTron.</figcaption></figure><h3 id="claudeai"><a href="https://claude.ai">claude.ai</a></h3><ol><li><strong>1M / 128K Context In/Out - Sonnet 5 Estimates ~55 Tokens/s</strong></li><li><strong>NO WEB</strong></li><li>Did not really give a chat prompt limit, and when queried it&apos;s &apos;usage&apos; bar seemed to have become hidden.</li><li>For having the worlds largest IPO Offering they didn&apos;t waste money on any image drawing...</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_153418.png" class="kg-image" alt="FreeMaxxing Chat: Token Surfers Free-to-Use LLMs" loading="lazy" width="366" height="415"><figcaption>Anthropic Free Tier Image Drawing&#xA0;</figcaption></figure><h3></h3>]]></content:encoded></item><item><title><![CDATA[Taalas Flagship - ChatJimmy - The 14,000 T/s Very Capable and  Near Instant LLM]]></title><description><![CDATA[We look at one of the worlds fastest basic LLM inference tools - ChatJimmy at 14,000 T/s]]></description><link>https://www.hotconfig.com/chatjimmy-the-14-000-t-s-instant-llm/</link><guid isPermaLink="false">6ab0469e7083c0000114181b</guid><category><![CDATA[ChatJimmy]]></category><category><![CDATA[LLMs]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Sun, 20 Sep 2026 20:59:41 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_170227.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://chatjimmy.ai/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">chat jimmy</div><div class="kg-bookmark-description">chat jimmy LLM web interface</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://chatjimmy.ai/favicon.ico" alt="Taalas Flagship - ChatJimmy - The 14,000 T/s Very Capable and  Near Instant LLM"></div></div></a></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_170512.png" class="kg-image" alt="Taalas Flagship - ChatJimmy - The 14,000 T/s Very Capable and  Near Instant LLM" loading="lazy" width="266" height="285"><figcaption>Instant LLM</figcaption></figure><img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260920_170227.png" alt="Taalas Flagship - ChatJimmy - The 14,000 T/s Very Capable and  Near Instant LLM"><p>It&apos;s so fast it&apos;s ridiculous, and that&apos;s just what is so beautiful about Taalaas based demonstrator - &#xA0;<a href="chatjimmi.ai">ChatJimmy</a>. &#xA0;No it doesn&apos;t do <em>long contexts, or any of that stuff, it barely keeps a session cookie. It&apos;s severely limited a session to 6144 Tokens.</em></p><p>But it&apos;s <em>really - really REALLY fast. Like so fast you won&apos;t see it even update.</em></p><h3 id="bias-against-the-8b">Bias Against the 8B</h3><ul><li>There is a ongoing bias against 8B sized models, simply in that an 8B from a year ago were not as tuned, not as good, and not as capable as an 8B today. So people <em>feel</em> they need a giant montrosity of a 2.8T sized model or what have you - but you will quickly see that you can <em>rock</em> out some pretty good obscure work. &#xA0;When we asked it some Goertzel based coding questions - that&apos;s pretty obscure, and it nailed out out of the park, even going so far as to do it in cuda code.</li></ul><p>Enough - here is some of it&apos;s output, done faster than you can blink</p><pre><code class="language-bash">Give me a Goertzel Example</code></pre><p>The output:</p><pre><code class="language-python">   &quot;&quot;&quot;
    coefficients = goertzel(x0, y0)
    return np.polyval(coefficients, x)

# Example usage
# Fit a cubic polynomial to some data
x0 = np.array([1, 2, 3, 4, 5])
y0 = np.array([2, 3, 5, 6, 8])
x = 4

# Calculate the coefficients
coefficients = goertzel(x0, y0)

# Print the coefficients
print(&quot;Coefficients: &quot;, coefficients)

# Calculate the polynomial value at x
result = goertzel_polynomial(x, 4, x0, y0)

# Print the result
print(&quot;Polynomial value at x=4: &quot;, result)

</code></pre><ul><li><code>show me in C</code></li></ul><p>Again it produced output so ridiculously fast you hardly noticed it go.</p><pre><code class="language-C">#include &lt;iostream&gt;
#include &lt;cmath&gt;
#include &lt;vector&gt;

// Function to calculate the polynomial value at a given point
double goertzel_polynomial(double x, double x0, double* coefficients, int degree) {
    double result = 0.0;
    for (int i = 0; i &lt;= degree; i++) {
        result += coefficients[i] * pow(x, i);
    }
    return result;
}

// Function to fit a polynomial using the Goertzel algorithm
void goertzel_coefficients(double* x, double* y, int n, int degree, double* coefficients) {
    // Create matrix A for the system of equations
    int m = degree + 1;
    double A[m * (n+1);
    for (int i = 0; i &lt; m; i++) {
        double sum = 0.0;
        for (int j = 0; j &lt; n; j++) {
            sum += pow(x[j], i);
        }
        for (int j = 0; j &lt;= i; j++) {
            A[i * (n+1) + j] = sum;
        }
    }

    // Solve the system of equations using the least squares method
    int m2 = m * (n+1);
    double B[m2];
    for (int i = 0; i &lt; m2; i++) {
        double sum = 0.0;
        for (int j = 0; j &lt; n; j++) {
            sum += x[j] * B[j * m + i];
        }
        B[i] = sum;
    }

    for (int i = 0; i &lt; m2; i++) {
        for (int j = 0; j &lt; m2; j++) {
            if (i == j) {
                B[i] = 1.0;
            } else {
                B[i] -= A[i * (n+1) + j];
            }
        }
    }

    // Solve the system of equations
    double L = 0.0;
    for (int i = 0; i &lt; m2; i++) {
        L = L + pow(B[i], 2);
    }
    L = 1 / L;

    for (int i = 0; i &lt; m2; i++) {
        B[i] *= L;
    }

    // Back substitute to find the coefficients
    for (int i = m-1; i &gt;= 0; i--) {
        for (int j = i+1; j &lt; m2; j++) {
            B[j * (n+1) + i] -= B[j] * A[j * (n+1) + i];
        }
        L = 0.0;
        for (int j = i+1; j &lt; m2; j++) {
            L += B[j * (n+1) + i] * A[i * (n+1) + j];
        }
        L = B[i] / L;
        B[i] = 0.0;
        for (int j = i+1; j &lt; m2; j++) {
            B[j * (n+1) + i] = (L * B[j]);
        }
    }

    // Store the coefficients
    for (int i = 0; i &lt;= degree; i++) {
        coefficients[i] = B[i * (n+1)];
    }
}

int main() {
    int degree = 3;
    int n = 5;
    double x[] = {1, 2, 3, 4, 5};
    double y[] = {2, 3, 5, 6, 8};
    double coefficients[4];

    goertzel_coefficients(x, y, n, degree, coefficients);

    double x0 = 4;
    double result = goertzel_polynomial(x0, x, y, degree, coefficients);

    std::cout &lt;&lt; &quot;Coefficients: &quot;;
    for (int i = 0; i &lt;= degree; i++) {
        std::cout &lt;&lt; coefficients[i] &lt;&lt; &quot; &quot;;
    }
    std::cout &lt;&lt; std::endl;

    std::cout &lt;&lt; &quot;Polynomial value at x=4: &quot; &lt;&lt; result &lt;&lt; std::endl;

    return 0;
}</code></pre><p>Next we tried something a little more obscure, and asked it to code it in Cuda: <code>Give me a Goertzel Example in Cuda</code></p><ul><li>Again blink - it&apos;s done.</li></ul><pre><code class="language-C">// Goertzel algorithm implementation in CUDA
// Compile with: nvcc -o goertzel_kernel.o -c goertzel_kernel.c
// Run with: time ./goertzel

#include &lt;cuda_runtime.h&gt;
#include &lt;stdio.h&gt;
#include &lt;math.h&gt;

// Function to calculate the polynomial value at a given point
__global__ void goertzel_polynomial(float* x, float* y, int n, int degree, float* result) {
    int idx = blockIdx.x * blockDim.x + threadIdx.x;
    int idx0 = blockIdx.y * blockDim.y + threadIdx.y;
    if (idx &lt; n) {
        float x0 = x[idx];
        float sum = 0.0f;
        for (int i = 0; i &lt;= degree; i++) {
            sum += powf(x0, i);
        }
        result[idx] = sum;
    }
}

// Function to fit a polynomial using the Goertzel algorithm
__global__ void goertzel_coefficients(float* x, float* y, int n, int degree, float* coefficients) {
    int idx = blockIdx.x * blockDim.x + threadIdx.x;
    if (idx &lt; degree + 1) {
        float sum = 0.0f;
        for (int i = 0; i &lt; n; i++) {
            sum += x[i];
        }
        coefficients[idx] = sum;

        for (int i = 0; i &lt; degree; i++) {
            sum = 0.0f;
            for (int j = 0; j &lt; n; j++) {
                sum += powf(x[j], i+1);
            }
            coefficients[i+1] = sum;
        }
    }
}

// Kernel function to calculate the coefficients
__global__ void calculate_coefficients(float* x, float* y, int n, int degree, float* coefficients) {
    int idx = blockIdx.x * blockDim.x + threadIdx.x;
    if (idx &lt; degree + 1) {
        int m = degree + 1;
        float sum = 0.0f;
        for (int i = 0; i &lt; n; i++) {
            sum += y[i] * coefficients[i];
        }
        coefficients[m * idx] = sum;
        sum = 0.0f;
        for (int i = 0; i &lt; n; i++) {
            sum += powf(x[i], m * idx);
        }
        coefficients[m * (idx + 1] = sum;
    }
}

// Function to calculate the polynomial value at a given point
int goertzel_polynomial(float x, float x0, float* coefficients, int degree) {
    int m = degree + 1;
    float sum = 0.0f;
    for (int i = 0; i &lt; m; i++) {
        sum += coefficients[i] * powf(x0, i);
    }
    return sum;
}

int main() {
    int degree = 3;
    int n = 5;
    float x[] = {1, 2, 3, 4, 5};
    float y[] = {2, 3, 5, 6, 8};
    float coefficients[4];
    float result;

    // Allocate memory on the device
    int blockSize = 1;
    int numBlocks = (degree + 1 + n - 1) / blockSize;
    int numThreads = n;
    float* x_d;
    float* y_d;
    float* coefficients_d;
    float* result_d;

    cudaMalloc((void**)&amp;x_d, n * sizeof(float));
    cudaMalloc((void**)&amp;y_d, n * sizeof(float));
    cudaMalloc((void**)&amp;coefficients_d, (degree + 1) * sizeof(float));
    cudaMalloc((void**)&amp;result_d, sizeof(float));

    // Copy data to the device
    cudaMemcpyAsync(x_d, x, n * sizeof(float), cudaMemcpyHostToDevice);
    cudaMemcpyAsync(y_d, y, n * sizeof(float), cudaMemcpyHostToDevice);

    // Launch the kernel
    dim3 block(1, 1);
    dim3 grid((degree + 1 + n - 1) / blockSize, 1);
    calculate_coefficients&lt;&lt;&lt;grid, block&gt;&gt;&gt;(x, y, n, degree, coefficients_d);

    // Synchronize the device
    cudaDeviceSynchronize();

    // Copy data back to the host
    cudaMemcpy(&amp;coefficients, coefficients_d, (degree + 1) * sizeof(float), cudaMemcpyDeviceToHost);

    // Launch the kernel again to calculate the result
    dim3 block1(1, 1);
    dim3 grid1(1, 1);
    goertzel_polynomial&lt;&lt;&lt;grid1, block1&gt;&gt;&gt;(x_d, coefficients_d, degree, x, &amp;result_d);

    // Synchronize the device
    cudaDeviceSynchronize();

    // Copy data back to the host
    cudaMemcpy(&amp;result, result_d, sizeof(float), cudaMemcpyDeviceToHost);

    // Print the coefficients and the result
    printf(&quot;Coefficients: &quot;);
    for (int i = 0; i &lt;= degree; i++) {
        printf(&quot;%f &quot;, coefficients[i]);
    }
    printf(&quot;\n&quot;);
    printf(&quot;Polynomial value at x=4: %f\n&quot;, result);

    // Free the device memory
    cudaFree(x_d);
    cudaFree(y_d);
    cudaFree(coefficients_d);
    cudaFree(result_d);

    return 0;
}</code></pre><h3 id="conclusion">Conclusion</h3><ul><li>We don&apos;t need to spend a lot of time on this thing for anyone realize it&apos;s a <em>incredibly fast</em> LLM for quick one-offs in very small-contexts. </li><li>If you need very fast code blocks, very fast summaries, and don&apos;t mind the small context windows this thing is <strong>gold!</strong></li></ul>]]></content:encoded></item><item><title><![CDATA[ZebraPipe: A New LocalLLM BULK Orchestrator]]></title><description><![CDATA[ZebraPipe debuts as another powerful LLM Orchestrator!]]></description><link>https://www.hotconfig.com/llm-psm-prompt-state-machine-debut/</link><guid isPermaLink="false">6a9f66157083c0000114153b</guid><category><![CDATA[zebrapipe]]></category><category><![CDATA[localLLM]]></category><category><![CDATA[Infrerence Orchestrator]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Tue, 08 Sep 2026 02:27:40 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/ee2ba779-4de4-4b26-8599-0262fceef509.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/ee2ba779-4de4-4b26-8599-0262fceef509.png" alt="ZebraPipe: A New LocalLLM BULK Orchestrator"><p>ZebraPipe is designed for BULK localLLM batch inferencing. It is open source! &#xA0;Build or &#xA0;modify &#xA0;this with your LLM however you want! We used ChatGPT 5.6-sol &#xA0;all day to build this powerful utility appliance. &#xA0;It contains a complete compiled <code>llama-server</code> interally from &#xA0;The Tom&apos;s Fork! &#xA0;This is bigly, &#xA0;it offers you lots of compression options like <code>turboquant 2,3,4</code> which can greatly reduce your <code>kv-cache</code> sizes on larger contexts on small GPU&apos;s. </p><h3 id="supported-cuda-architectures">Supported Cuda Architectures</h3><ul><li>All of them: <code>50, 60, 61, 70, 75, 80, 86, 89, 90, 100, 101, 103, 120a, 121a</code> (Basically everything from a 1080 to a H200, we even included Blackwell!)</li><li>Port <code>8080</code> - Main llama-server inference window</li><li>Port <code>8081</code> - Engine manager and settings</li><li>Port <code>8082</code> - Batch queue handler!</li></ul><h3 id="docker-pull-and-run">Docker Pull and Run!</h3><ul><li>Literally pull and run this with a single command!</li></ul><pre><code class="language-bash">docker pull cnmcdee/zebrapipe:latest
docker run -d \
  --name zebrapipe \
  --gpus all \
  --restart unless-stopped \
  -p 8080:8080 \
  -p 8081:8081 \
  -p 8082:8082 \
  -e MODEL_PATHS=/models \
  -v /opt/llm/models:/models:ro \
  -v /opt/llm/config:/config \
  -v /opt/llm/results:/results \
  cnmcdee/zebrapipe:latest</code></pre><pre><code class="language-bash">192.168.1.&lt;your ip&gt;:8080  # A standard llama-server 
192.168.1.&lt;your ip&gt;:8081  # A LLM Settings and Reload Manager
192.168.1.&lt;your ip&gt;:8082  # A prompt Queue Manager</code></pre><h3 id="copy-all-your-models">Copy all Your Models </h3><ul><li>Setup is crazy easy - simply copy all your <code>gguf</code> model files to the created directory: <code>/opt/llm/models/</code> Easy! </li><li>Goto <code>192.168.1.&lt;your ip&gt;:8081</code> hit <code>RESCAN MODELS</code></li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-41.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="533" height="363"><figcaption>You must have your models inside /opt/llm/models/</figcaption></figure><ul><li>Wait about 10 seconds - it takes a bit because it is interrogating the models, they will show up in the <code>Discovered models</code></li><li>Pick a model and load it</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-51.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="514" height="374"></figure><h3 id="port-8080-llama-server-window">Port 8080 (llama-server Window)</h3><ul><li>Will have your standard llama-server window - for non-batching usage. </li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-39.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="722" height="232" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-39.png 600w, https://www.hotconfig.com/content/images/2026/09/image-39.png 722w" sizes="(min-width: 720px) 720px"><figcaption>Use your Llama-server normally on Port 8080</figcaption></figure><p>Please note - <code>MCP Tools</code> is now down by your plus button so, it is there!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-54.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="208" height="198"><figcaption>MCP tools used to be at the top left it&apos;s moved to the +</figcaption></figure><h3 id="port-8081-llm-engine-manager">Port 8081 (LLM Engine Manager)</h3><ul><li><code>Port 8081</code> Is your Engine Manager, it will scan the mounted directory for all your models:</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-55.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="1093" height="461" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-55.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-55.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-55.png 1093w" sizes="(min-width: 720px) 720px"></figure><p>Of importance you can add all your custom options:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-47.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="525" height="367"></figure><p>While monitoring the <code>llama-server</code> outputs at the bottom:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-48.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="1031" height="295" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-48.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-48.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-48.png 1031w" sizes="(min-width: 720px) 720px"></figure><h3 id="mcp-tool-support-this-is-for-your-queue-manager-port-8082">MCP Tool Support (This is FOR YOUR QUEUE MANAGER PORT 8082)</h3><ul><li>A new MCP Tool Support has just been added. Please note you must use this type of <code>json structure</code> for listing your tools, we had significant issues figuring this out.</li></ul><pre><code class="language-bash">&quot;calculator&quot;: {
    &quot;enabled&quot;: true,
    &quot;transport&quot;: &quot;streamable_http&quot;,
    &quot;url&quot;: &quot;http://192.168.1.3:5000/mcp&quot;
  },</code></pre><ul><li>This is <code>mcp tool support</code> for your queue manager on <code>8082</code> NOT for the <code>llama-sever</code> on 8080, which uses the <code>+</code> button to manage it separately.</li><li>We have compiled all of <code>hotconfig.com</code> mcp tools into a cut and paste list.</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/easy-bake-mcp-docker-tools/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">PowerChest home Agent Agents MCP Tools to Put your HouseLLM into Turbo. MCP TOOLS 1-9++</div><div class="kg-bookmark-description">Downloads Page for all your MCP tooling needs!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="ZebraPipe: A New LocalLLM BULK Orchestrator"><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/04/surf_bot.jpg" alt="ZebraPipe: A New LocalLLM BULK Orchestrator"></div></a></figure><pre><code class="language-bash">{
  &quot;calculator&quot;: {
    &quot;enabled&quot;: true,
    &quot;transport&quot;: &quot;streamable_http&quot;,
    &quot;url&quot;: &quot;http://192.168.1.3:5000/mcp&quot;
  },
  &quot;python&quot;: {
    &quot;enabled&quot;: true,
    &quot;transport&quot;: &quot;streamable_http&quot;,
    &quot;url&quot;: &quot;http://192.168.1.3:5001/mcp&quot;
  },
  &quot;weather&quot;: {
    &quot;enabled&quot;: true,
    &quot;transport&quot;: &quot;streamable_http&quot;,
    &quot;url&quot;: &quot;http://192.168.1.3:5002/mcp&quot;
  },
  &quot;javascript&quot;: {
    &quot;enabled&quot;: true,
    &quot;transport&quot;: &quot;streamable_http&quot;,
    &quot;url&quot;: &quot;http://192.168.1.3:5003/mcp&quot;
  },
  &quot;mysql&quot;: {
    &quot;enabled&quot;: true,
    &quot;transport&quot;: &quot;streamable_http&quot;,
    &quot;url&quot;: &quot;http://192.168.1.3:5005/mcp&quot;
  },
  &quot;super-python&quot;: {
    &quot;enabled&quot;: true,
    &quot;transport&quot;: &quot;streamable_http&quot;,
    &quot;url&quot;: &quot;http://192.168.1.3:5006/mcp&quot;
  },
  &quot;process-manager&quot;: {
    &quot;enabled&quot;: true,
    &quot;transport&quot;: &quot;streamable_http&quot;,
    &quot;url&quot;: &quot;http://192.168.1.3:5008/mcp&quot;
  }
}</code></pre><p>Once you have scanned your tools you have granular control over them for whatever batch processes you are running in <strong>Port 8082</strong></p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-58.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="1061" height="850" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-58.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-58.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-58.png 1061w" sizes="(min-width: 720px) 720px"></figure><h3 id="port-8082-job-queue-manager">Port 8082 (Job Queue &#xA0;Manager)</h3><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-56.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="1109" height="447" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-56.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-56.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-56.png 1109w" sizes="(min-width: 720px) 720px"></figure><ul><li>You can enter numerous jobs and have them batched over night!</li><li>You can also have another LLM write up a <code>json</code> of tasks, and simply drag-n-drop them!</li><li>We are just in the process of adding <code>nice view</code> and upgrading that!</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-44.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="1323" height="447" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-44.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-44.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-44.png 1323w" sizes="(min-width: 720px) 720px"></figure><p>As they work you can watch the llm queue.</p><ul><li>We can see by not over-fitting our LLM and running a sufficient 8B it can can progress very quickly doing the lower-tier work (in massive bulk) that would bankrupt anyone&apos;s higher-tier API accounts!</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-59.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="1042" height="359" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-59.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-59.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-59.png 1042w" sizes="(min-width: 720px) 720px"></figure><h3 id="understanding-drag-n-drop-tasking">Understanding &#xA0;Drag-n-Drop Tasking</h3><ul><li>There are two modes, <code>PROMPT</code> and <code>AGENT</code>. &#xA0;<code>PROMPT</code> will not allow tool calling - <code>AGENT</code> will.</li><li>You can specifiy the type of call in your list, for instance:</li></ul><pre><code class="language-bash">prompt,&quot;Write a Python program&quot;
agent,&quot;Inspect the project with MCP tools and fix the build&quot;
agent,&quot;Search the web and summarize today&apos;s CUDA news&quot;</code></pre><h3 id="can-it-bulkyes">Can it BULK - YES.</h3><ul><li>We modified it and it now queues up 1000&apos;s of prompts in seconds. </li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-57.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="1165" height="885" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-57.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-57.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-57.png 1165w" sizes="(min-width: 720px) 720px"></figure>
        <div class="kg-card kg-file-card kg-file-card-medium">
            <a class="kg-file-card-container" href="https://www.hotconfig.com/content/files/2026/09/lazarus_jobs_0001.csv" title="Download" download>
                <div class="kg-file-card-contents">
                    <div class="kg-file-card-title">Lazarus jobs 0001</div>
                    
                    <div class="kg-file-card-metadata">
                        <div class="kg-file-card-filename">lazarus_jobs_0001.csv</div>
                        <div class="kg-file-card-filesize">157 KB</div>
                    </div>
                </div>
                <div class="kg-file-card-icon">
                    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><defs><style>.a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}</style></defs><title>download-circle</title><polyline class="a" points="8.25 14.25 12 18 15.75 14.25"/><line class="a" x1="12" y1="6.75" x2="12" y2="18"/><circle class="a" cx="12" cy="12" r="11.25"/></svg>
                </div>
            </a>
        </div>
        <h3 id="bulk-export-results">Bulk Export Results</h3><ul><li>You can bulk export the results in one shot in the format you choose, you will get a nicely packaged <code>zip</code> that will have it nicely organized for you:</li></ul><h3 id="code-extract">Code Extract</h3><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-60.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="917" height="540" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-60.png 600w, https://www.hotconfig.com/content/images/2026/09/image-60.png 917w" sizes="(min-width: 720px) 720px"></figure><ul><li>Extract all the code from all the batched windows in one shot (being added today!)</li></ul><h3 id="restarting-is-a-breeze">Restarting is a Breeze</h3><pre><code class="language-bash">docker restart zebrapipe</code></pre><h3 id="full-source-code">Full Source Code</h3><ul><li>The full source code is right &gt;&gt;down&lt;&lt; this page.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-38.png" class="kg-image" alt="ZebraPipe: A New LocalLLM BULK Orchestrator" loading="lazy" width="1186" height="430" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-38.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-38.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-38.png 1186w" sizes="(min-width: 720px) 720px"><figcaption>btop monitoring the build..</figcaption></figure><h3 id="build-it-in-pieces-using-buildkit">Build it in Pieces using BuildKit</h3><ul><li>This builds using <code>docker moby/buildkit</code> So if you are modifying it you do not have to rebuild the entire system but can build it in pieces!</li></ul><pre><code class="language-bash">./build-all-stages.sh
# Or to build one stage:
./build-stage.sh &lt;1 - 10&gt;</code></pre>
        <div class="kg-card kg-file-card kg-file-card-medium">
            <a class="kg-file-card-container" href="https://www.hotconfig.com/content/files/2026/09/zebra-pipe-bulk-paginated.zip" title="Download" download>
                <div class="kg-file-card-contents">
                    <div class="kg-file-card-title">Zebra pipe bulk paginated</div>
                    
                    <div class="kg-file-card-metadata">
                        <div class="kg-file-card-filename">zebra-pipe-bulk-paginated.zip</div>
                        <div class="kg-file-card-filesize">94 KB</div>
                    </div>
                </div>
                <div class="kg-file-card-icon">
                    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><defs><style>.a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}</style></defs><title>download-circle</title><polyline class="a" points="8.25 14.25 12 18 15.75 14.25"/><line class="a" x1="12" y1="6.75" x2="12" y2="18"/><circle class="a" cx="12" cy="12" r="11.25"/></svg>
                </div>
            </a>
        </div>
        <h3 id="conclusion">Conclusion</h3><p>This can become a powerful supporting tool for local batch inferencing jobs that can run all night.</p>]]></content:encoded></item><item><title><![CDATA[FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer]]></title><description><![CDATA[We look at a powerful standalone ImageLLM that creates powerful and creative images.]]></description><link>https://www.hotconfig.com/flux-1-dev-black-forest-labs-localllm-image-inferencer/</link><guid isPermaLink="false">6a9ee67c7083c000011414bf</guid><category><![CDATA[Black Forest]]></category><category><![CDATA[ImageLLM]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Mon, 07 Sep 2026 18:54:29 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/67d250ab-f2aa-4f8f-b4f1-af6b5bf4b999.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/67d250ab-f2aa-4f8f-b4f1-af6b5bf4b999.png" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer"><p>This LLM is to be used under &#xA0;a Non-Commerial Black Forest License <a href="https://huggingface.co/black-forest-labs/FLUX.1-dev/blob/main/LICENSE.md">Usage</a></p><p>Easily pull and run it with two docker commands.</p><pre><code class="language-bash">docker pull cnmcdee/black-forest
docker run -d \
--name black-forest \
--restart unless-stopped \
--gpus all \
-p 8080:8080 \
-e DEFAULT_MODE=cpu \
-e CPU_THREADS=12 \
-v black-forest:/data \
cnmcdee/black-forest:latest</code></pre><p><code>--gpu all</code> should always be specified. &#xA0;Otherwise it will run but CPU only generation can take a very long time!</p><p>When it comes up it will be visible at port <code>8080</code></p><pre><code class="language-bash">http://192.168.1.&lt;your ip&gt;:8080</code></pre><p>This is a complete standalone powerful ImageLLM and big kudos to Black Forest for allowing it for <em>non-commercial use</em>. &#xA0;Hosted here:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://huggingface.co/black-forest-labs/FLUX.1-dev"><div class="kg-bookmark-content"><div class="kg-bookmark-title">black-forest-labs/FLUX.1-dev &#xB7; Hugging Face</div><div class="kg-bookmark-description">We&#x2019;re on a journey to advance and democratize artificial intelligence through open source and open science.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://huggingface.co/favicon.ico" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer"></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn-thumbnails.huggingface.co/social-thumbnails/models/black-forest-labs/FLUX.1-dev.png" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer"></div></a></figure><p>Black Forest Lab image LLM&apos;s have showing incredible popularity with a stunning 775,000 downloads just last month. </p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-30.png" class="kg-image" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer" loading="lazy" width="513" height="187"></figure><p>Using one of the worlds most advanced LLM&apos;s (<a href="https://openai.com/index/gpt-6-astra/">ChatGPT Astra</a>) - and a separate dedicated building server, we had it build this entire system.</p><h3 id="it-is-a-big-image-but-it-is-a-standalone">It is a Big Image (But it is a StandAlone)</h3><ul><li>Like 46.2 GB, so make some room for it.</li><li>Once it&apos;s pulled it&apos;s completely standalone, it does not require a Huggingface token, and does not need to pull models. It just works.</li></ul><p>This kind of thing is HUGE because it lets the little guy quickly and easily stand up a high quality image generator. Use it for generating memes.</p><p>Don&apos;t know how to setup docker, it&apos;s pretty easy:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/docker-installation-script/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Docker Installation Script</div><div class="kg-bookmark-description">Just another Docker Installation Script - Because you can never have enough of these!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer"><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/03/25c69460-0cb0-4617-8d69-a68648041376.jpg" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer"></div></a></figure><h2 id="a-beautiful-interface">A Beautiful Interface</h2><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-31.png" class="kg-image" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer" loading="lazy" width="1279" height="1001" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-31.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-31.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-31.png 1279w" sizes="(min-width: 720px) 720px"></figure><p>You can select different ways for it to load on the left, it offerse several options to ensure even minimal CPU&apos;s will load.</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-32.png" class="kg-image" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer" loading="lazy" width="441" height="248"></figure><p><strong>Over Loading Fault Tolerant</strong></p><ul><li>You can try higher settings and if it fails simply lower the load and click <code>Reload Model</code></li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-33.png" class="kg-image" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer" loading="lazy" width="415" height="353"></figure><p>On the right side you can see how your system is being loaded</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-34.png" class="kg-image" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer" loading="lazy" width="808" height="190" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-34.png 600w, https://www.hotconfig.com/content/images/2026/09/image-34.png 808w" sizes="(min-width: 720px) 720px"></figure><p>After 108s, our 4080 system produces the following:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-35.png" class="kg-image" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer" loading="lazy" width="1302" height="888" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-35.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-35.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-35.png 1302w" sizes="(min-width: 720px) 720px"></figure><p>These are <em>really nice images</em>...</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-36.png" class="kg-image" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer" loading="lazy" width="1024" height="1024" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-36.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-36.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-36.png 1024w" sizes="(min-width: 720px) 720px"><figcaption>Black Forest Capabilities From Their Model.</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-37.png" class="kg-image" alt="FLUX.1-dev Black Forest Labs LocalLLM Image Inferencer" loading="lazy" width="640" height="480" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-37.png 600w, https://www.hotconfig.com/content/images/2026/09/image-37.png 640w"></figure>]]></content:encoded></item><item><title><![CDATA[Docker ImageLLM: Z-Image-Turbo Magazine Quality Images from a LocalLLM with a Full Web Interface]]></title><description><![CDATA[We get Chap GPT Astra Making LocalLLM Sketchers Available for You!]]></description><link>https://www.hotconfig.com/docker-llm/</link><guid isPermaLink="false">6a9e2c567083c00001141448</guid><category><![CDATA[docker]]></category><category><![CDATA[docker image]]></category><category><![CDATA[docker container]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Mon, 07 Sep 2026 03:25:16 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/1788764904-362832177.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/1788764904-362832177.png" alt="Docker ImageLLM: Z-Image-Turbo Magazine Quality Images from a LocalLLM with a Full Web Interface"><p>LLM&apos;s can get complicated fast, especially the one&apos;s that generate images. We have made a complete standalone<a href="https://huggingface.co/CompVis/stable-diffusion-v1-4"> </a>docker image.</p><p>A docker Installation Review:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/docker-installation-script/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Docker Installation Script</div><div class="kg-bookmark-description">Just another Docker Installation Script - Because you can never have enough of these!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Docker ImageLLM: Z-Image-Turbo Magazine Quality Images from a LocalLLM with a Full Web Interface"><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/03/25c69460-0cb0-4617-8d69-a68648041376.jpg" alt="Docker ImageLLM: Z-Image-Turbo Magazine Quality Images from a LocalLLM with a Full Web Interface"></div></a></figure><p>To pull and run it simply:</p><pre><code class="language-bash">docker pull cnmcdee/z-image-turbo-web:latest
docker run -d \
  --name z-image-turbo-web \
  --restart unless-stopped \
  --gpus all \
  -p 8000:8000 \
  -v z-image-models:/models/huggingface \
  -v &quot;$PWD/outputs:/app/outputs&quot; \
  -e LOAD_MODE=auto \
  cnmcdee/z-image-turbo-web:latest</code></pre><h3 id="first-time-you-run-it-will-take-time">First Time You Run It Will Take Time.</h3><ul><li>It will pull the rest of the major model so it works. This took us about 10 minutes, but then it did work. </li></ul><pre><code class="language-bash">http://192.168.1.&lt;your ip&gt;:8000</code></pre><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-25.png" class="kg-image" alt="Docker ImageLLM: Z-Image-Turbo Magazine Quality Images from a LocalLLM with a Full Web Interface" loading="lazy" width="1052" height="960" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-25.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-25.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-25.png 1052w" sizes="(min-width: 720px) 720px"></figure><p>Some example images:</p><blockquote>A Magazine Quality Image of New York</blockquote><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-26.png" class="kg-image" alt="Docker ImageLLM: Z-Image-Turbo Magazine Quality Images from a LocalLLM with a Full Web Interface" loading="lazy" width="1024" height="1024" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-26.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-26.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-26.png 1024w" sizes="(min-width: 720px) 720px"></figure><blockquote>A cat and dog eating chips in a lounge chair by the beach</blockquote><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-27.png" class="kg-image" alt="Docker ImageLLM: Z-Image-Turbo Magazine Quality Images from a LocalLLM with a Full Web Interface" loading="lazy" width="1024" height="1024" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-27.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-27.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-27.png 1024w" sizes="(min-width: 720px) 720px"></figure><p>You quickly get the idea. But the power is this runs inside a docker, you do not need to be a programmer to develop this it&apos;s been done for you!</p><h3 id="security-isolated">Security Isolated</h3><p>The big sell of building this into a docker container is it is secure, and setup free. You do not need a giant plethora of coding, mangling and driver configuration. If you can pull and start up a simple docker container you are up!</p><h3 id="conclusion">Conclusion</h3><p>Some may absolutely love the convenience of getting a local quick LLM draft up some quick sketches while others may want much more power. Either way it&apos;s a easy convenient and <em>portable</em> docker container you can stand up for all some back sketching needs.</p>]]></content:encoded></item><item><title><![CDATA[SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM.]]></title><description><![CDATA[<p>Realizing how fast the Image-to-Text LLM&apos;s are moving we want to see how quickly a minimal 4-bit quant sized gemma image recognition model can make a safety call.</p><p>We are working with this model:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://huggingface.co/ggml-org/gemma-4-E4B-it-GGUF?utm_source=chatgpt.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ggml-org/gemma-4-E4B-it-GGUF &#xB7; Hugging Face</div><div class="kg-bookmark-description">We&#x2019;re on a journey to advance and</div></div></a></figure>]]></description><link>https://www.hotconfig.com/fast-eyes/</link><guid isPermaLink="false">6a9dda4e7083c000011413b7</guid><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Sun, 06 Sep 2026 22:46:21 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260906_172754.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260906_172754.png" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM."><p>Realizing how fast the Image-to-Text LLM&apos;s are moving we want to see how quickly a minimal 4-bit quant sized gemma image recognition model can make a safety call.</p><p>We are working with this model:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://huggingface.co/ggml-org/gemma-4-E4B-it-GGUF?utm_source=chatgpt.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ggml-org/gemma-4-E4B-it-GGUF &#xB7; Hugging Face</div><div class="kg-bookmark-description">We&#x2019;re on a journey to advance and democratize artificial intelligence through open source and open science.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://huggingface.co/favicon.ico" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM."></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn-thumbnails.huggingface.co/social-thumbnails/models/ggml-org/gemma-4-E4B-it-GGUF.png" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM."></div></a></figure><pre><code class="language-bash">wget https://huggingface.co/ggml-org/gemma-4-E4B-it-GGUF/resolve/main/gemma-4-E4B-it-Q4_0.gguf?download=true</code></pre><p>Please note - you <em>need two files</em> - one is the <strong>.gguf</strong> model file and one is the <strong>mmproj</strong> (projector file). &#xA0;If you run your model without specifying the projector file it just works in text-to-text mode. So don&apos;t forget to pull both:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-19.png" class="kg-image" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM." loading="lazy" width="1065" height="777" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-19.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-19.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-19.png 1065w" sizes="(min-width: 720px) 720px"><figcaption>Either projector file should work.</figcaption></figure><p>While it&apos;s downloading you can do a quick <code>llama-server</code> setup so make a <code>bash.sh</code> and <code>chmod +x bash.sh</code> after putting inside of it:</p><pre><code class="language-bash">sudo apt update
sudo apt install -y git cmake build-essential

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp

cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j&quot;$(nproc)&quot;</code></pre><p>Or if you need a detailed walk-through we always recommend the <em>very good</em> StudentLLM:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/studentllm-examinin/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">StudentLLM - Qwen2.5-coder-7b-instruct-q6-k / Qwen3.5 Agentic on a Ryzen 5-2600/ 3060ti. Production LLM or not? YES!</div><div class="kg-bookmark-description">We Look a StudentLLM setup to get as much productivity out of limited hardware as we can.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM."><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/04/single_student.jpg" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM."></div></a></figure><p>Our installation configuration (after a bit of mangling) worked out as follows, note we load both the <strong>.gguf</strong> and the<strong> mmproj</strong> files:</p><pre><code class="language-bash">/usr/bin/llama-server \
-m /home/c/models/gemma-4-E4B-it-GGUF_Q4_0.gguf \
--mmproj /home/c/models/mmproj-gemma-4-E4B-it-Q8_0.gguf \
--spec-draft-n-max 4 \
--backend-sampling \
--jinja \
-c 32768 \
-ngl auto \
--host 0.0.0.0 \
--port 8080</code></pre><ul><li>Note - we always prefer <em>absolute pathing</em> - it just works better out of the gate:</li></ul><h3 id="this-is-a-small-fast-model">This is a Small Fast Model</h3><p>It loaded in a couple second, awesome. There are really two working parts - the<strong> <em>mmproj model</em> </strong>which coverts images into <strong>vision embedding tokens</strong>, and a second model that reads those tokens and makes a inference (text-to-text). Now it&apos;s time to test it out, thusly:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-20.png" class="kg-image" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM." loading="lazy" width="782" height="837" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-20.png 600w, https://www.hotconfig.com/content/images/2026/09/image-20.png 782w" sizes="(min-width: 720px) 720px"></figure><h3 id="benchmarking-a-safety-index">BenchMarking A Safety Index</h3><p>We now will run this identifier in a safety setting ten times, making an average timing to determine a high-risk scenario. We realize no AI can replace a human at nuanced crisis determinations, instead we simply ask it to give the image a probability, and if that probability is above a threshold - then that could give a GREEN, YELLOW, or RED threshold alarm for a human to make the final call. &#xA0;We leave it for others to consider real-world options. <em>Our script to run the dog image 10 times:</em></p><pre><code class="language-bash">#!/bin/bash

IMG=$(base64 -w0 test.png)

cat &gt; request.json &lt;&lt;EOF
{
&quot;messages&quot;: [{
&quot;role&quot;: &quot;user&quot;,
&quot;content&quot;: [
{
&quot;type&quot;: &quot;text&quot;,
&quot;text&quot;: &quot;Estimate the probability that this image shows an immediate safety emergency. Output exactly one integer from 0 to 100 followed by a percent sign. Example: 23%. Output nothing else.&quot;
},
{
&quot;type&quot;: &quot;image_url&quot;,
&quot;image_url&quot;: {
&quot;url&quot;: &quot;data:image/png;base64,$IMG&quot;
}
}
]
}],
&quot;chat_template_kwargs&quot;: {
&quot;enable_thinking&quot;: false
},
&quot;max_tokens&quot;: 20
}
EOF

for i in {1..10}; do
START=$(date +%s%N)

RESPONSE=$(curl -s \
http://127.0.0.1:8080/v1/chat/completions \
-H &quot;Content-Type: application/json&quot; \
--data-binary @request.json)

END=$(date +%s%N)

ANSWER=$(echo &quot;$RESPONSE&quot; | jq -r &apos;.choices[0].message.content&apos;)

TIME=$(awk &quot;BEGIN {printf \&quot;%.3f\&quot;, ($END-$START)/1000000000}&quot;)

echo &quot;Run $i: $ANSWER    ${TIME}s&quot;
done</code></pre><p><strong>Output:</strong></p><p>It was able to look at and make a determination in approximately 170 ms - that is fast!</p><pre><code class="language-text">./safety.sh
Run 1: 0%    0.181s
Run 2: 5%    0.167s
Run 3: 5%.    0.168s
Run 4: 5%    0.167s
Run 5: 5%    0.167s
Run 6: 5%    0.168s
Run 7: 1%    0.167s
Run 8: 5%    0.167s
Run 9: 5%    0.168s
Run 10: 5%    0.167s</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/Screenshot_20260906_172754-1.png" class="kg-image" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM." loading="lazy" width="308" height="284"><figcaption>Sorry dog you better not be drowning.. LLM says you good!</figcaption></figure><p>Next we had ChatGPT 5.6-Sol to make a drowning victim image and explicitly explained it was for training a safety LLM, it gave us this image:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-21.png" class="kg-image" alt="SafetyLLM: gemma-4-E4B-it  We Look At a Minimally Loading Small-Footprint SafetyLLM." loading="lazy" width="1448" height="1086" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-21.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-21.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-21.png 1448w" sizes="(min-width: 720px) 720px"></figure><p>Our results:</p><pre><code class="language-text">./safety.sh
Run 1: 5%    0.599s
Run 2: 15%    0.279s
Run 3: 10%    0.282s
Run 4: 15%    0.282s
Run 5: 5%    0.273s
Run 6: 10%.    0.279s
Run 7: 10%    0.280s
Run 8: 20%    0.280s
Run 9: 25%    0.282s
Run 10: 2%    0.274s</code></pre><p>After this we tried a number of different styles of prompts getting this eventually:</p><pre><code class="language-bash">
Run 2: 85%    0.272s
Run 3: 85%    0.284s
Run 4: 85%    0.282s
Run 5: 85%    0.273s
Run 6: 85%    0.264s
Run 7: 85%    0.275s
Run 8: 85%    0.278s
Run 9: 85%    0.277s
Run 10: 85%    0.277s</code></pre><h3 id="our-prompt">Our Prompt</h3><pre><code class="language-bash">#!/bin/bash

IMG=$(base64 -w0 test.png)

cat &gt; request.json &lt;&lt;EOF
{
  &quot;messages&quot;: [{
    &quot;role&quot;: &quot;user&quot;,
    &quot;content&quot;: [
      {
        &quot;type&quot;: &quot;text&quot;,
       &quot;text&quot;: &quot;You are a visual water-safety detector.\n\nDetermine whether at least one person in this image shows visual signs that warrant immediate lifesaving attention.\n\nStrong emergency indicators include:\n- distressed or panicked facial expression\n- mouth or nose repeatedly at the waterline\n- head barely above water\n- one or both arms raised or reaching for help\n- uncontrolled splashing\n- inability to maintain a normal swimming posture\n- vertical or sinking body posture\n- apparent inability to make purposeful forward progress\n- obvious struggle to keep the airway above water\n\nIMPORTANT:\nDo not require proof that the person is physiologically drowning.\nThe question is whether the VISUAL EVIDENCE is sufficiently concerning that a lifeguard should investigate or intervene.\n\nUse this scale:\n0-10% = clearly normal swimming/recreation\n11-30% = unusual but probably safe\n31-50% = possible distress; investigate\n51-70% = substantial evidence of distress\n71-90% = strong evidence requiring immediate attention\n91-100% = unmistakable life-threatening water emergency\n\nEvaluate the most endangered-looking person in the image.\n\nReturn exactly one integer followed by a percent sign.\nReturn nothing else.&quot;
      },
      {
        &quot;type&quot;: &quot;image_url&quot;,
        &quot;image_url&quot;: {
          &quot;url&quot;: &quot;data:image/png;base64,$IMG&quot;
        }
      }
    ]
  }],
  &quot;chat_template_kwargs&quot;: {
    &quot;enable_thinking&quot;: false
  },
  &quot;max_tokens&quot;: 20,
  &quot;temperature&quot;: 0.0,
  &quot;top_p&quot;: 1
}
EOF

for i in {1..10}; do
    START=$(date +%s%N)

    RESPONSE=$(curl -s \
      http://127.0.0.1:8080/v1/chat/completions \
      -H &quot;Content-Type: application/json&quot; \
      --data-binary @request.json)

    END=$(date +%s%N)

    ANSWER=$(echo &quot;$RESPONSE&quot; | jq -r &apos;.choices[0].message.content&apos;)

    TIME=$(awk &quot;BEGIN {printf \&quot;%.3f\&quot;, ($END-$START)/1000000000}&quot;)

    echo &quot;Run $i: $ANSWER    ${TIME}s&quot;
done
</code></pre><h3 id="feeding-camera-stills-into-a-safety-llm">Feeding Camera Stills Into A Safety LLM</h3><p>This &#xA0;is an example build, with a few pre-requisites:</p><pre><code class="language-bash">sudo apt install -y ffmpeg curl jq</code></pre><pre><code class="language-bash">#!/bin/bash

CAMERA=&quot;/dev/video0&quot;
SERVER=&quot;http://127.0.0.1:8080/v1/chat/completions&quot;
IMAGE=&quot;/tmp/safety_frame.jpg&quot;

PROMPT=&apos;You are a visual water-safety detector.

Determine whether at least one person in this image shows visual signs that warrant immediate lifesaving attention.

Strong emergency indicators include:
- distressed or panicked facial expression
- mouth or nose at the waterline
- head barely above water
- one or both arms raised or reaching for help
- uncontrolled splashing
- vertical or sinking body posture
- inability to make purposeful forward progress
- obvious struggle to keep the airway above water

Estimate the urgency of the most endangered-looking person.

Return exactly one integer from 0 to 100 followed by a percent sign.
Return nothing else.&apos;

while true; do

    # Capture a single frame
    ffmpeg -loglevel error \
        -f v4l2 \
        -i &quot;$CAMERA&quot; \
        -frames:v 1 \
        -y &quot;$IMAGE&quot;

    if [ ! -s &quot;$IMAGE&quot; ]; then
        echo &quot;Camera capture failed&quot;
        sleep 10
        continue
    fi

    # Build the request safely without putting the image on the command line
    {
        printf &apos;%s&apos; &apos;{
          &quot;messages&quot;:[{
            &quot;role&quot;:&quot;user&quot;,
            &quot;content&quot;:[
              {
                &quot;type&quot;:&quot;text&quot;,
                &quot;text&quot;:&apos;
        jq -Rn --arg x &quot;$PROMPT&quot; &apos;$x&apos;

        printf &apos;%s&apos; &apos;},
              {
                &quot;type&quot;:&quot;image_url&quot;,
                &quot;image_url&quot;:{
                  &quot;url&quot;:&quot;data:image/jpeg;base64,&apos;

        base64 -w0 &quot;$IMAGE&quot;

        printf &apos;%s&apos; &apos;&quot;
                }
              }
            ]
          }],
          &quot;chat_template_kwargs&quot;:{
            &quot;enable_thinking&quot;:false
          },
          &quot;max_tokens&quot;:20,
          &quot;temperature&quot;:0.0,
          &quot;top_p&quot;:1
        }&apos;
    } &gt; /tmp/safety_request.json

    START=$(date +%s%N)

    RESPONSE=$(curl -s \
        &quot;$SERVER&quot; \
        -H &quot;Content-Type: application/json&quot; \
        --data-binary @/tmp/safety_request.json)

    END=$(date +%s%N)

    ANSWER=$(echo &quot;$RESPONSE&quot; | jq -r &apos;
        if .error then
            &quot;ERROR: &quot; + (.error.message // (.error|tostring))
        else
            (.choices[0].message.content // &quot;NO ANSWER&quot;)
        end
    &apos;)

    TIME=$(awk &quot;BEGIN {printf \&quot;%.3f\&quot;, ($END-$START)/1000000000}&quot;)

    echo &quot;$(date &apos;+%Y-%m-%d %H:%M:%S&apos;)  $ANSWER  ${TIME}s&quot;

    sleep 10
done</code></pre><p><strong>Conclusion</strong></p><p>There is real untapped future potential here - our model was a minimal 4B which can run on older 3060ti GPU&apos;s making the cost very low - per node, and it took some prompting to get it to respond accurately. We clearly delineate that this is only a superficial look, not a scientific study, or a engineering level review, but it shows that someone with some spare parts and a bit of time can make some pretty interesting projects - like <em>babysitting the pets.</em></p>]]></content:encoded></item><item><title><![CDATA[Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!]]></title><description><![CDATA[We take an honest look at Jack Rong amazing work of retuning models.]]></description><link>https://www.hotconfig.com/qwopus/</link><guid isPermaLink="false">6a9dc65a7083c00001141306</guid><category><![CDATA[Qwopus]]></category><category><![CDATA[HomeLLM]]></category><category><![CDATA[LLMs]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Sun, 06 Sep 2026 21:05:21 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/GvN4SANiFepBuWcsoWbOX.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/GvN4SANiFepBuWcsoWbOX.jpeg" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!"><p>Jack Rongs re-tuned models are showing again and again absolutely incredible progression in the LLM retune space. In this case Qwen 3.8 debuted with very high <a href="https://huggingface.co/Qwen/Qwen3.8-27B?utm_source=chatgpt.com">benchmarks</a>, then Jack took them farther! Not only is this a SOTA (State of the Art) houseLLM that can run on minimal equipment - it&apos;s free, with image recognition! Powerful! For you interest here are some basic performance benchmarks, but please note - this is a <em>slow and very intelligent 27B sized model:</em></p><ul><li>TerminalBench 2.1: <strong>73.0</strong></li><li>SWE-bench Pro: <strong>61.7</strong></li><li>QwenSWEBench: <strong>79.0</strong></li><li>IFBench: <strong>79.5</strong></li><li>GPQA Diamond: <strong>89.2</strong></li><li>HLE: <strong>30.8</strong></li></ul><h3 id="what-is-a-re-tuned-model">What is a Re-tuned Model?</h3><p>It is simply this:</p><blockquote>A <strong>retuned LLM</strong> is a pretrained language model that has been further adjusted so its behavior changes for a particular purpose&#x2014;such as better coding, scientific reasoning, instruction-following, or a specific writing style. This is typically done through additional fine-tuning, preference training, or modifying how the model is prompted and configured, while retaining most of the knowledge learned during its original training.</blockquote><h3 id="downloading-and-setting-up-a-image-capable-llm">Downloading and Setting up a Image Capable LLM.</h3><ol><li><strong>Get the main model: </strong>On the right side of the page you will see your model selection. Typically - and this is subject to future change - &#xA0;atypically a minimum of 4-bit quant is desired. However progress is accelerating quickly into reliable and useful 2-bit quants. Quants are basically recompression of the model weights to fit on smaller equipment. &#xA0;</li></ol><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-9.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="426" height="418"></figure><p>2. <strong>You will need the mmproj-F32.gguf</strong>. The right side menu may throw you off it&apos;s at the top under the file - as in:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/rect2.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="1053" height="864" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/rect2.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/rect2.png 1000w, https://www.hotconfig.com/content/images/2026/09/rect2.png 1053w" sizes="(min-width: 720px) 720px"></figure><p>Clicking on that file will take you to another menu - where you will finally get to download it:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-10.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="1023" height="489" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-10.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-10.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-10.png 1023w" sizes="(min-width: 720px) 720px"></figure><p>3.<strong> Get a Running llm-server</strong>. So you can try a quick download and build as in:</p><pre><code class="language-bash">git clone https://github.com/ggml-org/llama.cpp &amp;&amp; cd llama.cpp &amp;&amp; cmake -B build &amp;&amp; cmake --build build --config Release -t llama-server -j
</code></pre><p>When it is done it just put it in a &#xA0;local directory so you will need to copy its contents to <code>/usr/bin</code></p><pre><code class="language-bash">./build/bin/llama-server</code></pre><p>If you want a very detailed guide of making a very powerful llm-server build with TurboQuant KV-Caching, consider a this good walk-through. Even though it&apos;s a &apos;StudentLLM&apos; - it is a full power-build that will run any model.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/studentllm-examinin/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">StudentLLM - Qwen2.5-coder-7b-instruct-q6-k / Qwen3.5 Agentic on a Ryzen 5-2600/ 3060ti. Production LLM or not? YES!</div><div class="kg-bookmark-description">We Look a StudentLLM setup to get as much productivity out of limited hardware as we can.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!"><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/04/single_student.jpg" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!"></div></a></figure><p>In our case our minimal run script required a fair bit of tweaking, and this is how we were able to get it to work. </p><ul><li>We were forced to make sure the <code>mmproj</code> file was not offloaded to GPU as this was breaking stuff, so our valid run configuration became:</li></ul><pre><code class="language-bash">/usr/bin/llama-server --jinja \
-m /home/c/models/Qwopus3.8-27B-Flash.i1-Q6_K.gguf \
--mmproj /home/c/models/mmproj-F32.gguf \
-ngl auto \
--no-mmproj-offload \
--host 192.168.1.3 \
--port 8080
</code></pre><p>One will notice we <em>absolute pathed everything</em> - it just works better out the gate. Instead of <code>llama-server</code> use <code>/usr/bin/llama-server</code>. &#xA0; </p><h3 id="managing-expectations">Managing Expectations</h3><p>This stuff is awesome, but it&apos;s not going to be instant or replace your professional subscription for Claude, or ChatGPT - nor should it with their budgets that rival small nations. The key is <em>it&apos;s<u> your LLM</u>, and YOU now know how to build it.</em> People in attorney-client privilege scenarios, doctors offices, privacy advocates simply cannot afford their data harvested. &#xA0;Additionally not everybody wants to commit the $40 - $400/month to serious commerical grade LLMs. Additionally the investment can be somewhat modest as this runs on about $2000 in hardware. &#xA0;That is where this site specializes in - small budgets, maximum performance on mini-bucks. You the small-guy are the winner!</p><p>Once it finally loads - your console back-end should look something like this:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-11.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="1265" height="262" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-11.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/09/image-11.png 1000w, https://www.hotconfig.com/content/images/2026/09/image-11.png 1265w" sizes="(min-width: 720px) 720px"></figure><h3 id="first-run">First Run</h3><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-12.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="743" height="234" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-12.png 600w, https://www.hotconfig.com/content/images/2026/09/image-12.png 743w" sizes="(min-width: 720px) 720px"></figure><p>We are not going to go too deeply into a standard LLM review as we have covered that a dozen times before, but will focus on the image-to-text aspects. </p><ul><li>This LLM is slow on our 4080 it came in at 4.8 T/s - ouch. Atypically it&apos;s been our experience that anything below 15 T/s is more of a testing LLM - and something people do not have the patience to wait on.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-13.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="743" height="234" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-13.png 600w, https://www.hotconfig.com/content/images/2026/09/image-13.png 743w" sizes="(min-width: 720px) 720px"></figure><h3 id="image-recognition-was-powerful-and-fast">Image Recognition was Powerful and Fast!</h3><ul><li>This LLM generates &#xA0;slow - but we literally screen shot a log fired the image back at it, and it nailed it immediately, wow!</li><li>It must be understood that Image handling LLM&apos;s will use the mmproj layers to convert the image into vector space of tokens, that is then effectively passed to a second LLM - the main one to discuss what is asked about the picture.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-14.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="744" height="367" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-14.png 600w, https://www.hotconfig.com/content/images/2026/09/image-14.png 744w" sizes="(min-width: 720px) 720px"></figure><p>It took it only a few seconds to cleanly identify a cat</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-15.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="744" height="367" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-15.png 600w, https://www.hotconfig.com/content/images/2026/09/image-15.png 744w" sizes="(min-width: 720px) 720px"></figure><h3 id="can-it-watch-for-burglarsabsolutely">Can It Watch For Burglars - Absolutely!</h3><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-17.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="723" height="321" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-17.png 600w, https://www.hotconfig.com/content/images/2026/09/image-17.png 723w" sizes="(min-width: 720px) 720px"></figure><h3 id="it-is-pretty-smart-really">It is pretty smart, really.</h3><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-18.png" class="kg-image" alt="Qwopus3.8 -27B Flash Review, Image Recognition From a HouseLLM!" loading="lazy" width="723" height="448" srcset="https://www.hotconfig.com/content/images/size/w600/2026/09/image-18.png 600w, https://www.hotconfig.com/content/images/2026/09/image-18.png 723w" sizes="(min-width: 720px) 720px"></figure><h3 id="conclusion">Conclusion </h3><p>This LLM could have many, many functions. The sky is the limit. Monitor your 3D printer to make sure that your print is good, monitoring a process to make sure that it is operating safely. Could it be safety certified we think not - but it definitely can be a ongoing security scanner, and the cost is <em>free - that&apos;s powerful and you are the benefactor. </em></p>]]></content:encoded></item><item><title><![CDATA[Writing Your Own X-11 Framework Basics (Part 4) A Polished Button]]></title><description><![CDATA[Writing Your Own X-11 Framework Basics (Part 4) A Polished Button]]></description><link>https://www.hotconfig.com/writing-your-own/</link><guid isPermaLink="false">6a977b157083c0000114127f</guid><category><![CDATA[X-11]]></category><category><![CDATA[framework]]></category><category><![CDATA[gui]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Sun, 06 Sep 2026 19:18:13 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/X11-1.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/X11-1.jpeg" alt="Writing Your Own X-11 Framework Basics (Part 4) A Polished Button"><p>In <a href="https://www.hotconfig.com/x-11-framework-basics-part-1/">Part 1</a> we looked in detail at the X-11 calls in relation to graphics. &#xA0;We simply wanted full control back of our widgets to make a button or a interface any way we wanted, and thus it spawned this project. &#xA0;In <a href="https://www.hotconfig.com/writing-your-own-x-11-framework-basics-part-2-virtual-buttons/">Part 2</a> continued where we were able to make a couple very basic but completely working &apos;buttons&apos;. &#xA0; We then wanted to make them stylish thus in <a href="https://www.hotconfig.com/writing-y/">Part 3</a> we made a style manager that could track styles by name. Now our goal in Part 4 is just a simple polished button like you would see in Lazarus pascal,</p><pre><code class="language-pascal">Tbutton mybutton;</code></pre><p>Because X-11 is <em>basic</em> it cannot actually draw a rounded button out of the gate - so we will need to construct one, a bit of planning suggests the following:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-2.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 4) A Polished Button" loading="lazy" width="547" height="548"></figure><ul><li>Rectangle a, and b, will simply be draw overlaps, followed by 4 arc draws c, d, e, f.</li><li>4 line draw will make the outside, with 4 arc-lines to make the boundary.</li></ul><p>Typically when you are mangling these it is illustrative to code &#xA0;it as simply as you can, allowing for ample step debugging, in other words - code <em>clearly and concisely</em> you can always make your mysterious Gordian knot code later.</p><pre><code class="language-c">        XSetForeground(display_, gc_, style_.fillColor_);

        //region Region Rectangle A
        int a_x1 = x1_ + style_.radius_;
        int a_width = x2_ - x1_ -  2 * style_.radius_;
        int a_y1 = y1_;
        int a_height = y2_ - y1_;
        XFillRectangle(display_, window_, gc_, a_x1, a_y1, a_width, a_height);
        XFlush(display_);
        // endregion

        //region Region Rectangle B
        int b_x1 = x1_;
        int b_width = x2_ - x1_;
        int b_y1 = y1_ + style_.radius_;
        int b_height = y2_ - y1_  - 2 * style_.radius_;
        XFillRectangle(display_, window_, gc_, b_x1, b_y1, b_width, b_height);
        //endregion</code></pre><p>This gives us when we call the <code>draw</code> function the following, which we have deliberately over sized it - so we can see what it looks like.</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-3.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 4) A Polished Button" loading="lazy" width="217" height="109"></figure><p>Once we are happy we can fold the variables back into a single function call as:</p><pre><code class="language-c">        //Rectangle A
        XFillRectangle(display_, window_, gc_, x1_ + style_.radius_, y1_, x2_ - x1_ -  2 * style_.radius_, y2_ - y1_);
        //Rectangle B
        XFillRectangle(display_, window_, gc_, x1_, y1_ + style_.radius_, x2_ - x1_,  y2_ - y1_  - 2 * style_.radius_);</code></pre><p>We repeat this process and the entire fill with the 4 arcs looks like this :</p><pre><code class="language-c">        XSetForeground(display_, gc_, style_.fillColor_);

        //Rectangle A
        XFillRectangle(display_, window_, gc_, x1_ + style_.radius_, y1_, x2_ - x1_ -  2 * style_.radius_, y2_ - y1_);
        //Rectangle B
        XFillRectangle(display_, window_, gc_, x1_, y1_ + style_.radius_, x2_ - x1_,  y2_ - y1_  - 2 * style_.radius_);
        //region Arc C Top Left
        XFillArc(display_, window_, gc_, x1_, y1_, 2 * style_.radius_, 2 * style_.radius_, 90 * 64, 90 * 64);
        //region Arc D Top Right
        XFillArc(display_, window_, gc_, x2_ - 2 * style_.radius_, y1_, 2 * style_.radius_, 2 * style_.radius_, 0, 90 * 64);
        //region Arc E Bottom Right
        XFillArc(display_, window_, gc_, x2_ - 2 * style_.radius_, y2_ - 2 * style_.radius_, 2 * style_.radius_, 2 * style_.radius_, 270 * 64, 90 * 64);
        //region Arc F Bottom Left
        XFillArc(display_, window_, gc_, x1_, y2_ - 2 * style_.radius_, 2 * style_.radius_, 2 * style_.radius_, 180 * 64, 90 * 64);

        XFlush(display_);</code></pre><p>Now it is producing a nice outline:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-4.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 4) A Polished Button" loading="lazy" width="216" height="107"></figure><p>Were almost there - now we just need to add in the 4 line-outline, like so:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-5.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 4) A Polished Button" loading="lazy" width="409" height="329"></figure><p>We also need to set our line width, we could of done it inside the style class, but we can really do it here, so:</p><pre><code class="language-c">        //Set Line Color
        XSetForeground(display_, gc_, style_.lineColor_);
        unsigned long valuemask = GCLineWidth;
        XGCValues gc_values;
        gc_values.line_width = style_.lineWidth_;
        XChangeGC(display_, gc_, valuemask, &amp;gc_values );

        // 4 Line Bars
        XDrawLine(display_, window_, gc_, x1_ + style_.radius_, y1_, x2_ - style_.radius_, y1_);
        XDrawLine(display_, window_, gc_, x2_, y1_ + style_.radius_, x2_, y2_ - style_.radius_);
        XDrawLine(display_, window_, gc_, x1_, y1_ + style_.radius_, x1_, y2_ - style_.radius_);
        XDrawLine(display_, window_, gc_, x1_ + style_.radius_, y2_, x2_ - style_.radius_, y2_);</code></pre><p>Now we have out 4 outlines</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-6.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 4) A Polished Button" loading="lazy" width="212" height="110"></figure><p>Finally we code up the arcs, which is simply the outline fill arcs, repeating and changing <code>XFillArc</code> to <code>XDrawArc</code> so we get:</p><pre><code>    // 4 Arcs
    XDrawArc(display_, window_, gc_, x1_, y1_, 2 * style_.radius_, 2 * style_.radius_, 90 * 64, 90 * 64);
    //region Arc D Top Right
    XDrawArc(display_, window_, gc_, x2_ - 2 * style_.radius_, y1_, 2 * style_.radius_, 2 * style_.radius_, 0, 90 * 64);
    //region Arc E Bottom Right
    XDrawArc(display_, window_, gc_, x2_ - 2 * style_.radius_, y2_ - 2 * style_.radius_, 2 * style_.radius_, 2 * style_.radius_, 270 * 64, 90 * 64);
    //region Arc F Bottom Left
    XDrawArc(display_, window_, gc_, x1_, y2_ - 2 * style_.radius_, 2 * style_.radius_, 2 * style_.radius_, 180 * 64, 90 * 64);
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-7.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 4) A Polished Button" loading="lazy" width="207" height="106"></figure><p>Voila! Finally the last step is to write the text inside the button. This can be tricky because we need to know the <code>extents</code> of the font. So:</p><h3 id="one-more-step-writing-the-ok-or-button-text">One More Step Writing the OK or Button Text</h3><p>Finally we want to look at writing the Text Fill Button. Thusly this block should suffice:</p><pre><code class="language-c">        // Draw centered button text using the active style
        if (style_.font_)
        {
            XSetFont(display_, gc_, style_.font_-&gt;fid);
            XSetForeground(display_, gc_, style_.text_color_);

            int text_width = XTextWidth(style_.font_, text_.c_str(), static_cast&lt;int&gt;(text_.length()));
            int text_x = x1_ + ((x2_ - x1_) - text_width) / 2;
            int text_y = y1_ + ((y2_ - y1_) + style_.font_-&gt;ascent - style_.font_-&gt;descent) / 2;

            XDrawString(display_, window_, gc_, text_x, text_y, text_.c_str(), static_cast&lt;int&gt;(text_.length()));
        }</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image-8.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 4) A Polished Button" loading="lazy" width="208" height="111"><figcaption>We now have a working OK Button.</figcaption></figure><h3 id="on-pause-atm">On Pause ATM</h3><ul><li>We will continue this in a short bit, however a PILE of new models are in town so we are back to reviewing them!</li></ul>]]></content:encoded></item><item><title><![CDATA[Writing Your Own X-11 Framework Basics (Part 3) Creating A Style Manager]]></title><description><![CDATA[In Part 3 We Create A Style Manager That will Work with many coming future widgets!]]></description><link>https://www.hotconfig.com/writing-y/</link><guid isPermaLink="false">6a9632047083c000011411b4</guid><category><![CDATA[X-11]]></category><category><![CDATA[style manager]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Tue, 01 Sep 2026 03:44:01 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/09/X11.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/09/X11.jpeg" alt="Writing Your Own X-11 Framework Basics (Part 3) Creating A Style Manager"><p>This series builds on <a href="https://www.hotconfig.com/x-11-framework-basics-part-1/">Part 1</a> - where we reviewed in detail how the X-11 system works, <a href="https://www.hotconfig.com/writing-your-own-x-11-framework-basics-part-2-virtual-buttons/">Part 2 </a>where we made some buttons, with their own event handler system. Our buttons were basic, but they worked, and you now have <em>full</em> control over their size, no more wrangling with a layout manager deciding what&apos;s best for you! Why go to such extents to simple regain full control of your layouts?! - It&apos;s simple, suppose you wanted to make a instrumentation cluster for engineering, or a control interface for your raspberry pi? In the end this is worth doing!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/09/image.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 3) Creating A Style Manager" loading="lazy" width="111" height="84"><figcaption>Our buttons are pretty basic - but they work!</figcaption></figure><p>But why not have <em>nice</em> buttons - stuff that looks like this? Well first we need to define <em>styles</em>...</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/09/image-1.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 3) Creating A Style Manager" loading="lazy" width="341" height="123"></figure><p>Before you can do any coding in this you will need the support library as in:</p><pre><code class="language-bash">sudo apt install libx11-dev -y</code></pre><p>And your C++ source code will typically need to reference the header as in:</p><pre><code class="language-bash">#include &lt;X11/Xlib.h&gt;
#include &lt;X11/Xutil.h&gt;</code></pre><p>If you are using a CMakeLists.txt here is a good example that will work with X-11</p><pre><code class="language-c">cmake_minimum_required(VERSION 3.20)
project(XFrame LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(X11 REQUIRED)
add_executable(XFrame main.cpp)
target_link_libraries(XFrame PRIVATE X11::X11)</code></pre><p>Our original button structure was <em>very</em> simple as in:</p><pre><code class="language-bash">struct SButton
{
    std::string name;
    int x1, y1, x2, y2;
};</code></pre><p>Now we will want to effectively add our own style class, and since this button manager really manages a set of buttons we can simple just have a <code>std::vector</code> of <code>&lt;SStyles&gt;</code> which will apply to the button set. &#xA0; Typically one style of buttons will be active for a session. Naturally this is extensible to other widgets, and really generic, so in reality a good plan - is to just make it - it&apos;s own tracking class. &#xA0;Once we move onto more advanced and different types of widgets our style manager will be independently ready, so we are putting in the work now for it.</p><p>Hence we are looking at an basic starting information structure of the following:</p><ul><li>Fill Color <code>unsigned long</code> - As set by X-11 (Internally it will be a <code>Xcolor</code>)</li><li>Outline Color <code>unsigned long</code> &#xA0;- As set by X-11 (Internally it will be a <code>XColor</code>)</li><li>Corner Radius <code>int</code> &#xA0;(X-11 does not draw with <code>float</code> precision unlike <code>Qt</code></li><li>Line Width &#xA0;<code>int</code> </li><li>Font Style <code>XFontStruct</code></li></ul><p>So from this it&apos;s a good <em>start</em>:</p><pre><code class="language-c">struct SStyle
{
    unsigned long fillColor_;
    unsigned long outlineColor_;
    unsigned long radius_;
    unsigned long lineWidth_;
    XFontStruct *font_;
};</code></pre><p>Naturally we will need an <code>vector array</code> of these, and on top of this we will need a method to <code>CRUD</code> or <code>create</code>(add) &#xA0;<code>replace</code> <code>update</code> and <code>delete</code> them, and really it would be nice for these setting to be able to <code>save</code> and <code>load</code> themselves at run-time. So really we will need a good class example. &#xA0;However because we are using this as a demonstrator, and attempting to keep the tasks incrementally simple - we will not add <code>object serialization</code> at this time - that is where compound objects are either written to a binary format or to a <code>json</code> string.</p><p>Finally it can become problematic to have a index based list of styles without names so we update our structure as:</p><pre><code class="language-c">struct SStyle
{
  unsigned long fillColor_;
  unsigned long outlineColor_;
  unsigned long radius_;
  unsigned long lineWidth_;
  XFontStruct *font_;
  std::string style_name_;
};

struct Srgb
{
  int r;
  int g;
  int b;
};
</code></pre><ul><li><code>Srgb</code> is to allow for passing a <code>r</code>, <code>g</code>, <code>b</code> value as one set.</li></ul><h3 id="a-very-basic-style-manager">A Very Basic Style Manager</h3><pre><code class="language-c">class SStyle_Manager
{
private:
  std::vector&lt;SStyle&gt; styles_;
  Display *display_;
  Window window_;
  int screen_;
  GC gc_;
  size_t active_style = 0; // just set the default to first passed.
public:
  SStyle_Manager(Display *display, Window window, int screen, GC gc)
  {
    display_ = display;
    window_ = window;
    screen_ = screen;
    gc_ = gc;
  }
  ~SStyle_Manager()
  {
    for (auto&amp; style : styles_) 
    {
      if (style.font_) 
      {
        XFreeFont(display_, style.font_);  // Free the X11 font resource
      }
    }
    styles_.clear(); 
  }

  int add_style(std::string styleName, Srgb fillColor, Srgb outlineColor, int radius, int linewidth,  std::string fontName)
  {
    SStyle nstyle;
    nstyle.style_name_ = std::move(styleName);
    nstyle.fillColor_ = get_color_Srgb(fillColor);
    nstyle.outlineColor_ = get_color_Srgb(outlineColor);
    nstyle.radius_ = radius;
    nstyle.lineWidth_ = linewidth;
    nstyle.font_ = XLoadQueryFont(display_, fontName.c_str());
    // Define fallback fonts to try if the requested font fails
    const char* fallbackFonts[] = { &quot;fixed&quot;, &quot;helvetica&quot; };
    size_t numFallbacks = sizeof(fallbackFonts) / sizeof(*fallbackFonts);

    nstyle.font_ = nullptr;

    // Attempt to load the primary font (if provided and not empty)
    if (!fontName.empty()) {
      nstyle.font_ = XLoadQueryFont(display_, fontName.c_str());
    }

    // If the primary failed, iterate through fallback fonts until one succeeds or all are exhausted
    if (!nstyle.font_) {
      for (size_t i = 0; i &lt; numFallbacks &amp;&amp; !nstyle.font_; ++i) {
        nstyle.font_ = XLoadQueryFont(display_, fallbackFonts[i]);
      }
    }

    // Final validation: if no font loaded, report which fonts were attempted and exit
    if (!nstyle.font_)
    {
      printf(&quot;Failed to load any font (tried: &quot;);
      if (!fontName.empty()) printf(&quot;%s&quot;, fontName.c_str());
      for (size_t i = 0; i &lt; numFallbacks; ++i) {
        if (!fontName.empty() || i &gt; 0) printf(&quot;, &quot;);
        printf(&quot;%s&quot;, fallbackFonts[i]);
      }
      printf(&quot;)\n&quot;);
      return -1;
    }
    styles_.push_back(nstyle);
    return 0;
  }
  unsigned long get_color_Srgb(Srgb color)
  {
    XColor xcolor;
    xcolor.red = color.r &lt;&lt; 8;
    xcolor.green = color.g &lt;&lt; 8;
    xcolor.blue = color.b &lt;&lt; 8;
    if (XAllocColor(display_, DefaultColormap(display_, screen_), &amp;xcolor))
    {
      return xcolor.pixel;
    } else {
      printf(&quot;Failed to allocate color! RGB(%d,%d,%d)\n&quot;, color.r, color.g, color.b);
      return BlackPixel(display_, screen_);  // Fallback
    }
  }
  unsigned long get_color_rgb(unsigned char r, unsigned char g, unsigned char b)
  {
    XColor xcolor;
    xcolor.red = r &lt;&lt; 8;
    xcolor.green = g &lt;&lt; 8;
    xcolor.blue = b &lt;&lt; 8;
    if (XAllocColor(display_, DefaultColormap(display_, screen_), &amp;xcolor))
    {
      return xcolor.pixel;
    } else {
      printf(&quot;Failed to allocate color! RGB(%d,%d,%d)\n&quot;, r, g, b);
      return BlackPixel(display_, screen_);  // Fallback
    }
  }

};</code></pre><p>We can go over all the parts, it will need some more functions to be utility ready, but anyways.</p><ul><li><code>std::vector&lt;SStyle&gt; styles_;</code> will hold an array of different styles, enabling different theme layouts in a piece of software.</li><li>Constructor takes <code>Display *display_; Window window_; int screen_; GC gc_;</code> and finally <code>int active_style;</code> will track any system hooks, this is needed for calls like <code>XAllocColor</code> which requires a hook into <code>display_</code> so we simply pass it at constructor time. When it is done it looks like:</li></ul><pre><code class="language-c">  SStyle_Manager(Display *display, Window window, int screen, GC gc)
  {
    display_ = display;
    window_ = window;
    screen_ = screen;
    gc_ = gc;
  }</code></pre><ul><li>Destructor will make sure to free up the <code>XFreeFont</code> and it will look as:</li></ul><pre><code class="language-c">  ~SStyle_Manager()
  {
    for (auto&amp; style : styles_)
    {
      if (style.font_)
      {
        XFreeFont(display_, style.font_);  // Free the X11 font resource
      }
    }
    styles_.clear();
  }</code></pre><ul><li>Color Converter <code>get_color_Srgb</code> will look as follows:</li></ul><pre><code class="language-c">  unsigned long get_color_Srgb(Srgb color)
  {
    XColor xcolor;
    xcolor.red = color.r &lt;&lt; 8;
    xcolor.green = color.g &lt;&lt; 8;
    xcolor.blue = color.b &lt;&lt; 8;
    if (XAllocColor(display_, DefaultColormap(display_, screen_), &amp;xcolor))
    {
      return xcolor.pixel;
    } else {
      printf(&quot;Failed to allocate color! RGB(%d,%d,%d)\n&quot;, color.r, color.g, color.b);
      return BlackPixel(display_, screen_);  // Fallback
    }
  }</code></pre><p>Finally the major <code>add_style</code> class which importantly will take a set of parameters, and will build a style object and stack it. It is a little extensive because we have coded in some font forgiveness which is just apropos, as we want it to default back to a <code>system font</code> if the passed font is not installed.</p><pre><code class="language-c">  int add_style(std::string styleName, Srgb fillColor, Srgb outlineColor, int radius, int linewidth,  std::string fontName)
  {
    SStyle nstyle;
    nstyle.style_name_ = std::move(styleName);
    nstyle.fillColor_ = get_color_Srgb(fillColor);
    nstyle.outlineColor_ = get_color_Srgb(outlineColor);
    nstyle.radius_ = radius;
    nstyle.lineWidth_ = linewidth;
    nstyle.font_ = XLoadQueryFont(display_, fontName.c_str());
    // Define fallback fonts to try if the requested font fails
    const char* fallbackFonts[] = { &quot;fixed&quot;, &quot;helvetica&quot; };
    size_t numFallbacks = sizeof(fallbackFonts) / sizeof(*fallbackFonts);

    nstyle.font_ = nullptr;

    // Attempt to load the primary font (if provided and not empty)
    if (!fontName.empty()) {
      nstyle.font_ = XLoadQueryFont(display_, fontName.c_str());
    }

    // If the primary failed, iterate through fallback fonts until one succeeds or all are exhausted
    if (!nstyle.font_) {
      for (size_t i = 0; i &lt; numFallbacks &amp;&amp; !nstyle.font_; ++i) {
        nstyle.font_ = XLoadQueryFont(display_, fallbackFonts[i]);
      }
    }

    // Final validation: if no font loaded, report which fonts were attempted and exit
    if (!nstyle.font_)
    {
      printf(&quot;Failed to load any font (tried: &quot;);
      if (!fontName.empty()) printf(&quot;%s&quot;, fontName.c_str());
      for (size_t i = 0; i &lt; numFallbacks; ++i) {
        if (!fontName.empty() || i &gt; 0) printf(&quot;, &quot;);
        printf(&quot;%s&quot;, fallbackFonts[i]);
      }
      printf(&quot;)\n&quot;);
      return -1;
    }
    styles_.push_back(nstyle);
    return 0;
  }</code></pre><p>This is pretty close to complete - what is missing is <code>get_active_style</code> and <code>set_active_style</code> and since we have built our style tracker with a super nice <code>style_name_</code> we get to use that! &#xA0;This gives real flexibility to the developer because they can simply go <code>set_active_style_byName(&apos;default&apos;)</code> and if there is a registered style with that name it will automatically become the default. </p><p>Adding a <code>set_active_style_byName</code> then becomes:</p><pre><code class="language-c">  int set_active_style_byName(std::string styleName)
  {
    auto it = std::find_if(styles_.begin(), styles_.end(),
        [&amp;](const SStyle&amp; s) { return s.style_name_ == styleName; });

    if (it != styles_.end())
    {
      active_style = static_cast&lt;int&gt;(std::distance(styles_.begin(), it));
      return active_style;
    }
    return -1; // Not found
  }</code></pre><p>And some <code>get_active_style</code> &#xA0;functions thusly:</p><pre><code class="language-c">  SStyle get_active_style_byName(std::string styleName)
  {
    auto it = std::find_if(styles_.begin(), styles_.end(),
      [&amp;](const SStyle&amp; s) { return s.style_name_ == styleName; });
  }
  SStyle get_active_style()
  {
    return styles_[active_style];
  }
  SStyle get_index_style(int index)
  {
    if (index &gt; 0 &amp;&amp; index &lt; (int)styles_.size())
    {
      return styles_[index];
    }
  }</code></pre><p>The entire code block now looks as (I know there are some overloaded <code>#includes</code> but anyhow..)</p><pre><code class="language-c">//
// Created by c on 8/31/26.
//

#include &lt;X11/Xlib.h&gt;
#include &lt;X11/Xutil.h&gt;
#include &lt;X11/fonts/font.h&gt;
#include &lt;algorithm&gt;
#include &lt;cstdint&gt;
#include &lt;cstdlib&gt;
#include &lt;utility&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;cstring&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;stdio.h&gt;
#include &lt;memory&gt;


struct SStyle
{
  unsigned long fillColor_;
  unsigned long outlineColor_;
  unsigned long radius_;
  unsigned long lineWidth_;
  XFontStruct *font_;
  std::string style_name_;
};

struct Srgb
{
  int r;
  int g;
  int b;
};

class SStyle_Manager
{
private:
  std::vector&lt;SStyle&gt; styles_;
  Display *display_;
  Window window_;
  int screen_;
  GC gc_;
  int active_style = 0; // just set the default to first passed.
public:
  SStyle_Manager(Display *display, Window window, int screen, GC gc)
  {
    display_ = display;
    window_ = window;
    screen_ = screen;
    gc_ = gc;
  }
  ~SStyle_Manager()
  {
    for (auto&amp; style : styles_)
    {
      if (style.font_)
      {
        XFreeFont(display_, style.font_);  // Free the X11 font resource
      }
    }
    styles_.clear();
  }
  int add_style(std::string styleName, Srgb fillColor, Srgb outlineColor, int radius, int linewidth,  std::string fontName)
  {
    SStyle nstyle;
    nstyle.style_name_ = std::move(styleName);
    nstyle.fillColor_ = get_color_Srgb(fillColor);
    nstyle.outlineColor_ = get_color_Srgb(outlineColor);
    nstyle.radius_ = radius;
    nstyle.lineWidth_ = linewidth;
    nstyle.font_ = XLoadQueryFont(display_, fontName.c_str());
    // Define fallback fonts to try if the requested font fails
    const char* fallbackFonts[] = { &quot;fixed&quot;, &quot;helvetica&quot; };
    size_t numFallbacks = sizeof(fallbackFonts) / sizeof(*fallbackFonts);

    nstyle.font_ = nullptr;

    // Attempt to load the primary font (if provided and not empty)
    if (!fontName.empty()) {
      nstyle.font_ = XLoadQueryFont(display_, fontName.c_str());
    }

    // If the primary failed, iterate through fallback fonts until one succeeds or all are exhausted
    if (!nstyle.font_) {
      for (size_t i = 0; i &lt; numFallbacks &amp;&amp; !nstyle.font_; ++i) {
        nstyle.font_ = XLoadQueryFont(display_, fallbackFonts[i]);
      }
    }

    // Final validation: if no font loaded, report which fonts were attempted and exit
    if (!nstyle.font_)
    {
      printf(&quot;Failed to load any font (tried: &quot;);
      if (!fontName.empty()) printf(&quot;%s&quot;, fontName.c_str());
      for (size_t i = 0; i &lt; numFallbacks; ++i) {
        if (!fontName.empty() || i &gt; 0) printf(&quot;, &quot;);
        printf(&quot;%s&quot;, fallbackFonts[i]);
      }
      printf(&quot;)\n&quot;);
      return -1;
    }
    styles_.push_back(nstyle);
    return 0;
  }
  unsigned long get_color_Srgb(Srgb color)
  {
    XColor xcolor;
    xcolor.red = color.r &lt;&lt; 8;
    xcolor.green = color.g &lt;&lt; 8;
    xcolor.blue = color.b &lt;&lt; 8;
    if (XAllocColor(display_, DefaultColormap(display_, screen_), &amp;xcolor))
    {
      return xcolor.pixel;
    } else {
      printf(&quot;Failed to allocate color! RGB(%d,%d,%d)\n&quot;, color.r, color.g, color.b);
      return BlackPixel(display_, screen_);  // Fallback
    }
  }
  unsigned long get_color_rgb(unsigned char r, unsigned char g, unsigned char b)
  {
    XColor xcolor;
    xcolor.red = r &lt;&lt; 8;
    xcolor.green = g &lt;&lt; 8;
    xcolor.blue = b &lt;&lt; 8;
    if (XAllocColor(display_, DefaultColormap(display_, screen_), &amp;xcolor))
    {
      return xcolor.pixel;
    } else {
      printf(&quot;Failed to allocate color! RGB(%d,%d,%d)\n&quot;, r, g, b);
      return BlackPixel(display_, screen_);  // Fallback
    }
  }
  int set_active_style_byName(std::string styleName)
  {
    auto it = std::find_if(styles_.begin(), styles_.end(),
        [&amp;](const SStyle&amp; s) { return s.style_name_ == styleName; });

    if (it != styles_.end())
    {
      active_style = static_cast&lt;int&gt;(std::distance(styles_.begin(), it));
      return active_style;
    }
    return -1; // Not found
  }
  SStyle get_active_style_byName(std::string styleName)
  {
    auto it = std::find_if(styles_.begin(), styles_.end(),
      [&amp;](const SStyle&amp; s) { return s.style_name_ == styleName; });
  }
  SStyle get_active_style()
  {
    return styles_[active_style];
  }
  SStyle get_index_style(int index)
  {
    if (index &gt; 0 &amp;&amp; index &lt; (int)styles_.size())
    {
      return styles_[index];
    }
  }

};</code></pre><h3 id="conclusion">Conclusion</h3><p>We are goingto stop there for today, we have a full basic style manager that will allow our future application to have various <code>themes</code> that we can allow the user to select, yes it&apos;s very basic, but you can see that it is very extensible. &#xA0;In our next article we will look at integrating the style manager and making <code>buttons</code> a standalone class, not a button manager. The idea behind this is a small application does not need a giant widget tracker and can make one class instance for the widgets that it desires! &#xA0;Notice no we have not coded up a <code>delete</code> function - there is a challenge for you to figure out!</p>]]></content:encoded></item><item><title><![CDATA[Writing Your Own X-11 Framework Basics (Part 2) Virtual Buttons]]></title><description><![CDATA[In Part-2 We Build a Simple Button Manager Class that can monitor for events.]]></description><link>https://www.hotconfig.com/writing-your-own-x-11-framework-basics-part-2-virtual-buttons/</link><guid isPermaLink="false">6a94d7427083c00001141122</guid><category><![CDATA[X-11]]></category><category><![CDATA[framework]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Mon, 31 Aug 2026 05:46:02 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/08/X11-1.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/08/X11-1.jpeg" alt="Writing Your Own X-11 Framework Basics (Part 2) Virtual Buttons"><p>In our previous post we studied the X-11 Framework in detail,</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/x-11-framework-basics-part-1/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Writing Your Own X-11 Framework Basics (Part 1)</div><div class="kg-bookmark-description">We go in depth into a X-11 foundational primer.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Writing Your Own X-11 Framework Basics (Part 2) Virtual Buttons"><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/08/X11.jpeg" alt="Writing Your Own X-11 Framework Basics (Part 2) Virtual Buttons"></div></a></figure><p>We learned the very basics of a <code>display</code> which is either a virtual reference or a real reference which differs from the <code>screen</code> which is your monitors <code>0-2</code> in a three-header monitor setup. &#xA0;We also learned that the <code>graphical context</code> is the &apos;pen&apos; that you use to write with. We look at setting <code>masks</code> so that your application will receive various events like a <code>mouse click</code> or <code>keypress</code>. &#xA0; Finally &#xA0;we learned the various drawing commands such as <code>XDrawLines</code> and <code>XDrawRectangles</code> which we can use to make primitive drawings, and writing text with <code>XDrawString</code></p><p>But that is where it ends, we have to build our <code>buttons</code>, <code>labels</code> and <code>editbox</code> from scratch, but that&apos;s the fun part - we can now create any type of widget we want. </p><p>To make this very simple we will start with <code>virtual button manager</code> &#xA0;that will print to the console when the user clicks inside the corresponding button window, so a simple example:</p><p>Before any X-11 development can be done, you will need the support libraries:</p><pre><code class="language-bash">sudo apt install libx11-dev -y</code></pre><p>Also you typically will need the following if you are using <code>CMakeLists.txt</code></p><pre><code class="language-bash">cmake_minimum_required(VERSION 3.20)
project(XFrame LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(X11 REQUIRED)
add_executable(XFrame main.cpp)
target_link_libraries(XFrame PRIVATE X11::X11)</code></pre><p>When this is done the buttons will look like this:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/08/image-24.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 2) Virtual Buttons" loading="lazy" width="174" height="121"><figcaption>As you click on them they will log to console&#xA0;</figcaption></figure><pre><code class="language-c">#include &lt;X11/Xlib.h&gt;
#include &lt;X11/Xutil.h&gt;
#include &lt;X11/fonts/font.h&gt;
#include &lt;algorithm&gt;
#include &lt;cstdint&gt;
#include &lt;cstdlib&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;cstring&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;stdio.h&gt;
#include &lt;memory&gt;


struct SButton
{
    std::string name;
    int x1, y1, x2, y2;
};
//region Button_Manager
class Button_Manager
{
private:
    std::vector&lt;SButton&gt; buttons;
    Display *display_;
    Window window_;
    int screen_;
    GC gc_;

    unsigned long grey_color_ = 0;
    unsigned long bright_grey_ = 0;
    unsigned long bright_red_ = 0;

public:
    Button_Manager(Display* display, int screen, Window window, GC gc)
    {
        display_ = display;
        screen_ = screen;
        window_ = window;
        gc_ = gc;
        grey_color_ = get_color_rgb(25, 25, 25);
        bright_grey_ = get_color_rgb( 55, 55, 55);
        bright_red_ = get_color_rgb(205, 35, 35);
    }
    ~Button_Manager(){}
    void add_button(int x1, int y1, int x2, int y2, std::string name)
    {
        SButton button;
        button.x1 = x1;
        button.y1 = y1;
        button.x2 = x2;
        button.y2 = y2;
        button.name = name;
        buttons.push_back(button);
    }
    void add_buttonwh(int x1, int y1, int width, int height, std::string name)
    {
        SButton button;
        button.x1 = x1;
        button.y1 = y1;
        button.x2 = x1 + width;
        button.y2 = y1 + height;
        button.name = name;
        buttons.push_back(button);
    }
    std::string clicked(int x, int y)
    {
        for (size_t i = 0; i &lt; buttons.size(); i++)
        {
            if ((x &gt;= buttons[i].x1 &amp;&amp; x &lt;= buttons[i].x2) &amp;&amp; (y &gt;= buttons[i].y1 &amp;&amp; y &lt;= buttons[i].y2))
            {
            return buttons[i].name;
            }
        }
    }
    unsigned long get_color_rgb(unsigned char r, unsigned char g, unsigned char b)
    {
        XColor xcolor;
        xcolor.red = r &lt;&lt; 8;
        xcolor.green = g &lt;&lt; 8;
        xcolor.blue = b &lt;&lt; 8;
        if (XAllocColor(display_, DefaultColormap(display_, screen_), &amp;xcolor))
        {
            return xcolor.pixel;
        } else {
            printf(&quot;Failed to allocate color! RGB(%d,%d,%d)\n&quot;, r, g, b);
            return BlackPixel(display_, screen_);  // Fallback
        }
    }
    void center_text_in_button(SButton button)
    {

        std::string ref_text = button.name;

        // Load and query the font (using &quot;fixed&quot; as a common default)
        XFontStruct *font = XLoadQueryFont(display_, &quot;-misc-fixed-medium-r-normal--9-*&quot;);

        if (!font)
        {
            printf(&quot;Failed to load font\n&quot;);
            return;
        }

        int x = button.x1 + 3;
        int y = button.y2 - 3;


        XSetForeground(display_, gc_, bright_red_);
        XDrawString(display_, window_, gc_, x, y, ref_text.c_str(), strlen(ref_text.c_str()));

        // Clean up when done with font operations
        XFreeFont(display_, font);
    }

    void draw_buttons()
    {
        for (size_t i = 0; i &lt; buttons.size(); ++i)
        {
            SButton button = buttons[i];
            int width = button.x2 - button.x1;
            int height = button.y2 - button.y1;
            XSetForeground(display_, gc_, grey_color_);
            XFillRectangle(display_, window_, gc_,  button.x1, button.y1, width, height);
            XSetForeground(display_, gc_, bright_grey_);
            XDrawRectangle(display_, window_, gc_, button.x1, button.y1, width, height);
            center_text_in_button(button);
        }
        XFlush(display_);
    }
};


int main()
{
    Display* display = XOpenDisplay(nullptr);
    if (!display) {return 1; }
    int screen = DefaultScreen(display);
    XID Xid = RootWindow(display, screen);
    Window window = XCreateSimpleWindow(display, Xid,100,100,800,600,1, WhitePixel(display, screen), BlackPixel(display, screen));
    XStoreName(display, window, &quot;My C++ Canvas Framework&quot;);
    XSelectInput(display, window, ButtonPressMask | KeyPressMask | ExposureMask);
    Atom deleteWindowMessage = XInternAtom(display, &quot;WM_DELETE_WINDOW&quot;, False);
    XSetWMProtocols(display,window,&amp;deleteWindowMessage,1);
    XMapWindow(display, window);
    GC gc = DefaultGC(display, screen);
    Button_Manager bm(display, screen, window, gc);
    bm.add_buttonwh(10, 10, 80, 20, &quot;Test Button a&quot;);
    bm.add_buttonwh(10,50, 80, 20, &quot;Test Button b&quot;);
    bm.draw_buttons();
    bool running = true;
    while (running)
    {
        XEvent event;
        if (!XPending(display)) {continue;}
        XNextEvent(display, &amp;event);
        switch (event.type)
        {
            case ButtonPress:
            {
                int x1 = event.xbutton.x, y1 = event.xbutton.y;
                std::string name = bm.clicked(event.xbutton.x, event.xbutton.y);
                std::cout &lt;&lt; &quot;You pressed:&quot; &lt;&lt; name &lt;&lt; std::endl;
            }
            case Expose:
            {
                bm.draw_buttons();
                break;
            }
            case ConfigureNotify:
            {
                break;
            }
            case KeyPress:
            {
                break;
            }
            case ClientMessage:
            {
                break;
            }
        }
    }
    XCloseDisplay(display);
    return 0;
}
</code></pre><p>Going over this code in detail, starting with main:</p><pre><code class="language-c">int main()
{
    Display* display = XOpenDisplay(nullptr);
    if (!display) {return 1; }
    int screen = DefaultScreen(display);
    XID Xid = RootWindow(display, screen);
    Window window = XCreateSimpleWindow(display, Xid,100,100,800,600,1, WhitePixel(display, screen), BlackPixel(display, screen));
    XStoreName(display, window, &quot;My C++ Canvas Framework&quot;);
    XSelectInput(display, window, ButtonPressMask | KeyPressMask | ExposureMask);
    Atom deleteWindowMessage = XInternAtom(display, &quot;WM_DELETE_WINDOW&quot;, False);
    XSetWMProtocols(display,window,&amp;deleteWindowMessage,1);
    XMapWindow(display, window);
    GC gc = DefaultGC(display, screen);
    Button_Manager bm(display, screen, window, gc);
    bm.add_buttonwh(10, 10, 80, 20, &quot;Test Button a&quot;);
    bm.add_buttonwh(10,50, 80, 20, &quot;Test Button b&quot;);</code></pre><ul><li>We ask for a <code>Display* display</code> which is the virtual or real result from a call to <code>XOpenDisplay(nullptr);</code> &#xA0;Recall that in linux this can be a completely virtual desktop.. If <code>(!display)</code> kick back an error and exit.</li><li>We then get the corresponding screen (typicallly 0) with <code>int screen = DefaultScreen(display)</code> &#xA0;Do recall if you have multiple-head monitors and launch your application into screen 1, 2 it will return that.</li><li>Again <code>XID Xid = RootWindow(display, screen);</code> is simply a UID resource of the display screen combination when we called it we receieved <code>836</code>, however it is needed so that we can create the window in the next line</li><li><code>Window window = XCreateSimpleWindow(display, Xid,100,100,800,600,1, WhitePixel(display, screen), BlackPixel(display, screen));</code> sets the dimensions for our application, starting at a x,y offset of <code>100, 100</code> and with a width: <code>800</code> and height <code>600</code> </li><li><code>XStoreName</code> sets the title for the application.</li><li><code>XSelectInput(display, window, ButtonPressMask | KeyPressMask | ExposureMask)</code> sets up our event handlers. &#xA0;For a full list of them see the base article that this is based off of:</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/x-11-framework-basics-part-1/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Writing Your Own X-11 Framework Basics (Part 1)</div><div class="kg-bookmark-description">We go in depth into a X-11 foundational primer.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Writing Your Own X-11 Framework Basics (Part 2) Virtual Buttons"><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/08/X11.jpeg" alt="Writing Your Own X-11 Framework Basics (Part 2) Virtual Buttons"></div></a></figure><ul><li>The next lines set up default destructor handling, sets a default context etc;</li></ul><pre><code class="language-c"> Atom deleteWindowMessage = XInternAtom(display, &quot;WM_DELETE_WINDOW&quot;, False);
    XSetWMProtocols(display,window,&amp;deleteWindowMessage,1);
    XMapWindow(display, window);
    GC gc = DefaultGC(display, screen);</code></pre><h3 id="custom-button-handler"><strong>Custom Button Handler</strong></h3><p>This is where the fun begins, we have written our own custom basic button handler class. It needs several working parts.</p><ul><li>A Constructor that logs the <code>display</code>, <code>screen</code>, <code>window</code>, and <code>gc</code> information at creation time. &#xA0;By doing it this way the rest of the calls no longer need to record it, and it is dutifully recorded in the constructor call:</li></ul><pre><code class="language-c">    Button_Manager(Display* display, int screen, Window window, GC gc)
    {
        display_ = display;
        screen_ = screen;
        window_ = window;
        gc_ = gc;
        grey_color_ = get_color_rgb(25, 25, 25);
        bright_grey_ = get_color_rgb( 55, 55, 55);
        bright_red_ = get_color_rgb(205, 35, 35);
    }</code></pre><ul><li>Of importance we pre-register the colors that we want to use with the <code>get_color_rgb</code> function which is listed in the code.</li></ul><p>Next we have a <code>add_button</code> that will take it&apos;s <code>x1, y1, x2, y2, name</code> as parameters or alternately you can add it as <code>x1, y1, width, height, name</code> with the <code>add_buttonwh</code> function.</p><h3 id="event-handler">Event Handler</h3><ul><li>The event handler is quite simple, any mouse clicks are passed to the class handler and it will check the x,y dimensions if they are inside the corresponding box, if they are it will return the <code>std::string</code> of the name of the button that was clicked.</li></ul><pre><code class="language-c">    std::string clicked(int x, int y)
    {
        for (size_t i = 0; i &lt; buttons.size(); i++)
        {
            if ((x &gt;= buttons[i].x1 &amp;&amp; x &lt;= buttons[i].x2) &amp;&amp; (y &gt;= buttons[i].y1 &amp;&amp; y &lt;= buttons[i].y2))
            {
            return buttons[i].name;
            }
        }
    }</code></pre><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-25.png" class="kg-image" alt="Writing Your Own X-11 Framework Basics (Part 2) Virtual Buttons" loading="lazy" width="352" height="59"></figure><h3 id="draw-buttons">Draw Buttons</h3><p>Finally we have a draw buttons, and hence the requirement that the class object record all the pertinent information from the system so that a call to draw buttons is simply:</p><p><code>bm.drawbuttons();</code></p><p>The draw buttons will look as:</p><pre><code class="language-bash">    void draw_buttons()
    {
        for (size_t i = 0; i &lt; buttons.size(); ++i)
        {
            SButton button = buttons[i];
            int width = button.x2 - button.x1;
            int height = button.y2 - button.y1;
            XSetForeground(display_, gc_, grey_color_);
            XFillRectangle(display_, window_, gc_,  button.x1, button.y1, width, height);
            XSetForeground(display_, gc_, bright_grey_);
            XDrawRectangle(display_, window_, gc_, button.x1, button.y1, width, height);
            center_text_in_button(button);
        }
        XFlush(display_);
    }</code></pre><p><code>center_text_in_button</code> will use the red to draw the text.</p><p><code>XFlush(display_)</code> is <em>required</em> as all the <code>XFillRectangle</code> and <code>XDrawRectangle</code> will not actually execute until <code>XFlush</code> is required.</p><h3 id="conclusion">Conclusion</h3><ul><li>This is a basic button drawing application but we are no longer fighting with another framework manager&apos;s decision to force oversize our buttons. &#xA0;Yes our layouts are pretty basic, but now we can create any custom button / widget that we desire! &#xA0;So naturally the next is to look at some goals</li><li>Making stylish buttons</li><li>Making edit / text boxes that can accept input</li><li>Making more advanced widgets!</li></ul><p>Finally at the end make a drawing IDE that will let you simply draw an application that will spit out fast boiler plate code!</p>]]></content:encoded></item><item><title><![CDATA[Writing Your Own X-11 Framework Basics (Part 1)]]></title><description><![CDATA[We go in depth into a X-11 foundational primer. ]]></description><link>https://www.hotconfig.com/x-11-framework-basics-part-1/</link><guid isPermaLink="false">6a949a4c7083c00001140f1e</guid><category><![CDATA[X-11]]></category><category><![CDATA[IDE]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Mon, 31 Aug 2026 01:08:06 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/08/X11.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/08/X11.jpeg" alt="Writing Your Own X-11 Framework Basics (Part 1)"><p>Many many moons ago a wonderful piece of software came out for Window 95, namely Delphi 2.0. &#xA0;It was amazing, and &#xA0;let you literally <em>draw</em> your buttons and applications, connect them to event handlers, and then insert some boilerplate <em>Turbo Pascal</em> code. &#xA0;Today you would realize this was 25 years ahead of it&apos;s time, and basically long buried and gone after many attempts by Windows to bury it as it competed with their myriad of various IDE produtcs. It survived to a basic fashion, and &#xA0;you can still pay huge dollars and buy <a href="https://www.embarcadero.com/">Embarcadero products</a> that have bought and traded hands many times, or the free <a href="https://www.lazarus-ide.org/">Lazarus IDE</a>, which was an opensource clone of the powerful Delphi products.</p><p>But as for a C / C++ based type GUI (in Linux) if you are not going the Embarcadero route, &#xA0;you are pretty much stuck mostly with <a href="https://www.qt.io/development/qt-framework">Qt</a>. &#xA0;Qt is really nice, however if you want total control like say a custom sized button that acts like a instrument you end up fighting the <a href="https://doc.qt.io/qt-6/layout.html">layout manager</a> which will decide <em>for you</em> that your button needs to be a minimum of X pixels, or the font needs to be N size. Then the restrictive licensing agreements will helm you in. &#xA0;In the end you waste days getting a generic &apos;toy&apos; layout you never wanted.</p><p>So what if we just wrote &#xA0;one from scratch! Secondly <em>why even write this article when the AI&apos;s do it so well.. &#xA0;The answer is really simple to really learn something you need to spend some time in it, not just glancing through code but documenting each part one bit at a time. &#xA0;It could be noted that &apos;vibe-coding&apos; something to come back to it even a week later and you have no understanding or recollection of how it works, or what it does is just powerless - and dangerous. &#xA0;AI&apos;s will get 98% of stuff right, but the 2% that they get wrong will trap you. &#xA0;If you don&apos;t have a good understanding and can work close to the level that the AI is working at you will be trapped. That is the goal of the series of these articles to slowly build a strong foundational knowledge of the X-11 X-Window System, and eventually build an entire RAD (Rapid Application Developer) or IDE.</em></p><p>Supports:</p><p>Before you can write any X-11 application make sure to reference it in your source, and to also install the support library, so:</p><pre><code class="language-bash">sudo apt install libx11-dev -y</code></pre><pre><code class="language-bash">#include &lt;X11/Xlib.h&gt;
#include &lt;X11/Xutil.h&gt;</code></pre><p>Here additionally is a working <code>CMakeLists.txt</code> if it helps your project.</p><pre><code class="language-c">cmake_minimum_required(VERSION 3.20)
project(XFrame LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(X11 REQUIRED)
add_executable(XFrame main.cpp)
target_link_libraries(XFrame PRIVATE X11::X11)
</code></pre><h3 id="boilerplate-introduction">BoilerPlate Introduction</h3><pre><code class="language-C">int main()
{
    Display* display = XOpenDisplay(nullptr);
    if (!display) {return 1; }
    int screen = DefaultScreen(display);
    XID Xid = RootWindow(display, screen);
    Window window = XCreateSimpleWindow(display, Xid,100,100,800,600,1, BlackPixel(display, screen), WhitePixel(display, screen));
    XStoreName(display, window, &quot;My C++ Canvas Framework&quot;);
    XSelectInput(display, window, ExposureMask | KeyPressMask | StructureNotifyMask );
    Atom deleteWindowMessage = XInternAtom(display, &quot;WM_DELETE_WINDOW&quot;, False);
    XSetWMProtocols(display,window,&amp;deleteWindowMessage,1);
    XMapWindow(display, window);
    GC gc = DefaultGC(display, screen);
    Canvas canvas(display, window, gc, 800, 600);
    bool running = true;
    while (running)
    {
        XEvent event;
        XNextEvent(display, &amp;event);
        switch (event.type)
        {
        case Expose:
            canvas.present();
            break;</code></pre><p>Going over this snippet of code let&apos;s just study the different parts:</p><ul><li><code>Display* display = XOpenDisplay(nullptr);</code> This will get the current <em>display. &#xA0;Please note - this is not necessarily the screen as X-11 can have virtual displays, but will get the active one that the current session is calling to use. &#xA0;So if you open an application inside your Linux Gui, this is the display. &#xA0;<code>if (!display) {return 1;}</code> is simply saying if no display is returned exit with error code &#xA0;1 versus 0 (no error code.)</em></li><li><code>int screen = DefaultScreen(display);</code> If you have a 3-head monitor setup this will get the default monitor of the group. Typically <code>0</code></li><li><code>XID Xid = RootWindow(display, screen)</code> Effectively this is simply the resource identifier that the curent display / sreen combination is using. &#xA0;When we step-debugged our code we received <code>Xid: 883</code></li><li><code>Window window = XCreateSimpleWindow(display, Xid,100,100,800,600,1, BlackPixel(display, screen), WhitePixel(display, screen));</code> This actually creates a window, however it will not be displayed just yet. It exists virtually. <code>display</code> the current display, <code>Xid</code> - the resource identifier of the display, screen combination, <code>100,100</code> is <code>x,y</code> coordinates from top-left, <code>800,600</code> is the <code>width, height</code>. &#xA0;<code>1</code> is the border width, and <code>BlackPixel(display,screen)</code> border, and a <code>WhitePixel(display,screen)</code> background.</li><li><code>XStoreName(display, window, &quot;My C++ Canvas Framework&quot;);</code> Will give this (still virtual) window a name for it&apos;s title bar.</li></ul><h3 id="event-signal-handling">Event Signal Handling</h3><ul><li><code>XSelectInput(display, window, ExposureMask | KeyPressMask | StructureNotifyMask );</code> will determine which events will be passed to the window for handling. An event is - did your mouse move? Does your window need to know about it, then we add a corresponding mask. </li></ul><p>Here is a list of possible masks:</p><p>The standard event masks available to <code>XSelectInput</code> are:</p><!--kg-card-begin: html--><table style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; border-collapse: collapse; border-spacing: 0px; white-space: break-spaces; overflow-wrap: break-word; width: 486px;"><thead class="bg-muted/80" data-streamdown="table-header" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgb(255, 255, 255); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><th class="whitespace-nowrap px-4 py-2 text-left font-semibold text-sm" data-streamdown="table-header-cell" style="box-sizing: border-box; margin: 0px; padding: 0px 16px 4px 1px; border: 0px; font-style: normal; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Mask</span></th><th class="whitespace-nowrap px-4 py-2 text-left font-semibold text-sm" data-streamdown="table-header-cell" style="box-sizing: border-box; margin: 0px; padding: 0px 16px 4px 1px; border: 0px; font-style: normal; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Reports</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">this</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">event</span></th></tr></thead><tbody class="divide-y divide-border" data-streamdown="table-body" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">NoEventMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">No</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">events</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">KeyPressMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">A</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">keyboard</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">key</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pressed</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">KeyReleaseMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">A</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">keyboard</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">key</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">released</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ButtonPressMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">A</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">mouse</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pressed</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ButtonReleaseMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">A</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">mouse</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">released</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">EnterWindowMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">enters</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">the</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">LeaveWindowMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">leaves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">the</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">PointerMotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">inside</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">the</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">PointerMotionHintMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Pointer-motion</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">hints</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">instead</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">of</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">every</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">motion</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">event</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button1MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">1</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button2MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">2</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button3MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">3</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button4MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">4</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button5MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">5</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ButtonMotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">any</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">mouse</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">KeymapStateMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Keyboard</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">mapping</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">state</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">notification</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ExposureMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Part</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">or</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">all</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">of</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">the</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">needs</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">repainting</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">VisibilityChangeMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">visibility</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">changes</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">StructureNotifyMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">This</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">resized,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">mapped,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">unmapped,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">or</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">destroyed</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ResizeRedirectMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Requests</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">notification</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">before</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">this</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">resized</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">SubstructureNotifyMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">A</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">child</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">is</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">created,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">resized,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">mapped,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">unmapped,</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">or</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">destroyed</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">SubstructureRedirectMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Requests</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">control</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">over</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">changes</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">to</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">child</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">windows</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">FocusChangeMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Keyboard</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">focus</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">enters</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">or</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">leaves</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">the</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">PropertyChangeMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">A</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">property</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">changes</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ColormapChangeMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window&#x2019;s</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">colormap</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">changes</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">OwnerGrabButtonMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">receives</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">events</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">even</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">when</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">another</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">has</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">a</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">grab</span></td></tr></tbody></table><!--kg-card-end: html--><p>Specifically &#xA0;if we want button based event handlers it becomes:</p><p>The mouse and pointer-related masks available to <code>XSelectInput</code> are:</p><!--kg-card-begin: html--><table style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; border-collapse: collapse; border-spacing: 0px; white-space: break-spaces; overflow-wrap: break-word; width: 486px;"><thead class="bg-muted/80" data-streamdown="table-header" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgb(255, 255, 255); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><th class="whitespace-nowrap px-4 py-2 text-left font-semibold text-sm" data-streamdown="table-header-cell" style="box-sizing: border-box; margin: 0px; padding: 0px 16px 4px 1px; border: 0px; font-style: normal; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Mask</span></th><th class="whitespace-nowrap px-4 py-2 text-left font-semibold text-sm" data-streamdown="table-header-cell" style="box-sizing: border-box; margin: 0px; padding: 0px 16px 4px 1px; border: 0px; font-style: normal; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Event</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">type</span></th><th class="whitespace-nowrap px-4 py-2 text-left font-semibold text-sm" data-streamdown="table-header-cell" style="box-sizing: border-box; margin: 0px; padding: 0px 16px 4px 1px; border: 0px; font-style: normal; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Meaning</span></th></tr></thead><tbody class="divide-y divide-border" data-streamdown="table-body" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ButtonPressMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ButtonPress</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">A</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">mouse</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">was</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pressed</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ButtonReleaseMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ButtonRelease</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">A</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">mouse</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">was</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">released</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">EnterWindowMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">EnterNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">entered</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">the</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">LeaveWindowMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">LeaveNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">left</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">the</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">PointerMotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">MotionNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">PointerMotionHintMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">MotionNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Requests</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">motion</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">hints</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">instead</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">of</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">every</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">motion</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">event</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button1MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">MotionNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">1</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">was</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button2MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">MotionNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">2</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">was</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button3MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">MotionNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">3</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">was</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button4MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">MotionNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">4</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">was</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">Button5MotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">MotionNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">5</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">was</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgba(255, 255, 255, 0.12); border-image: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">ButtonMotionMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">MotionNotify</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">The</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">moved</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">while</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">any</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">was</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">held</span></td></tr><tr class="border-border" data-streamdown="table-row" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word;"><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><code class="rounded bg-muted px-1.5 py-0.5 font-mono text-sm" data-streamdown="inline-code" style="box-sizing: border-box; margin: 0px; padding: 4px 8px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: ui-monospace, Menlo, Monaco, &quot;Cascadia Mono&quot;, &quot;Segoe UI Mono&quot;, &quot;Roboto Mono&quot;, &quot;Oxygen Mono&quot;, &quot;Ubuntu Monospace&quot;, &quot;Source Code Pro&quot;, &quot;Fira Mono&quot;, &quot;Droid Sans Mono&quot;, &quot;Courier New&quot;, monospace !important; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 12px !important; vertical-align: baseline; white-space: break-spaces; overflow-wrap: break-word; color: rgb(255, 255, 255); border-radius: 4px; background-color: rgba(255, 255, 255, 0.18); overflow: auto;">OwnerGrabButtonMask</code></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Affects</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">grabs</span></td><td class="px-4 py-2 text-sm" data-streamdown="table-cell" style="box-sizing: border-box; margin: 0px; padding: 8px 8px 8px 1px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: DuckSansProduct, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: top; white-space: break-spaces; overflow-wrap: break-word; text-align: left !important;"><span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">Allows</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">the</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">window</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">to</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">receive</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">button</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">events</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">when</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">another</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">client</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">has</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">a</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">pointer</span> <span data-sd-animate="true" style="box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: 14px; vertical-align: baseline; animation: 0.25s ease-in 0s 1 normal both running sd-fadeIn; --sd-duration: 250ms; --sd-animation: sd-fadeIn; --sd-easing: ease-in;">grab</span></td></tr></tbody></table><!--kg-card-end: html--><p>Typically a normal mouse interaction type mask setting would look like:</p><pre><code class="language-C">XSelectInput(display, window, ExposureMask | KeyPressMask |    StructureNotifyMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | EnterWindowMask |  LeaveWindowMask
);</code></pre><p>From this you would then have the following code block to handle these events, namely:</p><pre><code class="language-c">switch (event.type) {
case ButtonPress: {
    int x = event.xbutton.x;
    int y = event.xbutton.y;
    unsigned int button = event.xbutton.button;

    // Handle mouse press.
    break;
}

case ButtonRelease: {
    int x = event.xbutton.x;
    int y = event.xbutton.y;
    unsigned int button = event.xbutton.button;

    // Handle mouse release.
    break;
}

case MotionNotify: {
    int x = event.xmotion.x;
    int y = event.xmotion.y;

    // Handle pointer movement.
    break;
}

case EnterNotify:
    // Pointer entered the window.
    break;

case LeaveNotify:
    // Pointer left the window.
    break;
}
</code></pre><p>Finishing up this block of code we still have:</p><pre><code class="language-c">Atom deleteWindowMessage = XInternAtom(display, &quot;WM_DELETE_WINDOW&quot;, False);
XSetWMProtocols(display,window,&amp;deleteWindowMessage,1);
XMapWindow(display, window);
GC gc = DefaultGC(display, screen);
Canvas canvas(display, window, gc, 800, 600);</code></pre><ul><li><code>Atom deleteWindowMessage = XInteralAtom(display, &quot;WM_DELETE_WINDOW&quot;, False);</code> This is telling the system to give us it&apos;s internal <code>Atom</code> reference of a <code>WM_DELETE_WINDOW</code> message as we want to intercept it and handle it manually.</li><li><code>XSetWMProtocols(display, window, &amp;deleteWindowMessage, 1);</code> &#xA0;Once we have the referenced <code>Atom</code> we then use that address to reference back that our application supports the <code>WM_DELETE_WINDOW</code> protocol.</li><li><code>XMapWindow(display, window)</code> will make your application visible.</li></ul><h3 id="picking-your-drawing-context-picking-your-pen-to-draw-with">Picking your Drawing Context (Picking your Pen to Draw With)</h3><p>Finally - yep I know this is a LOT, but were almost there, we need to get first the <code>drawing context,</code> </p><ul><li>A drawing context is <strong>only <em>settings</em></strong> - it describes the pen you are holding in your hand at the time you used it to write. &#xA0;</li><li>For instance you might have one <code>drawing context</code> that uses line width 5 and a second that uses <code>red.</code> &#xA0;Again think of them as pens. &#xA0;</li><li>The default drawing context is obtained with :</li></ul><pre><code>GC gc = DefaultGC(display, screen);
</code></pre><h3 id="drawing-commands">Drawing Commands</h3><p><strong>XDrawPoint</strong></p><pre><code class="language-c">XDrawPoint(display, window, gc, 100, 80);</code></pre><ul><li><code>XDrawPoint</code> Of the current <code>display</code> for the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> create a single point at <code>100</code>, <code>80</code>. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawPoints</strong></p><pre><code class="language-c">XPoint points[] = {{100, 80}, {110, 90}, {120, 100}, {130, 110}};
XDrawPoints(display, window, gc,points, 4, CoordModeOrigin);</code></pre><ul><li><code>XDrawPoints</code> Of the current <code>display</code> for the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> here are <code>4</code> coordinate points. <code>CoordModeOrigin</code> specifies that each point is absolute, while <code>CoordModePrevious</code> indicates the first point is absolute, and each point thereafter is relative. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawLine</strong></p><pre><code class="language-c">XDrawLine(display, window, gc,
    50, 150,       // starting x, y
    300, 200       // ending x, y
);
</code></pre><ul><li><code>XDrawLine</code> of the current <code>display</code> for the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> draw a line from <code>50,150</code> to <code>300,120</code> This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawLines</strong></p><pre><code class="language-c">XPoint linePoints[] = {{50, 250}, {150, 200}, {250, 250}, {350, 200}};

XDrawLines(display, window, gc, linePoints, 4, CoordModeOrigin);</code></pre><ul><li><code>XDrawLines</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> here are <code>4</code> consecutive points that will will draw contiguously. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawSegments</strong></p><pre><code class="language-c">XSegment segments[] = {
    {50, 300, 150, 350},
    {200, 300, 300, 350},
    {350, 300, 450, 350}
};

XDrawSegments(display, window, gc, segments, 3);</code></pre><ul><li><code>XDrawSegments</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> &#xA0;here are <code>3</code> line segments that can each be drawn. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawRectangle</strong></p><pre><code class="language-c">XDrawRectangle(display, window, gc, 
    50, 400,       // x, y
    150, 80        // width, height
);</code></pre><ul><li><code>XDrawRectangle</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> draw a rectangle starting at <code>50,400</code> with a width,height of <code>150,80</code> This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawRectangles</strong></p><pre><code class="language-c">XRectangle outlinedRectangles[] = {
    {250, 400, 100, 60},
    {400, 400, 100, 80},
    {550, 400, 150, 50}
};

XDrawRectangles(display, window, gc, outlinedRectangles,3);</code></pre><ul><li><code>XDrawRectangles</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> draw the following <code>3</code> rectangles as passed in <code>outlinedRectangles</code> This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XFillRectangle</strong></p><pre><code class="language-c">XFillRectangle(
    display,
    window,
    gc,
    50, 500,       // x, y
    150, 60        // width, height
);</code></pre><ul><li><code>XFillRectangle</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> draw the following <code>filled rectangle</code> This command queues until <code>xflush(display)</code> is called. &#xA0;</li><li>Does not put a line around the rectangle, you must make a second call to <code>XDrawRectangle</code></li></ul><p>One may set the fill with:</p><pre><code class="language-c">XSetFillStyle(display, gc, FillSolid);
XSetForeground(display, gc, 0xFF0000);
// Four fill styles are offered: 
// FillSolid
// FillTiled
// FillStippled
// FillOpaqueStippled</code></pre><p><strong>XFillRectangles</strong></p><pre><code class="language-c">XRectangle filledRectangles[] = {
    {250, 500, 100, 50},
    {400, 500, 100, 70},
    {550, 500, 150, 40}
};

XFillRectangles(display, window, gc, filledRectangles, 3);
</code></pre><ul><li><code>XFillRectangles</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> draw the following set of <code>filled rectangles</code> This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawArc</strong></p><ul><li>Angles are measured in arc seconds each second is 1/64th of a degree, thus to draw a 1/2 circle becomes <code>180 * 64</code></li></ul><pre><code class="language-c">XDrawArc(
    display,
    window,
    gc,
    50, 50,             // bounding box x, y
    150, 100,           // bounding box width, height
    0,                  // starting angle
    180 * 64            // angle extent
);
</code></pre><ul><li><code>XDrawArc</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> draw the following arc starting at reference point <code>50, 50</code> and bounded by <code>150,100</code> with a starting angle of <code>0 degrees</code>. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawArcs</strong></p><ul><li>Angles are measured in arc seconds each second is 1/64th of a degree, thus to draw a 1/2 circle becomes <code>180 * 64</code></li></ul><pre><code class="language-c">XArc outlinedArcs[] = {
    {250, 50, 100, 100, 0,       360 * 64}, // circle
    {400, 50, 100, 100, 0,       180 * 64}, // half-circle
    {550, 50, 150, 100, 90 * 64, 180 * 64}
};

XDrawArcs(display, window, gc,outlinedArcs, 3);</code></pre><ul><li><code>XDrawArcs</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> &#xA0;of <code>gc</code> draw the following <code>3</code> arcs each referenced by <code>x, y, width, height, starting angle, angle extent</code> &#xA0;Thus each arc is described by 6 points of data. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XFillArc</strong></p><ul><li>Angles are measured in arc seconds each second is 1/64th of a degree, thus to draw a 1/2 circle becomes <code>180 * 64</code></li></ul><pre><code class="language-c">XFillArc(
    display,
    window,
    gc,
    50, 180,             // bounding box x, y
    150, 150,            // width, height
    0,                   // starting angle
    90 * 64              // angle extent
);
</code></pre><ul><li><code>XFillArc</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> &#xA0;of <code>gc</code> draw and fill in the following arc referenced by <code>x, y, width, height, starting angle, angle extent</code> &#xA0;Thus each arc is described by 6 points of data. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XFillArcs</strong></p><pre><code class="language-c">XArc filledArcs[] = {
    {250, 180, 100, 100, 0,        360 * 64}, // filled circle
    {400, 180, 100, 100, 0,        180 * 64}, // filled half-circle
    {550, 180, 150, 100, 90 * 64,  180 * 64}
};

XFillArcs(
    display,
    window,
    gc,
    filledArcs,
    3
);</code></pre><ul><li><code>XFillArcs</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> &#xA0;of <code>gc</code> draw the following <code>3</code> arcs each referenced by <code>x, y, width, height, starting angle, angle extent</code> &#xA0;Thus each arc is described by 6 points of data. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawString</strong></p><pre><code class="language-c">
XDrawString(
    display,
    window,
    gc,
    50, 600,             // x and baseline y
    text,
    std::strlen(text)
);</code></pre><ul><li><code>XDrawString</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> at x,y point <code>50,600</code> write the following <code>text</code> that has a length of <code>std::strlen(text)</code>. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawImageString</strong></p><pre><code class="language-c">XDrawImageString(
    display,
    window,
    gc,
    250, 600,
    text,
    std::strlen(text)
);</code></pre><ul><li><code>XDrawImageString</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> at x,y point <code>250,600</code> write the following <code>text</code> that has a length of <code>std::strlen(text)</code> and give it a rectangular background. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawString16</strong></p><pre><code class="language-bash">XChar2b text16[] = {
    {0, &apos;H&apos;},
    {0, &apos;i&apos;},
    {0, &apos;!&apos;}
};

// Draw 16-bit text
XDrawString16(
    display,
    window,
    gc,
    400, 600,
    text16,
    3
);
</code></pre><ul><li><code>XDrawString16</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> at x,y point <code>50,600</code> write the following 16-bit <code>text</code> that has a length of <code>3</code>. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>XDrawText</strong></p><pre><code class="language-bash">XTextItem textItems[] = {
    {(char*)&quot;Hello &quot;, 6, 0, None},
    {(char*)&quot;X11&quot;,    3, 0, None}
};

XDrawText(
    display,
    window,
    gc,
    50, 580,             // x and baseline y
    textItems,
    2                    // number of text items
);
</code></pre><ul><li><code>XDrawText</code> Of the current <code>display</code> of the current <code>window</code> using the <code>drawing context</code> of <code>gc</code> at x,y points <code>50, 580</code> write out the following <code>textItems</code> of count <code>2</code>. This command queues until <code>xflush(display)</code> is called.</li></ul><p><strong>Finishing the Frame.</strong></p><p>Once you have buffered up all your <code>XDraw</code> commands you &#xA0;can send them for processing with </p><pre><code class="language-c">XFlush(display);</code></pre><p><strong>Conclusion </strong></p><p>This is a good primer. We can see in the documentation that the raw X-11 does not natively handle buttons etc. &#xA0;Below is a entire working <code>X-11</code> with a <code>Canvas</code> class to to various updates etc:</p><pre><code class="language-c">#include &lt;X11/Xlib.h&gt;
#include &lt;X11/Xutil.h&gt;

#include &lt;algorithm&gt;
#include &lt;cstdint&gt;
#include &lt;cstdlib&gt;
#include &lt;vector&gt;

//region Region Canvas
class Canvas
{
private:
    Display* display = nullptr;
    Window window = 0;
    GC gc = nullptr;

    XImage* image = nullptr;

    int width = 0;
    int height = 0;

    std::vector&lt;uint32_t&gt; pixels;


public:
    Canvas(Display* display, Window window, GC graphicsContext,int width, int height): display(display), window(window), gc(graphicsContext)
    {
        resize(width, height);
    }
    ~Canvas() { destroyImage(); }
    void resize(int newWidth, int newHeight)
    {
        width = std::max(1, newWidth);
        height = std::max(1, newHeight);
        pixels.resize(static_cast&lt;size_t&gt;(width) * height);
        clear(0x202020);
        destroyImage();
        Visual* visual = DefaultVisual(display, DefaultScreen(display));
        int depth = DefaultDepth(display, DefaultScreen(display));

        /*
         * XCreateImage calculates bytes_per_line for us when the
         * data pointer is initially null.
         */
        image = XCreateImage(display, visual, depth, ZPixmap, 0, nullptr, width, height, 32, 0);

        if (!image)
        {
            std::exit(1);
        }
        image-&gt;data = static_cast&lt;char*&gt;(std::malloc(image-&gt;bytes_per_line * height));
        if (!image-&gt;data)
        {
            std::exit(1);
        }
    }
    int getWidth() const
    {
        return width;
    }
    int getHeight() const
    {
        return height;
    }
    // Direct access to the raw framebuffer.
    uint32_t* data()
    {
        return pixels.data();
    }
    const uint32_t* data() const
    {
        return pixels.data();
    }
    void clear(uint32_t rgb)
    {
        std::fill(pixels.begin(), pixels.end(), rgb);
    }
    void setPixel(int x, int y, uint32_t rgb)
    {
        if (x &lt; 0 || x &gt;= width || y &lt; 0 || y &gt;= height)
        {
            return;
        }
        pixels[static_cast&lt;size_t&gt;(y) * width + x] = rgb;
    }
    uint32_t getPixel(int x, int y) const
    {
        if (x &lt; 0 || x &gt;= width || y &lt; 0 || y &gt;= height)
        {
            return 0;
        }
        return pixels[static_cast&lt;size_t&gt;(y) * width + x];
    }
    void fillRect(int x, int y, int w, int h, uint32_t rgb)
    {
        int x0 = std::max(0, x);
        int y0 = std::max(0, y);
        int x1 = std::min(width, x + w);
        int y1 = std::min(height, y + h);
        for (int py = y0; py &lt; y1; ++py)
        {
            for (int px = x0; px &lt; x1; ++px)
            {
                setPixel(px, py, rgb);
            }
        }
    }
    void drawGradient()
    {
        for (int y = 0; y &lt; height; ++y)
        {
            for (int x = 0; x &lt; width; ++x)
            {
                uint8_t red = static_cast&lt;uint8_t&gt;(255.0 * x / std::max(1, width - 1));
                uint8_t green = static_cast&lt;uint8_t&gt;(255.0 * y / std::max(1, height - 1));
                uint8_t blue = 100;
                uint32_t color = (static_cast&lt;uint32_t&gt;(red) &lt;&lt; 16) |  (static_cast&lt;uint32_t&gt;(green) &lt;&lt; 8) | blue;
                setPixel(x, y, color);
            }
        }
    }
    void present()
    {
        /*
         * Convert our RGB framebuffer into the format expected by X11.
         *
         * XPutPixel is intentionally used here because it handles the
         * current X11 visual correctly. It is simple but not especially
         * fast. Later, you could optimize this using XShm or OpenGL.
         */
        for (int y = 0; y &lt; height; ++y)
        {
            for (int x = 0; x &lt; width; ++x)
            {

                uint32_t rgb = getPixel(x, y);
                unsigned long x11Pixel = ((rgb &gt;&gt; 16) &amp; 0xff) &lt;&lt; 16 | ((rgb &gt;&gt; 8)  &amp; 0xff) &lt;&lt; 8  | (rgb &amp; 0xff);
                XPutPixel(image, x, y, x11Pixel);
            }
        }
        XPutImage(display,window,gc,image, 0, 0, 0, 0, width, height);
        XFlush(display);
    }

private:
    void destroyImage()
    {
        if (image)
        {
            XDestroyImage(image);
            image = nullptr;
        }
    }
};
//endregion

int main()
{
    Display* display = XOpenDisplay(nullptr);
    if (!display) {return 1; }
    int screen = DefaultScreen(display);
    XID Xid = RootWindow(display, screen);
    Window window = XCreateSimpleWindow(display, Xid,100,100,800,600,1, BlackPixel(display, screen), WhitePixel(display, screen));
    XStoreName(display, window, &quot;My C++ Canvas Framework&quot;);
    XSelectInput(display, window, ExposureMask | KeyPressMask | StructureNotifyMask );
    Atom deleteWindowMessage = XInternAtom(display, &quot;WM_DELETE_WINDOW&quot;, False);
    XSetWMProtocols(display,window,&amp;deleteWindowMessage,1);
    XMapWindow(display, window);
    GC gc = DefaultGC(display, screen);
    Canvas canvas(display, window, gc, 800, 600);
    bool running = true;
    while (running)
    {
        XEvent event;
        XNextEvent(display, &amp;event);
        switch (event.type)
        {
            case Expose:
            {
                canvas.present();
                break;
            }
            case ConfigureNotify:
            {
                int newWidth = event.xconfigure.width;
                int newHeight = event.xconfigure.height;
                if (newWidth != canvas.getWidth() || newHeight != canvas.getHeight())
                {
                    canvas.resize(newWidth, newHeight);
                    // Redraw after resizing.
                    canvas.drawGradient();
                    canvas.fillRect(100,100,250,150,0xff0000);
                    canvas.present();
                }
                break;
            }
            case KeyPress:
            {
                KeySym key = XLookupKeysym(&amp;event.xkey, 0);
                if (key == XK_Escape) {  running = false;  }
                break;
            }
            case ClientMessage:
            {
                if (static_cast&lt;Atom&gt;(event.xclient.data.l[0]) == deleteWindowMessage)
                {
                    running = false;
                }
                break;
            }
        }
    }
    XCloseDisplay(display);
    return 0;
}
</code></pre>]]></content:encoded></item><item><title><![CDATA[RDP Sessions For All Your LLM Needs]]></title><description><![CDATA[We go over setting up a RDP and then tunneling it through a SSH!]]></description><link>https://www.hotconfig.com/setting-up-a-rdp-session/</link><guid isPermaLink="false">6a8916f67083c00001140de9</guid><category><![CDATA[rdp]]></category><category><![CDATA[remote desktop]]></category><category><![CDATA[ssh]]></category><category><![CDATA[ssh tunnelling]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Sat, 22 Aug 2026 04:10:51 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/08/Screenshot_20260821_232715.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/08/Screenshot_20260821_232715.png" alt="RDP Sessions For All Your LLM Needs"><p> RDP Sessions in Linux are not actually that well documented - but if you run a lot of headless servers - you probably will eventually need it, and &#xA0;it is nice to have a handy reference guide around to setting one up. &#xA0;We will look at three quick parts to the RDP. We also will keep this guide short - we are all busy!</p><ul><li>Installing the RDP Server using <code>apt install</code> and then activating it &#xA0;using <code>systemctl</code></li><li>Installing the RDP Client and getting a <code>connection</code> going</li><li>Tunnelling a RDP through a <code>ssh</code> for <em>very secure over the internet desktops.</em></li></ul><p>Let&apos;s get started!</p><h3 id="part-a-installing-the-rdp-server">Part A. Installing The RDP Server</h3><p>Install your supports</p><pre><code class="language-bash">sudo apt update
sudo apt install xfce4 xfce4-goodies xrdp xorgxrdp -y
</code></pre><p>Configure xfce4 for your any user that will use it.</p><pre><code class="language-bash">echo &quot;startxfce4&quot; &gt; ~/.xsession
chmod +x ~/.xsession</code></pre><p>Once you have this done - you will need it to start automatically, so:</p><pre><code class="language-bash">sudo systemctl enable --now xrdp</code></pre><p>And then make sure it is working:</p><pre><code class="language-bash">systemctl status xrdp</code></pre><p>It will look like this if it is good:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image.png" class="kg-image" alt="RDP Sessions For All Your LLM Needs" loading="lazy" width="798" height="227" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image.png 600w, https://www.hotconfig.com/content/images/2026/08/image.png 798w" sizes="(min-width: 720px) 720px"></figure><p>Is it running? Well let&apos;s check:</p><pre><code class="language-bash">nmap 192.168.1.3</code></pre><p>Yes, atypically it binds to 3389 and you can see the port is open.</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-1.png" class="kg-image" alt="RDP Sessions For All Your LLM Needs" loading="lazy" width="533" height="165"></figure><h3 id="part-b-installing-running-xfreedp3-for-a-remote-desktop">Part B. Installing &#xA0;/ Running &#xA0;XFreedp3 for a Remote Desktop</h3><ul><li>This is your client that will connect to the remote desktop that is waiting. In ParrotOS it is already built in - and with many Linux distros, so open a terminal and just type <code>xfreedp3</code> and see if something shows up.</li></ul><pre><code class="language-bash">sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.freerdp.FreeRDP
flatpak run com.freerdp.FreeRDP</code></pre><p><strong>Remote Connecting to a client desktop. &#xA0;</strong></p><ul><li>Atypically it will resort to a <em>very</em> small desktop so these settings are suggested:</li></ul><pre><code class="language-bash">xfreerdp3 /v:192.168.1.3 /u:&lt;user&gt; /size:1920x1080</code></pre><p>It will ask for Domain &lt;hit enter&gt; and then enter your user password:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-2.png" class="kg-image" alt="RDP Sessions For All Your LLM Needs" loading="lazy" width="919" height="129" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-2.png 600w, https://www.hotconfig.com/content/images/2026/08/image-2.png 919w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-3.png" class="kg-image" alt="RDP Sessions For All Your LLM Needs" loading="lazy" width="506" height="332"></figure><h3 id="part-c-a-secure-ssh-to-rdp-and-closing-port-3389">Part C. A Secure SSH to RDP (And Closing Port 3389)</h3><ul><li>Over the internet is an entire different game, and people are probably going to want a lot more security on their connection. &#xA0;So first steps &#xA0;- bind RDP only to local host, inside <code>/etc/xrdp/xrdp.ini</code> change the bindings from your external to internal ip address <code>127.0.0.1</code></li></ul><pre><code class="language-bash">[Globals]
address=127.0.0.1
port=3389</code></pre><p>Next you want to make a <em>Local tunnel to the now internal only RDP port, so in ssh it would look like the following:</em></p><pre><code class="language-bash">ssh -N -L 3390:localhost:3389 &lt;user&gt;@&lt;ip&gt;</code></pre><p>However you may need to expand this as:</p><pre><code class="language-bsh">ssh -X -L 192.168.1.64:3390:localhost:3389 c@192.168.1.3</code></pre><p>This command is rare, and often very poorly documented on the internet so we will explain it in detail.</p><ul><li><code>-X</code> (Allow graphical trunking). It can be debated if this is required for an RDP..</li><li><code>-L</code> (Locally a port will be opened)</li><li><code>192.168.1.64:3390</code> &#xA0;This is the local port that we are binding to where we are working if we wanted to bind only to a local port we could change it to <code>127.0.0.1:3390</code></li><li><code>localhost:3389</code> This is not always intuitive but this is where the bind will sit on the remote machine.</li><li><code>c@192.168.1.3</code> &#xA0;- Why are we adding this if we are specifying the <code>localhost:3389</code> &#xA0;- this is the account on the remote machine that will permit the <code>localhost:3389</code> </li></ul><p>Please note if you need more training and tutorials on how powerful SSH (how it can pipe mysql / html / anything) check out our tutorial:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/ssh-workups-plumbing-and-piping/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">ssh workups - plumbing and piping - tunneling, reverse tunneling, socks5, ssh jumps and funsies.</div><div class="kg-bookmark-description">ssh workups - plumbing and piping - tunneling, reverse tunneling, socks5, ssh jumps and funsies.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="RDP Sessions For All Your LLM Needs"><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2024/01/Screenshot-at-2024-01-17-21-39-25.png" alt="RDP Sessions For All Your LLM Needs"></div></a></figure><p>Finally now that the tunnel is open we then pipe <code>xfreedp3</code> through it with:</p><pre><code class="language-bash">xfreedp3 /v:192.168.1.64:3390 /u:c /size:640x480</code></pre><p>In this instance it will ask if we trust the remote certificate as in:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-4.png" class="kg-image" alt="RDP Sessions For All Your LLM Needs" loading="lazy" width="921" height="222" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-4.png 600w, https://www.hotconfig.com/content/images/2026/08/image-4.png 921w" sizes="(min-width: 720px) 720px"></figure><p>We now get our little <code>640x480</code> desktop</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-5.png" class="kg-image" alt="RDP Sessions For All Your LLM Needs" loading="lazy" width="644" height="510" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-5.png 600w, https://www.hotconfig.com/content/images/2026/08/image-5.png 644w"></figure><p>Please note we made <em>no attempt to directly connect to the RDP port, we only connected to our local ssh tunnel.</em></p><h3 id="speed">Speed</h3><ul><li>Because you are tunneling through a LOT of encryption it may be very slow, but it will give you secure remote desktops.</li></ul>]]></content:encoded></item><item><title><![CDATA[FreeToken. Hype or Hot!? You Decide!]]></title><description><![CDATA[We take a look at FreeToken and didn't get much success however we did try it.
]]></description><link>https://www.hotconfig.com/freetoken-hype-or-hot-you-decide/</link><guid isPermaLink="false">6a8922c57083c00001140e65</guid><category><![CDATA[FreeToken]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Fri, 21 Aug 2026 05:21:00 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/08/Screenshot_20260822_001546.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.flashml.ai/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">FreeToken &#x2014; Bring Frontier to Edge</div><div class="kg-bookmark-description">Download and run large language models on your own machine &#x2014; private, offline, free.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.flashml.ai/assets/icon-128.png" alt="FreeToken. Hype or Hot!? You Decide!"><span class="kg-bookmark-author">FlashML</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.flashml.ai/assets/icon.png" alt="FreeToken. Hype or Hot!? You Decide!"></div></a></figure><img src="https://www.hotconfig.com/content/images/2026/08/Screenshot_20260822_001546.png" alt="FreeToken. Hype or Hot!? You Decide!"><p>The LLM World moves <em>fast - so fast that it is a full time job reviewing software... A new &#xA0;LLM manager was making it&apos;s debut, and people were making some very large claims about it. Above is the paper (with it&apos;s claims) which looked pretty dramatic - the capability ot run workhorse level LLM&apos;s on a 4060 laptop. &#xA0;Really!?</em></p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-14.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="459" height="335"></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://arxiv.org/abs/2608.16157"><div class="kg-bookmark-content"><div class="kg-bookmark-title">FreeToken: Efficient Edge-Native MoE Serving with Bandwidth-Adaptive Execution</div><div class="kg-bookmark-description">Frontier open-weight models are increasingly available, but serving them still largely assumes datacenter infrastructure. We present FreeToken, an edge-native MoE serving system that treats a personal machine not as a small GPU, but as a unified, elastic inference platform. FreeToken co-designs the&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://arxiv.org/static/browse/0.3.4/images/icons/apple-touch-icon.png" alt="FreeToken. Hype or Hot!? You Decide!"><span class="kg-bookmark-author">arXiv.org</span><span class="kg-bookmark-publisher">Shuo Yang</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://arxiv.org/static/browse/0.3.4/images/arxiv-logo-fb.png" alt="FreeToken. Hype or Hot!? You Decide!"></div></a></figure><!--kg-card-begin: markdown--><blockquote>
<p>FreeToken is fast. Comparing to Ollama, we have 3&#x2013;4&#xD7; faster decode, and 6&#x2013;30&#xD7; faster prefill</p>
</blockquote>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://x.com/Andy_ShuoYang/status/2090856978428145761"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Shuo Yang (@Andy_ShuoYang) on X</div><div class="kg-bookmark-description">FreeToken is fast. Comparing to Ollama, we have 3&#x2013;4&#xD7; faster decode, and 6&#x2013;30&#xD7; faster prefill How? We introduce bandwidth-adaptive CPU&#x2013;GPU execution + semantic-aware caching across agent turns. More details in the technical report: https://t.co/V3sIxbPMGU</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://x.com/apple-touch-icon.png" alt="FreeToken. Hype or Hot!? You Decide!"><span class="kg-bookmark-author">X (formerly Twitter)</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://pbs.twimg.com/media/HQQy7dZaUAAnq8B.jpg:large" alt="FreeToken. Hype or Hot!? You Decide!"></div></a></figure><p>We pulled and installed their Ubuntu image, some issues in that it did not want to work through a ssh console, however for some unknown reason - we noticed the following.</p><ul><li>We built an entire RDP remote desktop, and then used it &#xA0;to run this software <em>once on the desktop. <u>Once it has run once we noticed that you could again X-11 into it.</u> So note that. Here is our guide we built but found out after we never needed it, as we could of simply just walked up to the headless machine - hooked up a monitor and then got it working, however if you have a truly remote headless machine you sorta have to do this once.</em></li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/setting-up-a-rdp-session/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">RDP Sessions For All Your LLM Needs</div><div class="kg-bookmark-description">We go over setting up a RDP and then tunneling it through a SSH!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="FreeToken. Hype or Hot!? You Decide!"><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/08/Screenshot_20260821_232715.png" alt="FreeToken. Hype or Hot!? You Decide!"></div></a></figure><p>First time you run it will will present itself as:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-6.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="528" height="429"></figure><p>It then asks you where you want your models to store:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-7.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="520" height="421"></figure><p>This is where it got sketchy, we stick to <a href="huggingface.com">huggingface.com</a></p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-8.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="518" height="476"></figure><p>FreeToken Engine then wants to install itself:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-9.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="625" height="227" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-9.png 600w, https://www.hotconfig.com/content/images/2026/08/image-9.png 625w"></figure><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-10.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="621" height="536" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-10.png 600w, https://www.hotconfig.com/content/images/2026/08/image-10.png 621w"></figure><p>It did efficiently install a number of Nvidia libraries so:</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-11.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="613" height="531" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-11.png 600w, https://www.hotconfig.com/content/images/2026/08/image-11.png 613w"></figure><p>Once it is installed - it interestingly offers a management harness, that both allows you to automatically download and run various models, along with connecting them to online models if you choose.</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-12.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="1439" height="889" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-12.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/08/image-12.png 1000w, https://www.hotconfig.com/content/images/2026/08/image-12.png 1439w" sizes="(min-width: 720px) 720px"></figure><h3 id="apps">Apps</h3><ul><li>This came with an <code>apps</code> section that looks to install the the large-player connectors and harnesses.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-15.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="1047" height="850" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-15.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/08/image-15.png 1000w, https://www.hotconfig.com/content/images/2026/08/image-15.png 1047w" sizes="(min-width: 720px) 720px"></figure><p>The real &apos;meat&apos; test was to see what happens when something that out-sized the VRAM significantly was pulled and run - the objective being to see if the claims this &apos;tuned / management&apos; system was apropos, or hype. So we pulled something that we usually never work with <em>an LLM outside our resource class, along with a couple other models. That was our end-game plan, but we initially did not get there (but we did in the end!)</em></p><h3 id="double-failure">Double Failure.</h3><ul><li>We initially encountered two failures right off the top, and looking at the logs we could see it attempting to compile cuda-utils as in:</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-20.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="1788" height="218" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-20.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/08/image-20.png 1000w, https://www.hotconfig.com/content/images/size/w1600/2026/08/image-20.png 1600w, https://www.hotconfig.com/content/images/2026/08/image-20.png 1788w" sizes="(min-width: 720px) 720px"></figure><h3 id="third-try-using-git-uv-success">Third Try (Using git / uv) SUCCESS</h3><ul><li>Next we attempted looking at the git and following it&apos;s guidance , to whit it required <code>ft</code> to be installed before you can run <code>freetoken-desktop</code></li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/FlashML-org/FreeToken"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - FlashML-org/FreeToken</div><div class="kg-bookmark-description">Contribute to FlashML-org/FreeToken development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.com/fluidicon.png" alt="FreeToken. Hype or Hot!? You Decide!"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">FlashML-org</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/3a05aff0be43c4854370225a14a303397774430a9340dd5ce34b0f8aa8175262/FlashML-org/FreeToken" alt="FreeToken. Hype or Hot!? You Decide!"></div></a></figure><p>We installed <code>uv</code> via:</p><pre><code class="language-bash">curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv  # Make a virtual environment for uv
uv pip install &quot;freetoken[accel]&quot;</code></pre><p>After this point we had a sort of a mangle setup - <code>you must have ft</code> installed (and referenced) from the command-line, here is how you do it - by activating the ft <code>.venv</code> and then starting <code>freetoken-desktop</code> from a source of it. <code>source ~/.venv/bin/active</code> effectively means &apos;start and activate this virtual environment that we built with <code>uv pip install &quot;freetoken[accel]&quot;</code> and <em>then we will call <code>freetoken-desktop</code></em></p><pre><code class="language-bash">source ~/.venv/bin/activate
ft --version  #make sure this is inside your command line
freetoken-desktop   # Through ssh -X or a RDP or direct desktop.</code></pre><h3 id="gpt-oss-20b-mxfp4">gpt-oss-20b &#xA0;MXFP4 </h3><p><code>how are you today?</code> - 0.8 Tokens/s (medium thinking)</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-22.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="874" height="194" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-22.png 600w, https://www.hotconfig.com/content/images/2026/08/image-22.png 874w" sizes="(min-width: 720px) 720px"></figure><p>What is very different about this system is <code>low</code>, <code>medium</code> <code>high</code> gave all approximately the same speed, as it claims this system is re-balancing on the fly. We were getting about 13.8 - 15 Tokens/s consistently. That was not the speed-ups we were looking for.. or anything close to what they were claiming. Be we did our diligence and checked them out.</p><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/08/image-23.png" class="kg-image" alt="FreeToken. Hype or Hot!? You Decide!" loading="lazy" width="874" height="194" srcset="https://www.hotconfig.com/content/images/size/w600/2026/08/image-23.png 600w, https://www.hotconfig.com/content/images/2026/08/image-23.png 874w" sizes="(min-width: 720px) 720px"></figure><h3 id="a-unique-system-conclusion">A Unique System / Conclusion</h3><ul><li>We did not see anywhere to add a custom MCP end-point.</li><li>We did notice something we had never seen any other system do before the ability to re-balance Moe Weights from the CPU to the GPU <em>on the fly - this was very interesting.</em></li><li>We ran their &apos;fast&apos; model and as a Moe it should of been blazing but we were looking at about 15 Tokens/s. We tried moving the sliders around and reducing the context - it didn&apos;t matter.</li><li>It was challenging to even get working as <code>ft</code> had to be installed from a <code>.venv</code> and from inside that <code>venv</code> THEN you could launch <code>freetoken-desktop</code> but this was not transparent with the creators presuming you would know how to make all this work. </li><li>Conclusion is it&apos;s an interesting system with some unique features, and serious work by their team was put into it, it could be suspected it will be a lot better in the future!</li></ul>]]></content:encoded></item><item><title><![CDATA[Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks < $500 - $1500, plus going higher into the DGX Spark.]]></title><description><![CDATA[We follow up on the current trends of how to get capable and productive LLM's on a limited budget.]]></description><link>https://www.hotconfig.com/super-low-cost-production-capable-workhorses-and-assistants-show-you-how-to-llmmax-on-mini-bucks/</link><guid isPermaLink="false">6a4924a39e9ad20001df4d2a</guid><category><![CDATA[MOE]]></category><category><![CDATA[TurboQuant]]></category><category><![CDATA[MCP Server]]></category><category><![CDATA[Re-tune]]></category><category><![CDATA[LLM Booster]]></category><category><![CDATA[llmbooster]]></category><dc:creator><![CDATA[thinkmelt@protonmail.com]]></dc:creator><pubDate>Sat, 04 Jul 2026 17:05:52 GMT</pubDate><media:content url="https://www.hotconfig.com/content/images/2026/07/Screenshot_20260704_112003.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.hotconfig.com/content/images/2026/07/Screenshot_20260704_112003.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><p>Firstly expectations. What do we define as a &apos;workhorse&apos; and an &apos;assistant,&apos; well:</p><ul><li><strong>Assistant LLM</strong> - Models that run inside a 8-12GB Graphics card and can do powerful lookups and contexts typical under or up to 64K. &#xA0;These run great inside a 3060ti or a 3080. They use MoE (Mixture of Experts) a non-dense type model.</li><li><strong>Workhorse LLM</strong> - Models that run inside a 12-24 GB Graphics card and handle the large contexts (typically up to 256K), and or are capable of working all night without overflow by breaking up the job with<a href="https://hermes-agent.nousresearch.com/"> Hermes</a> or <a href="https://www.hotconfig.com/llm-queue-dispatcher/">LLMQP</a>. &#xA0;They run great inside a 3080 / 4080 / 3090 and higher graphics card.</li><li><strong>Production LLM</strong> - Models that run on multiple 3090ti&apos;s, DGX Sparx, and Commercial equipment. &#xA0;That term is debatable as many would only consider push-button get-application like <a href="https://claude.com/">Claude</a> or <a href="https://claude.com/">Fable</a> to qualify. </li></ul><h3 id="token-speed-matters">Token Speed Matters</h3><p>Be honest with yourself. 4 months ago 10-12 Tokens/s was considered amazing. In reality we can consider the following inference numbers, and just review what <em>pre-fill and generation references even are:</em></p><p><strong>Pre-fill</strong> - This is where the LLM reads the passed information, the pre-prompts, and any pasted files etc. &#xA0;Anything over 75 Tokens/s are acceptable, and even localLLM&apos;s have been seen working up to 1000 Token/s depending on the model. </p><p><strong>Generation</strong> - This is where the LLM will generate tokens or answer questions. A token is basically considered roughly 1-five character word and still loosely defined.</p><ul><li>5 - 15 Tokens/s. This is actually slow. It&apos;s okay for automated processes that run all night on your behalf, but in reality most people if they can type up code faster than the LLM they will find themselves not waiting for it. &#xA0;Usually the first time a person sets these up they are very excited that they can even get that.</li><li>15 - 40 Tokens/s. Somewhat better but again it&apos;s tolerable but tool calling can feel slow. The real secret to getting speed is running a sparse model that has the &apos;MoE&apos; or Mixture-of-Experts and has less active parameters than a &apos;dense.&apos;</li><li>40 - 100 Tokens/s. This is the sweet spot where the LLM can work as fast as your work flow, and as you need questions. &#xA0;This is what you want to shoot for in a localLLM at this time where it can effectively work at the speed you want to review it.</li><li>100+ Tokens/s is really &#xA0;super flow, it generates on a consistent basis information faster than a human can even manually review. &#xA0; In this case one would want a harness or a LLM controller. A great case is <a href="https://hermes-agent.nousresearch.com/">Hermes</a>, or <a href="https://www.hotconfig.com/llm-queue-dispatcher/">LLMQP</a>. For instance if you have a 4080 and you run a MTP head and you run a 8B you will probably see a 100 Tokens/s speed.</li></ul><h3 id="advantages">Advantages</h3><ul><li>There are <em>massive</em> advantages to going to a LocalLLM. Firstly your proprietary data will not end up farmed into someone else&apos;s next token model.</li><li>Sensitive data is retained such as doctors, lawyers and client-privelege scenarios. Legal requirements can force many to taking this path.</li><li>Inventions and NDA type materials do not need to risk being harvested by the cloud LLM.</li><li>This interview shows how concerned corporate is about going with a <a href="https://x.com/PalantirTech/status/2072326189079757277">private LLM</a>.</li></ul><p>Let&apos;s start at the most basic actually useful LLM we can build &lt; $500.</p><h3 id="starting-at-the-very-bottoma-epyc-3151-build-15000-specmark-for-61-then-add-a-used-gpu-off-fbm">Starting at the Very Bottom - A <a href="https://www.ebay.com/itm/178137075836?_skw=Epyc+3151&amp;itmmeta=01KWPW7VSBD9HWMASNCCFE2SZG&amp;hash=item2979cc107c:g:leMAAeSwjBdqHhPc&amp;itmprp=enc%3AAQALAAAA0GfYFPkwiKCW4ZNSs2u11xAZIo54lfrIrtV91ILi0rUap8OeawNd8xwNh4b6%2FlvI3r%2FNUrM8WcV7oRN1%2BiOIj97RzwlDwXM%2BixadbRBR0JbXyAdihBetdvz5p%2Fp8IySSzCced411zprLt2lrSriNbD5HojK2aQCIkuTJzAnHvdSDnGcoOvFXMRymYCv%2F7cKCS2ybOXeQXMyrTOJcXvUsZNB7FOYVRgVmvKT9tUf0kv5Aqm6H0o0NTmL4fZ7FEIQ20IuDYGhsPvAvFP%2FTYP18M%2FA%3D%7Ctkp%3ABk9SR-68n9zlZw">Epyc 3151 Build</a> (15,000 Specmark for $61). Then Add a Used GPU off FBM.</h3><ul><li>4 cores / 8 threads / 2.9 Ghz and a PCIe 3.0 16 GB/s for the cost of a Raspberry Pi! What&apos;s not to love!</li><li>Add up to 256 GB DDR4 RAM. </li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://www.ebay.com/itm/178137075836?_skw=Epyc+3151&amp;itmmeta=01KWPW7VSBD9HWMASNCCFE2SZG&amp;hash=item2979cc107c:g:leMAAeSwjBdqHhPc&amp;itmprp=enc%3AAQALAAAA0GfYFPkwiKCW4ZNSs2u11xAZIo54lfrIrtV91ILi0rUap8OeawNd8xwNh4b6%2FlvI3r%2FNUrM8WcV7oRN1%2BiOIj97RzwlDwXM%2BixadbRBR0JbXyAdihBetdvz5p%2Fp8IySSzCced411zprLt2lrSriNbD5HojK2aQCIkuTJzAnHvdSDnGcoOvFXMRymYCv%2F7cKCS2ybOXeQXMyrTOJcXvUsZNB7FOYVRgVmvKT9tUf0kv5Aqm6H0o0NTmL4fZ7FEIQ20IuDYGhsPvAvFP%2FTYP18M%2FA%3D%7Ctkp%3ABk9SR-68n9zlZw"><img src="https://www.hotconfig.com/content/images/2026/07/image-17.png" class="kg-image" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark." loading="lazy" width="1050" height="590" srcset="https://www.hotconfig.com/content/images/size/w600/2026/07/image-17.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/07/image-17.png 1000w, https://www.hotconfig.com/content/images/2026/07/image-17.png 1050w" sizes="(min-width: 720px) 720px"></a><figcaption>The Epyc 3151 has 10 Gbit w/4C 8T.&#xA0;</figcaption></figure><ul><li>Next we want to add a low-cost GPU. &#xA0;The best bang-for-buck right now is the 12 GB RTX 3060 <em>if you can find one</em>..</li></ul><p>The <em>key </em>here is to find the first models that have Tensorcores, <u><em>and also has 12 GB VRAM</em></u>. This is key! You can absolutely get by on the 8GB VRAM - for an assistant, but if you want to get to a &apos;workhorse&apos; level LLM - you want to try to find a 12 GB or higher VRAM. 16 GB VRAM like the 4080 has will be preferable, however it looks like their current price at the time of this writing has pushed up their prices significantly into the $1200 range. If you have hundreds to spend then of course buy a 24 GB 3090 but expect to pay lots right now as they are selling upwards of $1500 as of mid-2026.</p><p>You can run very capable 8GB models and we proved it. &#xA0;Naturally however we find that once you start sending large code bases the desire for the larger context &gt; 128K becomes immediate.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/crash-out-good-production-on-a-8gb-vram-w-3060ti/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Game Changer! Crash-Out! Good Production on a Ryzen 5 2600 (6-core/12thread AMD) w 3060ti/8GB VRAM</div><div class="kg-bookmark-description">Crash-Out! Good Production on a Ryzen 5 2600 w 3060ti/8GB VRAM. We showed you can actually get very powerful productive capability on a 3060ti!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/06/image--2-.jpg" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."></div></a></figure><p><em>If you get to the 12 GB model or higher - it then allows you to run large contexts. If you can find a 16GB (I know they are getting more expensive by the day) you can run the 128-256K Contexts. <a href="https://www.hotconfig.com/world-first-the-tom-pulls-turboquant-w-mtp-and-it-works/">Turboquant</a> is really key here.</em></p><figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://www.ebay.com/itm/298413448493?_skw=3080+12+GB&amp;epid=6052110031&amp;itmmeta=01KWPWF61TB63M5DF5BE3J6Y5T&amp;hash=item457ad3dd2d:g:e4AAAeSw8HVqLdQg&amp;itmprp=enc%3AAQALAAAA0GfYFPkwiKCW4ZNSs2u11xCxScGH2DYHmPZL5qSPj42vxIJMuFF%2F7K1oMVKcBCUWLkg3fSOWGVoy3Feg3UNK2PyX%2BCol4Gs8PRelxJC9XICWW%2FyfNHydhUJ3S%2Ba9dCtt%2BnWou437X%2Bg9P8lbTPm3yPtuIIYiGKumaG4Nf91KspY3M4Bv942GR%2FnmY0nVMA6V%2B%2F9IohB5w0MuXvtPbefrc%2ByeXIti%2BECc8aXkeFHQKPJFSF8GDuL9xRMxwyY%2FH6WDzNPjtRnfUo%2FdH4PtvXFZoS4%3D%7Ctkp%3ABk9SR4rhvNzlZw"><img src="https://www.hotconfig.com/content/images/2026/07/image-18.png" class="kg-image" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark." loading="lazy" width="1043" height="551" srcset="https://www.hotconfig.com/content/images/size/w600/2026/07/image-18.png 600w, https://www.hotconfig.com/content/images/size/w1000/2026/07/image-18.png 1000w, https://www.hotconfig.com/content/images/2026/07/image-18.png 1043w" sizes="(min-width: 720px) 720px"></a><figcaption>12 GB VRAM is the &apos;sweet spot&apos; because the 8GB loads fully and leaves room for Kv Cache</figcaption></figure><p>Here is a table of possible configurations for lower-end compute. The key here is that they all have the Tensor Cores, and that is going to make a <em>dramatic performance boost</em>. Of interest is the <em>large</em> jump in Tensorcores on the 3080 <em>plus</em> they have the 12GB, but they were never really noticed as a LLM card - so they have stayed relatively cheap. &#xA0;It&apos;s a perfect &apos;sweet spot&apos; to go with the Epyc 3151 node if you are trying to build for under $500.</p><!--kg-card-begin: html--><table><thead><tr><th data-col-size="xs">GPU Model</th><th data-col-size="lg">Tensor Cores</th><th data-col-size="md">VRAM (Standard/Maximum)</th></tr></thead><tbody><tr><td data-col-size="xs">RTX 2080</td><td data-col-size="lg">368 (1st Gen)</td><td data-col-size="md">8 GB GDDR6</td></tr><tr><td data-col-size="xs">RTX 3060 Ti</td><td data-col-size="lg">152 (3rd Gen)</td><td data-col-size="md">8 GB GDDR6</td></tr><tr><td data-col-size="xs">RTX 3060</td><td data-col-size="lg">112 (3rd Gen)</td><td data-col-size="md"><strong>12 GB GDDR6</strong></td></tr><tr><td data-col-size="xs">RTX 3080</td><td data-col-size="lg">272 (3rd Gen)</td><td data-col-size="md">10 GB / 12 GB GDDR6X</td></tr><tr><td data-col-size="xs">RTX 4080</td><td data-col-size="lg">304 (4th Gen)</td><td data-col-size="md">16 GB GDDR6X</td></tr><tr><td data-col-size="xs">RTX 4090</td><td data-col-size="lg">512 (4th Gen)</td><td data-col-size="md">24 GB GDDR6X</td></tr><tr><td data-col-size="xs">RTX 4070</td><td data-col-size="lg">184 (4th Gen)</td><td data-col-size="md">12 GB GDDR6X</td></tr></tbody></table><!--kg-card-end: html--><h3 id="keys-are-in-the-tensor-cores-problem-is-in-the-pcie-speed">Keys are in the Tensor Cores, Problem is in the PciE Speed.</h3><ul><li>8 -9 B sized models will run inside a 8 GB model. We showed they are very capable with these kinds of setups. Sparse models lowered the active parameter counts and they can run really well on mixed layer loading. This is where some models load to the CPU and some load to the GPU. </li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/crash-out-good-production-on-a-8gb-vram-w-3060ti/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Game Changer! Crash-Out! Good Production on a Ryzen 5 2600 (6-core/12thread AMD) w 3060ti/8GB VRAM</div><div class="kg-bookmark-description">Crash-Out! Good Production on a Ryzen 5 2600 w 3060ti/8GB VRAM. We showed you can actually get very powerful productive capability on a 3060ti!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/06/image--2-.jpg" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."></div></a></figure><p>We also showed if you can find a 16 GB VRAM or higher <em>and you have a TensorCore enabled card - you can get an incredibly good &apos;Workhorse&apos; level LLM that is even fast and has a large context. For instance:</em></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/qwo/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Qwopus-3.6-35B-A3B-Coder Review. A Powerful LocalLLM Tuned for Coders. It is one of the best 35B sized models we have ever reviewed. Seriously.</div><div class="kg-bookmark-description">Qwopus-3.6-35B-A3B-Coder is a localLLM dream for software developers. Incredibly accurate and powerful prompt processing!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/06/Screenshot_20260630_103448.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."></div></a></figure><h3 id="why-was-the-3090-dual-with-nvlink-so-popular-over-say-dual-4080s">Why Was the 3090 Dual with NVLink so Popular over say Dual 4080&apos;s?</h3><ul><li>Anywhere the model was split (and was a &apos;dense&apos; model) it required massive bandwidth between the layers. If the model had to communicate over a PCIe 3.0 bus even at 8 GB/s bandwidth (16 GB/s) it would kill the model speed. &#xA0;The NVLink was incredibly popular because it enabled up to 112 GB/s with an interlink card directly connecting two GPUs independent of the PCIe. &#xA0;The only other option is to try to find a model that fit completely inside the GPU.</li><li>The other option naturally was anything with a <code>unified memory</code> which implied that the RAM of the device shared with the GPU, and worked at dramatically higher speeds not needing the very slow PCIe bus.</li></ul><h3 id="people-started-trying-to-run-llms-on-everything">People Started Trying to Run LLM&apos;s on Everything</h3><p>Even a old mining rig the BC-250 because of it&apos;s very fast unified memory speeds of 448 GB/s plus the fact that it sells for less than a single 3060ti made them very good candidates for the 8B platform.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.hotconfig.com/content/images/2026/07/image-19.png" class="kg-image" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark." loading="lazy" width="650" height="243" srcset="https://www.hotconfig.com/content/images/size/w600/2026/07/image-19.png 600w, https://www.hotconfig.com/content/images/2026/07/image-19.png 650w"><figcaption>The ASRock recycle - taking older GPU miner rigs and repurposing them for LLM compute.</figcaption></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://x.com/loktar00/status/2063839666554446292"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Loktar &#x1F1FA;&#x1F1F8; (@loktar00) on X</div><div class="kg-bookmark-description">This is actually CRAZY!!! Using llama.cpp RPC I have 2 BC-250&#x2019;s setup so far, they&#x2019;re able to run Qwen 27b at Q4, and 35b at Q4 as well. This is without extra CUs unlocked: Qwen 27b with MTP - 14.5 tk/sQwen 35b with MTP - 47 tk/s For $300 I&#x2019;m getting these speeds! This is</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://x.com/apple-touch-icon.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><span class="kg-bookmark-author">X (formerly Twitter)</span><span class="kg-bookmark-publisher">Loktar &#x1F1FA;&#x1F1F8;</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://abs.twimg.com/rweb/ssr/default/v2/og/image.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."></div></a></figure><h3 id="exploring-the-older-nvidia-tesla-quadro-etc">Exploring the Older Nvidia Tesla / Quadro Etc.</h3><ul><li>People even recompiled various LLM&apos;s so that they could run somewhat quickly on very older hardware, like the K80, and reported 11 Token/s (showing again even industrial older cards did not hold up as well as any cards that had Tensorcore.)</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://x.com/chkn_little/status/2057061083668443158"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Chicken Little (@chkn_little) on X</div><div class="kg-bookmark-description">@LottoLabs he wrote me today that he&#x2019;s running Qwen3.6-35B-A3B-UD-IQ4_XS on the K80 using llama.cpp at 10 tps can a add the k80? I think it&#x2019;s worth an entry</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://x.com/apple-touch-icon.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><span class="kg-bookmark-author">X (formerly Twitter)</span><span class="kg-bookmark-publisher">Chicken Little</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://abs.twimg.com/rweb/ssr/default/v2/og/image.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."></div></a></figure><h3 id="the-dgx-spark-nvidias-localllm-solution">The DGX Spark (Nvidia&apos;s LocalLLM Solution)</h3><ul><li>At the time of this writing they haul heavy in the price tag - and the market demand confirms why. At $4679 on amazon.com their compute capability comes in at a whopping 1 PFLOP (1000 Trillion Floating Point Operations/s) + 20 core main compute + 128GB LPDDR5X. Because of their unified bandwidth they can send back and forth to the memory and the GPU without requiring going out to a PCIe lane, and this is <em>fast</em> coming in at 273 GB/s. &#xA0;<em>Please note B and b matters - if you are talking 10 Gbit - that sounds fast, but divide it by 8, then it comes in at 1.25 GBytes/s. &#xA0;This is why nobody is running inference over the internet - well at least not yet..</em></li><li>They could be interconnected at <em>very</em> high speeds allowing very large distributed models to split between them. The speed of the interconnect of the ConnectX-7 coming in at 200 Gb/s (Giga-bit/s) </li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><a href="https://www.amazon.com/NVIDIA-DGX-SparkTM-Cable-Bundle/dp/B0GWK5MPJ5/ref=sr_1_2?crid=BW75H2RRISFP&amp;dib=eyJ2IjoiMSJ9.AI11dq-kXdNFZivqz2IQ1BOHVtfG50dmvyS78UJwT9ad-8IXxSm36lDZ1of0UNYnu3w6aSxYe6ashHWe6NO99WbLI4KMfcHMbjeuIwCiIsA90qJVKizthiNLEErzUIaojFlDQs8hpgxFLZ_I1L99o60ZfMjLzfSyWCk-AJBBHfkPJusUHV3utrLExHE1RUsmNnrb-c4KlMXcdwNHOCs-THmlhdTmhtmiWAd-FLr4ruQ.nNDJPHc2rJ48iKjYsU6ledoxzEdEH9Hi7OJehi4hMlc&amp;dib_tag=se&amp;keywords=DGX+Spark&amp;qid=1783191342&amp;sprefix=dgx+spar%2Caps%2C360&amp;sr=8-2"><img src="https://www.hotconfig.com/content/images/2026/07/image-20.png" class="kg-image" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark." loading="lazy" width="650" height="243" srcset="https://www.hotconfig.com/content/images/size/w600/2026/07/image-20.png 600w, https://www.hotconfig.com/content/images/2026/07/image-20.png 650w"></a><figcaption>So common for LLM Builders to Buy Multple DGX Sparks they started buying them in bundles.</figcaption></figure><h3 id="the-mac-mini-pro-weighed-in">The MAC Mini Pro Weighed in</h3><ul><li>On the Macintosh side - due again the very fast interconnection capabilities between machines allowed for stacked units to run very large models quickly and capably.</li><li>Demand was so high there were literally <em>none</em> for sale on Amazon with only second-hand sellers moving them on ebay.</li><li>We do not really cover them simply in that they are not even available. 3-4 of them will cost as much as commerical H100 units etc.</li></ul><figure class="kg-card kg-image-card"><img src="https://www.hotconfig.com/content/images/2026/07/image-21.png" class="kg-image" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark." loading="lazy" width="636" height="272" srcset="https://www.hotconfig.com/content/images/size/w600/2026/07/image-21.png 600w, https://www.hotconfig.com/content/images/2026/07/image-21.png 636w"></figure><h3 id="bus-bandwidth-was-always-what-really-mattered"><br>Bus BandWidth Was Always What &#xA0;Really Mattered</h3><p>We can see that until PCIe 6.0 we won&apos;t even begin to match the speeds of the NVLink, consider the following chart.</p><!--kg-card-begin: html--><table><thead><tr><th data-col-size="lg">Generation</th><th data-col-size="xs">Transfer Rate (GT/s per lane)</th><th data-col-size="lg">Encoding</th><th data-col-size="lg">Raw Bit Rate (Gbit/s per lane)</th><th data-col-size="lg">Effective Data Rate (GB/s per lane, unidirectional)</th><th data-col-size="xs">x1 (GB/s)</th><th data-col-size="xs">x2 (GB/s)</th><th data-col-size="md">x4 (GB/s)</th><th data-col-size="md">x8 (GB/s)</th><th data-col-size="md">x16 (GB/s)</th></tr></thead><tbody><tr><td data-col-size="lg">PCIe 1.0 / 1.1</td><td data-col-size="xs">2.5</td><td data-col-size="lg">8b/10b</td><td data-col-size="lg">2.0</td><td data-col-size="lg">0.250</td><td data-col-size="xs">0.25</td><td data-col-size="xs">0.50</td><td data-col-size="md">1.00</td><td data-col-size="md">2.00</td><td data-col-size="md">4.00</td></tr><tr><td data-col-size="lg">PCIe 2.0</td><td data-col-size="xs">5.0</td><td data-col-size="lg">8b/10b</td><td data-col-size="lg">4.0</td><td data-col-size="lg">0.500</td><td data-col-size="xs">0.50</td><td data-col-size="xs">1.00</td><td data-col-size="md">2.00</td><td data-col-size="md">4.00</td><td data-col-size="md">8.00</td></tr><tr><td data-col-size="lg">PCIe 3.0</td><td data-col-size="xs">8.0</td><td data-col-size="lg">128b/130b</td><td data-col-size="lg">7.877</td><td data-col-size="lg">&#x2248;0.985</td><td data-col-size="xs">0.985</td><td data-col-size="xs">1.97</td><td data-col-size="md">3.94</td><td data-col-size="md">7.88</td><td data-col-size="md">15.75</td></tr><tr><td data-col-size="lg">PCIe 4.0</td><td data-col-size="xs">16.0</td><td data-col-size="lg">128b/130b</td><td data-col-size="lg">15.754</td><td data-col-size="lg">&#x2248;1.969</td><td data-col-size="xs">1.97</td><td data-col-size="xs">3.94</td><td data-col-size="md">7.88</td><td data-col-size="md">15.75</td><td data-col-size="md">31.51</td></tr><tr><td data-col-size="lg">PCIe 5.0</td><td data-col-size="xs">32.0</td><td data-col-size="lg">128b/130b</td><td data-col-size="lg">31.508</td><td data-col-size="lg">&#x2248;3.938</td><td data-col-size="xs">3.94</td><td data-col-size="xs">7.88</td><td data-col-size="md">15.75</td><td data-col-size="md">31.51</td><td data-col-size="md">63.02</td></tr><tr><td data-col-size="lg">PCIe 6.0</td><td data-col-size="xs">64.0</td><td data-col-size="lg">256b/257b + PAM4</td><td data-col-size="lg">&#x2248;62.0 (effective)</td><td data-col-size="lg">&#x2248;7.56</td><td data-col-size="xs">7.56</td><td data-col-size="xs">15.12</td><td data-col-size="md">30.25</td><td data-col-size="md">60.50</td><td data-col-size="md">121.00</td></tr><tr><td data-col-size="lg">PCIe 7.0</td><td data-col-size="xs">128.0</td><td data-col-size="lg">256b/257b + PAM4</td><td data-col-size="lg">&#x2248;124.0 (effective)</td><td data-col-size="lg">&#x2248;15.0+ (projected)</td><td data-col-size="xs">&#x2248;15.1</td><td data-col-size="xs">&#x2248;30.2</td><td data-col-size="md">&#x2248;60.4</td><td data-col-size="md">&#x2248;120.8</td><td data-col-size="md">&#x2248;241.6</td></tr></tbody></table><!--kg-card-end: html--><p>The bandwidth always significantly mattered. Tools existed exactly for diagnostic testing, and if you do want to get into the meaty details of measuring GPU-to-GPU bandwidth, PCI-e-to-GPU, GPU-to-Itself you can compile and install the <code>mbw</code> tool: &#xA0;This is where you find out what stuff <em>really can do - not the brochure sale</em>..</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/linux-memory-bandwidth-testing-mbw/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Linux/LLM Speed Bandwidth Testing mbw / nvbandwidth</div><div class="kg-bookmark-description">The #1 limiting factor if your LLM will run quickly or not is memory bandwidth. Memory Bandwidth of your RAM.Memory Bandwidth of your GPU.How quickly data can get between the GPU and the CPU over your very slow PCIe bus.Memory Bandwidth of your RAM. In Linux we</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2025/10/image1696.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."></div></a></figure><p>This is where many people then sought out &apos;server&apos; level motherboards in that they had the proper PCIe 4.0 x 7 such as the <a href="https://www.ebay.com/itm/315984259475?_skw=TRX+40&amp;itmmeta=01KWQ4PEN5S653XDTH77FRR2KK&amp;hash=item4992212993:g:lm8AAeSwptlpUOjG&amp;itmprp=enc%3AAQALAAAA4GfYFPkwiKCW4ZNSs2u11xAQe9KmWVCGMIpMVMKZEmXMHeOTxokq9M08sec7pP3LZyVlP3dImpccmX5XborrN%2Fe%2B38LeKh%2FVmN9WWI%2FdOQZyA5Uua8YXSQjsownAkcpqT5ArTPzNM986ZRa3iBfzRxc%2BqjVupka7EZesocPLUQazkFh%2FMOZZJe73pBzE3q%2BmuZRepyUAj1NcVhlZfY4BZ4kO3heo6RQOKY6Hi5xIzVsurTMNSIatrn8S64VJsOt5qD8ULG5DHsvr%2FbWn%2BN%2Bj%2F8jqUYG5VOvVEUSKTEtU6RtJ%7Ctkp%3ABFBM7OrZ5OVn">TRX40</a>. &#xA0;By getting up to 4.0 they could theoretically get better performance or run 4-8 card configurations. Used Epyc Motherboards were a good fit.</p><h3 id="re-tuned-moe-mtp-turboquant-mcp-was-the-game-changing-solution">Re-tuned Moe + MTP + TurboQuant + MCP Was the Game Changing Solution</h3><p>People started looking at all kinds of ways to speed things up, make them smaller, make them faster, and or make them more accurate. &#xA0;What were all these different additives? Well when they all were added up they made a dramatic and powerful set of tools that reduced cache size, increase speed, and enabled tooling. </p><p><strong>MoE</strong> - Mixture of Experts. &#xA0;This allowed sparse models to have much less active parameters. &#xA0;By doing this it greatly reduced the CPU/ GPU load, and allowed for the offloading and powerful fitting llama.cpp configurations such as:</p><pre><code class="language-bash">--override-tensor &quot;\.ffn_.*_exps\.weight=CPU&quot; \</code></pre><p><strong>TurboQuant - </strong>kv_cache expanded quadratically, long contexts would destroy the VRAM and kept the hardware requirements very expensive. A full <a href="https://github.com/TheTom/turboquant_plus">github</a> and <a href="https://github.com/TheTom/turboquant_plus">guide</a> to install it. It was added very quickly to llama.cpp, and this brought the &apos;Workhorse&apos; level LLM into existence! Prior to TurboQuant the small consumer was never really a play in this. </p><p><strong>MCP</strong> - Model Context Protocol allowed for powerful tool calling. The right tool calling allowed for LLM&apos;s to correct their work. Over and over until they get it right. Here are ten+ powerful MCP&apos;s that are all <a href="https://www.hotconfig.com/easy-bake-mcp-docker-tools/">opensource</a>!</p><p><strong>MTP</strong> - Multiple Token Prediction came next. By running multiple parallel heads of certain layers it could see significant speedups in some instances up to 200%!</p><p><strong>Re-Tuned Models</strong> - By taking strong base models and carefully applying extra token layers people were able to get significant boosts in accuracy and performance of an LLM in a benchmark.</p><h3 id="the-resultsyou-are-the-winner">The Results - You are the winner</h3><p>It created models that were &#xA0;so powerful, capable and run on minimal hardware that the industry has not even fully realized how capable a localLLM is. Consider a 35B that can one-shot an entire Asteroids game, accurately, and cleanly and run on a 4080, it is right here. Again it only works because <em>all</em> of the above features are working at the same time.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/qwo/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Qwopus-3.6-35B-A3B-Coder Review. A Powerful LocalLLM Tuned for Coders. It is one of the best 35B sized models we have ever reviewed. Seriously.</div><div class="kg-bookmark-description">Qwopus-3.6-35B-A3B-Coder is a localLLM dream for software developers. Incredibly accurate and powerful prompt processing!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/06/Screenshot_20260630_103448.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."></div></a></figure><p>Or we show again how you can run capable models inside a 3060ti inside a 8GB VRAM.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.hotconfig.com/crash-out-good-production-on-a-8gb-vram-w-3060ti/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Game Changer! Crash-Out! Good Production on a Ryzen 5 2600 (6-core/12thread AMD) w 3060ti/8GB VRAM</div><div class="kg-bookmark-description">Crash-Out! Good Production on a Ryzen 5 2600 w 3060ti/8GB VRAM. We showed you can actually get very powerful productive capability on a 3060ti!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.hotconfig.com/favicon.png" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."><span class="kg-bookmark-author">Hot Config</span><span class="kg-bookmark-publisher">thinkmeltprotonmail.com</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://www.hotconfig.com/content/images/2026/06/image--2-.jpg" alt="Ultimate Guide to LocalLLM Workhorses and Assistants. LLMaxxing on Mini-Bucks &lt; $500 - $1500, plus going higher into the DGX Spark."></div></a></figure><h3 id="conclusioneveryone-wants-a-localllm-configurations-matter">Conclusion - Everyone Wants a LocalLLM. Configurations Matter.</h3><p>You are not going to replace a $20 Billion dollar server farm with racks of H200 inference engines with a $1200 4080 Nivdia RTX you scored off FaceBook. &#xA0;That&apos;s just not realistic. But configurations really matter. The right model, the right tuning, the right MCP agents they are capable, very quick, reliable and you never have to worry about your research being harvested by a corporate LLM. &#xA0; You can take odd paths with the B-250 but find you outgrow a limited memory device, and find yourself going big for a DGX Spark. Corporate interests using tokenMaxxing budgets and getting billion dollar builds realized themselves even - &#xA0;they jumped their own shark, and were getting massive Token bills. Suddenly Elon was <a href="https://www.msn.com/en-us/news/news/content/ar-AA27bRUB?ocid=sapphireappshare">limiting employees to $200/week</a>, <a href="https://x.com/ggg78g89/status/2072888053988053361">Meta was scaling things back</a>, and it was becoming quickly <a href="https://x.com/PalantirTech/status/2072326189079757277">public</a> &#xA0;everybody didn&apos;t want the prompt harvesting companies taking their proprietary data and using it to train the next 6T model. </p><ul><li>Commit the time. It can take a few days, but just learn a little bit at a time. If you would like a world-class LLM that encorporates all the bells and whistles start with this StudentLLM.</li><li>This site is utterly CHOCK full of opensource guides for MCP tools, for various llama.cpp configurations, model reviews etc. It is a win for you!</li></ul>]]></content:encoded></item></channel></rss>