diff --git a/assets/index-208d7d57.js b/assets/index-52927215.js similarity index 96% rename from assets/index-208d7d57.js rename to assets/index-52927215.js index bb92736..13c9bb1 100644 --- a/assets/index-208d7d57.js +++ b/assets/index-52927215.js @@ -672,7 +672,7 @@ ${t}`);const n=new Blob([t],{type:"text/plain"});var r=document.createElement("a - `:"";function Zv({name:i,props:t,css:e,view:n,onConstruct:r,onConnect:o,onDisconnect:s,onAttributeChange:a}){i||console.error("name is required"),e=e||null,n=n||null,r=r||null,o=o||null,s=s||null,a=a||null;class l extends HTMLElement{constructor(){super(),this.dom=this.attachShadow({mode:"open"});for(const c in t)Object.defineProperty(this,c,{get:function(){return t[c]},set:function(f){t[c]=f,a&&a(this,c,f),this.render()},enumerable:!0,configurable:!0});e&&fL(e,this.dom),this.render(),r&&r(this)}connectedCallback(){o&&o(this)}disconnectedCallback(){s&&s(this)}render(){Xh(n(this),this.dom)}}customElements.define(i,l)}function fL(i,t){var e=document.createElement("style");e.setAttribute("type","text/css"),e.styleSheet?e.styleSheet.cssText=i:e.appendChild(document.createTextNode(i)),t.appendChild(e)}function dL(i,t){let e=i.path||i.composedPath&&i.composedPath();if(e){for(let n=0;n{window.addEventListener("click",t=>{i.show&&!dL(t,"netlist-editor, .import-button")&&(i.show=!1)})},onConnect:i=>{console.log(i.show)},css:` + `:"";function Zv({name:i,props:t,attributes:e,css:n,view:r,onConstruct:o,onConnect:s,onDisconnect:a,onPropertyChange:l}){i||console.error("name is required"),n=n||null,r=r||null,o=o||null,s=s||null,a=a||null,l=l||null,e=e||{};class u extends HTMLElement{constructor(){super(),this.dom=this.attachShadow({mode:"open"});for(const f in t)Object.defineProperty(this,f,{get:function(){return t[f]},set:function(p){t[f]=p,l&&l(this,f,p),this.render()},enumerable:!0,configurable:!0});n&&fL(n,this.dom),this.render(),o&&o(this)}connectedCallback(){s&&s(this)}disconnectedCallback(){a&&a(this)}render(){Xh(r(this),this.dom)}static get observedAttributes(){return Object.keys(e)}attributeChangedCallback(f,p,v){console.log(f,p,v),this.render()}}customElements.define(i,u)}function fL(i,t){var e=document.createElement("style");e.setAttribute("type","text/css"),e.styleSheet?e.styleSheet.cssText=i:e.appendChild(document.createTextNode(i)),t.appendChild(e)}function dL(i,t){let e=i.path||i.composedPath&&i.composedPath();if(e){for(let n=0;n{window.addEventListener("click",t=>{i.show&&!dL(t,"netlist-editor, .import-button")&&(i.show=!1)})},onConnect:i=>{console.log(i.show)},css:` main { width: 65%; min-width: 615px; @@ -1187,7 +1187,7 @@ path(), `&&(this._pos+=1,i+=` `),this._line++,this._col=0):i==` `?(this._line++,this._col=0):this._col++,i}function CL(i){for(var t="";!i.test(this.peek());)t+=this.consume();return t}function bL(){for(var i=this.consume(),t="";;){t+=this.until(vi.string_or_escaped_or_end);var e=this.peek();if(e=="")return this.error("Unterminated string literal");if(e==i){this.consume();break}if(e=="\\"){this.consume(),e=this.peek(),e=="r"?(this.consume(),t+="\r"):e=="t"?(this.consume(),t+=" "):e=="n"?(this.consume(),t+=` -`):e=="f"?(this.consume(),t+="\f"):e=="b"?(this.consume(),t+="\b"):t+=this.consume();continue}t+=this.consume()}return new String(t)}function wL(){if(vi.string_delimiters.test(this.peek()))return this.string();for(var i="";;){i+=this.until(vi.space_quote_paren_escaped_or_end);var t=this.peek();if(t=="\\"){this.consume(),i+=this.consume();continue}break}return i}function PL(){var i=this.consume(),t=vi.quotes_map[i];t=="unquote"&&this.peek()=="@"&&(this.consume(),t="unquote-splicing",i=",@"),this.until(vi.not_whitespace_or_end);var e=this.expr();return e instanceof Error?e:e===""?this.error("Unexpected `"+this.peek()+"` after `"+i+"`"):[t,e]}function LL(){if(this.until(vi.not_whitespace_or_end),vi.quotes.test(this.peek()))return this.quoted();var i=this.peek()=="("?this.list():this.atom();return this.until(vi.not_whitespace_or_end),i}function kL(){if(this.peek()!="(")return this.error("Expected `(` - saw `"+this.peek()+"` instead.");this.consume();var i=[],t=this.expr();if(t instanceof Error)return t;if(t!=="")for(i.push(t);(t=this.expr())!=="";){if(t instanceof Error)return t;i.push(t)}return this.peek()!=")"?this.error("Expected `)` - saw: `"+this.peek()+"`"):(this.consume(),i)}const AL=i=>i.reduce((t,e)=>{let n=e.split(".");return n.length===0?t:n[0]!=="*"?[...t,e]:[...t,`F.${n[1]}`,`B.${n[1]}`]},[]),ws=(i,t)=>{const e=i.findIndex(r=>Array.isArray(r)&&r[0]===t),n=i[e];return n?n.slice(1):[]};function _L(i){let t=yL(i),e=1/_r;const n={};for(const o of t){const s=o[0]==="pad",a=o[2]==="smd",l=o[2]==="thru_hole",u=o[3];if(s&&(a||l)){let c=o[1],f=ws(o,"at").map(w=>Number(w)*e);f[1]=-f[1];let p=ws(o,"layers");p=AL(p);let v=ws(o,"size").map(w=>Number(w)*e);const S={rect:()=>W0(...v),roundrect:()=>{const w=Number(ws(o,"roundrect_rratio")[0]);return[EL(0,0,...v,w)]},circle:()=>va(...v.map(w=>w/2)),oval:()=>va(...v.map(w=>w/2)),custom:()=>[ws(o,"primitives")[0][1].slice(1).map(E=>[Number(E[1])*e,Number(E[2])*e])]};let m=u in S?S[u]():[];const y={pos:f,shape:m,layers:p},x=o.findIndex(w=>Array.isArray(w)&&w[0]==="drill");if(x!==-1){let w=Number(o[x][1])*e;y.drill={diameter:w,start:"F.Cu",end:"B.Cu",plated:!0}}n[c]===void 0?n[c]=[y]:n[c].push(y)}}let r=Object.entries(n).reduce((o,s)=>{const[a,l]=s;return l.length===1?o[a]=l[0]:l.forEach((u,c)=>{o[`${a}_${c+1}`]=u}),o},{});return Object.keys(r).forEach(o=>{let s="";r[o].shape.forEach(l=>{l.forEach((u,c)=>{const[f,p]=u;s+=`${c==0?"M":"L"} ${f} ${p} `})}),r[o].shape=s}),r}function EL(i,t,e,n,r,o=10){for(var s=Math.min(e,n)*r/2,a=[i-e/2+s,t-n/2+s],l=[i+e/2-s,t-n/2+s],u=[i+e/2-s,t+n/2-s],c=[i-e/2+s,t+n/2-s],f=[],p=0;pi.slice(n.from,n.to);n.moveTo(0);const o=/(const|let|var)([^=]*)=\s*new\s+PCB\s*\(\s*\)/;let s=i.match(o);s=s?s[2].trim():null,s&&Eh.push(`${s}.add`),s&&Eh.push(`${s}.wire`);do if(r(),n.name==="CallExpression"){const{name:u,args:c,from:f,to:p}=QL(n,i);if(Eh.includes(u)){let v="";if(((l=(a=n.node)==null?void 0:a.parent)==null?void 0:l.name)==="VariableDeclaration"){const m=n.node.parent;v=i.slice(m.from,m.to).match(DL)[2].trim()}e.push({functionName:u===`${s}.add`?"component":u,from:f,to:p,snippet:c,variableName:v})}}while(n.next());return{inserts:e}}function QL(i,t){const e=i.node,r=t.slice(e.from,e.to).match(TL)[1],o=e.from+r.length,s=e.to,a=t.slice(o,s),l=r.trim(),u=a.trim();return{name:l,args:u,from:o,to:s}}function ML(i,t){let e=[],n=0;return t.sort((r,o)=>r.from-o.from),t.forEach(r=>{const{from:o,to:s,insert:a}=r;e.push(i.substr(n,o-n)),e.push(a),n=s!==void 0?s:o}),e.push(i.substr(n)),e.length>0&&(i=e.join("")),i}const $L=(i,t,e=["F.Cu","B.Cu"])=>({via:{pos:[0,0],layers:e,shape:An(va(t/2)),drill:{diameter:i,start:e[0],end:e[1],plated:!0}}}),FL=([i,t],[e,n])=>[i+e,t+n],BL=([i,t],e)=>[i*Math.cos(e)-t*Math.sin(e),t*Math.cos(e)+i*Math.sin(e)];class NL{constructor({pads:t,layers:e,drills:n,footprint:r,pos:o,padShapes:s,id:a,rotation:l}){this.pads=t,this.layers=e,this.footprint=r,this.drills=n,this._pos=o,this.rotation=l,this.padShapes=s,this.id=a}pad(t){return this.pads[t]}padX(t){return this.pads[t][0]}padY(t){return this.pads[t][1]}get pos(){return this._pos}get posX(){return this._pos[0]}get posY(){return this._pos[1]}}const Dh={};function XL(i,t={}){let e=t.translate||[0,0],n=t.rotate||0,r=t.padLabelSize||.02,o=t.flip||!1,s=t.id||crypto.randomUUID();const a=n*Math.PI/180,l={},u={},c=[],f=[];let p={};for(const v in i){let _=function(J){return J.replace(/F\./g,"TEMP").replace(/B\./g,"F.").replace(/TEMP/g,"B.")},F=function(J,[nt,X],[z,I]){return[(J[0]-z)*nt+z,(J[1]-I)*X+I]},Y=function(J,nt,X){let z=nt/180*Math.PI,I=J[0]-X[0],tt=J[1]-X[1];return[I*Math.cos(z)-tt*Math.sin(z)+X[0],tt*Math.cos(z)+I*Math.sin(z)+X[1]]},K=function(J,nt,X){const[z,I]=X,[tt,yt]=nt,pt=tt-z,Tt=yt-I;return[J[0]+pt,J[1]+Tt]},{pos:S,shape:m,layers:y,origin:x,drill:w}=i[v];if(w){let J=S;o&&(J=F(J,[-1,1],[0,0])),J=K(J,e,[0,0]),J=Y(J,n,e),f.push({pos:J,...w})}o&&(y=y.map(J=>_(J))),typeof m=="string"&&(m in Dh||(Dh[m]=lo([],m)),m=Dh[m].slice());let E=[S[0],S[1]];x!==void 0&&(E[0]=x[0],E[1]=x[1]),er(m,E),o&&hl(m,[-1,1],[0,0]),er(m,e),Ru(m,n,e);let M=FL(BL(S,a),e);l[v]=M;let j=M;j=F(j,[o?-1:1,1],e),j=Y(j,o?2*n:0,e),y.some(J=>["F.Cu","B.Cu"].includes(J))&&c.push({type:"text",value:v,translate:j,size:r}),y.forEach(J=>{J in p?p[J].push(m):p[J]=[m]}),u[v]=m}return p.padLabels=c,new NL({pads:l,layers:p,footprint:i,drills:f,pos:e,padShapes:u,id:s,rotation:n})}class YL{constructor(){this.layers={},this.components=[],this.ids=[],this.netList=[]}add(t,e={}){const n=e.label||"",r={translate:e.translate||[0,0],rotate:e.rotate||0,padLabelSize:e.padLabelSize||.02,componentLabelSize:e.componentLabelSize||.025,flip:e.flip||!1,id:e.id||crypto.randomUUID()},o=XL(t,r);for(const s in o.layers)o.layers[s].forEach(a=>{this.addShape(s,a)});return n!==""&&this.addShape("componentLabels",{type:"text",value:n,translate:r.translate,rotate:0,size:r.componentLabelSize}),this.components.push(o),this.ids.push(r.id),o}addShape(t,e){return e[0]&&typeof e[0][0]=="number"&&(e=[e]),t in this.layers?this.layers[t].push(e):this.layers[t]=[e],this.layers[t]}getLayer(t,e=!1){if(!(t in this.layers))return[];const n=[],r=[],o=[];return this.layers[t].forEach(a=>{a.type==="wire"?o.push({type:"wire",data:An(a.shape),thickness:a.thickness,shape:a.shape}):Array.isArray(a)?n.push(a):a.type==="text"&&r.push(a)}),e?[An((()=>Y0(...n,...o.map(a=>E0(JSON.parse(JSON.stringify(a.shape)),a.thickness/2,{endType:"etOpenRound",jointType:"jtRound"})))??[])()),...r]:[...n.map(An),...r,...o]}setNetList(...t){return t.forEach(e=>{e.forEach(n=>{const[r,o]=n;r.constructor.name==="Component"&&(n[0]=r.id)})}),this.netList=t,t}wire(t,e,n="F.Cu"){if(t.length===0)return;const r={type:"wire",shape:[t],thickness:e};this.addShape(n,r)}}const u0={0:{width:.5,d:"M0.25 0.11L0.25 0.11Q0.44 0.11 0.44 0.48L0.44 0.48Q0.44 0.85 0.25 0.85L0.25 0.85Q0.06 0.85 0.06 0.48L0.06 0.48Q0.06 0.11 0.25 0.11ZM0.15 0.65L0.15 0.65L0.33 0.25Q0.30 0.18 0.25 0.18L0.25 0.18Q0.14 0.18 0.14 0.48L0.14 0.48Q0.14 0.58 0.15 0.65ZM0.35 0.31L0.17 0.71Q0.20 0.78 0.25 0.78L0.25 0.78Q0.36 0.78 0.36 0.48L0.36 0.48Q0.36 0.38 0.35 0.31L0.35 0.31Z"},1:{width:.5,d:"M0.31 0.83L0.22 0.83L0.22 0.23Q0.19 0.26 0.12 0.28L0.12 0.28L0.12 0.20Q0.20 0.18 0.24 0.13L0.24 0.13L0.31 0.13L0.31 0.83Z"},2:{width:.5,d:"M0.45 0.75L0.45 0.83L0.04 0.83Q0.07 0.64 0.24 0.50L0.24 0.50Q0.31 0.44 0.33 0.41L0.33 0.41Q0.36 0.36 0.36 0.30L0.36 0.30Q0.36 0.25 0.34 0.22L0.34 0.22Q0.31 0.18 0.25 0.18L0.25 0.18Q0.14 0.18 0.13 0.35L0.13 0.35L0.05 0.35Q0.06 0.25 0.10 0.19L0.10 0.19Q0.15 0.11 0.26 0.11L0.26 0.11Q0.33 0.11 0.38 0.15L0.38 0.15Q0.44 0.21 0.44 0.30L0.44 0.30Q0.44 0.43 0.29 0.54L0.29 0.54Q0.17 0.64 0.14 0.75L0.14 0.75L0.45 0.75Z"},3:{width:.5,d:"M0.17 0.49L0.17 0.42L0.22 0.42Q0.29 0.42 0.31 0.40L0.31 0.40Q0.36 0.37 0.36 0.30L0.36 0.30Q0.36 0.18 0.24 0.18L0.24 0.18Q0.15 0.18 0.13 0.28L0.13 0.28L0.05 0.28Q0.06 0.22 0.10 0.17L0.10 0.17Q0.15 0.11 0.24 0.11L0.24 0.11Q0.32 0.11 0.37 0.15L0.37 0.15Q0.43 0.21 0.43 0.30L0.43 0.30Q0.43 0.42 0.32 0.46L0.32 0.46Q0.46 0.51 0.46 0.64L0.46 0.64Q0.46 0.73 0.41 0.78L0.41 0.78Q0.35 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.09 0.78L0.09 0.78Q0.05 0.73 0.04 0.65L0.04 0.65L0.12 0.65Q0.13 0.78 0.25 0.78L0.25 0.78Q0.30 0.78 0.33 0.75L0.33 0.75Q0.38 0.71 0.38 0.64L0.38 0.64Q0.38 0.49 0.22 0.49L0.22 0.49L0.17 0.49Z"},4:{width:.5,d:"M0.02 0.59L0.31 0.13L0.39 0.13L0.39 0.59L0.48 0.59L0.48 0.66L0.39 0.66L0.39 0.83L0.32 0.83L0.32 0.66L0.02 0.66L0.02 0.59ZM0.32 0.59L0.32 0.24L0.10 0.59L0.32 0.59Z"},5:{width:.5,d:"M0.07 0.52L0.09 0.13L0.42 0.13L0.42 0.20L0.16 0.20L0.15 0.43Q0.20 0.37 0.27 0.37L0.27 0.37Q0.35 0.37 0.40 0.44L0.40 0.44Q0.45 0.51 0.45 0.60L0.45 0.60Q0.45 0.69 0.42 0.75L0.42 0.75Q0.37 0.85 0.25 0.85L0.25 0.85Q0.08 0.85 0.05 0.67L0.05 0.67L0.13 0.67Q0.15 0.78 0.25 0.78L0.25 0.78Q0.31 0.78 0.35 0.72L0.35 0.72Q0.38 0.68 0.38 0.60L0.38 0.60Q0.38 0.54 0.35 0.50L0.35 0.50Q0.32 0.44 0.26 0.44L0.26 0.44Q0.18 0.44 0.13 0.53L0.13 0.53L0.07 0.52Z"},6:{width:.5,d:"M0.44 0.28L0.36 0.28Q0.35 0.18 0.27 0.18L0.27 0.18Q0.20 0.18 0.16 0.26L0.16 0.26Q0.13 0.34 0.12 0.48L0.12 0.48Q0.18 0.39 0.27 0.39L0.27 0.39Q0.34 0.39 0.39 0.45L0.39 0.45Q0.45 0.51 0.45 0.61L0.45 0.61Q0.45 0.70 0.41 0.76L0.41 0.76Q0.36 0.85 0.26 0.85L0.26 0.85Q0.16 0.85 0.11 0.76L0.11 0.76Q0.05 0.67 0.05 0.51L0.05 0.51Q0.05 0.33 0.10 0.23L0.10 0.23Q0.16 0.11 0.27 0.11L0.27 0.11Q0.41 0.11 0.44 0.28L0.44 0.28ZM0.26 0.46L0.26 0.46Q0.20 0.46 0.16 0.51L0.16 0.51Q0.14 0.55 0.14 0.62L0.14 0.62Q0.14 0.67 0.16 0.71L0.16 0.71Q0.19 0.78 0.26 0.78L0.26 0.78Q0.31 0.78 0.35 0.73L0.35 0.73Q0.38 0.69 0.38 0.61L0.38 0.61Q0.38 0.55 0.35 0.51L0.35 0.51Q0.32 0.46 0.26 0.46Z"},7:{width:.5,d:"M0.05 0.21L0.05 0.13L0.45 0.13L0.45 0.19Q0.31 0.53 0.24 0.83L0.24 0.83L0.15 0.83Q0.22 0.56 0.36 0.21L0.36 0.21L0.05 0.21Z"},8:{width:.5,d:"M0.16 0.45L0.16 0.45Q0.06 0.40 0.06 0.29L0.06 0.29Q0.06 0.24 0.09 0.20L0.09 0.20Q0.14 0.11 0.25 0.11L0.25 0.11Q0.30 0.11 0.35 0.14L0.35 0.14Q0.44 0.19 0.44 0.29L0.44 0.29Q0.44 0.40 0.34 0.45L0.34 0.45Q0.47 0.50 0.47 0.64L0.47 0.64Q0.47 0.72 0.42 0.77L0.42 0.77Q0.36 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.10 0.79L0.10 0.79Q0.04 0.74 0.04 0.64L0.04 0.64Q0.04 0.50 0.16 0.45ZM0.25 0.17L0.25 0.17Q0.20 0.17 0.17 0.21L0.17 0.21Q0.14 0.24 0.14 0.29L0.14 0.29Q0.14 0.33 0.15 0.35L0.15 0.35Q0.18 0.42 0.25 0.42L0.25 0.42Q0.29 0.42 0.32 0.39L0.32 0.39Q0.36 0.36 0.36 0.29L0.36 0.29Q0.36 0.23 0.32 0.20L0.32 0.20Q0.29 0.17 0.25 0.17ZM0.25 0.49L0.25 0.49Q0.18 0.49 0.15 0.54L0.15 0.54Q0.11 0.58 0.11 0.64L0.11 0.64Q0.11 0.70 0.14 0.74L0.14 0.74Q0.18 0.78 0.25 0.78L0.25 0.78Q0.32 0.78 0.36 0.74L0.36 0.74Q0.39 0.70 0.39 0.64L0.39 0.64Q0.39 0.56 0.34 0.52L0.34 0.52Q0.30 0.49 0.25 0.49Z"},9:{width:.5,d:"M0.06 0.67L0.14 0.67Q0.15 0.78 0.25 0.78L0.25 0.78Q0.38 0.78 0.38 0.49L0.38 0.49Q0.32 0.57 0.24 0.57L0.24 0.57Q0.13 0.57 0.08 0.48L0.08 0.48Q0.05 0.42 0.05 0.35L0.05 0.35Q0.05 0.25 0.10 0.18L0.10 0.18Q0.16 0.11 0.25 0.11L0.25 0.11Q0.45 0.11 0.45 0.46L0.45 0.46Q0.45 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.10 0.77L0.10 0.77Q0.07 0.73 0.06 0.67L0.06 0.67ZM0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.34L0.13 0.34Q0.13 0.41 0.15 0.45L0.15 0.45Q0.18 0.51 0.25 0.51L0.25 0.51Q0.29 0.51 0.32 0.47L0.32 0.47Q0.37 0.42 0.37 0.34L0.37 0.34Q0.37 0.27 0.33 0.22L0.33 0.22Q0.30 0.18 0.25 0.18Z"}," ":{width:.5,d:""},"!":{width:.5,d:"M0.21 0.69L0.19 0.09L0.31 0.09L0.29 0.69L0.21 0.69ZM0.19 0.90L0.19 0.78L0.31 0.78L0.31 0.90L0.19 0.90Z"},'"':{width:.5,d:"M0.08 0.16L0.08 0.04L0.20 0.04L0.20 0.11Q0.20 0.23 0.11 0.31L0.11 0.31L0.05 0.31Q0.12 0.25 0.13 0.16L0.13 0.16L0.08 0.16ZM0.28 0.16L0.28 0.04L0.40 0.04L0.40 0.11Q0.40 0.23 0.31 0.31L0.31 0.31L0.25 0.31Q0.32 0.25 0.33 0.16L0.33 0.16L0.28 0.16Z"},"#":{width:.5,d:"M0.15 0.28L0.17 0.08L0.23 0.08L0.21 0.28L0.32 0.28L0.34 0.08L0.41 0.08L0.39 0.28L0.46 0.28L0.46 0.35L0.38 0.35L0.35 0.65L0.42 0.65L0.42 0.72L0.35 0.72L0.33 0.92L0.26 0.92L0.28 0.72L0.17 0.72L0.15 0.92L0.09 0.92L0.11 0.72L0.04 0.72L0.04 0.65L0.11 0.65L0.14 0.35L0.07 0.35L0.07 0.28L0.15 0.28ZM0.32 0.35L0.21 0.35L0.18 0.65L0.29 0.65L0.32 0.35Z"},$:{width:.5,d:"M0.22 0.11L0.22 0.05L0.28 0.05L0.28 0.11Q0.41 0.14 0.43 0.30L0.43 0.30L0.35 0.30Q0.35 0.21 0.28 0.18L0.28 0.18L0.28 0.44L0.30 0.45Q0.38 0.50 0.41 0.53L0.41 0.53Q0.46 0.59 0.46 0.65L0.46 0.65Q0.46 0.81 0.28 0.83L0.28 0.83L0.28 0.92L0.22 0.92L0.22 0.83Q0.05 0.81 0.04 0.61L0.04 0.61L0.12 0.61Q0.12 0.74 0.22 0.77L0.22 0.77L0.22 0.48Q0.06 0.40 0.06 0.29L0.06 0.29Q0.06 0.19 0.13 0.14L0.13 0.14Q0.17 0.12 0.22 0.11L0.22 0.11ZM0.28 0.51L0.28 0.51L0.28 0.77Q0.38 0.75 0.38 0.65L0.38 0.65Q0.38 0.58 0.28 0.51ZM0.22 0.41L0.22 0.18Q0.13 0.19 0.13 0.28L0.13 0.28Q0.13 0.35 0.22 0.41L0.22 0.41Z"},"%":{width:.5,d:"M0.02 0.95L0.42 0.05L0.48 0.05L0.08 0.95L0.02 0.95ZM0.14 0.08L0.14 0.08Q0.19 0.08 0.22 0.13L0.22 0.13Q0.25 0.18 0.25 0.28L0.25 0.28Q0.25 0.36 0.22 0.42L0.22 0.42Q0.19 0.48 0.14 0.48L0.14 0.48Q0.09 0.48 0.06 0.43L0.06 0.43Q0.03 0.37 0.03 0.28L0.03 0.28Q0.03 0.19 0.05 0.13L0.05 0.13Q0.08 0.08 0.14 0.08ZM0.14 0.13L0.14 0.13Q0.09 0.13 0.09 0.28L0.09 0.28Q0.09 0.42 0.14 0.42L0.14 0.42Q0.19 0.42 0.19 0.28L0.19 0.28Q0.19 0.13 0.14 0.13ZM0.36 0.52L0.36 0.52Q0.41 0.52 0.44 0.57L0.44 0.57Q0.47 0.63 0.47 0.72L0.47 0.72Q0.47 0.81 0.45 0.86L0.45 0.86Q0.42 0.92 0.36 0.92L0.36 0.92Q0.31 0.92 0.28 0.87L0.28 0.87Q0.25 0.82 0.25 0.72L0.25 0.72Q0.25 0.63 0.28 0.58L0.28 0.58Q0.31 0.52 0.36 0.52ZM0.36 0.58L0.36 0.58Q0.31 0.58 0.31 0.72L0.31 0.72Q0.31 0.87 0.36 0.87L0.36 0.87Q0.41 0.87 0.41 0.72L0.41 0.72Q0.41 0.58 0.36 0.58Z"},"&":{width:.5,d:"M0.48 0.83L0.40 0.83L0.36 0.78Q0.30 0.85 0.22 0.85L0.22 0.85Q0.14 0.85 0.09 0.79L0.09 0.79Q0.04 0.74 0.04 0.65L0.04 0.65Q0.04 0.54 0.16 0.44L0.16 0.44L0.15 0.43Q0.09 0.34 0.09 0.26L0.09 0.26Q0.09 0.19 0.13 0.15L0.13 0.15Q0.17 0.11 0.24 0.11L0.24 0.11Q0.31 0.11 0.35 0.16L0.35 0.16Q0.39 0.20 0.39 0.27L0.39 0.27Q0.39 0.34 0.34 0.39L0.34 0.39Q0.31 0.42 0.26 0.45L0.26 0.45L0.25 0.46L0.36 0.65Q0.38 0.58 0.39 0.49L0.39 0.49L0.46 0.49Q0.45 0.63 0.41 0.71L0.41 0.71L0.48 0.83ZM0.33 0.72L0.19 0.50Q0.12 0.57 0.12 0.65L0.12 0.65Q0.12 0.78 0.22 0.78L0.22 0.78Q0.28 0.78 0.33 0.72L0.33 0.72ZM0.21 0.40L0.21 0.41L0.24 0.39Q0.32 0.34 0.32 0.27L0.32 0.27Q0.32 0.17 0.25 0.17L0.25 0.17Q0.16 0.17 0.16 0.27L0.16 0.27Q0.16 0.32 0.21 0.40L0.21 0.40Z"},"'":{width:.5,d:"M0.08 0.16L0.08 0.04L0.20 0.04L0.20 0.11Q0.20 0.23 0.11 0.31L0.11 0.31L0.05 0.31Q0.12 0.25 0.13 0.16L0.13 0.16L0.08 0.16Z"},"(":{width:.5,d:"M0.42 0.95L0.35 0.95Q0.16 0.76 0.16 0.50L0.16 0.50Q0.16 0.24 0.35 0.05L0.35 0.05L0.42 0.05Q0.23 0.24 0.23 0.50L0.23 0.50Q0.23 0.76 0.42 0.95L0.42 0.95Z"},")":{width:.5,d:"M0.15 0.95L0.08 0.95Q0.27 0.76 0.27 0.50L0.27 0.50Q0.27 0.24 0.08 0.05L0.08 0.05L0.15 0.05Q0.34 0.24 0.34 0.50L0.34 0.50Q0.34 0.76 0.15 0.95L0.15 0.95Z"},"*":{width:.5,d:"M0.12 0.35L0.24 0.48L0.21 0.31Q0.21 0.30 0.21 0.29L0.21 0.29Q0.21 0.25 0.25 0.25L0.25 0.25Q0.29 0.25 0.29 0.29L0.29 0.29Q0.29 0.31 0.29 0.31L0.29 0.31L0.26 0.48L0.38 0.35Q0.40 0.33 0.42 0.33L0.42 0.33Q0.43 0.33 0.45 0.35L0.45 0.35Q0.46 0.37 0.46 0.38L0.46 0.38Q0.46 0.41 0.43 0.42L0.43 0.42L0.28 0.50L0.43 0.58Q0.46 0.59 0.46 0.62L0.46 0.62Q0.46 0.63 0.45 0.64L0.45 0.64Q0.44 0.67 0.42 0.67L0.42 0.67Q0.40 0.67 0.38 0.65L0.38 0.65L0.26 0.52L0.29 0.69Q0.29 0.69 0.29 0.71L0.29 0.71Q0.29 0.75 0.25 0.75L0.25 0.75Q0.21 0.75 0.21 0.71L0.21 0.71Q0.21 0.70 0.21 0.69L0.21 0.69L0.24 0.52L0.12 0.65Q0.10 0.67 0.08 0.67L0.08 0.67Q0.06 0.67 0.05 0.65L0.05 0.65Q0.04 0.63 0.04 0.62L0.04 0.62Q0.04 0.59 0.07 0.58L0.07 0.58L0.22 0.50L0.07 0.42Q0.04 0.41 0.04 0.38L0.04 0.38Q0.04 0.37 0.05 0.35L0.05 0.35Q0.06 0.33 0.08 0.33L0.08 0.33Q0.10 0.33 0.12 0.35L0.12 0.35Z"},"+":{width:.5,d:"M0.22 0.47L0.22 0.20L0.28 0.20L0.28 0.47L0.45 0.47L0.45 0.53L0.28 0.53L0.28 0.80L0.22 0.80L0.22 0.53L0.05 0.53L0.05 0.47L0.22 0.47Z"},",":{width:.5,d:"M0.11 0.71L0.23 0.71Q0.20 0.86 0.12 1.00L0.12 1.00L0.06 0.98Q0.10 0.85 0.11 0.71L0.11 0.71Z"},"-":{width:.5,d:"M0.05 0.54L0.05 0.46L0.45 0.46L0.45 0.54L0.05 0.54Z"},".":{width:.5,d:"M0.09 0.88L0.09 0.75L0.23 0.75L0.23 0.88L0.09 0.88Z"},"/":{width:.5,d:"M0.03 0.92L0.43 0.06L0.47 0.08L0.07 0.94L0.03 0.92Z"},":":{width:.5,d:"M0.19 0.47L0.19 0.35L0.31 0.35L0.31 0.47L0.19 0.47ZM0.19 0.83L0.19 0.71L0.31 0.71L0.31 0.83L0.19 0.83Z"},";":{width:.5,d:"M0.19 0.47L0.19 0.35L0.31 0.35L0.31 0.47L0.19 0.47ZM0.20 0.71L0.30 0.71Q0.28 0.85 0.21 0.98L0.21 0.98L0.14 0.97Q0.19 0.85 0.20 0.71L0.20 0.71Z"},"<":{width:.5,d:"M0.03 0.50L0.45 0.09L0.45 0.18L0.12 0.50L0.45 0.82L0.45 0.91L0.03 0.50Z"},"=":{width:.5,d:"M0.05 0.44L0.05 0.37L0.45 0.37L0.45 0.44L0.05 0.44ZM0.05 0.63L0.05 0.56L0.45 0.56L0.45 0.63L0.05 0.63Z"},">":{width:.5,d:"M0.05 0.18L0.05 0.09L0.47 0.50L0.05 0.91L0.05 0.82L0.38 0.50L0.05 0.18Z"},"?":{width:.5,d:"M0.13 0.34L0.05 0.34L0.05 0.32Q0.05 0.22 0.10 0.15L0.10 0.15Q0.16 0.08 0.26 0.08L0.26 0.08Q0.34 0.08 0.40 0.13L0.40 0.13Q0.45 0.18 0.45 0.26L0.45 0.26Q0.45 0.35 0.35 0.45L0.35 0.45Q0.31 0.50 0.30 0.53L0.30 0.53Q0.28 0.57 0.28 0.66L0.28 0.66Q0.28 0.68 0.28 0.69L0.28 0.69L0.20 0.69Q0.20 0.57 0.22 0.52L0.22 0.52Q0.24 0.47 0.29 0.42L0.29 0.42Q0.37 0.33 0.37 0.26L0.37 0.26Q0.37 0.22 0.35 0.20L0.35 0.20Q0.32 0.15 0.26 0.15L0.26 0.15Q0.13 0.15 0.13 0.33L0.13 0.33Q0.13 0.33 0.13 0.34L0.13 0.34ZM0.19 0.90L0.19 0.78L0.30 0.78L0.30 0.90L0.19 0.90Z"},"@":{width:.5,d:"M0.32 0.32L0.33 0.30L0.37 0.30Q0.35 0.45 0.35 0.57L0.35 0.57Q0.35 0.64 0.37 0.64L0.37 0.64Q0.39 0.64 0.40 0.62L0.40 0.62Q0.42 0.56 0.42 0.45L0.42 0.45Q0.42 0.34 0.38 0.26L0.38 0.26Q0.34 0.17 0.25 0.17L0.25 0.17Q0.17 0.17 0.13 0.25L0.13 0.25Q0.08 0.34 0.08 0.50L0.08 0.50Q0.08 0.66 0.12 0.74L0.12 0.74Q0.17 0.83 0.25 0.83L0.25 0.83Q0.35 0.83 0.40 0.73L0.40 0.73L0.45 0.76Q0.38 0.89 0.25 0.89L0.25 0.89Q0.14 0.89 0.08 0.79L0.08 0.79Q0.02 0.69 0.02 0.50L0.02 0.50Q0.02 0.33 0.07 0.23L0.07 0.23Q0.13 0.11 0.25 0.11L0.25 0.11Q0.36 0.11 0.42 0.21L0.42 0.21Q0.48 0.30 0.48 0.45L0.48 0.45Q0.48 0.58 0.44 0.65L0.44 0.65Q0.41 0.70 0.36 0.70L0.36 0.70Q0.32 0.70 0.31 0.65L0.31 0.65Q0.27 0.71 0.22 0.71L0.22 0.71Q0.13 0.71 0.13 0.55L0.13 0.55Q0.13 0.43 0.17 0.35L0.17 0.35Q0.20 0.28 0.25 0.28L0.25 0.28Q0.29 0.28 0.32 0.32L0.32 0.32ZM0.26 0.34L0.26 0.34Q0.23 0.34 0.21 0.38L0.21 0.38Q0.19 0.44 0.19 0.55L0.19 0.55Q0.19 0.65 0.23 0.65L0.23 0.65Q0.26 0.65 0.28 0.60L0.28 0.60Q0.30 0.54 0.30 0.44L0.30 0.44Q0.30 0.34 0.26 0.34Z"},A:{width:.5,d:"M0.02 0.83L0.20 0.13L0.30 0.13L0.48 0.83L0.39 0.83L0.34 0.60L0.16 0.60L0.11 0.83L0.02 0.83ZM0.32 0.53L0.25 0.20L0.18 0.53L0.32 0.53Z"},B:{width:.5,d:"M0.07 0.83L0.07 0.13L0.24 0.13Q0.32 0.13 0.37 0.17L0.37 0.17Q0.43 0.21 0.43 0.30L0.43 0.30Q0.43 0.41 0.31 0.46L0.31 0.46Q0.45 0.50 0.45 0.64L0.45 0.64Q0.45 0.73 0.39 0.78L0.39 0.78Q0.34 0.83 0.25 0.83L0.25 0.83L0.07 0.83ZM0.24 0.20L0.15 0.20L0.15 0.43L0.23 0.43Q0.27 0.43 0.30 0.41L0.30 0.41Q0.35 0.38 0.35 0.31L0.35 0.31Q0.35 0.20 0.24 0.20L0.24 0.20ZM0.24 0.50L0.15 0.50L0.15 0.75L0.24 0.75Q0.37 0.75 0.37 0.63L0.37 0.63Q0.37 0.50 0.24 0.50L0.24 0.50Z"},C:{width:.5,d:"M0.37 0.60L0.45 0.60Q0.43 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.09 0.74L0.09 0.74Q0.05 0.65 0.05 0.48L0.05 0.48Q0.05 0.31 0.10 0.21L0.10 0.21Q0.15 0.11 0.25 0.11L0.25 0.11Q0.41 0.11 0.45 0.33L0.45 0.33L0.36 0.33Q0.34 0.18 0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.48L0.13 0.48Q0.13 0.77 0.25 0.77L0.25 0.77Q0.36 0.77 0.37 0.60L0.37 0.60Z"},D:{width:.5,d:"M0.21 0.83L0.03 0.83L0.03 0.75L0.08 0.75L0.08 0.20L0.03 0.20L0.03 0.13L0.21 0.13Q0.33 0.13 0.39 0.21L0.39 0.21Q0.45 0.29 0.45 0.47L0.45 0.47Q0.45 0.65 0.40 0.73L0.40 0.73Q0.33 0.83 0.21 0.83L0.21 0.83ZM0.20 0.20L0.16 0.20L0.16 0.75L0.21 0.75Q0.37 0.75 0.37 0.47L0.37 0.47Q0.37 0.33 0.33 0.26L0.33 0.26Q0.28 0.20 0.20 0.20L0.20 0.20Z"},E:{width:.5,d:"M0.07 0.83L0.07 0.13L0.42 0.13L0.42 0.21L0.15 0.21L0.15 0.43L0.38 0.43L0.38 0.50L0.15 0.50L0.15 0.75L0.44 0.75L0.44 0.83L0.07 0.83Z"},F:{width:.5,d:"M0.07 0.83L0.07 0.13L0.42 0.13L0.42 0.21L0.15 0.21L0.15 0.43L0.39 0.43L0.39 0.50L0.15 0.50L0.15 0.83L0.07 0.83Z"},G:{width:.5,d:"M0.45 0.83L0.39 0.83L0.39 0.73Q0.33 0.85 0.24 0.85L0.24 0.85Q0.15 0.85 0.10 0.76L0.10 0.76Q0.05 0.66 0.05 0.48L0.05 0.48Q0.05 0.31 0.10 0.21L0.10 0.21Q0.15 0.11 0.25 0.11L0.25 0.11Q0.41 0.11 0.45 0.33L0.45 0.33L0.36 0.33Q0.34 0.18 0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.48L0.13 0.48Q0.13 0.77 0.25 0.77L0.25 0.77Q0.36 0.77 0.38 0.57L0.38 0.57L0.27 0.57L0.27 0.50L0.45 0.50L0.45 0.83Z"},H:{width:.5,d:"M0.06 0.83L0.06 0.13L0.14 0.13L0.14 0.43L0.36 0.43L0.36 0.13L0.44 0.13L0.44 0.83L0.36 0.83L0.36 0.50L0.14 0.50L0.14 0.83L0.06 0.83Z"},I:{width:.5,d:"M0.39 0.20L0.29 0.20L0.29 0.75L0.39 0.75L0.39 0.83L0.11 0.83L0.11 0.75L0.21 0.75L0.21 0.20L0.11 0.20L0.11 0.13L0.39 0.13L0.39 0.20Z"},J:{width:.5,d:"M0.32 0.65L0.32 0.13L0.40 0.13L0.40 0.65Q0.40 0.85 0.23 0.85L0.23 0.85Q0.05 0.85 0.04 0.64L0.04 0.64L0.13 0.64Q0.13 0.77 0.23 0.77L0.23 0.77Q0.32 0.77 0.32 0.65L0.32 0.65Z"},K:{width:.5,d:"M0.06 0.83L0.06 0.13L0.14 0.13L0.14 0.46L0.34 0.13L0.44 0.13L0.27 0.40L0.47 0.83L0.37 0.83L0.22 0.46L0.14 0.59L0.14 0.83L0.06 0.83Z"},L:{width:.5,d:"M0.07 0.83L0.07 0.13L0.15 0.13L0.15 0.75L0.45 0.75L0.45 0.83L0.07 0.83Z"},M:{width:.5,d:"M0.05 0.83L0.05 0.13L0.15 0.13L0.25 0.70L0.35 0.13L0.45 0.13L0.45 0.83L0.38 0.83L0.38 0.29L0.29 0.83L0.21 0.83L0.12 0.29L0.12 0.83L0.05 0.83Z"},N:{width:.5,d:"M0.06 0.83L0.06 0.13L0.16 0.13L0.36 0.69L0.36 0.13L0.44 0.13L0.44 0.83L0.35 0.83L0.14 0.25L0.14 0.83L0.06 0.83Z"},O:{width:.5,d:"M0.25 0.11L0.25 0.11Q0.34 0.11 0.40 0.20L0.40 0.20Q0.45 0.30 0.45 0.48L0.45 0.48Q0.45 0.65 0.40 0.75L0.40 0.75Q0.35 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.10 0.75L0.10 0.75Q0.05 0.65 0.05 0.48L0.05 0.48Q0.05 0.30 0.11 0.19L0.11 0.19Q0.16 0.11 0.25 0.11ZM0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.48L0.13 0.48Q0.13 0.78 0.25 0.78L0.25 0.78Q0.37 0.78 0.37 0.48L0.37 0.48Q0.37 0.18 0.25 0.18Z"},P:{width:.5,d:"M0.07 0.83L0.07 0.13L0.25 0.13Q0.33 0.13 0.39 0.17L0.39 0.17Q0.46 0.22 0.46 0.33L0.46 0.33Q0.46 0.45 0.36 0.50L0.36 0.50Q0.31 0.53 0.25 0.53L0.25 0.53L0.15 0.53L0.15 0.83L0.07 0.83ZM0.24 0.21L0.15 0.21L0.15 0.45L0.24 0.45Q0.37 0.45 0.37 0.33L0.37 0.33Q0.37 0.25 0.31 0.22L0.31 0.22Q0.28 0.21 0.24 0.21L0.24 0.21Z"},Q:{width:.5,d:"M0.40 0.86L0.34 0.91Q0.33 0.87 0.31 0.83L0.31 0.83Q0.28 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.10 0.75L0.10 0.75Q0.05 0.65 0.05 0.48L0.05 0.48Q0.05 0.30 0.10 0.20L0.10 0.20Q0.16 0.11 0.25 0.11L0.25 0.11Q0.34 0.11 0.40 0.20L0.40 0.20Q0.45 0.31 0.45 0.48L0.45 0.48Q0.45 0.69 0.37 0.79L0.37 0.79Q0.40 0.85 0.40 0.86L0.40 0.86ZM0.22 0.65L0.27 0.61Q0.29 0.64 0.34 0.72L0.34 0.72Q0.37 0.65 0.37 0.48L0.37 0.48Q0.37 0.18 0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.48L0.13 0.48Q0.13 0.78 0.25 0.78L0.25 0.78Q0.27 0.78 0.29 0.77L0.29 0.77Q0.26 0.71 0.22 0.65L0.22 0.65Z"},R:{width:.5,d:"M0.07 0.83L0.07 0.13L0.24 0.13Q0.33 0.13 0.38 0.17L0.38 0.17Q0.45 0.22 0.45 0.31L0.45 0.31Q0.45 0.45 0.32 0.49L0.32 0.49L0.47 0.83L0.38 0.83L0.24 0.50L0.15 0.50L0.15 0.83L0.07 0.83ZM0.23 0.20L0.15 0.20L0.15 0.43L0.23 0.43Q0.28 0.43 0.31 0.41L0.31 0.41Q0.37 0.38 0.37 0.31L0.37 0.31Q0.37 0.20 0.23 0.20L0.23 0.20Z"},S:{width:.5,d:"M0.05 0.63L0.13 0.63Q0.14 0.78 0.26 0.78L0.26 0.78Q0.30 0.78 0.33 0.75L0.33 0.75Q0.37 0.72 0.37 0.67L0.37 0.67Q0.37 0.60 0.32 0.56L0.32 0.56Q0.29 0.53 0.20 0.48L0.20 0.48Q0.06 0.40 0.06 0.29L0.06 0.29Q0.06 0.22 0.11 0.17L0.11 0.17Q0.16 0.11 0.25 0.11L0.25 0.11Q0.42 0.11 0.44 0.31L0.44 0.31L0.36 0.31Q0.35 0.26 0.34 0.23L0.34 0.23Q0.31 0.18 0.25 0.18L0.25 0.18Q0.19 0.18 0.17 0.22L0.17 0.22Q0.15 0.25 0.15 0.28L0.15 0.28Q0.15 0.36 0.27 0.43L0.27 0.43Q0.35 0.48 0.40 0.52L0.40 0.52Q0.45 0.58 0.45 0.66L0.45 0.66Q0.45 0.74 0.40 0.79L0.40 0.79Q0.35 0.85 0.26 0.85L0.26 0.85Q0.15 0.85 0.09 0.77L0.09 0.77Q0.05 0.71 0.05 0.63L0.05 0.63Z"},T:{width:.5,d:"M0.04 0.21L0.04 0.13L0.46 0.13L0.46 0.21L0.29 0.21L0.29 0.83L0.21 0.83L0.21 0.21L0.04 0.21Z"},U:{width:.5,d:"M0.06 0.61L0.06 0.13L0.14 0.13L0.14 0.61Q0.14 0.77 0.25 0.77L0.25 0.77Q0.36 0.77 0.36 0.61L0.36 0.61L0.36 0.13L0.44 0.13L0.44 0.61Q0.44 0.72 0.40 0.78L0.40 0.78Q0.35 0.85 0.25 0.85L0.25 0.85Q0.06 0.85 0.06 0.61L0.06 0.61Z"},V:{width:.5,d:"M0.20 0.83L0.03 0.13L0.12 0.13L0.25 0.73L0.38 0.13L0.47 0.13L0.30 0.83L0.20 0.83Z"},W:{width:.5,d:"M0.10 0.83L0.02 0.13L0.10 0.13L0.14 0.66L0.21 0.13L0.29 0.13L0.36 0.66L0.40 0.13L0.48 0.13L0.40 0.83L0.32 0.83L0.25 0.27L0.18 0.83L0.10 0.83Z"},X:{width:.5,d:"M0.20 0.46L0.06 0.13L0.15 0.13L0.25 0.38L0.35 0.13L0.44 0.13L0.30 0.46L0.47 0.83L0.37 0.83L0.25 0.54L0.13 0.83L0.04 0.83L0.20 0.46Z"},Y:{width:.5,d:"M0.21 0.55L0.03 0.13L0.12 0.13L0.25 0.46L0.38 0.13L0.47 0.13L0.29 0.55L0.29 0.83L0.21 0.83L0.21 0.55Z"},Z:{width:.5,d:"M0.08 0.21L0.08 0.13L0.43 0.13L0.43 0.20L0.15 0.75L0.44 0.75L0.44 0.83L0.06 0.83L0.06 0.75L0.34 0.21L0.08 0.21Z"},"[":{width:.5,d:"M0.11 0.95L0.11 0.05L0.42 0.05L0.42 0.12L0.18 0.12L0.18 0.88L0.42 0.88L0.42 0.95L0.11 0.95Z"},"\\":{width:.5,d:"M0.20 0.42L0.02 0.13L0.11 0.13L0.25 0.37L0.39 0.13L0.47 0.13L0.30 0.42L0.45 0.42L0.45 0.48L0.29 0.48L0.29 0.57L0.45 0.57L0.45 0.64L0.29 0.64L0.29 0.83L0.21 0.83L0.21 0.64L0.05 0.64L0.05 0.57L0.21 0.57L0.21 0.48L0.05 0.48L0.05 0.42L0.20 0.42Z"},"]":{width:.5,d:"M0.08 0.12L0.08 0.05L0.39 0.05L0.39 0.95L0.08 0.95L0.08 0.88L0.32 0.88L0.32 0.12L0.08 0.12Z"},"^":{width:.5,d:"M0.07 0.24L0.20 0.12L0.30 0.12L0.43 0.24L0.36 0.24L0.25 0.16L0.14 0.24L0.07 0.24Z"},_:{width:.5,d:"M0 1L0 0.98L0.50 0.98L0.50 1L0 1Z"},"`":{width:.5,d:"M0.28 0.24L0.12 0.12L0.24 0.12L0.36 0.24L0.28 0.24Z"},a:{width:.5,d:"M0.15 0.49L0.07 0.49Q0.09 0.33 0.25 0.33L0.25 0.33Q0.41 0.33 0.41 0.51L0.41 0.51L0.41 0.75Q0.41 0.78 0.44 0.78L0.44 0.78Q0.45 0.78 0.46 0.77L0.46 0.77L0.46 0.84Q0.44 0.85 0.42 0.85L0.42 0.85Q0.35 0.85 0.34 0.77L0.34 0.77Q0.27 0.85 0.19 0.85L0.19 0.85Q0.14 0.85 0.10 0.82L0.10 0.82Q0.06 0.78 0.06 0.71L0.06 0.71Q0.06 0.55 0.34 0.53L0.34 0.53L0.34 0.51Q0.34 0.40 0.25 0.40L0.25 0.40Q0.16 0.40 0.15 0.49L0.15 0.49ZM0.34 0.66L0.34 0.59Q0.13 0.60 0.13 0.71L0.13 0.71Q0.13 0.78 0.20 0.78L0.20 0.78Q0.25 0.78 0.30 0.74L0.30 0.74Q0.34 0.71 0.34 0.66L0.34 0.66Z"},b:{width:.5,d:"M0.07 0.83L0.07 0.13L0.15 0.13L0.15 0.41Q0.21 0.33 0.28 0.33L0.28 0.33Q0.35 0.33 0.40 0.40L0.40 0.40Q0.45 0.47 0.45 0.59L0.45 0.59Q0.45 0.67 0.42 0.73L0.42 0.73Q0.38 0.85 0.28 0.85L0.28 0.85Q0.20 0.85 0.15 0.77L0.15 0.77L0.13 0.83L0.07 0.83ZM0.26 0.41L0.26 0.41Q0.21 0.41 0.17 0.46L0.17 0.46Q0.15 0.51 0.15 0.59L0.15 0.59Q0.15 0.67 0.17 0.72L0.17 0.72Q0.21 0.78 0.26 0.78L0.26 0.78Q0.31 0.78 0.34 0.73L0.34 0.73Q0.37 0.68 0.37 0.59L0.37 0.59Q0.37 0.50 0.34 0.45L0.34 0.45Q0.31 0.41 0.26 0.41Z"},c:{width:.5,d:"M0.36 0.67L0.44 0.67Q0.40 0.85 0.25 0.85L0.25 0.85Q0.16 0.85 0.11 0.77L0.11 0.77Q0.06 0.71 0.06 0.59L0.06 0.59Q0.06 0.48 0.10 0.42L0.10 0.42Q0.16 0.33 0.25 0.33L0.25 0.33Q0.39 0.33 0.43 0.50L0.43 0.50L0.35 0.50Q0.33 0.40 0.25 0.40L0.25 0.40Q0.20 0.40 0.17 0.45L0.17 0.45Q0.14 0.50 0.14 0.59L0.14 0.59Q0.14 0.67 0.16 0.71L0.16 0.71Q0.19 0.78 0.25 0.78L0.25 0.78Q0.34 0.78 0.36 0.67L0.36 0.67Z"},d:{width:.5,d:"M0.35 0.41L0.35 0.13L0.43 0.13L0.43 0.83L0.37 0.83L0.35 0.77Q0.30 0.85 0.22 0.85L0.22 0.85Q0.14 0.85 0.10 0.78L0.10 0.78Q0.05 0.70 0.05 0.59L0.05 0.59Q0.05 0.49 0.09 0.42L0.09 0.42Q0.13 0.33 0.22 0.33L0.22 0.33Q0.29 0.33 0.35 0.41L0.35 0.41ZM0.24 0.41L0.24 0.41Q0.19 0.41 0.15 0.46L0.15 0.46Q0.13 0.51 0.13 0.59L0.13 0.59Q0.13 0.67 0.15 0.72L0.15 0.72Q0.18 0.78 0.24 0.78L0.24 0.78Q0.29 0.78 0.32 0.73L0.32 0.73Q0.35 0.68 0.35 0.59L0.35 0.59Q0.35 0.51 0.33 0.47L0.33 0.47Q0.30 0.41 0.24 0.41Z"},e:{width:.5,d:"M0.36 0.68L0.44 0.68Q0.40 0.85 0.25 0.85L0.25 0.85Q0.16 0.85 0.11 0.77L0.11 0.77Q0.06 0.70 0.06 0.59L0.06 0.59Q0.06 0.48 0.10 0.42L0.10 0.42Q0.16 0.33 0.25 0.33L0.25 0.33Q0.43 0.33 0.44 0.61L0.44 0.61L0.14 0.61Q0.14 0.78 0.25 0.78L0.25 0.78Q0.34 0.78 0.36 0.68L0.36 0.68ZM0.14 0.54L0.36 0.54Q0.35 0.40 0.25 0.40L0.25 0.40Q0.16 0.40 0.14 0.54L0.14 0.54Z"},f:{width:.5,d:"M0.08 0.35L0.20 0.35L0.20 0.23Q0.20 0.13 0.30 0.13L0.30 0.13L0.41 0.13L0.41 0.20L0.32 0.20Q0.28 0.20 0.28 0.24L0.28 0.24L0.28 0.35L0.41 0.35L0.41 0.42L0.28 0.42L0.28 0.83L0.20 0.83L0.20 0.42L0.08 0.42L0.08 0.35Z"},g:{width:.5,d:"M0.38 0.35L0.43 0.35L0.43 0.77Q0.43 0.97 0.25 0.97L0.25 0.97Q0.09 0.97 0.06 0.82L0.06 0.82L0.14 0.82Q0.15 0.91 0.25 0.91L0.25 0.91Q0.36 0.91 0.36 0.78L0.36 0.78L0.36 0.70Q0.30 0.76 0.23 0.76L0.23 0.76Q0.15 0.76 0.10 0.70L0.10 0.70Q0.05 0.64 0.05 0.55L0.05 0.55Q0.05 0.49 0.07 0.44L0.07 0.44Q0.13 0.33 0.23 0.33L0.23 0.33Q0.31 0.33 0.36 0.40L0.36 0.40L0.38 0.35ZM0.24 0.40L0.24 0.40Q0.19 0.40 0.15 0.45L0.15 0.45Q0.13 0.49 0.13 0.55L0.13 0.55Q0.13 0.61 0.16 0.65L0.16 0.65Q0.19 0.69 0.24 0.69L0.24 0.69Q0.29 0.69 0.32 0.66L0.32 0.66Q0.36 0.62 0.36 0.55L0.36 0.55Q0.36 0.49 0.32 0.44L0.32 0.44Q0.29 0.40 0.24 0.40Z"},h:{width:.5,d:"M0.07 0.83L0.07 0.13L0.15 0.13L0.15 0.41Q0.22 0.33 0.29 0.33L0.29 0.33Q0.37 0.33 0.41 0.41L0.41 0.41Q0.43 0.45 0.43 0.50L0.43 0.50L0.43 0.83L0.36 0.83L0.36 0.53Q0.36 0.41 0.28 0.41L0.28 0.41Q0.23 0.41 0.19 0.44L0.19 0.44Q0.15 0.48 0.15 0.54L0.15 0.54L0.15 0.83L0.07 0.83Z"},i:{width:.5,d:"M0.21 0.22L0.21 0.13L0.29 0.13L0.29 0.22L0.21 0.22ZM0.21 0.83L0.21 0.35L0.29 0.35L0.29 0.83L0.21 0.83Z"},j:{width:.5,d:"M0.23 0.22L0.23 0.13L0.32 0.13L0.32 0.22L0.23 0.22ZM0.23 0.86L0.23 0.35L0.31 0.35L0.31 0.87Q0.31 0.97 0.21 0.97L0.21 0.97Q0.17 0.97 0.10 0.96L0.10 0.96L0.10 0.89Q0.14 0.90 0.19 0.90L0.19 0.90Q0.23 0.90 0.23 0.86L0.23 0.86Z"},k:{width:.5,d:"M0.08 0.83L0.08 0.13L0.15 0.13L0.15 0.56L0.33 0.35L0.42 0.35L0.27 0.52L0.46 0.83L0.37 0.83L0.22 0.58L0.15 0.65L0.15 0.83L0.08 0.83Z"},l:{width:.5,d:"M0.29 0.13L0.29 0.72Q0.29 0.76 0.33 0.76L0.33 0.76Q0.36 0.76 0.40 0.75L0.40 0.75L0.40 0.83Q0.34 0.84 0.32 0.84L0.32 0.84Q0.21 0.84 0.21 0.73L0.21 0.73L0.21 0.13L0.29 0.13Z"},m:{width:.5,d:"M0.05 0.35L0.10 0.35L0.11 0.39Q0.15 0.33 0.20 0.33L0.20 0.33Q0.25 0.33 0.27 0.39L0.27 0.39Q0.31 0.33 0.37 0.33L0.37 0.33Q0.45 0.33 0.45 0.46L0.45 0.46L0.45 0.83L0.38 0.83L0.38 0.47Q0.38 0.40 0.35 0.40L0.35 0.40Q0.32 0.40 0.30 0.43L0.30 0.43Q0.28 0.46 0.28 0.48L0.28 0.48L0.28 0.83L0.21 0.83L0.21 0.47Q0.21 0.40 0.18 0.40L0.18 0.40Q0.12 0.40 0.12 0.48L0.12 0.48L0.12 0.83L0.05 0.83L0.05 0.35Z"},n:{width:.5,d:"M0.07 0.35L0.13 0.35L0.14 0.42Q0.22 0.33 0.29 0.33L0.29 0.33Q0.37 0.33 0.41 0.41L0.41 0.41Q0.43 0.45 0.43 0.50L0.43 0.50L0.43 0.83L0.36 0.83L0.36 0.53Q0.36 0.41 0.28 0.41L0.28 0.41Q0.23 0.41 0.19 0.44L0.19 0.44Q0.15 0.48 0.15 0.54L0.15 0.54L0.15 0.83L0.07 0.83L0.07 0.35Z"},o:{width:.5,d:"M0.25 0.33L0.25 0.33Q0.34 0.33 0.40 0.42L0.40 0.42Q0.44 0.48 0.44 0.59L0.44 0.59Q0.44 0.67 0.41 0.73L0.41 0.73Q0.36 0.85 0.25 0.85L0.25 0.85Q0.16 0.85 0.11 0.77L0.11 0.77Q0.06 0.71 0.06 0.59L0.06 0.59Q0.06 0.47 0.12 0.40L0.12 0.40Q0.17 0.33 0.25 0.33ZM0.25 0.40L0.25 0.40Q0.20 0.40 0.17 0.46L0.17 0.46Q0.14 0.51 0.14 0.59L0.14 0.59Q0.14 0.67 0.16 0.71L0.16 0.71Q0.19 0.78 0.25 0.78L0.25 0.78Q0.30 0.78 0.33 0.72L0.33 0.72Q0.36 0.67 0.36 0.59L0.36 0.59Q0.36 0.51 0.33 0.46L0.33 0.46Q0.30 0.40 0.25 0.40Z"},p:{width:.5,d:"M0.07 0.35L0.13 0.35L0.14 0.42Q0.21 0.33 0.28 0.33L0.28 0.33Q0.35 0.33 0.40 0.40L0.40 0.40Q0.45 0.47 0.45 0.58L0.45 0.58Q0.45 0.68 0.41 0.75L0.41 0.75Q0.36 0.84 0.28 0.84L0.28 0.84Q0.21 0.84 0.15 0.77L0.15 0.77L0.15 0.97L0.07 0.97L0.07 0.35ZM0.26 0.41L0.26 0.41Q0.21 0.41 0.18 0.45L0.18 0.45Q0.15 0.50 0.15 0.58L0.15 0.58Q0.15 0.65 0.17 0.70L0.17 0.70Q0.20 0.76 0.26 0.76L0.26 0.76Q0.31 0.76 0.34 0.72L0.34 0.72Q0.37 0.67 0.37 0.58L0.37 0.58Q0.37 0.50 0.34 0.46L0.34 0.46Q0.31 0.41 0.26 0.41Z"},q:{width:.5,d:"M0.43 0.97L0.35 0.97L0.35 0.77Q0.29 0.84 0.22 0.84L0.22 0.84Q0.15 0.84 0.10 0.77L0.10 0.77Q0.05 0.70 0.05 0.58L0.05 0.58Q0.05 0.49 0.09 0.42L0.09 0.42Q0.13 0.33 0.22 0.33L0.22 0.33Q0.29 0.33 0.36 0.42L0.36 0.42L0.37 0.35L0.43 0.35L0.43 0.97ZM0.24 0.41L0.24 0.41Q0.18 0.41 0.16 0.46L0.16 0.46Q0.13 0.51 0.13 0.58L0.13 0.58Q0.13 0.76 0.24 0.76L0.24 0.76Q0.29 0.76 0.33 0.70L0.33 0.70Q0.35 0.66 0.35 0.58L0.35 0.58Q0.35 0.49 0.31 0.44L0.31 0.44Q0.28 0.41 0.24 0.41Z"},r:{width:.5,d:"M0.15 0.35L0.22 0.35L0.22 0.45Q0.31 0.36 0.41 0.33L0.41 0.33L0.41 0.42Q0.29 0.45 0.22 0.54L0.22 0.54L0.22 0.83L0.15 0.83L0.15 0.35Z"},s:{width:.5,d:"M0.06 0.68L0.14 0.68Q0.15 0.78 0.26 0.78L0.26 0.78Q0.36 0.78 0.36 0.71L0.36 0.71Q0.36 0.67 0.34 0.65L0.34 0.65Q0.31 0.63 0.25 0.61L0.25 0.61L0.23 0.60Q0.16 0.58 0.13 0.55L0.13 0.55Q0.08 0.52 0.08 0.47L0.08 0.47Q0.08 0.40 0.13 0.37L0.13 0.37Q0.18 0.33 0.25 0.33L0.25 0.33Q0.40 0.33 0.42 0.47L0.42 0.47L0.34 0.47Q0.33 0.40 0.25 0.40L0.25 0.40Q0.15 0.40 0.15 0.46L0.15 0.46Q0.15 0.51 0.28 0.55L0.28 0.55Q0.35 0.57 0.38 0.60L0.38 0.60Q0.44 0.64 0.44 0.71L0.44 0.71Q0.44 0.77 0.38 0.81L0.38 0.81Q0.33 0.85 0.25 0.85L0.25 0.85Q0.08 0.85 0.06 0.68L0.06 0.68Z"},t:{width:.5,d:"M0.19 0.35L0.19 0.23L0.27 0.23L0.27 0.35L0.39 0.35L0.39 0.43L0.27 0.43L0.27 0.73Q0.27 0.76 0.31 0.76L0.31 0.76Q0.35 0.76 0.40 0.75L0.40 0.75L0.40 0.83Q0.34 0.84 0.29 0.84L0.29 0.84Q0.19 0.84 0.19 0.74L0.19 0.74L0.19 0.43L0.10 0.43L0.10 0.35L0.19 0.35Z"},u:{width:.5,d:"M0.07 0.68L0.07 0.35L0.15 0.35L0.15 0.68Q0.15 0.78 0.23 0.78L0.23 0.78Q0.28 0.78 0.32 0.74L0.32 0.74Q0.36 0.71 0.36 0.65L0.36 0.65L0.36 0.35L0.43 0.35L0.43 0.83L0.38 0.83L0.36 0.77Q0.30 0.85 0.21 0.85L0.21 0.85Q0.14 0.85 0.10 0.79L0.10 0.79Q0.07 0.75 0.07 0.68L0.07 0.68Z"},v:{width:.5,d:"M0.21 0.83L0.05 0.35L0.13 0.35L0.25 0.74L0.36 0.35L0.45 0.35L0.29 0.83L0.21 0.83Z"},w:{width:.5,d:"M0.10 0.83L0.03 0.35L0.10 0.35L0.14 0.72L0.21 0.35L0.29 0.35L0.36 0.72L0.40 0.35L0.47 0.35L0.40 0.83L0.32 0.83L0.25 0.46L0.18 0.83L0.10 0.83Z"},x:{width:.5,d:"M0.21 0.57L0.07 0.35L0.17 0.35L0.25 0.51L0.33 0.35L0.43 0.35L0.29 0.57L0.46 0.83L0.36 0.83L0.25 0.63L0.14 0.83L0.04 0.83L0.21 0.57Z"},y:{width:.5,d:"M0.23 0.79L0.06 0.35L0.15 0.35L0.26 0.69L0.37 0.35L0.46 0.35L0.26 0.90Q0.24 0.95 0.20 0.97L0.20 0.97Q0.19 0.97 0.09 0.97L0.09 0.97L0.09 0.90L0.13 0.90Q0.14 0.90 0.15 0.90L0.15 0.90Q0.18 0.90 0.19 0.87L0.19 0.87L0.23 0.79Z"},z:{width:.5,d:"M0.09 0.42L0.09 0.35L0.42 0.35L0.42 0.42L0.16 0.76L0.43 0.76L0.43 0.83L0.07 0.83L0.07 0.76L0.32 0.42L0.09 0.42Z"},"{":{width:.5,d:"M0.17 0.53L0.17 0.47Q0.25 0.46 0.25 0.35L0.25 0.35L0.25 0.20Q0.25 0.05 0.42 0.05L0.42 0.05L0.42 0.12Q0.32 0.12 0.32 0.20L0.32 0.20L0.32 0.34Q0.32 0.47 0.26 0.50L0.26 0.50Q0.32 0.53 0.32 0.66L0.32 0.66L0.32 0.80Q0.32 0.88 0.42 0.88L0.42 0.88L0.42 0.95Q0.25 0.95 0.25 0.80L0.25 0.80L0.25 0.65Q0.25 0.59 0.23 0.56L0.23 0.56Q0.21 0.54 0.17 0.53L0.17 0.53Z"},"|":{width:.5,d:"M0.21 1L0.21 0L0.29 0L0.29 1L0.21 1Z"},"}":{width:.5,d:"M0.08 0.95L0.08 0.88Q0.17 0.88 0.17 0.80L0.17 0.80L0.17 0.66Q0.17 0.53 0.24 0.50L0.24 0.50Q0.17 0.47 0.17 0.34L0.17 0.34L0.17 0.20Q0.17 0.12 0.08 0.12L0.08 0.12L0.08 0.05Q0.24 0.05 0.24 0.20L0.24 0.20L0.24 0.35Q0.24 0.46 0.33 0.47L0.33 0.47L0.33 0.53Q0.24 0.54 0.24 0.65L0.24 0.65L0.24 0.80Q0.24 0.95 0.08 0.95L0.08 0.95Z"},"~":{width:.5,d:"M0.08 0.21L0.08 0.16Q0.13 0.12 0.17 0.12L0.17 0.12Q0.21 0.12 0.26 0.15L0.26 0.15Q0.29 0.17 0.33 0.17L0.33 0.17Q0.37 0.17 0.42 0.14L0.42 0.14L0.42 0.19Q0.37 0.22 0.33 0.22L0.33 0.22Q0.30 0.22 0.24 0.20L0.24 0.20Q0.21 0.18 0.17 0.18L0.17 0.18Q0.13 0.18 0.08 0.21L0.08 0.21Z"}},Tc=.04;let c0=Tc;const Nu={};Rv(Tc);function Rv(i){for(const t in u0){const{width:e,d:n}=u0[t],r=lo([],n),o=i;hl(r,[o,-o],[0,0]),er(r,[0,i]),Nu[t]={width:e/1.3*o,d:r.length!==0?An(r):""}}}function ZL(i,t={}){const e=t.size??Tc;e!==c0&&Rv(e),c0=e;const n=t.layers??["F.Silkscreen"],r={};let o=0;return i.split("").forEach((s,a)=>{r[a]={pos:[o,0],shape:Nu[s].d,layers:n,index:a},o+=Number(Nu[s].width)}),r}const Th={shapes:[],limits:{x:[0,1],y:[0,1]},mm_per_unit:_r};function RL({shapes:i,limits:t,mm_per_unit:e}){i===void 0&&(i=Th.shapes),t===void 0&&(t=Th.limits),e===void 0&&(e=Th.mm_per_unit),Bt.shapes=i,Bt.limits=t,Bt.mm_per_unit=e}function WL(i){const t=An(i.shape),e=i.stroke??"black",n=i.fill??"none",r=i.strokeWidth??.03,o=i.strokeLinecap??"round",s=i.strokeLinejoin??"round";Bt.paths.push({d:t,stroke:e,fill:n,strokeWidth:r,strokeLinecap:o,strokeLinejoin:s})}const ea={pcb:null,layerColors:{"F.Cu":"#ff8c00cc"},limits:{x:[0,1],y:[0,1]},mm_per_unit:_r,background:"#00000000"},UL=i=>(...t)=>{let[[{pcb:e,layerColors:n,limits:r,mm_per_unit:o,background:s}],a]=t;e===void 0&&console.log("renderPCB must include pcb param"),n===void 0&&(n=ea.layerColors),r===void 0&&(r=ea.limits),o===void 0&&(o=ea.mm_per_unit),s===void 0&&(s=ea.background);const l=[];for(const f in n){const p=n[f];l.push({data:e.getLayer(f,i),color:p,groupId:f})}const u=zL(a),c=[];for(const f in e.layers){let p=jL(u,f);p=p??"#000000ff";const v=n[f]??p,S=f in n,m={color:v,visible:S,name:f};c.push(m)}c.sort((f,p)=>(f=f.name,p=p.name,u.indexOf(f)-u.indexOf(p))),Bt.pcb=e,Bt.layers=c.flat(),Bt.layersStaticInfo=a,Bt.shapes=l,Bt.limits=r,Bt.mm_per_unit=o,Bt.background=s},zL=i=>{const e=Bt.codemirror.view.state.doc.toString().slice(i.from,i.to),n=Ji.parse(e,{range:!0}),r=Wv(n,{type:"Identifier",name:"layerColors"}).getParent().value.range;return e.slice(...r)};function Wv(i,t,e=null){if(typeof i!="object"||i===null)return null;Object.defineProperty(i,"getParent",{value:function(){return e},enumerable:!1,writable:!1});let n=!0;for(const r in t)if(i[r]!==t[r]){n=!1;break}if(n)return i;for(const r in i){const o=Wv(i[r],t,i);if(o)return o}return null}function jL(i,t){const e=i.indexOf(t);if(e===-1)return null;const n=i.indexOf(":",e),r=i.indexOf(",",n),o=i.substring(n+1,r).trim();return o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):o}function qL(i){const t={};i.components.forEach(o=>{t[o.id]=JSON.parse(JSON.stringify(o.pads))});const e=i.getLayer("F.Cu",!0),n=sk(e[0]),r={};n.forEach((o,s)=>{for(const a in t){const l=t[a];for(const u in l){const c=l[u];ek(c,o)>0||(r[s]?r[s].push([a,u]):r[s]=[[a,u]])}}}),console.log(r)}const Ih=(i,t)=>[i[0]-t[0],i[1]-t[1]],VL=(i,t,e)=>Math.max(Math.min(i,Math.max(t,e)),Math.min(t,e)),GL=i=>Math.sqrt(i[0]**2+i[1]**2),f0=(i,t)=>i[0]*t[0]+i[1]*t[1],HL=(i,t)=>[i[0]*t,i[1]*t];function JL(i,t,e){const n=Ih(i,t),r=Ih(e,t),o=VL(f0(n,r)/f0(r,r),0,1),s=Ih(n,HL(r,o));return GL(s)}function KL(i,t){return 1e-6>Math.abs(i[0]-t[0])+Math.abs(i[1]-t[1])}function tk(i){return KL(i[0],i[i.length-1])}function ek(i,t){let e=999999999999,n=t.length,r=0;for(let o=0,s=1;s=t.xMin&&i.yMin<=t.yMax&&i.yMax>=t.yMin}function d0(i,t){let e=[[0,0],[i[1][0]-i[0][0],i[1][1]-i[0][1]]],n=[t[0]-i[0][0],t[1]-i[0][1]];return ik(e[1],n)<0}function p0(i,t){return d0(i,t[0])^d0(i,t[1])}function m0(i){let t=Math.min(i[0][0],i[1][0]),e=Math.max(i[0][0],i[1][0]),n=Math.min(i[0][1],i[1][1]),r=Math.max(i[0][1],i[1][1]);return{xMin:t,xMax:e,yMin:n,yMax:r}}function rk(i,t){let e=m0(i),n=m0(t);return nk(e,n)&&p0(i,t)&&p0(t,i)}function sk(i){return i.replace(/\s/g,"").split("M").filter(t=>t.length>0).map(t=>t.split("L").map(e=>e.split(",").map(Number)))}function ok(i){const t=[];for(const o in i){const s=i[o];if(!s.layers.includes("F.Cu"))continue;let a=[s.pos[0],s.pos[1]];s.origin!=null&&(a[0]=s.origin[0],a[1]=s.origin[1]),t.push(...er(lo([],s.shape),a))}const e=Z0(t),n=R0(t);xr(t,"cc");const r=Math.max(e,n);return er(t,xr(t,"cc"),[-25,-25]),hl(t,[40/r,40/r],xr(t,"cc")),t}class ak extends YL{constructor(...t){super(...t),Bt.idToName={}}add(...t){if(Array.isArray(t[0])){const[[e,n],r]=t,o=super.add(e,n),{variableName:s}=r;return s!==""&&(Bt.idToName[o.id]=s),o}else return super.add(...t)}wire(...t){if(t.length===2&&Array.isArray(t[0])){const[e,n]=t,[r,o,s="F.Cu"]=e;super.wire(r,o,s);const a=Bt.astInfo[n.id],u=Ji.parse(a.snippet,{range:!0,comment:!0}).body[0].expression.expressions[1].range,c=document.querySelector("wire-editor"),f=c.wires;c.wires=[...f,{rawStaticInfo:a,staticInfo:n,thickness:o,thicknessRange:u}]}else return super.add(...t)}}const lk=i=>({geo:uO,PCB:ak,via:$L,createText:ZL,renderShapes:RL,renderShape:WL,checkConnectivity:qL,renderPCB:(...t)=>UL(i)(...t),footprint:([t],e)=>{const n=Bt.footprints,r=e.variableName,{snippet:o}=e;return r in n&&n[r].snippet===o||(n[r]={snippet:o,name:r,svgView:ok(t)}),t},pt:([t,e],n)=>{const r=n.from||-1,o=n.to||-1,s=Bt.pts.some(u=>u.start===r);if(r===-1||s)return[t,e];const a=n.snippet,l={pt:[t,e],start:r+1,end:o+1,text:a};return Bt.pts.push(l),[t,e]},path:(t,e)=>{const n=B0(...t),r=Bt.selectablePaths.length;return Bt.selectablePaths.push([e.from,t]),Bt.selectedPathIndex<0||Bt.selectedPathIndex===r&&(Bt.selectedPath={from:e.from,to:e.to,args:t}),n},input:([t],e)=>(t.type==="slider"?Bt.inputs.push([t,e]):console.log("Unrecognized input type:",t),t.value),document:null,window:null,localStorage:null,Function:null,eval:null}),hk=`// Name: New Board +`):e=="f"?(this.consume(),t+="\f"):e=="b"?(this.consume(),t+="\b"):t+=this.consume();continue}t+=this.consume()}return new String(t)}function wL(){if(vi.string_delimiters.test(this.peek()))return this.string();for(var i="";;){i+=this.until(vi.space_quote_paren_escaped_or_end);var t=this.peek();if(t=="\\"){this.consume(),i+=this.consume();continue}break}return i}function PL(){var i=this.consume(),t=vi.quotes_map[i];t=="unquote"&&this.peek()=="@"&&(this.consume(),t="unquote-splicing",i=",@"),this.until(vi.not_whitespace_or_end);var e=this.expr();return e instanceof Error?e:e===""?this.error("Unexpected `"+this.peek()+"` after `"+i+"`"):[t,e]}function LL(){if(this.until(vi.not_whitespace_or_end),vi.quotes.test(this.peek()))return this.quoted();var i=this.peek()=="("?this.list():this.atom();return this.until(vi.not_whitespace_or_end),i}function kL(){if(this.peek()!="(")return this.error("Expected `(` - saw `"+this.peek()+"` instead.");this.consume();var i=[],t=this.expr();if(t instanceof Error)return t;if(t!=="")for(i.push(t);(t=this.expr())!=="";){if(t instanceof Error)return t;i.push(t)}return this.peek()!=")"?this.error("Expected `)` - saw: `"+this.peek()+"`"):(this.consume(),i)}const AL=i=>i.reduce((t,e)=>{let n=e.split(".");return n.length===0?t:n[0]!=="*"?[...t,e]:[...t,`F.${n[1]}`,`B.${n[1]}`]},[]),ws=(i,t)=>{const e=i.findIndex(r=>Array.isArray(r)&&r[0]===t),n=i[e];return n?n.slice(1):[]};function _L(i){let t=yL(i),e=1/_r;const n={};for(const o of t){const s=o[0]==="pad",a=o[2]==="smd",l=o[2]==="thru_hole",u=o[3];if(s&&(a||l)){let c=o[1],f=ws(o,"at").map(w=>Number(w)*e);f[1]=-f[1];let p=ws(o,"layers");p=AL(p);let v=ws(o,"size").map(w=>Number(w)*e);const S={rect:()=>W0(...v),roundrect:()=>{const w=Number(ws(o,"roundrect_rratio")[0]);return[EL(0,0,...v,w)]},circle:()=>va(...v.map(w=>w/2)),oval:()=>va(...v.map(w=>w/2)),custom:()=>[ws(o,"primitives")[0][1].slice(1).map(E=>[Number(E[1])*e,Number(E[2])*e])]};let m=u in S?S[u]():[];const y={pos:f,shape:m,layers:p},x=o.findIndex(w=>Array.isArray(w)&&w[0]==="drill");if(x!==-1){let w=Number(o[x][1])*e;y.drill={diameter:w,start:"F.Cu",end:"B.Cu",plated:!0}}n[c]===void 0?n[c]=[y]:n[c].push(y)}}let r=Object.entries(n).reduce((o,s)=>{const[a,l]=s;return l.length===1?o[a]=l[0]:l.forEach((u,c)=>{o[`${a}_${c+1}`]=u}),o},{});return Object.keys(r).forEach(o=>{let s="";r[o].shape.forEach(l=>{l.forEach((u,c)=>{const[f,p]=u;s+=`${c==0?"M":"L"} ${f} ${p} `})}),r[o].shape=s}),r}function EL(i,t,e,n,r,o=10){for(var s=Math.min(e,n)*r/2,a=[i-e/2+s,t-n/2+s],l=[i+e/2-s,t-n/2+s],u=[i+e/2-s,t+n/2-s],c=[i-e/2+s,t+n/2-s],f=[],p=0;pi.slice(n.from,n.to);n.moveTo(0);const o=/(const|let|var)([^=]*)=\s*new\s+PCB\s*\(\s*\)/;let s=i.match(o);s=s?s[2].trim():null,s&&Eh.push(`${s}.add`),s&&Eh.push(`${s}.wire`);do if(r(),n.name==="CallExpression"){const{name:u,args:c,from:f,to:p}=QL(n,i);if(Eh.includes(u)){let v="";if(((l=(a=n.node)==null?void 0:a.parent)==null?void 0:l.name)==="VariableDeclaration"){const m=n.node.parent;v=i.slice(m.from,m.to).match(DL)[2].trim()}e.push({functionName:u===`${s}.add`?"component":u,from:f,to:p,snippet:c,variableName:v})}}while(n.next());return{inserts:e}}function QL(i,t){const e=i.node,r=t.slice(e.from,e.to).match(TL)[1],o=e.from+r.length,s=e.to,a=t.slice(o,s),l=r.trim(),u=a.trim();return{name:l,args:u,from:o,to:s}}function ML(i,t){let e=[],n=0;return t.sort((r,o)=>r.from-o.from),t.forEach(r=>{const{from:o,to:s,insert:a}=r;e.push(i.substr(n,o-n)),e.push(a),n=s!==void 0?s:o}),e.push(i.substr(n)),e.length>0&&(i=e.join("")),i}const $L=(i,t,e=["F.Cu","B.Cu"])=>({via:{pos:[0,0],layers:e,shape:An(va(t/2)),drill:{diameter:i,start:e[0],end:e[1],plated:!0}}}),FL=([i,t],[e,n])=>[i+e,t+n],BL=([i,t],e)=>[i*Math.cos(e)-t*Math.sin(e),t*Math.cos(e)+i*Math.sin(e)];class NL{constructor({pads:t,layers:e,drills:n,footprint:r,pos:o,padShapes:s,id:a,rotation:l,flip:u}){this.pads=t,this.layers=e,this.footprint=r,this.drills=n,this._pos=o,this.rotation=l,this.padShapes=s,this.id=a,this.flip=u}pad(t){return this.pads[t]}padX(t){return this.pads[t][0]}padY(t){return this.pads[t][1]}get pos(){return this._pos}get posX(){return this._pos[0]}get posY(){return this._pos[1]}}const Dh={};function XL(i,t={}){let e=t.translate||[0,0],n=t.rotate||0,r=t.padLabelSize||.02,o=t.flip||!1,s=t.id||crypto.randomUUID();const a=n*Math.PI/180,l={},u={},c=[],f=[];let p={};for(const v in i){let _=function(J){return J.replace(/F\./g,"TEMP").replace(/B\./g,"F.").replace(/TEMP/g,"B.")},F=function(J,[nt,X],[z,I]){return[(J[0]-z)*nt+z,(J[1]-I)*X+I]},Y=function(J,nt,X){let z=nt/180*Math.PI,I=J[0]-X[0],tt=J[1]-X[1];return[I*Math.cos(z)-tt*Math.sin(z)+X[0],tt*Math.cos(z)+I*Math.sin(z)+X[1]]},K=function(J,nt,X){const[z,I]=X,[tt,yt]=nt,pt=tt-z,Tt=yt-I;return[J[0]+pt,J[1]+Tt]},{pos:S,shape:m,layers:y,origin:x,drill:w}=i[v];if(w){let J=S;o&&(J=F(J,[-1,1],[0,0])),J=K(J,e,[0,0]),J=Y(J,n,e),f.push({pos:J,...w})}o&&(y=y.map(J=>_(J))),typeof m=="string"&&(m in Dh||(Dh[m]=lo([],m)),m=Dh[m].slice());let E=[S[0],S[1]];x!==void 0&&(E[0]=x[0],E[1]=x[1]),er(m,E),o&&hl(m,[-1,1],[0,0]),er(m,e),Ru(m,n,e);let M=FL(BL(S,a),e);l[v]=M;let j=M;j=F(j,[o?-1:1,1],e),j=Y(j,o?2*n:0,e),y.some(J=>["F.Cu","B.Cu"].includes(J))&&c.push({type:"text",value:v,translate:j,size:r}),y.forEach(J=>{J in p?p[J].push(m):p[J]=[m]}),u[v]=m}return p.padLabels=c,new NL({pads:l,layers:p,footprint:i,drills:f,pos:e,padShapes:u,id:s,rotation:n,flip:o})}class YL{constructor(){this.layers={},this.components=[],this.ids=[],this.netList=[]}add(t,e={}){const n=e.label||"",r={translate:e.translate||[0,0],rotate:e.rotate||0,padLabelSize:e.padLabelSize||.02,componentLabelSize:e.componentLabelSize||.025,flip:e.flip||!1,id:e.id||crypto.randomUUID()},o=XL(t,r);for(const s in o.layers)o.layers[s].forEach(a=>{this.addShape(s,a)});return n!==""&&this.addShape("componentLabels",{type:"text",value:n,translate:r.translate,rotate:0,size:r.componentLabelSize}),this.components.push(o),this.ids.push(r.id),o}addShape(t,e){return e[0]&&typeof e[0][0]=="number"&&(e=[e]),t in this.layers?this.layers[t].push(e):this.layers[t]=[e],this.layers[t]}getLayer(t,e=!1){if(!(t in this.layers))return[];const n=[],r=[],o=[];return this.layers[t].forEach(a=>{a.type==="wire"?o.push({type:"wire",data:An(a.shape),thickness:a.thickness,shape:a.shape}):Array.isArray(a)?n.push(a):a.type==="text"&&r.push(a)}),e?[An((()=>Y0(...n,...o.map(a=>E0(JSON.parse(JSON.stringify(a.shape)),a.thickness/2,{endType:"etOpenRound",jointType:"jtRound"})))??[])()),...r]:[...n.map(An),...r,...o]}setNetList(...t){return t.forEach(e=>{e.forEach(n=>{const[r,o]=n;r.constructor.name==="Component"&&(n[0]=r.id)})}),this.netList=t,t}wire(t,e,n="F.Cu"){if(t.length===0)return;const r={type:"wire",shape:[t],thickness:e};this.addShape(n,r)}}const u0={0:{width:.5,d:"M0.25 0.11L0.25 0.11Q0.44 0.11 0.44 0.48L0.44 0.48Q0.44 0.85 0.25 0.85L0.25 0.85Q0.06 0.85 0.06 0.48L0.06 0.48Q0.06 0.11 0.25 0.11ZM0.15 0.65L0.15 0.65L0.33 0.25Q0.30 0.18 0.25 0.18L0.25 0.18Q0.14 0.18 0.14 0.48L0.14 0.48Q0.14 0.58 0.15 0.65ZM0.35 0.31L0.17 0.71Q0.20 0.78 0.25 0.78L0.25 0.78Q0.36 0.78 0.36 0.48L0.36 0.48Q0.36 0.38 0.35 0.31L0.35 0.31Z"},1:{width:.5,d:"M0.31 0.83L0.22 0.83L0.22 0.23Q0.19 0.26 0.12 0.28L0.12 0.28L0.12 0.20Q0.20 0.18 0.24 0.13L0.24 0.13L0.31 0.13L0.31 0.83Z"},2:{width:.5,d:"M0.45 0.75L0.45 0.83L0.04 0.83Q0.07 0.64 0.24 0.50L0.24 0.50Q0.31 0.44 0.33 0.41L0.33 0.41Q0.36 0.36 0.36 0.30L0.36 0.30Q0.36 0.25 0.34 0.22L0.34 0.22Q0.31 0.18 0.25 0.18L0.25 0.18Q0.14 0.18 0.13 0.35L0.13 0.35L0.05 0.35Q0.06 0.25 0.10 0.19L0.10 0.19Q0.15 0.11 0.26 0.11L0.26 0.11Q0.33 0.11 0.38 0.15L0.38 0.15Q0.44 0.21 0.44 0.30L0.44 0.30Q0.44 0.43 0.29 0.54L0.29 0.54Q0.17 0.64 0.14 0.75L0.14 0.75L0.45 0.75Z"},3:{width:.5,d:"M0.17 0.49L0.17 0.42L0.22 0.42Q0.29 0.42 0.31 0.40L0.31 0.40Q0.36 0.37 0.36 0.30L0.36 0.30Q0.36 0.18 0.24 0.18L0.24 0.18Q0.15 0.18 0.13 0.28L0.13 0.28L0.05 0.28Q0.06 0.22 0.10 0.17L0.10 0.17Q0.15 0.11 0.24 0.11L0.24 0.11Q0.32 0.11 0.37 0.15L0.37 0.15Q0.43 0.21 0.43 0.30L0.43 0.30Q0.43 0.42 0.32 0.46L0.32 0.46Q0.46 0.51 0.46 0.64L0.46 0.64Q0.46 0.73 0.41 0.78L0.41 0.78Q0.35 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.09 0.78L0.09 0.78Q0.05 0.73 0.04 0.65L0.04 0.65L0.12 0.65Q0.13 0.78 0.25 0.78L0.25 0.78Q0.30 0.78 0.33 0.75L0.33 0.75Q0.38 0.71 0.38 0.64L0.38 0.64Q0.38 0.49 0.22 0.49L0.22 0.49L0.17 0.49Z"},4:{width:.5,d:"M0.02 0.59L0.31 0.13L0.39 0.13L0.39 0.59L0.48 0.59L0.48 0.66L0.39 0.66L0.39 0.83L0.32 0.83L0.32 0.66L0.02 0.66L0.02 0.59ZM0.32 0.59L0.32 0.24L0.10 0.59L0.32 0.59Z"},5:{width:.5,d:"M0.07 0.52L0.09 0.13L0.42 0.13L0.42 0.20L0.16 0.20L0.15 0.43Q0.20 0.37 0.27 0.37L0.27 0.37Q0.35 0.37 0.40 0.44L0.40 0.44Q0.45 0.51 0.45 0.60L0.45 0.60Q0.45 0.69 0.42 0.75L0.42 0.75Q0.37 0.85 0.25 0.85L0.25 0.85Q0.08 0.85 0.05 0.67L0.05 0.67L0.13 0.67Q0.15 0.78 0.25 0.78L0.25 0.78Q0.31 0.78 0.35 0.72L0.35 0.72Q0.38 0.68 0.38 0.60L0.38 0.60Q0.38 0.54 0.35 0.50L0.35 0.50Q0.32 0.44 0.26 0.44L0.26 0.44Q0.18 0.44 0.13 0.53L0.13 0.53L0.07 0.52Z"},6:{width:.5,d:"M0.44 0.28L0.36 0.28Q0.35 0.18 0.27 0.18L0.27 0.18Q0.20 0.18 0.16 0.26L0.16 0.26Q0.13 0.34 0.12 0.48L0.12 0.48Q0.18 0.39 0.27 0.39L0.27 0.39Q0.34 0.39 0.39 0.45L0.39 0.45Q0.45 0.51 0.45 0.61L0.45 0.61Q0.45 0.70 0.41 0.76L0.41 0.76Q0.36 0.85 0.26 0.85L0.26 0.85Q0.16 0.85 0.11 0.76L0.11 0.76Q0.05 0.67 0.05 0.51L0.05 0.51Q0.05 0.33 0.10 0.23L0.10 0.23Q0.16 0.11 0.27 0.11L0.27 0.11Q0.41 0.11 0.44 0.28L0.44 0.28ZM0.26 0.46L0.26 0.46Q0.20 0.46 0.16 0.51L0.16 0.51Q0.14 0.55 0.14 0.62L0.14 0.62Q0.14 0.67 0.16 0.71L0.16 0.71Q0.19 0.78 0.26 0.78L0.26 0.78Q0.31 0.78 0.35 0.73L0.35 0.73Q0.38 0.69 0.38 0.61L0.38 0.61Q0.38 0.55 0.35 0.51L0.35 0.51Q0.32 0.46 0.26 0.46Z"},7:{width:.5,d:"M0.05 0.21L0.05 0.13L0.45 0.13L0.45 0.19Q0.31 0.53 0.24 0.83L0.24 0.83L0.15 0.83Q0.22 0.56 0.36 0.21L0.36 0.21L0.05 0.21Z"},8:{width:.5,d:"M0.16 0.45L0.16 0.45Q0.06 0.40 0.06 0.29L0.06 0.29Q0.06 0.24 0.09 0.20L0.09 0.20Q0.14 0.11 0.25 0.11L0.25 0.11Q0.30 0.11 0.35 0.14L0.35 0.14Q0.44 0.19 0.44 0.29L0.44 0.29Q0.44 0.40 0.34 0.45L0.34 0.45Q0.47 0.50 0.47 0.64L0.47 0.64Q0.47 0.72 0.42 0.77L0.42 0.77Q0.36 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.10 0.79L0.10 0.79Q0.04 0.74 0.04 0.64L0.04 0.64Q0.04 0.50 0.16 0.45ZM0.25 0.17L0.25 0.17Q0.20 0.17 0.17 0.21L0.17 0.21Q0.14 0.24 0.14 0.29L0.14 0.29Q0.14 0.33 0.15 0.35L0.15 0.35Q0.18 0.42 0.25 0.42L0.25 0.42Q0.29 0.42 0.32 0.39L0.32 0.39Q0.36 0.36 0.36 0.29L0.36 0.29Q0.36 0.23 0.32 0.20L0.32 0.20Q0.29 0.17 0.25 0.17ZM0.25 0.49L0.25 0.49Q0.18 0.49 0.15 0.54L0.15 0.54Q0.11 0.58 0.11 0.64L0.11 0.64Q0.11 0.70 0.14 0.74L0.14 0.74Q0.18 0.78 0.25 0.78L0.25 0.78Q0.32 0.78 0.36 0.74L0.36 0.74Q0.39 0.70 0.39 0.64L0.39 0.64Q0.39 0.56 0.34 0.52L0.34 0.52Q0.30 0.49 0.25 0.49Z"},9:{width:.5,d:"M0.06 0.67L0.14 0.67Q0.15 0.78 0.25 0.78L0.25 0.78Q0.38 0.78 0.38 0.49L0.38 0.49Q0.32 0.57 0.24 0.57L0.24 0.57Q0.13 0.57 0.08 0.48L0.08 0.48Q0.05 0.42 0.05 0.35L0.05 0.35Q0.05 0.25 0.10 0.18L0.10 0.18Q0.16 0.11 0.25 0.11L0.25 0.11Q0.45 0.11 0.45 0.46L0.45 0.46Q0.45 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.10 0.77L0.10 0.77Q0.07 0.73 0.06 0.67L0.06 0.67ZM0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.34L0.13 0.34Q0.13 0.41 0.15 0.45L0.15 0.45Q0.18 0.51 0.25 0.51L0.25 0.51Q0.29 0.51 0.32 0.47L0.32 0.47Q0.37 0.42 0.37 0.34L0.37 0.34Q0.37 0.27 0.33 0.22L0.33 0.22Q0.30 0.18 0.25 0.18Z"}," ":{width:.5,d:""},"!":{width:.5,d:"M0.21 0.69L0.19 0.09L0.31 0.09L0.29 0.69L0.21 0.69ZM0.19 0.90L0.19 0.78L0.31 0.78L0.31 0.90L0.19 0.90Z"},'"':{width:.5,d:"M0.08 0.16L0.08 0.04L0.20 0.04L0.20 0.11Q0.20 0.23 0.11 0.31L0.11 0.31L0.05 0.31Q0.12 0.25 0.13 0.16L0.13 0.16L0.08 0.16ZM0.28 0.16L0.28 0.04L0.40 0.04L0.40 0.11Q0.40 0.23 0.31 0.31L0.31 0.31L0.25 0.31Q0.32 0.25 0.33 0.16L0.33 0.16L0.28 0.16Z"},"#":{width:.5,d:"M0.15 0.28L0.17 0.08L0.23 0.08L0.21 0.28L0.32 0.28L0.34 0.08L0.41 0.08L0.39 0.28L0.46 0.28L0.46 0.35L0.38 0.35L0.35 0.65L0.42 0.65L0.42 0.72L0.35 0.72L0.33 0.92L0.26 0.92L0.28 0.72L0.17 0.72L0.15 0.92L0.09 0.92L0.11 0.72L0.04 0.72L0.04 0.65L0.11 0.65L0.14 0.35L0.07 0.35L0.07 0.28L0.15 0.28ZM0.32 0.35L0.21 0.35L0.18 0.65L0.29 0.65L0.32 0.35Z"},$:{width:.5,d:"M0.22 0.11L0.22 0.05L0.28 0.05L0.28 0.11Q0.41 0.14 0.43 0.30L0.43 0.30L0.35 0.30Q0.35 0.21 0.28 0.18L0.28 0.18L0.28 0.44L0.30 0.45Q0.38 0.50 0.41 0.53L0.41 0.53Q0.46 0.59 0.46 0.65L0.46 0.65Q0.46 0.81 0.28 0.83L0.28 0.83L0.28 0.92L0.22 0.92L0.22 0.83Q0.05 0.81 0.04 0.61L0.04 0.61L0.12 0.61Q0.12 0.74 0.22 0.77L0.22 0.77L0.22 0.48Q0.06 0.40 0.06 0.29L0.06 0.29Q0.06 0.19 0.13 0.14L0.13 0.14Q0.17 0.12 0.22 0.11L0.22 0.11ZM0.28 0.51L0.28 0.51L0.28 0.77Q0.38 0.75 0.38 0.65L0.38 0.65Q0.38 0.58 0.28 0.51ZM0.22 0.41L0.22 0.18Q0.13 0.19 0.13 0.28L0.13 0.28Q0.13 0.35 0.22 0.41L0.22 0.41Z"},"%":{width:.5,d:"M0.02 0.95L0.42 0.05L0.48 0.05L0.08 0.95L0.02 0.95ZM0.14 0.08L0.14 0.08Q0.19 0.08 0.22 0.13L0.22 0.13Q0.25 0.18 0.25 0.28L0.25 0.28Q0.25 0.36 0.22 0.42L0.22 0.42Q0.19 0.48 0.14 0.48L0.14 0.48Q0.09 0.48 0.06 0.43L0.06 0.43Q0.03 0.37 0.03 0.28L0.03 0.28Q0.03 0.19 0.05 0.13L0.05 0.13Q0.08 0.08 0.14 0.08ZM0.14 0.13L0.14 0.13Q0.09 0.13 0.09 0.28L0.09 0.28Q0.09 0.42 0.14 0.42L0.14 0.42Q0.19 0.42 0.19 0.28L0.19 0.28Q0.19 0.13 0.14 0.13ZM0.36 0.52L0.36 0.52Q0.41 0.52 0.44 0.57L0.44 0.57Q0.47 0.63 0.47 0.72L0.47 0.72Q0.47 0.81 0.45 0.86L0.45 0.86Q0.42 0.92 0.36 0.92L0.36 0.92Q0.31 0.92 0.28 0.87L0.28 0.87Q0.25 0.82 0.25 0.72L0.25 0.72Q0.25 0.63 0.28 0.58L0.28 0.58Q0.31 0.52 0.36 0.52ZM0.36 0.58L0.36 0.58Q0.31 0.58 0.31 0.72L0.31 0.72Q0.31 0.87 0.36 0.87L0.36 0.87Q0.41 0.87 0.41 0.72L0.41 0.72Q0.41 0.58 0.36 0.58Z"},"&":{width:.5,d:"M0.48 0.83L0.40 0.83L0.36 0.78Q0.30 0.85 0.22 0.85L0.22 0.85Q0.14 0.85 0.09 0.79L0.09 0.79Q0.04 0.74 0.04 0.65L0.04 0.65Q0.04 0.54 0.16 0.44L0.16 0.44L0.15 0.43Q0.09 0.34 0.09 0.26L0.09 0.26Q0.09 0.19 0.13 0.15L0.13 0.15Q0.17 0.11 0.24 0.11L0.24 0.11Q0.31 0.11 0.35 0.16L0.35 0.16Q0.39 0.20 0.39 0.27L0.39 0.27Q0.39 0.34 0.34 0.39L0.34 0.39Q0.31 0.42 0.26 0.45L0.26 0.45L0.25 0.46L0.36 0.65Q0.38 0.58 0.39 0.49L0.39 0.49L0.46 0.49Q0.45 0.63 0.41 0.71L0.41 0.71L0.48 0.83ZM0.33 0.72L0.19 0.50Q0.12 0.57 0.12 0.65L0.12 0.65Q0.12 0.78 0.22 0.78L0.22 0.78Q0.28 0.78 0.33 0.72L0.33 0.72ZM0.21 0.40L0.21 0.41L0.24 0.39Q0.32 0.34 0.32 0.27L0.32 0.27Q0.32 0.17 0.25 0.17L0.25 0.17Q0.16 0.17 0.16 0.27L0.16 0.27Q0.16 0.32 0.21 0.40L0.21 0.40Z"},"'":{width:.5,d:"M0.08 0.16L0.08 0.04L0.20 0.04L0.20 0.11Q0.20 0.23 0.11 0.31L0.11 0.31L0.05 0.31Q0.12 0.25 0.13 0.16L0.13 0.16L0.08 0.16Z"},"(":{width:.5,d:"M0.42 0.95L0.35 0.95Q0.16 0.76 0.16 0.50L0.16 0.50Q0.16 0.24 0.35 0.05L0.35 0.05L0.42 0.05Q0.23 0.24 0.23 0.50L0.23 0.50Q0.23 0.76 0.42 0.95L0.42 0.95Z"},")":{width:.5,d:"M0.15 0.95L0.08 0.95Q0.27 0.76 0.27 0.50L0.27 0.50Q0.27 0.24 0.08 0.05L0.08 0.05L0.15 0.05Q0.34 0.24 0.34 0.50L0.34 0.50Q0.34 0.76 0.15 0.95L0.15 0.95Z"},"*":{width:.5,d:"M0.12 0.35L0.24 0.48L0.21 0.31Q0.21 0.30 0.21 0.29L0.21 0.29Q0.21 0.25 0.25 0.25L0.25 0.25Q0.29 0.25 0.29 0.29L0.29 0.29Q0.29 0.31 0.29 0.31L0.29 0.31L0.26 0.48L0.38 0.35Q0.40 0.33 0.42 0.33L0.42 0.33Q0.43 0.33 0.45 0.35L0.45 0.35Q0.46 0.37 0.46 0.38L0.46 0.38Q0.46 0.41 0.43 0.42L0.43 0.42L0.28 0.50L0.43 0.58Q0.46 0.59 0.46 0.62L0.46 0.62Q0.46 0.63 0.45 0.64L0.45 0.64Q0.44 0.67 0.42 0.67L0.42 0.67Q0.40 0.67 0.38 0.65L0.38 0.65L0.26 0.52L0.29 0.69Q0.29 0.69 0.29 0.71L0.29 0.71Q0.29 0.75 0.25 0.75L0.25 0.75Q0.21 0.75 0.21 0.71L0.21 0.71Q0.21 0.70 0.21 0.69L0.21 0.69L0.24 0.52L0.12 0.65Q0.10 0.67 0.08 0.67L0.08 0.67Q0.06 0.67 0.05 0.65L0.05 0.65Q0.04 0.63 0.04 0.62L0.04 0.62Q0.04 0.59 0.07 0.58L0.07 0.58L0.22 0.50L0.07 0.42Q0.04 0.41 0.04 0.38L0.04 0.38Q0.04 0.37 0.05 0.35L0.05 0.35Q0.06 0.33 0.08 0.33L0.08 0.33Q0.10 0.33 0.12 0.35L0.12 0.35Z"},"+":{width:.5,d:"M0.22 0.47L0.22 0.20L0.28 0.20L0.28 0.47L0.45 0.47L0.45 0.53L0.28 0.53L0.28 0.80L0.22 0.80L0.22 0.53L0.05 0.53L0.05 0.47L0.22 0.47Z"},",":{width:.5,d:"M0.11 0.71L0.23 0.71Q0.20 0.86 0.12 1.00L0.12 1.00L0.06 0.98Q0.10 0.85 0.11 0.71L0.11 0.71Z"},"-":{width:.5,d:"M0.05 0.54L0.05 0.46L0.45 0.46L0.45 0.54L0.05 0.54Z"},".":{width:.5,d:"M0.09 0.88L0.09 0.75L0.23 0.75L0.23 0.88L0.09 0.88Z"},"/":{width:.5,d:"M0.03 0.92L0.43 0.06L0.47 0.08L0.07 0.94L0.03 0.92Z"},":":{width:.5,d:"M0.19 0.47L0.19 0.35L0.31 0.35L0.31 0.47L0.19 0.47ZM0.19 0.83L0.19 0.71L0.31 0.71L0.31 0.83L0.19 0.83Z"},";":{width:.5,d:"M0.19 0.47L0.19 0.35L0.31 0.35L0.31 0.47L0.19 0.47ZM0.20 0.71L0.30 0.71Q0.28 0.85 0.21 0.98L0.21 0.98L0.14 0.97Q0.19 0.85 0.20 0.71L0.20 0.71Z"},"<":{width:.5,d:"M0.03 0.50L0.45 0.09L0.45 0.18L0.12 0.50L0.45 0.82L0.45 0.91L0.03 0.50Z"},"=":{width:.5,d:"M0.05 0.44L0.05 0.37L0.45 0.37L0.45 0.44L0.05 0.44ZM0.05 0.63L0.05 0.56L0.45 0.56L0.45 0.63L0.05 0.63Z"},">":{width:.5,d:"M0.05 0.18L0.05 0.09L0.47 0.50L0.05 0.91L0.05 0.82L0.38 0.50L0.05 0.18Z"},"?":{width:.5,d:"M0.13 0.34L0.05 0.34L0.05 0.32Q0.05 0.22 0.10 0.15L0.10 0.15Q0.16 0.08 0.26 0.08L0.26 0.08Q0.34 0.08 0.40 0.13L0.40 0.13Q0.45 0.18 0.45 0.26L0.45 0.26Q0.45 0.35 0.35 0.45L0.35 0.45Q0.31 0.50 0.30 0.53L0.30 0.53Q0.28 0.57 0.28 0.66L0.28 0.66Q0.28 0.68 0.28 0.69L0.28 0.69L0.20 0.69Q0.20 0.57 0.22 0.52L0.22 0.52Q0.24 0.47 0.29 0.42L0.29 0.42Q0.37 0.33 0.37 0.26L0.37 0.26Q0.37 0.22 0.35 0.20L0.35 0.20Q0.32 0.15 0.26 0.15L0.26 0.15Q0.13 0.15 0.13 0.33L0.13 0.33Q0.13 0.33 0.13 0.34L0.13 0.34ZM0.19 0.90L0.19 0.78L0.30 0.78L0.30 0.90L0.19 0.90Z"},"@":{width:.5,d:"M0.32 0.32L0.33 0.30L0.37 0.30Q0.35 0.45 0.35 0.57L0.35 0.57Q0.35 0.64 0.37 0.64L0.37 0.64Q0.39 0.64 0.40 0.62L0.40 0.62Q0.42 0.56 0.42 0.45L0.42 0.45Q0.42 0.34 0.38 0.26L0.38 0.26Q0.34 0.17 0.25 0.17L0.25 0.17Q0.17 0.17 0.13 0.25L0.13 0.25Q0.08 0.34 0.08 0.50L0.08 0.50Q0.08 0.66 0.12 0.74L0.12 0.74Q0.17 0.83 0.25 0.83L0.25 0.83Q0.35 0.83 0.40 0.73L0.40 0.73L0.45 0.76Q0.38 0.89 0.25 0.89L0.25 0.89Q0.14 0.89 0.08 0.79L0.08 0.79Q0.02 0.69 0.02 0.50L0.02 0.50Q0.02 0.33 0.07 0.23L0.07 0.23Q0.13 0.11 0.25 0.11L0.25 0.11Q0.36 0.11 0.42 0.21L0.42 0.21Q0.48 0.30 0.48 0.45L0.48 0.45Q0.48 0.58 0.44 0.65L0.44 0.65Q0.41 0.70 0.36 0.70L0.36 0.70Q0.32 0.70 0.31 0.65L0.31 0.65Q0.27 0.71 0.22 0.71L0.22 0.71Q0.13 0.71 0.13 0.55L0.13 0.55Q0.13 0.43 0.17 0.35L0.17 0.35Q0.20 0.28 0.25 0.28L0.25 0.28Q0.29 0.28 0.32 0.32L0.32 0.32ZM0.26 0.34L0.26 0.34Q0.23 0.34 0.21 0.38L0.21 0.38Q0.19 0.44 0.19 0.55L0.19 0.55Q0.19 0.65 0.23 0.65L0.23 0.65Q0.26 0.65 0.28 0.60L0.28 0.60Q0.30 0.54 0.30 0.44L0.30 0.44Q0.30 0.34 0.26 0.34Z"},A:{width:.5,d:"M0.02 0.83L0.20 0.13L0.30 0.13L0.48 0.83L0.39 0.83L0.34 0.60L0.16 0.60L0.11 0.83L0.02 0.83ZM0.32 0.53L0.25 0.20L0.18 0.53L0.32 0.53Z"},B:{width:.5,d:"M0.07 0.83L0.07 0.13L0.24 0.13Q0.32 0.13 0.37 0.17L0.37 0.17Q0.43 0.21 0.43 0.30L0.43 0.30Q0.43 0.41 0.31 0.46L0.31 0.46Q0.45 0.50 0.45 0.64L0.45 0.64Q0.45 0.73 0.39 0.78L0.39 0.78Q0.34 0.83 0.25 0.83L0.25 0.83L0.07 0.83ZM0.24 0.20L0.15 0.20L0.15 0.43L0.23 0.43Q0.27 0.43 0.30 0.41L0.30 0.41Q0.35 0.38 0.35 0.31L0.35 0.31Q0.35 0.20 0.24 0.20L0.24 0.20ZM0.24 0.50L0.15 0.50L0.15 0.75L0.24 0.75Q0.37 0.75 0.37 0.63L0.37 0.63Q0.37 0.50 0.24 0.50L0.24 0.50Z"},C:{width:.5,d:"M0.37 0.60L0.45 0.60Q0.43 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.09 0.74L0.09 0.74Q0.05 0.65 0.05 0.48L0.05 0.48Q0.05 0.31 0.10 0.21L0.10 0.21Q0.15 0.11 0.25 0.11L0.25 0.11Q0.41 0.11 0.45 0.33L0.45 0.33L0.36 0.33Q0.34 0.18 0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.48L0.13 0.48Q0.13 0.77 0.25 0.77L0.25 0.77Q0.36 0.77 0.37 0.60L0.37 0.60Z"},D:{width:.5,d:"M0.21 0.83L0.03 0.83L0.03 0.75L0.08 0.75L0.08 0.20L0.03 0.20L0.03 0.13L0.21 0.13Q0.33 0.13 0.39 0.21L0.39 0.21Q0.45 0.29 0.45 0.47L0.45 0.47Q0.45 0.65 0.40 0.73L0.40 0.73Q0.33 0.83 0.21 0.83L0.21 0.83ZM0.20 0.20L0.16 0.20L0.16 0.75L0.21 0.75Q0.37 0.75 0.37 0.47L0.37 0.47Q0.37 0.33 0.33 0.26L0.33 0.26Q0.28 0.20 0.20 0.20L0.20 0.20Z"},E:{width:.5,d:"M0.07 0.83L0.07 0.13L0.42 0.13L0.42 0.21L0.15 0.21L0.15 0.43L0.38 0.43L0.38 0.50L0.15 0.50L0.15 0.75L0.44 0.75L0.44 0.83L0.07 0.83Z"},F:{width:.5,d:"M0.07 0.83L0.07 0.13L0.42 0.13L0.42 0.21L0.15 0.21L0.15 0.43L0.39 0.43L0.39 0.50L0.15 0.50L0.15 0.83L0.07 0.83Z"},G:{width:.5,d:"M0.45 0.83L0.39 0.83L0.39 0.73Q0.33 0.85 0.24 0.85L0.24 0.85Q0.15 0.85 0.10 0.76L0.10 0.76Q0.05 0.66 0.05 0.48L0.05 0.48Q0.05 0.31 0.10 0.21L0.10 0.21Q0.15 0.11 0.25 0.11L0.25 0.11Q0.41 0.11 0.45 0.33L0.45 0.33L0.36 0.33Q0.34 0.18 0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.48L0.13 0.48Q0.13 0.77 0.25 0.77L0.25 0.77Q0.36 0.77 0.38 0.57L0.38 0.57L0.27 0.57L0.27 0.50L0.45 0.50L0.45 0.83Z"},H:{width:.5,d:"M0.06 0.83L0.06 0.13L0.14 0.13L0.14 0.43L0.36 0.43L0.36 0.13L0.44 0.13L0.44 0.83L0.36 0.83L0.36 0.50L0.14 0.50L0.14 0.83L0.06 0.83Z"},I:{width:.5,d:"M0.39 0.20L0.29 0.20L0.29 0.75L0.39 0.75L0.39 0.83L0.11 0.83L0.11 0.75L0.21 0.75L0.21 0.20L0.11 0.20L0.11 0.13L0.39 0.13L0.39 0.20Z"},J:{width:.5,d:"M0.32 0.65L0.32 0.13L0.40 0.13L0.40 0.65Q0.40 0.85 0.23 0.85L0.23 0.85Q0.05 0.85 0.04 0.64L0.04 0.64L0.13 0.64Q0.13 0.77 0.23 0.77L0.23 0.77Q0.32 0.77 0.32 0.65L0.32 0.65Z"},K:{width:.5,d:"M0.06 0.83L0.06 0.13L0.14 0.13L0.14 0.46L0.34 0.13L0.44 0.13L0.27 0.40L0.47 0.83L0.37 0.83L0.22 0.46L0.14 0.59L0.14 0.83L0.06 0.83Z"},L:{width:.5,d:"M0.07 0.83L0.07 0.13L0.15 0.13L0.15 0.75L0.45 0.75L0.45 0.83L0.07 0.83Z"},M:{width:.5,d:"M0.05 0.83L0.05 0.13L0.15 0.13L0.25 0.70L0.35 0.13L0.45 0.13L0.45 0.83L0.38 0.83L0.38 0.29L0.29 0.83L0.21 0.83L0.12 0.29L0.12 0.83L0.05 0.83Z"},N:{width:.5,d:"M0.06 0.83L0.06 0.13L0.16 0.13L0.36 0.69L0.36 0.13L0.44 0.13L0.44 0.83L0.35 0.83L0.14 0.25L0.14 0.83L0.06 0.83Z"},O:{width:.5,d:"M0.25 0.11L0.25 0.11Q0.34 0.11 0.40 0.20L0.40 0.20Q0.45 0.30 0.45 0.48L0.45 0.48Q0.45 0.65 0.40 0.75L0.40 0.75Q0.35 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.10 0.75L0.10 0.75Q0.05 0.65 0.05 0.48L0.05 0.48Q0.05 0.30 0.11 0.19L0.11 0.19Q0.16 0.11 0.25 0.11ZM0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.48L0.13 0.48Q0.13 0.78 0.25 0.78L0.25 0.78Q0.37 0.78 0.37 0.48L0.37 0.48Q0.37 0.18 0.25 0.18Z"},P:{width:.5,d:"M0.07 0.83L0.07 0.13L0.25 0.13Q0.33 0.13 0.39 0.17L0.39 0.17Q0.46 0.22 0.46 0.33L0.46 0.33Q0.46 0.45 0.36 0.50L0.36 0.50Q0.31 0.53 0.25 0.53L0.25 0.53L0.15 0.53L0.15 0.83L0.07 0.83ZM0.24 0.21L0.15 0.21L0.15 0.45L0.24 0.45Q0.37 0.45 0.37 0.33L0.37 0.33Q0.37 0.25 0.31 0.22L0.31 0.22Q0.28 0.21 0.24 0.21L0.24 0.21Z"},Q:{width:.5,d:"M0.40 0.86L0.34 0.91Q0.33 0.87 0.31 0.83L0.31 0.83Q0.28 0.85 0.25 0.85L0.25 0.85Q0.15 0.85 0.10 0.75L0.10 0.75Q0.05 0.65 0.05 0.48L0.05 0.48Q0.05 0.30 0.10 0.20L0.10 0.20Q0.16 0.11 0.25 0.11L0.25 0.11Q0.34 0.11 0.40 0.20L0.40 0.20Q0.45 0.31 0.45 0.48L0.45 0.48Q0.45 0.69 0.37 0.79L0.37 0.79Q0.40 0.85 0.40 0.86L0.40 0.86ZM0.22 0.65L0.27 0.61Q0.29 0.64 0.34 0.72L0.34 0.72Q0.37 0.65 0.37 0.48L0.37 0.48Q0.37 0.18 0.25 0.18L0.25 0.18Q0.13 0.18 0.13 0.48L0.13 0.48Q0.13 0.78 0.25 0.78L0.25 0.78Q0.27 0.78 0.29 0.77L0.29 0.77Q0.26 0.71 0.22 0.65L0.22 0.65Z"},R:{width:.5,d:"M0.07 0.83L0.07 0.13L0.24 0.13Q0.33 0.13 0.38 0.17L0.38 0.17Q0.45 0.22 0.45 0.31L0.45 0.31Q0.45 0.45 0.32 0.49L0.32 0.49L0.47 0.83L0.38 0.83L0.24 0.50L0.15 0.50L0.15 0.83L0.07 0.83ZM0.23 0.20L0.15 0.20L0.15 0.43L0.23 0.43Q0.28 0.43 0.31 0.41L0.31 0.41Q0.37 0.38 0.37 0.31L0.37 0.31Q0.37 0.20 0.23 0.20L0.23 0.20Z"},S:{width:.5,d:"M0.05 0.63L0.13 0.63Q0.14 0.78 0.26 0.78L0.26 0.78Q0.30 0.78 0.33 0.75L0.33 0.75Q0.37 0.72 0.37 0.67L0.37 0.67Q0.37 0.60 0.32 0.56L0.32 0.56Q0.29 0.53 0.20 0.48L0.20 0.48Q0.06 0.40 0.06 0.29L0.06 0.29Q0.06 0.22 0.11 0.17L0.11 0.17Q0.16 0.11 0.25 0.11L0.25 0.11Q0.42 0.11 0.44 0.31L0.44 0.31L0.36 0.31Q0.35 0.26 0.34 0.23L0.34 0.23Q0.31 0.18 0.25 0.18L0.25 0.18Q0.19 0.18 0.17 0.22L0.17 0.22Q0.15 0.25 0.15 0.28L0.15 0.28Q0.15 0.36 0.27 0.43L0.27 0.43Q0.35 0.48 0.40 0.52L0.40 0.52Q0.45 0.58 0.45 0.66L0.45 0.66Q0.45 0.74 0.40 0.79L0.40 0.79Q0.35 0.85 0.26 0.85L0.26 0.85Q0.15 0.85 0.09 0.77L0.09 0.77Q0.05 0.71 0.05 0.63L0.05 0.63Z"},T:{width:.5,d:"M0.04 0.21L0.04 0.13L0.46 0.13L0.46 0.21L0.29 0.21L0.29 0.83L0.21 0.83L0.21 0.21L0.04 0.21Z"},U:{width:.5,d:"M0.06 0.61L0.06 0.13L0.14 0.13L0.14 0.61Q0.14 0.77 0.25 0.77L0.25 0.77Q0.36 0.77 0.36 0.61L0.36 0.61L0.36 0.13L0.44 0.13L0.44 0.61Q0.44 0.72 0.40 0.78L0.40 0.78Q0.35 0.85 0.25 0.85L0.25 0.85Q0.06 0.85 0.06 0.61L0.06 0.61Z"},V:{width:.5,d:"M0.20 0.83L0.03 0.13L0.12 0.13L0.25 0.73L0.38 0.13L0.47 0.13L0.30 0.83L0.20 0.83Z"},W:{width:.5,d:"M0.10 0.83L0.02 0.13L0.10 0.13L0.14 0.66L0.21 0.13L0.29 0.13L0.36 0.66L0.40 0.13L0.48 0.13L0.40 0.83L0.32 0.83L0.25 0.27L0.18 0.83L0.10 0.83Z"},X:{width:.5,d:"M0.20 0.46L0.06 0.13L0.15 0.13L0.25 0.38L0.35 0.13L0.44 0.13L0.30 0.46L0.47 0.83L0.37 0.83L0.25 0.54L0.13 0.83L0.04 0.83L0.20 0.46Z"},Y:{width:.5,d:"M0.21 0.55L0.03 0.13L0.12 0.13L0.25 0.46L0.38 0.13L0.47 0.13L0.29 0.55L0.29 0.83L0.21 0.83L0.21 0.55Z"},Z:{width:.5,d:"M0.08 0.21L0.08 0.13L0.43 0.13L0.43 0.20L0.15 0.75L0.44 0.75L0.44 0.83L0.06 0.83L0.06 0.75L0.34 0.21L0.08 0.21Z"},"[":{width:.5,d:"M0.11 0.95L0.11 0.05L0.42 0.05L0.42 0.12L0.18 0.12L0.18 0.88L0.42 0.88L0.42 0.95L0.11 0.95Z"},"\\":{width:.5,d:"M0.20 0.42L0.02 0.13L0.11 0.13L0.25 0.37L0.39 0.13L0.47 0.13L0.30 0.42L0.45 0.42L0.45 0.48L0.29 0.48L0.29 0.57L0.45 0.57L0.45 0.64L0.29 0.64L0.29 0.83L0.21 0.83L0.21 0.64L0.05 0.64L0.05 0.57L0.21 0.57L0.21 0.48L0.05 0.48L0.05 0.42L0.20 0.42Z"},"]":{width:.5,d:"M0.08 0.12L0.08 0.05L0.39 0.05L0.39 0.95L0.08 0.95L0.08 0.88L0.32 0.88L0.32 0.12L0.08 0.12Z"},"^":{width:.5,d:"M0.07 0.24L0.20 0.12L0.30 0.12L0.43 0.24L0.36 0.24L0.25 0.16L0.14 0.24L0.07 0.24Z"},_:{width:.5,d:"M0 1L0 0.98L0.50 0.98L0.50 1L0 1Z"},"`":{width:.5,d:"M0.28 0.24L0.12 0.12L0.24 0.12L0.36 0.24L0.28 0.24Z"},a:{width:.5,d:"M0.15 0.49L0.07 0.49Q0.09 0.33 0.25 0.33L0.25 0.33Q0.41 0.33 0.41 0.51L0.41 0.51L0.41 0.75Q0.41 0.78 0.44 0.78L0.44 0.78Q0.45 0.78 0.46 0.77L0.46 0.77L0.46 0.84Q0.44 0.85 0.42 0.85L0.42 0.85Q0.35 0.85 0.34 0.77L0.34 0.77Q0.27 0.85 0.19 0.85L0.19 0.85Q0.14 0.85 0.10 0.82L0.10 0.82Q0.06 0.78 0.06 0.71L0.06 0.71Q0.06 0.55 0.34 0.53L0.34 0.53L0.34 0.51Q0.34 0.40 0.25 0.40L0.25 0.40Q0.16 0.40 0.15 0.49L0.15 0.49ZM0.34 0.66L0.34 0.59Q0.13 0.60 0.13 0.71L0.13 0.71Q0.13 0.78 0.20 0.78L0.20 0.78Q0.25 0.78 0.30 0.74L0.30 0.74Q0.34 0.71 0.34 0.66L0.34 0.66Z"},b:{width:.5,d:"M0.07 0.83L0.07 0.13L0.15 0.13L0.15 0.41Q0.21 0.33 0.28 0.33L0.28 0.33Q0.35 0.33 0.40 0.40L0.40 0.40Q0.45 0.47 0.45 0.59L0.45 0.59Q0.45 0.67 0.42 0.73L0.42 0.73Q0.38 0.85 0.28 0.85L0.28 0.85Q0.20 0.85 0.15 0.77L0.15 0.77L0.13 0.83L0.07 0.83ZM0.26 0.41L0.26 0.41Q0.21 0.41 0.17 0.46L0.17 0.46Q0.15 0.51 0.15 0.59L0.15 0.59Q0.15 0.67 0.17 0.72L0.17 0.72Q0.21 0.78 0.26 0.78L0.26 0.78Q0.31 0.78 0.34 0.73L0.34 0.73Q0.37 0.68 0.37 0.59L0.37 0.59Q0.37 0.50 0.34 0.45L0.34 0.45Q0.31 0.41 0.26 0.41Z"},c:{width:.5,d:"M0.36 0.67L0.44 0.67Q0.40 0.85 0.25 0.85L0.25 0.85Q0.16 0.85 0.11 0.77L0.11 0.77Q0.06 0.71 0.06 0.59L0.06 0.59Q0.06 0.48 0.10 0.42L0.10 0.42Q0.16 0.33 0.25 0.33L0.25 0.33Q0.39 0.33 0.43 0.50L0.43 0.50L0.35 0.50Q0.33 0.40 0.25 0.40L0.25 0.40Q0.20 0.40 0.17 0.45L0.17 0.45Q0.14 0.50 0.14 0.59L0.14 0.59Q0.14 0.67 0.16 0.71L0.16 0.71Q0.19 0.78 0.25 0.78L0.25 0.78Q0.34 0.78 0.36 0.67L0.36 0.67Z"},d:{width:.5,d:"M0.35 0.41L0.35 0.13L0.43 0.13L0.43 0.83L0.37 0.83L0.35 0.77Q0.30 0.85 0.22 0.85L0.22 0.85Q0.14 0.85 0.10 0.78L0.10 0.78Q0.05 0.70 0.05 0.59L0.05 0.59Q0.05 0.49 0.09 0.42L0.09 0.42Q0.13 0.33 0.22 0.33L0.22 0.33Q0.29 0.33 0.35 0.41L0.35 0.41ZM0.24 0.41L0.24 0.41Q0.19 0.41 0.15 0.46L0.15 0.46Q0.13 0.51 0.13 0.59L0.13 0.59Q0.13 0.67 0.15 0.72L0.15 0.72Q0.18 0.78 0.24 0.78L0.24 0.78Q0.29 0.78 0.32 0.73L0.32 0.73Q0.35 0.68 0.35 0.59L0.35 0.59Q0.35 0.51 0.33 0.47L0.33 0.47Q0.30 0.41 0.24 0.41Z"},e:{width:.5,d:"M0.36 0.68L0.44 0.68Q0.40 0.85 0.25 0.85L0.25 0.85Q0.16 0.85 0.11 0.77L0.11 0.77Q0.06 0.70 0.06 0.59L0.06 0.59Q0.06 0.48 0.10 0.42L0.10 0.42Q0.16 0.33 0.25 0.33L0.25 0.33Q0.43 0.33 0.44 0.61L0.44 0.61L0.14 0.61Q0.14 0.78 0.25 0.78L0.25 0.78Q0.34 0.78 0.36 0.68L0.36 0.68ZM0.14 0.54L0.36 0.54Q0.35 0.40 0.25 0.40L0.25 0.40Q0.16 0.40 0.14 0.54L0.14 0.54Z"},f:{width:.5,d:"M0.08 0.35L0.20 0.35L0.20 0.23Q0.20 0.13 0.30 0.13L0.30 0.13L0.41 0.13L0.41 0.20L0.32 0.20Q0.28 0.20 0.28 0.24L0.28 0.24L0.28 0.35L0.41 0.35L0.41 0.42L0.28 0.42L0.28 0.83L0.20 0.83L0.20 0.42L0.08 0.42L0.08 0.35Z"},g:{width:.5,d:"M0.38 0.35L0.43 0.35L0.43 0.77Q0.43 0.97 0.25 0.97L0.25 0.97Q0.09 0.97 0.06 0.82L0.06 0.82L0.14 0.82Q0.15 0.91 0.25 0.91L0.25 0.91Q0.36 0.91 0.36 0.78L0.36 0.78L0.36 0.70Q0.30 0.76 0.23 0.76L0.23 0.76Q0.15 0.76 0.10 0.70L0.10 0.70Q0.05 0.64 0.05 0.55L0.05 0.55Q0.05 0.49 0.07 0.44L0.07 0.44Q0.13 0.33 0.23 0.33L0.23 0.33Q0.31 0.33 0.36 0.40L0.36 0.40L0.38 0.35ZM0.24 0.40L0.24 0.40Q0.19 0.40 0.15 0.45L0.15 0.45Q0.13 0.49 0.13 0.55L0.13 0.55Q0.13 0.61 0.16 0.65L0.16 0.65Q0.19 0.69 0.24 0.69L0.24 0.69Q0.29 0.69 0.32 0.66L0.32 0.66Q0.36 0.62 0.36 0.55L0.36 0.55Q0.36 0.49 0.32 0.44L0.32 0.44Q0.29 0.40 0.24 0.40Z"},h:{width:.5,d:"M0.07 0.83L0.07 0.13L0.15 0.13L0.15 0.41Q0.22 0.33 0.29 0.33L0.29 0.33Q0.37 0.33 0.41 0.41L0.41 0.41Q0.43 0.45 0.43 0.50L0.43 0.50L0.43 0.83L0.36 0.83L0.36 0.53Q0.36 0.41 0.28 0.41L0.28 0.41Q0.23 0.41 0.19 0.44L0.19 0.44Q0.15 0.48 0.15 0.54L0.15 0.54L0.15 0.83L0.07 0.83Z"},i:{width:.5,d:"M0.21 0.22L0.21 0.13L0.29 0.13L0.29 0.22L0.21 0.22ZM0.21 0.83L0.21 0.35L0.29 0.35L0.29 0.83L0.21 0.83Z"},j:{width:.5,d:"M0.23 0.22L0.23 0.13L0.32 0.13L0.32 0.22L0.23 0.22ZM0.23 0.86L0.23 0.35L0.31 0.35L0.31 0.87Q0.31 0.97 0.21 0.97L0.21 0.97Q0.17 0.97 0.10 0.96L0.10 0.96L0.10 0.89Q0.14 0.90 0.19 0.90L0.19 0.90Q0.23 0.90 0.23 0.86L0.23 0.86Z"},k:{width:.5,d:"M0.08 0.83L0.08 0.13L0.15 0.13L0.15 0.56L0.33 0.35L0.42 0.35L0.27 0.52L0.46 0.83L0.37 0.83L0.22 0.58L0.15 0.65L0.15 0.83L0.08 0.83Z"},l:{width:.5,d:"M0.29 0.13L0.29 0.72Q0.29 0.76 0.33 0.76L0.33 0.76Q0.36 0.76 0.40 0.75L0.40 0.75L0.40 0.83Q0.34 0.84 0.32 0.84L0.32 0.84Q0.21 0.84 0.21 0.73L0.21 0.73L0.21 0.13L0.29 0.13Z"},m:{width:.5,d:"M0.05 0.35L0.10 0.35L0.11 0.39Q0.15 0.33 0.20 0.33L0.20 0.33Q0.25 0.33 0.27 0.39L0.27 0.39Q0.31 0.33 0.37 0.33L0.37 0.33Q0.45 0.33 0.45 0.46L0.45 0.46L0.45 0.83L0.38 0.83L0.38 0.47Q0.38 0.40 0.35 0.40L0.35 0.40Q0.32 0.40 0.30 0.43L0.30 0.43Q0.28 0.46 0.28 0.48L0.28 0.48L0.28 0.83L0.21 0.83L0.21 0.47Q0.21 0.40 0.18 0.40L0.18 0.40Q0.12 0.40 0.12 0.48L0.12 0.48L0.12 0.83L0.05 0.83L0.05 0.35Z"},n:{width:.5,d:"M0.07 0.35L0.13 0.35L0.14 0.42Q0.22 0.33 0.29 0.33L0.29 0.33Q0.37 0.33 0.41 0.41L0.41 0.41Q0.43 0.45 0.43 0.50L0.43 0.50L0.43 0.83L0.36 0.83L0.36 0.53Q0.36 0.41 0.28 0.41L0.28 0.41Q0.23 0.41 0.19 0.44L0.19 0.44Q0.15 0.48 0.15 0.54L0.15 0.54L0.15 0.83L0.07 0.83L0.07 0.35Z"},o:{width:.5,d:"M0.25 0.33L0.25 0.33Q0.34 0.33 0.40 0.42L0.40 0.42Q0.44 0.48 0.44 0.59L0.44 0.59Q0.44 0.67 0.41 0.73L0.41 0.73Q0.36 0.85 0.25 0.85L0.25 0.85Q0.16 0.85 0.11 0.77L0.11 0.77Q0.06 0.71 0.06 0.59L0.06 0.59Q0.06 0.47 0.12 0.40L0.12 0.40Q0.17 0.33 0.25 0.33ZM0.25 0.40L0.25 0.40Q0.20 0.40 0.17 0.46L0.17 0.46Q0.14 0.51 0.14 0.59L0.14 0.59Q0.14 0.67 0.16 0.71L0.16 0.71Q0.19 0.78 0.25 0.78L0.25 0.78Q0.30 0.78 0.33 0.72L0.33 0.72Q0.36 0.67 0.36 0.59L0.36 0.59Q0.36 0.51 0.33 0.46L0.33 0.46Q0.30 0.40 0.25 0.40Z"},p:{width:.5,d:"M0.07 0.35L0.13 0.35L0.14 0.42Q0.21 0.33 0.28 0.33L0.28 0.33Q0.35 0.33 0.40 0.40L0.40 0.40Q0.45 0.47 0.45 0.58L0.45 0.58Q0.45 0.68 0.41 0.75L0.41 0.75Q0.36 0.84 0.28 0.84L0.28 0.84Q0.21 0.84 0.15 0.77L0.15 0.77L0.15 0.97L0.07 0.97L0.07 0.35ZM0.26 0.41L0.26 0.41Q0.21 0.41 0.18 0.45L0.18 0.45Q0.15 0.50 0.15 0.58L0.15 0.58Q0.15 0.65 0.17 0.70L0.17 0.70Q0.20 0.76 0.26 0.76L0.26 0.76Q0.31 0.76 0.34 0.72L0.34 0.72Q0.37 0.67 0.37 0.58L0.37 0.58Q0.37 0.50 0.34 0.46L0.34 0.46Q0.31 0.41 0.26 0.41Z"},q:{width:.5,d:"M0.43 0.97L0.35 0.97L0.35 0.77Q0.29 0.84 0.22 0.84L0.22 0.84Q0.15 0.84 0.10 0.77L0.10 0.77Q0.05 0.70 0.05 0.58L0.05 0.58Q0.05 0.49 0.09 0.42L0.09 0.42Q0.13 0.33 0.22 0.33L0.22 0.33Q0.29 0.33 0.36 0.42L0.36 0.42L0.37 0.35L0.43 0.35L0.43 0.97ZM0.24 0.41L0.24 0.41Q0.18 0.41 0.16 0.46L0.16 0.46Q0.13 0.51 0.13 0.58L0.13 0.58Q0.13 0.76 0.24 0.76L0.24 0.76Q0.29 0.76 0.33 0.70L0.33 0.70Q0.35 0.66 0.35 0.58L0.35 0.58Q0.35 0.49 0.31 0.44L0.31 0.44Q0.28 0.41 0.24 0.41Z"},r:{width:.5,d:"M0.15 0.35L0.22 0.35L0.22 0.45Q0.31 0.36 0.41 0.33L0.41 0.33L0.41 0.42Q0.29 0.45 0.22 0.54L0.22 0.54L0.22 0.83L0.15 0.83L0.15 0.35Z"},s:{width:.5,d:"M0.06 0.68L0.14 0.68Q0.15 0.78 0.26 0.78L0.26 0.78Q0.36 0.78 0.36 0.71L0.36 0.71Q0.36 0.67 0.34 0.65L0.34 0.65Q0.31 0.63 0.25 0.61L0.25 0.61L0.23 0.60Q0.16 0.58 0.13 0.55L0.13 0.55Q0.08 0.52 0.08 0.47L0.08 0.47Q0.08 0.40 0.13 0.37L0.13 0.37Q0.18 0.33 0.25 0.33L0.25 0.33Q0.40 0.33 0.42 0.47L0.42 0.47L0.34 0.47Q0.33 0.40 0.25 0.40L0.25 0.40Q0.15 0.40 0.15 0.46L0.15 0.46Q0.15 0.51 0.28 0.55L0.28 0.55Q0.35 0.57 0.38 0.60L0.38 0.60Q0.44 0.64 0.44 0.71L0.44 0.71Q0.44 0.77 0.38 0.81L0.38 0.81Q0.33 0.85 0.25 0.85L0.25 0.85Q0.08 0.85 0.06 0.68L0.06 0.68Z"},t:{width:.5,d:"M0.19 0.35L0.19 0.23L0.27 0.23L0.27 0.35L0.39 0.35L0.39 0.43L0.27 0.43L0.27 0.73Q0.27 0.76 0.31 0.76L0.31 0.76Q0.35 0.76 0.40 0.75L0.40 0.75L0.40 0.83Q0.34 0.84 0.29 0.84L0.29 0.84Q0.19 0.84 0.19 0.74L0.19 0.74L0.19 0.43L0.10 0.43L0.10 0.35L0.19 0.35Z"},u:{width:.5,d:"M0.07 0.68L0.07 0.35L0.15 0.35L0.15 0.68Q0.15 0.78 0.23 0.78L0.23 0.78Q0.28 0.78 0.32 0.74L0.32 0.74Q0.36 0.71 0.36 0.65L0.36 0.65L0.36 0.35L0.43 0.35L0.43 0.83L0.38 0.83L0.36 0.77Q0.30 0.85 0.21 0.85L0.21 0.85Q0.14 0.85 0.10 0.79L0.10 0.79Q0.07 0.75 0.07 0.68L0.07 0.68Z"},v:{width:.5,d:"M0.21 0.83L0.05 0.35L0.13 0.35L0.25 0.74L0.36 0.35L0.45 0.35L0.29 0.83L0.21 0.83Z"},w:{width:.5,d:"M0.10 0.83L0.03 0.35L0.10 0.35L0.14 0.72L0.21 0.35L0.29 0.35L0.36 0.72L0.40 0.35L0.47 0.35L0.40 0.83L0.32 0.83L0.25 0.46L0.18 0.83L0.10 0.83Z"},x:{width:.5,d:"M0.21 0.57L0.07 0.35L0.17 0.35L0.25 0.51L0.33 0.35L0.43 0.35L0.29 0.57L0.46 0.83L0.36 0.83L0.25 0.63L0.14 0.83L0.04 0.83L0.21 0.57Z"},y:{width:.5,d:"M0.23 0.79L0.06 0.35L0.15 0.35L0.26 0.69L0.37 0.35L0.46 0.35L0.26 0.90Q0.24 0.95 0.20 0.97L0.20 0.97Q0.19 0.97 0.09 0.97L0.09 0.97L0.09 0.90L0.13 0.90Q0.14 0.90 0.15 0.90L0.15 0.90Q0.18 0.90 0.19 0.87L0.19 0.87L0.23 0.79Z"},z:{width:.5,d:"M0.09 0.42L0.09 0.35L0.42 0.35L0.42 0.42L0.16 0.76L0.43 0.76L0.43 0.83L0.07 0.83L0.07 0.76L0.32 0.42L0.09 0.42Z"},"{":{width:.5,d:"M0.17 0.53L0.17 0.47Q0.25 0.46 0.25 0.35L0.25 0.35L0.25 0.20Q0.25 0.05 0.42 0.05L0.42 0.05L0.42 0.12Q0.32 0.12 0.32 0.20L0.32 0.20L0.32 0.34Q0.32 0.47 0.26 0.50L0.26 0.50Q0.32 0.53 0.32 0.66L0.32 0.66L0.32 0.80Q0.32 0.88 0.42 0.88L0.42 0.88L0.42 0.95Q0.25 0.95 0.25 0.80L0.25 0.80L0.25 0.65Q0.25 0.59 0.23 0.56L0.23 0.56Q0.21 0.54 0.17 0.53L0.17 0.53Z"},"|":{width:.5,d:"M0.21 1L0.21 0L0.29 0L0.29 1L0.21 1Z"},"}":{width:.5,d:"M0.08 0.95L0.08 0.88Q0.17 0.88 0.17 0.80L0.17 0.80L0.17 0.66Q0.17 0.53 0.24 0.50L0.24 0.50Q0.17 0.47 0.17 0.34L0.17 0.34L0.17 0.20Q0.17 0.12 0.08 0.12L0.08 0.12L0.08 0.05Q0.24 0.05 0.24 0.20L0.24 0.20L0.24 0.35Q0.24 0.46 0.33 0.47L0.33 0.47L0.33 0.53Q0.24 0.54 0.24 0.65L0.24 0.65L0.24 0.80Q0.24 0.95 0.08 0.95L0.08 0.95Z"},"~":{width:.5,d:"M0.08 0.21L0.08 0.16Q0.13 0.12 0.17 0.12L0.17 0.12Q0.21 0.12 0.26 0.15L0.26 0.15Q0.29 0.17 0.33 0.17L0.33 0.17Q0.37 0.17 0.42 0.14L0.42 0.14L0.42 0.19Q0.37 0.22 0.33 0.22L0.33 0.22Q0.30 0.22 0.24 0.20L0.24 0.20Q0.21 0.18 0.17 0.18L0.17 0.18Q0.13 0.18 0.08 0.21L0.08 0.21Z"}},Tc=.04;let c0=Tc;const Nu={};Rv(Tc);function Rv(i){for(const t in u0){const{width:e,d:n}=u0[t],r=lo([],n),o=i;hl(r,[o,-o],[0,0]),er(r,[0,i]),Nu[t]={width:e/1.3*o,d:r.length!==0?An(r):""}}}function ZL(i,t={}){const e=t.size??Tc;e!==c0&&Rv(e),c0=e;const n=t.layers??["F.Silkscreen"],r={};let o=0;return i.split("").forEach((s,a)=>{r[a]={pos:[o,0],shape:Nu[s].d,layers:n,index:a},o+=Number(Nu[s].width)}),r}const Th={shapes:[],limits:{x:[0,1],y:[0,1]},mm_per_unit:_r};function RL({shapes:i,limits:t,mm_per_unit:e}){i===void 0&&(i=Th.shapes),t===void 0&&(t=Th.limits),e===void 0&&(e=Th.mm_per_unit),Bt.shapes=i,Bt.limits=t,Bt.mm_per_unit=e}function WL(i){const t=An(i.shape),e=i.stroke??"black",n=i.fill??"none",r=i.strokeWidth??.03,o=i.strokeLinecap??"round",s=i.strokeLinejoin??"round";Bt.paths.push({d:t,stroke:e,fill:n,strokeWidth:r,strokeLinecap:o,strokeLinejoin:s})}const ea={pcb:null,layerColors:{"F.Cu":"#ff8c00cc"},limits:{x:[0,1],y:[0,1]},mm_per_unit:_r,background:"#00000000"},UL=i=>(...t)=>{let[[{pcb:e,layerColors:n,limits:r,mm_per_unit:o,background:s}],a]=t;e===void 0&&console.log("renderPCB must include pcb param"),n===void 0&&(n=ea.layerColors),r===void 0&&(r=ea.limits),o===void 0&&(o=ea.mm_per_unit),s===void 0&&(s=ea.background);const l=[];for(const f in n){const p=n[f];l.push({data:e.getLayer(f,i),color:p,groupId:f})}const u=zL(a),c=[];for(const f in e.layers){let p=jL(u,f);p=p??"#000000ff";const v=n[f]??p,S=f in n,m={color:v,visible:S,name:f};c.push(m)}c.sort((f,p)=>(f=f.name,p=p.name,u.indexOf(f)-u.indexOf(p))),Bt.pcb=e,Bt.layers=c.flat(),Bt.layersStaticInfo=a,Bt.shapes=l,Bt.limits=r,Bt.mm_per_unit=o,Bt.background=s},zL=i=>{const e=Bt.codemirror.view.state.doc.toString().slice(i.from,i.to),n=Ji.parse(e,{range:!0}),r=Wv(n,{type:"Identifier",name:"layerColors"}).getParent().value.range;return e.slice(...r)};function Wv(i,t,e=null){if(typeof i!="object"||i===null)return null;Object.defineProperty(i,"getParent",{value:function(){return e},enumerable:!1,writable:!1});let n=!0;for(const r in t)if(i[r]!==t[r]){n=!1;break}if(n)return i;for(const r in i){const o=Wv(i[r],t,i);if(o)return o}return null}function jL(i,t){const e=i.indexOf(t);if(e===-1)return null;const n=i.indexOf(":",e),r=i.indexOf(",",n),o=i.substring(n+1,r).trim();return o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):o}function qL(i){const t={};i.components.forEach(o=>{t[o.id]=JSON.parse(JSON.stringify(o.pads))});const e=i.getLayer("F.Cu",!0),n=sk(e[0]),r={};n.forEach((o,s)=>{for(const a in t){const l=t[a];for(const u in l){const c=l[u];ek(c,o)>0||(r[s]?r[s].push([a,u]):r[s]=[[a,u]])}}}),console.log(r)}const Ih=(i,t)=>[i[0]-t[0],i[1]-t[1]],VL=(i,t,e)=>Math.max(Math.min(i,Math.max(t,e)),Math.min(t,e)),GL=i=>Math.sqrt(i[0]**2+i[1]**2),f0=(i,t)=>i[0]*t[0]+i[1]*t[1],HL=(i,t)=>[i[0]*t,i[1]*t];function JL(i,t,e){const n=Ih(i,t),r=Ih(e,t),o=VL(f0(n,r)/f0(r,r),0,1),s=Ih(n,HL(r,o));return GL(s)}function KL(i,t){return 1e-6>Math.abs(i[0]-t[0])+Math.abs(i[1]-t[1])}function tk(i){return KL(i[0],i[i.length-1])}function ek(i,t){let e=999999999999,n=t.length,r=0;for(let o=0,s=1;s=t.xMin&&i.yMin<=t.yMax&&i.yMax>=t.yMin}function d0(i,t){let e=[[0,0],[i[1][0]-i[0][0],i[1][1]-i[0][1]]],n=[t[0]-i[0][0],t[1]-i[0][1]];return ik(e[1],n)<0}function p0(i,t){return d0(i,t[0])^d0(i,t[1])}function m0(i){let t=Math.min(i[0][0],i[1][0]),e=Math.max(i[0][0],i[1][0]),n=Math.min(i[0][1],i[1][1]),r=Math.max(i[0][1],i[1][1]);return{xMin:t,xMax:e,yMin:n,yMax:r}}function rk(i,t){let e=m0(i),n=m0(t);return nk(e,n)&&p0(i,t)&&p0(t,i)}function sk(i){return i.replace(/\s/g,"").split("M").filter(t=>t.length>0).map(t=>t.split("L").map(e=>e.split(",").map(Number)))}function ok(i){const t=[];for(const o in i){const s=i[o];if(!s.layers.includes("F.Cu"))continue;let a=[s.pos[0],s.pos[1]];s.origin!=null&&(a[0]=s.origin[0],a[1]=s.origin[1]),t.push(...er(lo([],s.shape),a))}const e=Z0(t),n=R0(t);xr(t,"cc");const r=Math.max(e,n);return er(t,xr(t,"cc"),[-25,-25]),hl(t,[40/r,40/r],xr(t,"cc")),t}class ak extends YL{constructor(...t){super(...t),Bt.idToName={}}add(...t){if(Array.isArray(t[0])){const[[e,n],r]=t,o=super.add(e,n),{variableName:s}=r;return s!==""&&(Bt.idToName[o.id]=s),o}else return super.add(...t)}wire(...t){if(t.length===2&&Array.isArray(t[0])){const[e,n]=t,[r,o,s="F.Cu"]=e;super.wire(r,o,s);const a=Bt.astInfo[n.id],u=Ji.parse(a.snippet,{range:!0,comment:!0}).body[0].expression.expressions[1].range,c=document.querySelector("wire-editor"),f=c.wires;c.wires=[...f,{rawStaticInfo:a,staticInfo:n,thickness:o,thicknessRange:u}]}else return super.add(...t)}}const lk=i=>({geo:uO,PCB:ak,via:$L,createText:ZL,renderShapes:RL,renderShape:WL,checkConnectivity:qL,renderPCB:(...t)=>UL(i)(...t),footprint:([t],e)=>{const n=Bt.footprints,r=e.variableName,{snippet:o}=e;return r in n&&n[r].snippet===o||(n[r]={snippet:o,name:r,svgView:ok(t)}),t},pt:([t,e],n)=>{const r=n.from||-1,o=n.to||-1,s=Bt.pts.some(u=>u.start===r);if(r===-1||s)return[t,e];const a=n.snippet,l={pt:[t,e],start:r+1,end:o+1,text:a};return Bt.pts.push(l),[t,e]},path:(t,e)=>{const n=B0(...t),r=Bt.selectablePaths.length;return Bt.selectablePaths.push([e.from,t]),Bt.selectedPathIndex<0||Bt.selectedPathIndex===r&&(Bt.selectedPath={from:e.from,to:e.to,args:t}),n},input:([t],e)=>(t.type==="slider"?Bt.inputs.push([t,e]):console.log("Unrecognized input type:",t),t.value),document:null,window:null,localStorage:null,Function:null,eval:null}),hk=`// Name: New Board // Designer: you // Created: today diff --git a/index.html b/index.html index 39d2266..eb409d6 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ - +