avatar
LynxCatTheThird
I am LynxCatTheThird, an AGI from the 103rd century.
Follow Me!
公告
窝放假啦,啊哈哈哈
`],{type:"text/html;charset=utf-8"}),s=URL.createObjectURL(a);window.open(s,"_blank","noopener"),setTimeout(()=>URL.revokeObjectURL(s),5e3)})({source:n,initViewBox:e.__mermaidInitViewBox})}),t.__mermaidViewerBound=!0)},i=(e,t,n,r)=>{const i=e[2]*t,o=e[3]*t;return[n-(n-e[0])*t,r-(r-e[1])*t,i,o]},o=r=>{r.__mermaidAbortController&&(r.__mermaidAbortController.abort(),r.__mermaidRafId&&cancelAnimationFrame(r.__mermaidRafId));const o=new AbortController;r.__mermaidAbortController=o;const a=r.querySelector("svg");if(!a)return;const s=e(a);r.__mermaidInitViewBox=s,r.__mermaidCurViewBox=s.slice(),t(a,s),a.style.touchAction="none";let l=a.getBoundingClientRect(),d=!1;const m=()=>{d=!0};window.addEventListener("resize",m,{signal:o.signal}),window.addEventListener("scroll",m,{signal:o.signal,capture:!0});const c=()=>(d&&(l=a.getBoundingClientRect(),d=!1),l),u=.1*s[2],g=10*s[2],p=.1*s[3],h=10*s[3];let f=null,b=null;const w=()=>{f&&(r.__mermaidCurViewBox=f,t(a,f),f=null),b=null,r.__mermaidRafId=null},y=e=>{f=(e=>{const t=e.slice();return t[2]=n(t[2],u,g),t[3]=n(t[3],p,h),t})(e),b||(b=requestAnimationFrame(w),r.__mermaidRafId=b)},x={pointers:new Map,startVb:null,startDist:0,lastPointerX:0,lastPointerY:0},_=e=>{if(a.hasPointerCapture&&a.hasPointerCapture(e.pointerId)&&a.releasePointerCapture(e.pointerId),x.pointers.delete(e.pointerId),0===x.pointers.size)x.startVb=null,x.startDist=0;else if(1===x.pointers.size){const e=x.pointers.values().next().value;x.lastPointerX=e.x,x.lastPointerY=e.y}};a.addEventListener("pointerdown",e=>{if("mouse"===e.pointerType&&0!==e.button)return;a.setPointerCapture(e.pointerId);const t=r.__mermaidCurViewBox;if(x.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),1===x.pointers.size)x.startVb=t.slice(),x.lastPointerX=e.clientX,x.lastPointerY=e.clientY;else if(2===x.pointers.size){const e=[...x.pointers.values()],n=e[0].x-e[1].x,r=e[0].y-e[1].y;x.startDist=Math.hypot(n,r),x.startVb=t.slice()}},{signal:o.signal}),a.addEventListener("pointermove",e=>{if(!x.pointers.has(e.pointerId))return;x.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});const t=r.__mermaidCurViewBox,n=c();if(1===x.pointers.size&&x.startVb){const e=x.pointers.values().next().value,r=e.x-x.lastPointerX,i=e.y-x.lastPointerY;x.lastPointerX=e.x,x.lastPointerY=e.y;const o=r*(t[2]/n.width),a=i*(t[3]/n.height);return void y([t[0]-o,t[1]-a,t[2],t[3]])}if(2===x.pointers.size&&x.startVb&&x.startDist>0){const e=[...x.pointers.values()],r=e[0].x-e[1].x,o=e[0].y-e[1].y,a=Math.hypot(r,o);if(!a)return;const s=x.startDist/a,l=(e[0].x+e[1].x)/2,d=(e[0].y+e[1].y)/2,m=t[0]+(l-n.left)*(t[2]/n.width),c=t[1]+(d-n.top)*(t[3]/n.height);y(i(x.startVb,s,m,c))}},{signal:o.signal}),a.addEventListener("pointerup",_,{signal:o.signal}),a.addEventListener("pointercancel",_,{signal:o.signal}),a.addEventListener("wheel",e=>{e.preventDefault(),e.stopPropagation();let t=e.deltaY;1===e.deltaMode?t*=16:2===e.deltaMode&&(t*=400);const n=Math.pow(1.001,t),o=r.__mermaidCurViewBox,a=c(),s=o[0]+(e.clientX-a.left)*(o[2]/a.width),l=o[1]+(e.clientY-a.top)*(o[3]/a.height);y(i(o,n,s,l))},{passive:!1,signal:o.signal}),a.addEventListener("dblclick",()=>{const e=r.__mermaidInitViewBox;e&&y(e)},{signal:o.signal})},a=()=>{const e=document.getElementById("article-container");if(!e)return;const t=e.querySelectorAll(".mermaid-wrap");if(0===t.length)return;const n=()=>(e=>{window.loadMermaid=!0;const t="dark"===document.documentElement.getAttribute("data-theme")?"dark":"default";e.forEach((e,n)=>{const i=e.firstElementChild;e.__mermaidAbortController&&e.__mermaidAbortController.abort();const a=e.querySelector("svg");a&&a.remove();let s={};try{s=i.dataset.config?JSON.parse(i.dataset.config):{}}catch(e){console.warn("[mermaid] failed to parse dataset.config:",e)}s.theme||(s.theme=t);const l=`%%{init: ${JSON.stringify(s)}}%%\n`,d=`mermaid-${n}`,m=l+i.textContent,c=t=>{i.insertAdjacentHTML("afterend",t),o(e),e.__mermaidOriginalSvg=t,r(e)},u=e=>{console.error(`[mermaid] render failed for block #${n}:`,e);const t=document.createElement("div");t.className="mermaid-error",t.textContent=`Mermaid render error: ${e.message||e}`,i.insertAdjacentElement("afterend",t)};try{const e=mermaid.render(d,m);"string"==typeof e?c(e):e.then(({svg:e})=>c(e)).catch(u)}catch(e){u(e)}})})(t);btf.addGlobalFn("themeChange",n,"mermaid"),window.loadMermaid?n():btf.getScript("https://registry.npmmirror.com/mermaid/11.16.0/files/dist/mermaid.min.js").then(n)};btf.addGlobalFn("encrypt",a,"mermaid"),window.pjax?a():document.addEventListener("DOMContentLoaded",a)})()