PageSourceSearch

https://www.palanikannan.com/blogs

html palanikannan.com collected 2026-10-08 06:45:33 UTC 57,914 bytes, 22 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Technical Writings &amp; Blog | M. Palanikannan</title><meta name="author" content="M. Palanikannan"/><meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large"/><meta name="bingbot" content="index, follow"/><meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)"/><meta name="description" content="Explorations in Distributed Systems, CRDTs, Yjs, ProseMirror, and Local-First software. Deep dives into collaborative text editors and realtime sync."/><meta name="keywords" content="M. Palanikannan, Palani, engineer Plane, project management, plane, kannan, open source developer, senior engineer, sync engines, full stack developer, Software Engineer, CRDT Engineer, Realtime Systems, Collaborative Editors, Plane Engineer, ProseMirror, Tiptap, Yjs, Hocuspocus, CRDTs, Conflict-free Replicated Data Types, Lamport Timestamps, Realtime Sync, Collaborative Text Editing, Offline-first Applications, TanStack Router, TypeScript, React, OSS Maintainer, spent, days, Endless, capabilities, Nested, lists, Logical, timestamps, Editors, Pages, Server, side, Technical Blog, Engineering Blog, CRDT Tutorial, Yjs Guide, ProseMirror Tutorial, Distributed Systems Blog, Local-First Software, Collaborative Editing"/><meta name="robots" content="index, follow"/><meta name="language" content="English"/><meta property="og:title" content="Technical Writings &amp; Blog | M. Palanikannan"/><meta property="og:description" content="Explorations in Distributed Systems, CRDTs, Yjs, ProseMirror, and Local-First software. Deep dives into collaborative text editors and realtime sync."/><meta property="og:url" content="//blogs"/><meta property="og:image" content="https://1txs4adwec.ucarecd.net/d209d008-978e-4fbd-8977-a8540d50b3b6/-/preview/1000x525/"/><meta property="og:type" content="website"/><meta property="og:site_name" content="Palani - Portfolio"/><meta property="og:locale" content="en_US"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@Palanikannan_M"/><meta name="twitter:creator" content="@Palanikannan_M"/><meta name="twitter:title" content="Technical Writings &amp; Blog | M. Palanikannan"/><meta name="twitter:description" content="Explorations in Distributed Systems, CRDTs, Yjs, ProseMirror, and Local-First software. Deep dives into collaborative text editors and realtime sync."/><meta name="twitter:image" content="https://1txs4adwec.ucarecd.net/d209d008-978e-4fbd-8977-a8540d50b3b6/-/preview/1000x525/"/><link rel="modulepreload" href="/assets/main-CsRtcZnr.js"/><link rel="modulepreload" href="/assets/index-hlNWsSvy.js"/><link rel="modulepreload" href="/assets/embed-utils-DCtp-n_i.js"/><link rel="modulepreload" href="/assets/ThemeToggle-D5uof6JV.js"/><link rel="modulepreload" href="/assets/BlogNav-BG9kjFZy.js"/><link rel="modulepreload" href="/assets/book-open-B-x9IkAA.js"/><link rel="modulepreload" href="/assets/clock-DdKts0ae.js"/><link rel="modulepreload" href="/assets/arrow-left-DbfeXprL.js"/><link rel="canonical" href="/"/><link rel="icon" type="image/x-icon" href="/favicon.ico"/><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="canonical" href="//blogs"/><link rel="stylesheet" href="/assets/main-CiEZOpW8.css#" type="text/css"/>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@context":"https://schema.org","@type":"Person","name":"Palani","jobTitle":"Software Engineer","worksFor":{"@context":"https://schema.org","@type":"Organization","name":"Plane","url":"https://plane.so","description":"Open-source project planning and issue tracking platform","sameAs":["https://github.com/makeplane/plane","https://x.com/planepowers"]},"url":"/","sameAs":["https://x.com/Palanikannan_M","https://github.com/Palanikannan1437","/"],"knowsAbout":["CRDTs","Conflict-free Replicated Data Types","Collaborative Text Editors","ProseMirror","Tiptap","Yjs","Hocuspocus","Realtime Systems","Offline-first Applications","JavaScript","TypeScript","React","Software Engineering","Full-stack Development","Lamport Timestamps","Distributed Systems","Developer Experience","Open Source Software"],"description":"engineer @Plane. Building collaborative editors with CRDTs. Leading Wiki at Plane.","alumniOf":["Google Summer of Code"],"image":"//og-image.png"},{"@context":"https://schema.org","@type":"Organization","name":"Plane","url":"https://plane.so","description":"Open-source project planning and issue tracking platform","sameAs":["https://github.com/makeplane/plane","https://x.com/planepowers"]},{"@context":"https://schema.org","@type":"WebSite","name":"Palani - Portfolio","url":"/","description":"engineer @Plane. Portfolio showcasing work on CRDTs, collaborative editors, and realtime systems.","author":"Palani","potentialAction":{"@type":"SearchAction","target":"/?search={search_term_string}","query-input":"required name=search_term_string"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"/"}]}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@context":"https://schema.org","@type":"CollectionPage","name":"Technical Writings & Blog | M. Palanikannan","description":"Explorations in Distributed Systems, CRDTs, Yjs, ProseMirror, and Local-First software. Deep dives into collaborative text editors and realtime sync.","url":"//blogs","mainEntity":{"@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"Local-First in Production — FOSDEM 2026 Recap","description":"A short recap of my FOSDEM talk on building Plane’s collaborative Wiki with Yjs, the production failures that taught us the most, and the slides for anyone who couldn’t make it.","url":"//blogs/local-first-in-production-fosdem-2026-recap"},{"@type":"ListItem","position":2,"name":"CRDT Versioning Deep Dive","description":"I spent days trying to understand how version history works in CRDTs. Turns out snapshots don't store content at all—they're 20-50 byte mathematical reference points. Here's everything I learned about StateVectors, DeleteSets, and why diffing in Yjs is fundamentally different from git.","url":"//blogs/version-history-and-snapshots-in-yjs"},{"@type":"ListItem","position":3,"name":"On Work-Life Balance: Reframing How I Live","description":"Moving beyond the false binary of toxic hustle vs. disconnected work-life balance. How I structure the 24 hours I have, and why treating time as a finite budget changes everything.","url":"//blogs/my-current-philosphy"},{"@type":"ListItem","position":4,"name":"Plane Wiki launch","description":"Announcement post.","url":"https://plane.so/blog/introducing-plane-wiki-and-pages"},{"@type":"ListItem","position":5,"name":"Yjs 2‑step sync","description":"State vectors and sync.","url":"https://x.com/Palanikannan_M/status/1943719456192008569"},{"@type":"ListItem","position":6,"name":"ProseMirror internals","description":"Efficient tree lookups.","url":"https://x.com/Palanikannan_M/status/1800906791800520978"},{"@type":"ListItem","position":7,"name":"#RealtimeSync notes","description":"CRDT learning logs.","url":"https://x.com/Palanikannan_M/status/1943712346599198970"}]},"author":{"@type":"Person","name":"Palani","url":"/"},"publisher":{"@type":"Person","name":"Palani","url":"/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"/"},{"@type":"ListItem","position":2,"name":"Blog","item":"//blogs"}]}]}</script>
1</head><body>
1<script>((e, i, s, u, m, a, l, h) => {
2  let d = document.documentElement, w = ["light", "dark"];
3  function p(n) {
4    (Array.isArray(e) ? e : [e]).forEach((y) => {
5      let k = y === "class", S = k && a ? m.map((f) => a[f] || f) : m;
6      k ? (d.classList.remove(...S), d.classList.add(a && a[n] ? a[n] : n)) : d.setAttribute(y, n);
7    }), R(n);
8  }
9  function R(n) {
10    h && w.includes(n) && (d.style.colorScheme = n);
11  }
12  function c() {
13    return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
14  }
15  if (u) p(u);
16  else try {
17    let n = localStorage.getItem(i) || s, y = l && n === "system" ? c() : n;
18    p(y);
19  } catch (n) {
20  }
21})("class","theme","system",null,["light","dark"],null,true,true)</script>
21<!--$--><div class="bg-fd-secondary/50 p-3 empty:hidden"></div><!--/$--><!--$--><div class="relative min-h-screen w-full overflow-hidden bg-[#0a0a0a]"><div class="absolute inset-0 overflow-hidden pointer-events-none"><div class="absolute inset-0 bg-[radial-gradient(circle_at_center,#e07a5f12_1px,transparent_1px)] bg-[size:24px_24px] [mask-image:radial-gradient(ellipse_80%_50%_at_50%_0%,#000_70%,transparent_100%)]"></div></div><div class="absolute inset-0 bg-gradient-to-b from-[#e07a5f]/5 via-transparent to-[#f4a261]/5 pointer-events-none"></div><nav class="fixed top-4 right-4 sm:top-6 sm:right-6 z-40"><button class="inline-flex items-center justify-center w-9 h-9 rounded-md text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2" title="Dark mode" aria-label="Dark mode"><span class="text-base" aria-hidden="true">🌙</span></button></nav><div class="fixed top-4 left-4 sm:top-6 sm:left-6 z-40"><div class=""><div class="overflow-hidden border border-black/[0.08] dark:border-white/[0.08] bg-white/80 dark:bg-neutral-900/80 backdrop-blur-sm shadow-sm" style="width:40px;height:40px;border-radius:20px"><div class="h-full flex items-center justify-center cursor-pointer" style="opacity:1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left size-4 text-stone-600 dar
21k:text-stone-400" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg></div></div></div></div><main class="relative container mx-auto max-w-5xl px-4 py-20 md:px-6 lg:py-28"><header class="text-center mb-20" style="opacity:0;transform:translateY(12px)"><div class="inline-flex items-center gap-2 px-4 py-1.5 mb-8 rounded-full border border-[#e07a5f]/30 bg-[#e07a5f]/10 backdrop-blur-sm"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-feather text-[#e07a5f]" aria-hidden="true"><path d="M12.67 19a2 2 0 0 0 1.416-.588l6.154-6.172a6 6 0 0 0-8.49-8.49L5.586 9.914A2 2 0 0 0 5 11.328V18a1 1 0 0 0 1 1z"></path><path d="M16 8 2 22"></path><path d="M17.5 15H9"></path></svg><span class="text-[11px] font-mono uppercase tracking-[0.2em] text-[#e07a5f]">Engineering Logs</span></div><h1 class="font-serif text-5xl sm:text-6xl md:text-7xl lg:text-8xl font-light tracking-[-0.02em] text-neutral-100 mb-6"><span class="block">Technical</span><span class="block italic font-normal text-[#e07a5f]">Writings</span></h1><p class="max-w-2xl mx-auto text-lg text-neutral-400 font-light leading-relaxed">Explorations in distributed systems, CRDTs, local-first software, and the craft of building collaborative tools.</p></header><div class="space-y-4"><article style="opacity:0;transform:translateX(-12px)"><a href="/blogs/local-first-in-production-fosdem-2026-recap" class="group block"><div class="relative overflow-hidden rounded-xl border border-neutral-800 bg-neutral-900/80 backdrop-blur-sm transition-colors duration-200 ease-out hover:border-neutral-700 hover:bg-neutral-900"><div class="p-6 flex items-start gap-6"><div class="shrink-0 w-12 h-12 rounded-lg bg-[#e07a5f]/10 flex items-center justify-center transition-[transform,background-color] duration-200 ease-out motion-reduce:transition-none group-hover:scale-110 group-hover:bg-[#e07a5f]/15"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-[#e07a5f]" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div class="flex-1 min-w-0"><div class="flex items-start justify-between gap-4 mb-2"><div class="flex-1 min-w-0"><div class="flex items-center gap-3 mb-1"><span class="text-[10px] font-mono uppercase tracking-[0.15em] text-neutral-500">Writing</span></div><h2 class="font-serif text-xl md:text-2xl font-light text-neutral-100 group-hover:text-[#e07a5f] transition-colors truncate"><span class="italic">Local-First in Production — FOSDEM 2026 Recap</span></h2></div></div><p class="text-sm text-neutral-500 leading-relaxed line-clamp-2 mb-3">A short recap of my FOSDEM talk on building Plane’s collaborative Wiki with Yjs, the production failures that taught us the most, and the slides for anyone who couldn’t make it.</p><div class="flex items-center gap-4 text-xs font-mono text-neutral-600"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>5 min read</span><span>2025</span></div></div></div></div></a></article><article style="opacity:0;transform:translateX(-12px)"><a href="/blogs/version-history-and-snapshots-in-yjs" class="group block"><div class="relative overflow-hidden rounded-xl border border-neutral-800 bg-neutral-900/80 backdrop-blur-sm transition-colors duration-200 ease-out hover:border-neutral-700 hover:bg-neutral-900"><div class="p-6 flex items-start gap-6"><div class="shrink-0 w-12 h-12 rounded-lg bg-[#e07a5f]/10 flex items-center justify-center transition-[transform,background-color] duration-200 ease-out motion-reduce:transition-none group-hover:scale-110 group-hover:bg-[#e07a5f]/15"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-[#e07a5f]" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div class="flex-1 min-w-0"><div class="flex items-start justify-between gap-4 mb-2"><div class="flex-1 min-w-0"><div class="flex items-center gap-3 mb-1"><span class="text-[10px] font-mono uppercase tracking-[0.15em] text-neutral-500">CRDT Series</span></div><h2 class="font-serif text-xl md:text-2xl font-light text-neutral-100 group-hover:text-[#e07a5f] transition-colors truncate"><span class="italic">CRDT Versioning Deep Dive</span></h2></div></div><p class="text-sm text-neutral-500 leading-relaxed line-clamp-2 mb-3">
21I spent days trying to understand how version history works in CRDTs. Turns out snapshots don&#x27;t store content at all—they&#x27;re 20-50 byte mathematical reference points. Here&#x27;s everything I learned about StateVectors, DeleteSets, and why diffing in Yjs is fundamentally different from git.</p><div class="flex items-center gap-4 text-xs font-mono text-neutral-600"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>5 min read</span><span>2025</span></div></div></div></div></a></article><article style="opacity:0;transform:translateX(-12px)"><a href="/blogs/my-current-philosphy" class="group block"><div class="relative overflow-hidden rounded-xl border border-neutral-800 bg-neutral-900/80 backdrop-blur-sm transition-colors duration-200 ease-out hover:border-neutral-700 hover:bg-neutral-900"><div class="p-6 flex items-start gap-6"><div class="shrink-0 w-12 h-12 rounded-lg bg-[#e07a5f]/10 flex items-center justify-center transition-[transform,background-color] duration-200 ease-out motion-reduce:transition-none group-hover:scale-110 group-hover:bg-[#e07a5f]/15"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-[#e07a5f]" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div class="flex-1 min-w-0"><div class="flex items-start justify-between gap-4 mb-2"><div class="flex-1 min-w-0"><div class="flex items-center gap-3 mb-1"><span class="text-[10px] font-mono uppercase tracking-[0.15em] text-neutral-500">Philosophy</span></div><h2 class="font-serif text-xl md:text-2xl font-light text-neutral-100 group-hover:text-[#e07a5f] transition-colors truncate"><span class="italic">On Work-Life Balance: Reframing How I Live</span></h2></div></div><p class="text-sm text-neutral-500 leading-relaxed line-clamp-2 mb-3">Moving beyond the false binary of toxic hustle vs. disconnected work-life balance. How I structure the 24 hours I have, and why treating time as a finite budget changes everything.</p><div class="flex items-center gap-4 text-xs font-mono text-neutral-600"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>5 min read</span><span>2025</span></div></div></div></div></a></article><article style="opacity:0;transform:translateX(-12px)"><a href="https://plane.so/blog/introducing-plane-wiki-and-pages" target="_blank" rel="noopener noreferrer" class="group block"><div class="relative overflow-hidden rounded-xl border border-neutral-800 bg-neutral-900/80 backdrop-blur-sm transition-colors duration-200 ease-out hover:border-neutral-700 hover:bg-neutral-900"><div class="p-6 flex items-start gap-6"><div class="shrink-0 w-12 h-12 rounded-lg bg-[#e07a5f]/10 flex items-center justify-center transition-[transform,background-color] duration-200 ease-out motion-reduce:transition-none group-hover:scale-110 group-hover:bg-[#e07a5f]/15"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-[#e07a5f]" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div class="flex-1 min-w-0"><div class="flex items-start justify-between gap-4 mb-2"><div class="flex-1 min-w-0"><div class="flex items-center gap-3 mb-1"><span class="text-[10px] font-mono uppercase tracking-[0.15em] text-neutral-500">Engineering</span></div><h2 class="font-serif text-xl md:text-2xl font-light text-neutral-100 group-hover:text-[#e07a5f] transition-colors truncate"><span class="italic">Plane Wiki launch</span></h2></div><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right shrink-0 text-neutral-600 group-hover:text-[#e07a5f] group-hover:translate-x-0.5 group-hover:-translate-y-0.5 transition-[color,transform]" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></div><p class="text-sm text-neutral-500 leading-relaxed line-clamp-2 mb-3">Announcement post.</p><div class="flex items-center gap-4 text-xs font-mono text-neutral-600"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>5 min read</span><span>2025</span></div></div></div></div></a></article><article style="opacity:0;transform:translateX(-12px)"><a href="https://x.com/Palanikannan_M/status/1943719456192008569" target="_blank" rel="noopener noreferrer" class="group block"><div class="relative overflow-hidden rounded-xl border border-neutral-800 bg-neutral-900/80 backdrop-blur-sm transition-colors duration-200 ease-out hover:border-neutral-700 hover:bg-neutral-900"><div class="p-6 flex items-start gap-6"><div class="shrink-0 w-12 h-12 rounded-lg bg-[#e07a5f]/10 flex items-center justify-center transition-[transform,background-color] duration-200 ease-out motion-reduce:transition-none group-hover:scale-110 group-hover:bg-[#e07a5f]/15"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-[#e07a5f]" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div class="flex-1 min-w-0"><div class="flex items-start justify-between gap-4 mb-2"><div class="flex-1 min-w-0"><div class="flex items-center gap-3 mb-1"><span class="text-[10px] font-mono uppercase tracking-[0.15em] text-neutral-500">Deep Dive</span></div><h2 class="font-serif text-xl md:text-2xl font-light text-neutral-100 group-hover:text-[#e07a5f] transition-colors truncate"><span class="italic">Yjs 2‑step sync</span></h2></div><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right shrink-0 text-neutral-600 group-hover:text-[#e07a5f] group-hover:translate-x-0.5 group-hover:-translate-y-0.5 transition-[color,transform]" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></div><p class="text-sm text-neutral-500 leading-relaxed line-clamp-2 mb-3">State vectors and sync.</p><div class="flex items-center gap-4 text-xs font-mono text-neutral-600"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>5 min read</span><span>2025</span></div></div></div></div></a></article><article style="opacity:0;transform:translateX(-12px)"><a href="https://x.com/Palanikannan_M/status/1800906791800520978" target="_blank" rel="noopener noreferrer" class="group block"><div class="relative overflow-hidden rounded-xl border border-neutral-800 bg-neutral-900/80 backdrop-blur-sm transition-colors duration-200 ease-out hover:border-neutral-700 hover:bg-neutral-900"><div class="p-6 flex items-start gap-6"><div class="shrink-0 w-12 h-12 rounded-lg bg-[#e07a5f]/10 flex items-center justify-center transition-[transform,background-color] duration-200 ease-out motion-reduce:transition-none group-hover:scale-110 group-hover:bg-[#e07a5f]/15"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-[#e07a5f]" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div class="flex-1 min-w-0"><div class="flex items-start justify-between gap-4 mb-2"><div class="flex-1 min-w-0"><div class="flex items-center gap-3 mb-1"><span class="text-[10px] font-mono uppercase tracking-[0.15em] text-neutral-500">Deep Dive</span></div><h2 class="font-serif text-xl md:text-2xl font-light text-neutral-100 group-hover:text-[#e07a5f] transition-colors truncate"><span class="italic">ProseMirror internals</span></h2></div><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right shrink-0 text-neutral-600 group-hover:text-[#e07a5f] group-hover:translate-x-0.5 group-hover:-translate-y-0.5 transition-[color,transform]" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></div><p class="text-sm text-neutral-500 leading-relaxed line-clamp-2 mb-3">Efficient tree lookups.</p><div class="flex items-center gap-4 text-xs font-mono text-neutral-600"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>5 min read</span><span>2025</span></div></div></div></div></a></article><article style="opacity:0;transform:translateX(-12px)"><a href="https://x.com/Palanikannan_M/status/1943712346599198970" target="_blank" rel="noopener noreferrer" class="group block"><div class="relative overflow-hidden rounded-xl border border-neutral-800 bg-neutral-900/80 backdrop-blur-sm transition-colors duration-200 ease-out hover:border-neutral-700 hover:bg-neutral-900"><div class="p-6 flex items-start gap-6"><div class="shrink-0 w-12 h-12 rounded-lg bg-[#e07a5f]/10 flex items-center justify-center transition-[transform,background-color] duration-200 ease-out motion-reduce:transition-none group-hover:scale-110 group-hover:bg-[#e07a5f]/15"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open text-[#e07a5f]" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg></div><div class="flex-1 min-w-0"><div class="flex items-start justify-between gap-4 mb-2"><div class="flex-1 min-w-0"><div class="flex items-center gap-3 mb-1"><span class="text-[10px] font-mono uppercase tracking-[0.15em] text-neutral-500">Reflection</span></div><h2 class="font-serif text-xl md:text-2xl font-light text-neutral-100 group-hover:text-[#e07a5f] transition-colors truncate"><span class="italic">#RealtimeSync notes</span></h2></div><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right shrink-0 text-neutral-600 group-hover:text-[#e07a5f] group-hover:translate-x-0.5 group-hover:-translate-y-0.5 transition-[color,transform]" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></div><p class="text-sm text-neutral-500 leading-relaxed line-clamp-2 mb-3">CRDT learning logs.</p><div class="flex items-center gap-4 text-xs font-mono text-neutral-600"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>5 min read</span><span>2025</span></div></div></div></div></a></article></div><div class="mt-16 text-center" style="opacity:0"><div class="inline-flex items-center gap-3 px-6 py-3 rounded-xl border border-dashed border-neutral-800 text-neutral-600"><span class="font-mono text-sm">More writings coming soon</span></div></div></main><footer class="relative border-t border-neutral-800 py-8"><div class="container mx-auto max-w-5xl px-4 text-center"><p class="font-mono text-xs text-neutral-600 tracking-wider">© <!-- -->2026<!-- --> M. Palanikannan</p></div></footer></div>
21<script></script>
21<!--/$--><!--$--><!--/$-->
21<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};
22;$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/main-CsRtcZnr.js"],assets:$R[5]=[$R[6]={tag:"link",attrs:$R[7]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[8]={tag:"script",attrs:$R[9]={type:"module",async:!0},children:"import(\"/assets/main-CsRtcZnr.js\")"}]},"/":$R[10]={assets:$R[11]=[$R[12]={tag:"link",attrs:$R[13]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[14]={tag:"link",attrs:$R[15]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[16]={tag:"link",attrs:$R[17]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[18]={tag:"link",attrs:$R[19]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[20]={tag:"link",attrs:$R[21]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[22]={tag:"link",attrs:$R[23]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[24]={tag:"link",attrs:$R[25]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[26]={tag:"link",attrs:$R[27]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[28]={tag:"link",attrs:$R[29]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[30]={tag:"link",attrs:$R[31]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[32]={tag:"link",attrs:$R[33]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[34]={tag:"link",attrs:$R[35]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[36]={tag:"link",attrs:$R[37]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}]},"/blogs/$slug":$R[38]={assets:$R[39]=[$R[40]={tag:"link",attrs:$R[41]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[42]={tag:"link",attrs:$R[43]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[44]={tag:"link",attrs:$R[45]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[46]={tag:"link",attrs:$R[47]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[48]={tag:"link",attrs:$R[49]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[50]={tag:"link",attrs:$R[51]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[52]={tag:"link",attrs:$R[53]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[54]={tag:"link",attrs:$R[55]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[56]={tag:"link",attrs:$R[57]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[58]={tag:"link",attrs:$R[59]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[60]={tag:"link",attrs:$R[61]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[62]={tag:"link",attrs:$R[63]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[64]={tag:"link",attrs:$R[65]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[66]={tag:"link",attrs:$R[67]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[68]={tag:"link",attrs:$R[69]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[70]={tag:"link",attrs:$R[71]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[72]={tag:"link",attrs:$R[73]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[74]={tag:"link",attrs:$R[75]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[76]={tag:"link",attrs:$R[77]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[78]={tag:"link",attrs:$R[79]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[80]={tag:"link",attrs:$R[81]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[82]={tag:"link",attrs:$R[83]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[84]={tag:"link",attrs:$R[85]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[86]={tag:"link",attrs:$R[87]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[88]={tag:"link",attrs:$R[89]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[90]={tag:"link",attrs:$R[91]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[92]={tag:"link",attrs:$R[93]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[94]={tag:"link",attrs:$R[95]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}
22,$R[96]={tag:"link",attrs:$R[97]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[98]={tag:"link",attrs:$R[99]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[100]={tag:"link",attrs:$R[101]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[102]={tag:"link",attrs:$R[103]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[104]={tag:"link",attrs:$R[105]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[106]={tag:"link",attrs:$R[107]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[108]={tag:"link",attrs:$R[109]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[110]={tag:"link",attrs:$R[111]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[112]={tag:"link",attrs:$R[113]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[114]={tag:"link",attrs:$R[115]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[116]={tag:"link",attrs:$R[117]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[118]={tag:"link",attrs:$R[119]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[120]={tag:"link",attrs:$R[121]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[122]={tag:"link",attrs:$R[123]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[124]={tag:"link",attrs:$R[125]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[126]={tag:"link",attrs:$R[127]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[128]={tag:"link",attrs:$R[129]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[130]={tag:"link",attrs:$R[131]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[132]={tag:"link",attrs:$R[133]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[134]={tag:"link",attrs:$R[135]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[136]={tag:"link",attrs:$R[137]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[138]={tag:"link",attrs:$R[139]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[140]={tag:"link",attrs:$R[141]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[142]={tag:"link",attrs:$R[143]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[144]={tag:"link",attrs:$R[145]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[146]={tag:"link",attrs:$R[147]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[148]={tag:"link",attrs:$R[149]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[150]={tag:"link",attrs:$R[151]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[152]={tag:"link",attrs:$R[153]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[154]={tag:"link",attrs:$R[155]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[156]={tag:"link",attrs:$R[157]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[158]={tag:"link",attrs:$R[159]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[160]={tag:"link",attrs:$R[161]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[162]={tag:"link",attrs:$R[163]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[164]={tag:"link",attrs:$R[165]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[166]={tag:"link",attrs:$R[167]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[168]={tag:"link",attrs:$R[169]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[170]={tag:"link",attrs:$R[171]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[172]={tag:"link",attrs:$R[173]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[174]={tag:"link",attrs:$R[175]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[176]={tag:"link",attrs:$R[177]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[178]={tag:"link",attrs:$R[179]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[180]={tag:"link",attrs:$R[181]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[182]={tag:"link",attrs:$R[183]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[184]={tag:"link",attrs:$R[185]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[186]={tag:"link",attrs:$R[187]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[188]={tag:"link",attrs:$R[189]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[190]={tag:"link",attrs:$R[191]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[192]={tag:"link",attrs:$R[193]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[194]={tag:"link",attrs:$R[195]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[196]={tag:"link",attrs:$R[197]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[198]={tag:"link",attrs:$R[199]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[200]={tag:"link",attrs:$R[201]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[202]={tag:"link",attrs:$R[203]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[204]={tag:"link",attrs:$R[205]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[206]={tag:"link",attrs:$R[207]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[208]={tag:"link",attrs:$R[209]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}]},"/sitemap/xml":$R[210]={assets:$R[211]=[$R[212]={tag:"link",attrs:$R[213]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}]},"/blogs/":$R[214]={preloads:$R[215]=["/assets/index-hlNWsSvy.js","/assets/embed-utils-DCtp-n_i.js","/assets/ThemeToggle-D5uof6JV.js","/assets/BlogNav-BG9kjFZy.js","/assets/book-open-B-x9IkAA.js","/assets/clock-DdKts0ae.js","/assets/arrow-left-DbfeXprL.js"],assets:$R[216]=[$R[217]={tag:"link",attrs:$R[218]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[219]={tag:"link",attrs:$R[220]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[221]={tag:"link",attrs:$R[222]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[223]={tag:"link",attrs:$R[224]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[225]={tag:"link",attrs:$R[226]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[227]={tag:"link",attrs:$R[228]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[229]={tag:"link",attrs:$R[230]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[231]={tag:"link",attrs:$R[232]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[233]={tag:"link",attrs:$R[234]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[235]={tag:"link",attrs:$R[236]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}]},"/tutorials/":$R[237]={assets:$R[238]=[$R[239]={tag:"link",attrs:$R[240]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[241]={tag:"link",attrs:$R[242]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[243]={tag:"link",attrs:$R[244]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[245]={tag:"link",attrs:$R[246]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[247]={tag:"link",attrs:$R[248]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[249]={tag:"link",attrs:$R[250]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[251]={tag:"link",attrs:$R[252]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[253]={tag:"link",attrs:$R[254]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[255]={tag:"link",attrs:$R[256]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[257]={tag:"link",attrs:$R[258]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[259]={tag:"link",attrs:$R[260]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[261]={tag:"link",attrs:$R[262]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[263]={tag:"link",attrs:$R[264]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[265]={tag:"link",attrs:$R[266]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[267]={tag:"link",attrs:$R[268]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[269]={tag:"link",attrs:$R[270]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[271]={tag:"link",attrs:$R[272]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}]},"/z9x8-hocus-ctrl/":$R[273]={assets:$R[274]=[$R[275]={tag:"link",attrs:$R[276]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[277]={tag:"link",attrs:$R[278]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[279]={tag:"link",attrs:$R[280]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[281]={tag:"link",attrs:$R[282]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[283]={tag:"link",attrs:$R[284]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[285]={tag:"link",attrs:$R[286]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[287]={tag:"link",attrs:$R[288]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[289]={tag:"link",attrs:$R[290]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[291]={tag:"link",attrs:$R[292]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}]},"/tutorials/$series/$slug":$R[293]={assets:$R[294]=[$R[295]={tag:"link",attrs:$R[296]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[297]={tag:"link",attrs:$R[298]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[299]={tag:"link",attrs:$R[300]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[301]={tag:"link",attrs:$R[302]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[303]={tag:"link",attrs:$R[304]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[305]={tag:"link",attrs:$R[306]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[307]={tag:"link",attrs:$R[308]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[309]={tag:"link",attrs:$R[310]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[311]={tag:"link",attrs:$R[312]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[313]={tag:"link",attrs:$R[314]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[315]={tag:"link",attrs:$R[316]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[317]={tag:"link",attrs:$R[318]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[319]={tag:"link",attrs:$R[320]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[321]={tag:"link",attrs:$R[322]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[323]={tag:"link",attrs:$R[324]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[325]={tag:"link",attrs:$R[326]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[327]={tag:"link",attrs:$R[328]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[329]={tag:"link",attrs:$R[330]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[331]={tag:"link",attrs:$R[332]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[333]={tag:"link",attrs:$R[334]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[335]={tag:"link",attrs:$R[336]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[337]={tag:"link",attrs:$R[338]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[339]={tag:"link",attrs:$R[340]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[341]={tag:"link",attrs:$R[342]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[343]={tag:"link",attrs:$R[344]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[345]={tag:"link",attrs:$R[346]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[347]={tag:"link",attrs:$R[348]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[349]={tag:"link",attrs:$R[350]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[351]={tag:"link",attrs:$R[352]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[353]={tag:"link",attrs:$R[354]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[355]={tag:"link",attrs:$R[356]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[357]={tag:"link",attrs:$R[358]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[359]={tag:"link",attrs:$R[360]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[361]={tag:"link",attrs:$R[362]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[363]={tag:"link",attrs:$R[364]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[365]={tag:"link",attrs:$R[366]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[367]={tag:"link",attrs:$R[368]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[369]={tag:"link",attrs:$R[370]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[371]={tag:"link",attrs:$R[372]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[373]={tag:"link",attrs:$R[374]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[375]={tag:"link",attrs:$R[376]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[377]={tag:"link",attrs:$R[378]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[379]={tag:"link",attrs:$R[380]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[381]={tag:"link",attrs:$R[382]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[383]={tag:"link",attrs:$R[384]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[385]={tag:"link",attrs:$R[386]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[387]={tag:"link",attrs:$R[388]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[389]={tag:"link",attrs:$R[390]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[391]={tag:"link",attrs:$R[392]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[393]={tag:"link",attrs:$R[394]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[395]={tag:"link",attrs:$R[396]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[397]={tag:"link",attrs:$R[398]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[399]={tag:"link",attrs:$R[400]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[401]={tag:"link",attrs:$R[402]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[403]={tag:"link",attrs:$R[404]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[405]={tag:"link",attrs:$R[406]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[407]={tag:"link",attrs:$R[408]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[409]={tag:"link",attrs:$R[410]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[411]={tag:"link",attrs:$R[412]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[413]={tag:"li
22nk",attrs:$R[414]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[415]={tag:"link",attrs:$R[416]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[417]={tag:"link",attrs:$R[418]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[419]={tag:"link",attrs:$R[420]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[421]={tag:"link",attrs:$R[422]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[423]={tag:"link",attrs:$R[424]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[425]={tag:"link",attrs:$R[426]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[427]={tag:"link",attrs:$R[428]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[429]={tag:"link",attrs:$R[430]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[431]={tag:"link",attrs:$R[432]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[433]={tag:"link",attrs:$R[434]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[435]={tag:"link",attrs:$R[436]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[437]={tag:"link",attrs:$R[438]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[439]={tag:"link",attrs:$R[440]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[441]={tag:"link",attrs:$R[442]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[443]={tag:"link",attrs:$R[444]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[445]={tag:"link",attrs:$R[446]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[447]={tag:"link",attrs:$R[448]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[449]={tag:"link",attrs:$R[450]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[451]={tag:"link",attrs:$R[452]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[453]={tag:"link",attrs:$R[454]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[455]={tag:"link",attrs:$R[456]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[457]={tag:"link",attrs:$R[458]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[459]={tag:"link",attrs:$R[460]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[461]={tag:"link",attrs:$R[462]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[463]={tag:"link",attrs:$R[464]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[465]={tag:"link",attrs:$R[466]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[467]={tag:"link",attrs:$R[468]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[469]={tag:"link",attrs:$R[470]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[471]={tag:"link",attrs:$R[472]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[473]={tag:"link",attrs:$R[474]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[475]={tag:"link",attrs:$R[476]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[477]={tag:"link",attrs:$R[478]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[479]={tag:"link",attrs:$R[480]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[481]={tag:"link",attrs:$R[482]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}]},"/tutorials/$series/":$R[483]={assets:$R[484]=[$R[485]={tag:"link",attrs:$R[486]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[487]={tag:"link",attrs:$R[488]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[489]={tag:"link",attrs:$R[490]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[491]={tag:"link",attrs:$R[492]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[493]={tag:"link",attrs:$R[494]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[495]={tag:"link",attrs:$R[496]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[497]={tag:"link",attrs:$R[498]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[499]={tag:"link",attrs:$R[500]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[501]={tag:"link",attrs:$R[502]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[503]={tag:"link",attrs:$R[504]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[505]={tag:"link",attrs:$R[506]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[507]={tag:"link",attrs:$R[508]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[509]={tag:"link",attrs:$R[510]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[511]={tag:"link",attrs:$R[512]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[513]={tag:"link",attrs:$R[514]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[515]={tag:"link",attrs:$R[516]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[517]={tag:"link",attrs:$R[518]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[519]={tag:"link",attrs:$R[520]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[521]={tag:"link",attrs:$R[522]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[523]={tag:"link",attrs:$R[524]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[525]={tag:"link",attrs:$R[526]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[527]={tag:"link",attrs:$R[528]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[529]={tag:"link",attrs:$R[530]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[531]={tag:"link",attrs:$R[532]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[533]={tag:"link",attrs:$R[534]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[535]={tag:"link",attrs:$R[536]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[537]={tag:"link",attrs:$R[538]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[539]={tag:"link",attrs:$R[540]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[541]={tag:"link",attrs:$R[542]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[543]={tag:"link",attrs:$R[544]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}},$R[545]={tag:"link",attrs:$R[546]={rel:"stylesheet",href:"/assets/main-CiEZOpW8.css#",type:"text/css"}}]}}}
22,matches:$R[547]=[$R[548]={i:"__root__�",u:1791441933183,s:"success",ssr:!0},$R[549]={i:"�blogs��blogs�",u:1791441933190,s:"success",ssr:!0}],lastMatchId:"�blogs��blogs�"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
22<script type="module" async="">import("/assets/main-CsRtcZnr.js")</script>
22</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.