omar-musayev 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +181 -92
- package/package.json +2 -2
- package/dist/_entry.ts +0 -23
package/dist/cli.js
CHANGED
|
@@ -1,94 +1,183 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var x5=Object.create;var Y2=Object.defineProperty;var v5=Object.getOwnPropertyDescriptor;var B5=Object.getOwnPropertyNames;var M5=Object.getPrototypeOf,E5=Object.prototype.hasOwnProperty;var nu=(u=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(u,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):u)(function(u){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+u+'" is not supported')});var r2=(u,e)=>()=>(u&&(e=u(u=0)),e);var P5=(u,e)=>()=>(e||u((e={exports:{}}).exports,e),e.exports),S5=(u,e)=>{for(var t in e)Y2(u,t,{get:e[t],enumerable:!0})},I5=(u,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of B5(e))!E5.call(u,r)&&r!==t&&Y2(u,r,{get:()=>e[r],enumerable:!(n=v5(e,r))||n.enumerable});return u};var A5=(u,e,t)=>(t=u!=null?x5(M5(u)):{},I5(e||!u||!u.__esModule?Y2(t,"default",{value:u,enumerable:!0}):t,u));var he=P5((Dr,fe)=>{"use strict";var e8=Object.defineProperty,Q5=Object.getOwnPropertyDescriptor,Z5=Object.getOwnPropertyNames,X5=Object.prototype.hasOwnProperty,ut=(u,e)=>{for(var t in e)e8(u,t,{get:e[t],enumerable:!0})},et=(u,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Z5(e))!X5.call(u,r)&&r!==t&&e8(u,r,{get:()=>e[r],enumerable:!(n=Q5(e,r))||n.enumerable});return u},tt=u=>et(e8({},"__esModule",{value:!0}),u),f2={};ut(f2,{analyzeMetafile:()=>Lt,analyzeMetafileSync:()=>Rt,build:()=>St,buildSync:()=>Tt,context:()=>It,default:()=>Wt,formatMessages:()=>Dt,formatMessagesSync:()=>$t,initialize:()=>jt,stop:()=>kt,transform:()=>At,transformSync:()=>Ot,version:()=>Pt});fe.exports=tt(f2);function W8(u){let e=n=>{if(n===null)t.write8(0);else if(typeof n=="boolean")t.write8(1),t.write8(+n);else if(typeof n=="number")t.write8(2),t.write32(n|0);else if(typeof n=="string")t.write8(3),t.write(Mu(n));else if(n instanceof Uint8Array)t.write8(4),t.write(n);else if(n instanceof Array){t.write8(5),t.write32(n.length);for(let r of n)e(r)}else{let r=Object.keys(n);t.write8(6),t.write32(r.length);for(let o of r)t.write(Mu(o)),e(n[o])}},t=new Q8;return t.write32(0),t.write32(u.id<<1|+!u.isRequest),e(u.value),Z2(t.buf,t.len-4,0),t.buf.subarray(0,t.len)}function nt(u){let e=()=>{switch(t.read8()){case 0:return null;case 1:return!!t.read8();case 2:return t.read32();case 3:return Uu(t.read());case 4:return t.read();case 5:{let s=t.read32(),a=[];for(let i=0;i<s;i++)a.push(e());return a}case 6:{let s=t.read32(),a={};for(let i=0;i<s;i++)a[Uu(t.read())]=e();return a}default:throw new Error("Invalid packet")}},t=new Q8(u),n=t.read32(),r=(n&1)===0;n>>>=1;let o=e();if(t.ptr!==u.length)throw new Error("Invalid packet");return{id:n,isRequest:r,value:o}}var Q8=class{constructor(u=new Uint8Array(1024)){this.buf=u,this.len=0,this.ptr=0}_write(u){if(this.len+u>this.buf.length){let e=new Uint8Array((this.len+u)*2);e.set(this.buf),this.buf=e}return this.len+=u,this.len-u}write8(u){let e=this._write(1);this.buf[e]=u}write32(u){let e=this._write(4);Z2(this.buf,u,e)}write(u){let e=this._write(4+u.length);Z2(this.buf,u.length,e),this.buf.set(u,e+4)}_read(u){if(this.ptr+u>this.buf.length)throw new Error("Invalid packet");return this.ptr+=u,this.ptr-u}read8(){return this.buf[this._read(1)]}read32(){return Z8(this.buf,this._read(4))}read(){let u=this.read32(),e=new Uint8Array(u),t=this._read(e.length);return e.set(this.buf.subarray(t,t+u)),e}},Mu,Uu,Q2;if(typeof TextEncoder<"u"&&typeof TextDecoder<"u"){let u=new TextEncoder,e=new TextDecoder;Mu=t=>u.encode(t),Uu=t=>e.decode(t),Q2='new TextEncoder().encode("")'}else if(typeof Buffer<"u")Mu=u=>Buffer.from(u),Uu=u=>{let{buffer:e,byteOffset:t,byteLength:n}=u;return Buffer.from(e,t,n).toString()},Q2='Buffer.from("")';else throw new Error("No UTF-8 codec found");if(!(Mu("")instanceof Uint8Array))throw new Error(`Invariant violation: "${Q2} instanceof Uint8Array" is incorrectly false
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
`);
|
|
8
|
-
`;break;case 114:l+="\r";break;case 116:l+=" ";break;case 117:{let f=0;for(let _=0;_<4;_++)c=u[i++],f<<=4,c>=48&&c<=57?f|=c-48:c>=97&&c<=102?f|=c+-87:c>=65&&c<=70?f|=c+-55:wu(u,--i);l+=Au(f);break}default:wu(u,--i);break}else if(c<=127)l+=Au(c);else if((c&224)===192)l+=Au((c&31)<<6|u[i++]&63);else if((c&240)===224)l+=Au((c&15)<<12|(u[i++]&63)<<6|u[i++]&63);else if((c&248)==240){let f=(c&7)<<18|(u[i++]&63)<<12|(u[i++]&63)<<6|u[i++]&63;f>65535&&(f-=65536,l+=Au(f>>10&1023|55296),f=56320|f&1023),l+=Au(f)}l[0];break}case 91:{l=[],e.push(o),t.push(a),n.push(s),o=null,a=l,s=1;continue}case 123:{l={},e.push(o),t.push(a),n.push(s),o=null,a=l,s=2;continue}case 93:{s!==1&&wu(u,--i),l=a,o=e.pop(),a=t.pop(),s=n.pop();break}case 125:{s!==2&&wu(u,--i),l=a,o=e.pop(),a=t.pop(),s=n.pop();break}default:wu(u,--i)}for(c=u[i];c<=32;)c=u[++i];switch(s){case 0:{if(i===r)return l;break}case 1:{if(a.push(l),c===44){i++;continue}if(c===93)continue;break}case 2:{if(o===null){if(o=l,c===58){i++;continue}}else{if(a[o]=l,o=null,c===44){i++;continue}if(c===125)continue}break}}break}wu(u,i)}var eu=JSON.stringify,Y8="warning",H8="silent";function Ju(u,e){let t=[];for(let n of u){if(lu(n,e),n.indexOf(",")>=0)throw new Error(`Invalid ${e}: ${n}`);t.push(n)}return t.join(",")}var B2=()=>null,Z=u=>typeof u=="boolean"?null:"a boolean",O=u=>typeof u=="string"?null:"a string",M2=u=>u instanceof RegExp?null:"a RegExp object",Wu=u=>typeof u=="number"&&u===(u|0)?null:"an integer",ot=u=>typeof u=="number"&&u===(u|0)&&u>=0&&u<=65535?null:"a valid port number",X8=u=>typeof u=="function"?null:"a function",Du=u=>Array.isArray(u)?null:"an array",fu=u=>Array.isArray(u)&&u.every(e=>typeof e=="string")?null:"an array of strings",mu=u=>typeof u=="object"&&u!==null&&!Array.isArray(u)?null:"an object",st=u=>typeof u=="object"&&u!==null?null:"an array or an object",it=u=>u instanceof WebAssembly.Module?null:"a WebAssembly.Module",U8=u=>typeof u=="object"&&!Array.isArray(u)?null:"an object or null",ue=u=>typeof u=="string"||typeof u=="boolean"?null:"a string or a boolean",at=u=>typeof u=="string"||typeof u=="object"&&u!==null&&!Array.isArray(u)?null:"a string or an object",ee=u=>typeof u=="string"||Array.isArray(u)&&u.every(e=>typeof e=="string")?null:"a string or an array of strings",te=u=>typeof u=="string"||u instanceof Uint8Array?null:"a string or a Uint8Array",ct=u=>typeof u=="string"||u instanceof URL?null:"a string or a URL";function b(u,e,t,n){let r=u[t];if(e[t+""]=!0,r===void 0)return;let o=n(r);if(o!==null)throw new Error(`${eu(t)} must be ${o}`);return r}function uu(u,e,t){for(let n in u)if(!(n in e))throw new Error(`Invalid option ${t}: ${eu(n)}`)}function lt(u){let e=Object.create(null),t=b(u,e,"wasmURL",ct),n=b(u,e,"wasmModule",it),r=b(u,e,"worker",Z);return uu(u,e,"in initialize() call"),{wasmURL:t,wasmModule:n,worker:r}}function ne(u){let e;if(u!==void 0){e=Object.create(null);for(let t in u){let n=u[t];if(typeof n=="string"||n===!1)e[t]=n;else throw new Error(`Expected ${eu(t)} in mangle cache to map to either a string or false`)}}return e}function A2(u,e,t,n,r){let o=b(e,t,"color",Z),s=b(e,t,"logLevel",O),a=b(e,t,"logLimit",Wu);o!==void 0?u.push(`--color=${o}`):n&&u.push("--color=true"),u.push(`--log-level=${s||r}`),u.push(`--log-limit=${a||0}`)}function lu(u,e,t){if(typeof u!="string")throw new Error(`Expected value for ${e}${t!==void 0?" "+eu(t):""} to be a string, got ${typeof u} instead`);return u}function re(u,e,t){let n=b(e,t,"legalComments",O),r=b(e,t,"sourceRoot",O),o=b(e,t,"sourcesContent",Z),s=b(e,t,"target",ee),a=b(e,t,"format",O),i=b(e,t,"globalName",O),c=b(e,t,"mangleProps",M2),l=b(e,t,"reserveProps",M2),f=b(e,t,"mangleQuoted",Z),_=b(e,t,"minify",Z),p=b(e,t,"minifySyntax",Z),m=b(e,t,"minifyWhitespace",Z),g=b(e,t,"minifyIdentifiers",Z),F=b(e,t,"lineLimit",Wu),w=b(e,t,"drop",fu),y=b(e,t,"dropLabels",fu),v=b(e,t,"charset",O),x=b(e,t,"treeShaking",Z),B=b(e,t,"ignoreAnnotations",Z),C=b(e,t,"jsx",O),S=b(e,t,"jsxFactory",O),D=b(e,t,"jsxFragment",O),$=b(e,t,"jsxImportSource",O),I=b(e,t,"jsxDev",Z),M=b(e,t,"jsxSideEffects",Z),E=b(e,t,"define",mu),P=b(e,t,"logOverride",mu),T=b(e,t,"supported",mu),j=b(e,t,"pure",fu),W=b(e,t,"keepNames",Z),N=b(e,t,"platform",O),Y=b(e,t,"tsconfigRaw",at),J=b(e,t,"absPaths",fu);if(n&&u.push(`--legal-comments=${n}`),r!==void 0&&u.push(`--source-root=${r}`),o!==void 0&&u.push(`--sources-content=${o}`),s&&u.push(`--target=${Ju(Array.isArray(s)?s:[s],"target")}`),a&&u.push(`--format=${a}`),i&&u.push(`--global-name=${i}`),N&&u.push(`--platform=${N}`),Y&&u.push(`--tsconfig-raw=${typeof Y=="string"?Y:JSON.stringify(Y)}`),_&&u.push("--minify"),p&&u.push("--minify-syntax"),m&&u.push("--minify-whitespace"),g&&u.push("--minify-identifiers"),F&&u.push(`--line-limit=${F}`),v&&u.push(`--charset=${v}`),x!==void 0&&u.push(`--tree-shaking=${x}`),B&&u.push("--ignore-annotations"),w)for(let A of w)u.push(`--drop:${lu(A,"drop")}`);if(y&&u.push(`--drop-labels=${Ju(y,"drop label")}`),J&&u.push(`--abs-paths=${Ju(J,"abs paths")}`),c&&u.push(`--mangle-props=${E2(c)}`),l&&u.push(`--reserve-props=${E2(l)}`),f!==void 0&&u.push(`--mangle-quoted=${f}`),C&&u.push(`--jsx=${C}`),S&&u.push(`--jsx-factory=${S}`),D&&u.push(`--jsx-fragment=${D}`),$&&u.push(`--jsx-import-source=${$}`),I&&u.push("--jsx-dev"),M&&u.push("--jsx-side-effects"),E)for(let A in E){if(A.indexOf("=")>=0)throw new Error(`Invalid define: ${A}`);u.push(`--define:${A}=${lu(E[A],"define",A)}`)}if(P)for(let A in P){if(A.indexOf("=")>=0)throw new Error(`Invalid log override: ${A}`);u.push(`--log-override:${A}=${lu(P[A],"log override",A)}`)}if(T)for(let A in T){if(A.indexOf("=")>=0)throw new Error(`Invalid supported: ${A}`);let H=T[A];if(typeof H!="boolean")throw new Error(`Expected value for supported ${eu(A)} to be a boolean, got ${typeof H} instead`);u.push(`--supported:${A}=${H}`)}if(j)for(let A of j)u.push(`--pure:${lu(A,"pure")}`);W&&u.push("--keep-names")}function ft(u,e,t,n,r){var o;let s=[],a=[],i=Object.create(null),c=null,l=null;A2(s,e,i,t,n),re(s,e,i);let f=b(e,i,"sourcemap",ue),_=b(e,i,"bundle",Z),p=b(e,i,"splitting",Z),m=b(e,i,"preserveSymlinks",Z),g=b(e,i,"metafile",Z),F=b(e,i,"outfile",O),w=b(e,i,"outdir",O),y=b(e,i,"outbase",O),v=b(e,i,"tsconfig",O),x=b(e,i,"resolveExtensions",fu),B=b(e,i,"nodePaths",fu),C=b(e,i,"mainFields",fu),S=b(e,i,"conditions",fu),D=b(e,i,"external",fu),$=b(e,i,"packages",O),I=b(e,i,"alias",mu),M=b(e,i,"loader",mu),E=b(e,i,"outExtension",mu),P=b(e,i,"publicPath",O),T=b(e,i,"entryNames",O),j=b(e,i,"chunkNames",O),W=b(e,i,"assetNames",O),N=b(e,i,"inject",fu),Y=b(e,i,"banner",mu),J=b(e,i,"footer",mu),A=b(e,i,"entryPoints",st),H=b(e,i,"absWorkingDir",O),V=b(e,i,"stdin",mu),z=(o=b(e,i,"write",Z))!=null?o:r,cu=b(e,i,"allowOverwrite",Z),X=b(e,i,"mangleCache",mu);if(i.plugins=!0,uu(e,i,`in ${u}() call`),f&&s.push(`--sourcemap${f===!0?"":`=${f}`}`),_&&s.push("--bundle"),cu&&s.push("--allow-overwrite"),p&&s.push("--splitting"),m&&s.push("--preserve-symlinks"),g&&s.push("--metafile"),F&&s.push(`--outfile=${F}`),w&&s.push(`--outdir=${w}`),y&&s.push(`--outbase=${y}`),v&&s.push(`--tsconfig=${v}`),$&&s.push(`--packages=${$}`),x&&s.push(`--resolve-extensions=${Ju(x,"resolve extension")}`),P&&s.push(`--public-path=${P}`),T&&s.push(`--entry-names=${T}`),j&&s.push(`--chunk-names=${j}`),W&&s.push(`--asset-names=${W}`),C&&s.push(`--main-fields=${Ju(C,"main field")}`),S&&s.push(`--conditions=${Ju(S,"condition")}`),D)for(let R of D)s.push(`--external:${lu(R,"external")}`);if(I)for(let R in I){if(R.indexOf("=")>=0)throw new Error(`Invalid package name in alias: ${R}`);s.push(`--alias:${R}=${lu(I[R],"alias",R)}`)}if(Y)for(let R in Y){if(R.indexOf("=")>=0)throw new Error(`Invalid banner file type: ${R}`);s.push(`--banner:${R}=${lu(Y[R],"banner",R)}`)}if(J)for(let R in J){if(R.indexOf("=")>=0)throw new Error(`Invalid footer file type: ${R}`);s.push(`--footer:${R}=${lu(J[R],"footer",R)}`)}if(N)for(let R of N)s.push(`--inject:${lu(R,"inject")}`);if(M)for(let R in M){if(R.indexOf("=")>=0)throw new Error(`Invalid loader extension: ${R}`);s.push(`--loader:${R}=${lu(M[R],"loader",R)}`)}if(E)for(let R in E){if(R.indexOf("=")>=0)throw new Error(`Invalid out extension: ${R}`);s.push(`--out-extension:${R}=${lu(E[R],"out extension",R)}`)}if(A)if(Array.isArray(A))for(let R=0,Su=A.length;R<Su;R++){let bu=A[R];if(typeof bu=="object"&&bu!==null){let Eu=Object.create(null),Iu=b(bu,Eu,"in",O),Cu=b(bu,Eu,"out",O);if(uu(bu,Eu,"in entry point at index "+R),Iu===void 0)throw new Error('Missing property "in" for entry point at index '+R);if(Cu===void 0)throw new Error('Missing property "out" for entry point at index '+R);a.push([Cu,Iu])}else a.push(["",lu(bu,"entry point at index "+R)])}else for(let R in A)a.push([R,lu(A[R],"entry point",R)]);if(V){let R=Object.create(null),Su=b(V,R,"contents",te),bu=b(V,R,"resolveDir",O),Eu=b(V,R,"sourcefile",O),Iu=b(V,R,"loader",O);uu(V,R,'in "stdin" object'),Eu&&s.push(`--sourcefile=${Eu}`),Iu&&s.push(`--loader=${Iu}`),bu&&(l=bu),typeof Su=="string"?c=Mu(Su):Su instanceof Uint8Array&&(c=Su)}let Pu=[];if(B)for(let R of B)R+="",Pu.push(R);return{entries:a,flags:s,write:z,stdinContents:c,stdinResolveDir:l,absWorkingDir:H,nodePaths:Pu,mangleCache:ne(X)}}function ht(u,e,t,n){let r=[],o=Object.create(null);A2(r,e,o,t,n),re(r,e,o);let s=b(e,o,"sourcemap",ue),a=b(e,o,"sourcefile",O),i=b(e,o,"loader",O),c=b(e,o,"banner",O),l=b(e,o,"footer",O),f=b(e,o,"mangleCache",mu);return uu(e,o,`in ${u}() call`),s&&r.push(`--sourcemap=${s===!0?"external":s}`),a&&r.push(`--sourcefile=${a}`),i&&r.push(`--loader=${i}`),c&&r.push(`--banner=${c}`),l&&r.push(`--footer=${l}`),{flags:r,mangleCache:ne(f)}}function oe(u){let e={},t={didClose:!1,reason:""},n={},r=0,o=0,s=new Uint8Array(16*1024),a=0,i=v=>{let x=a+v.length;if(x>s.length){let C=new Uint8Array(x*2);C.set(s),s=C}s.set(v,a),a+=v.length;let B=0;for(;B+4<=a;){let C=Z8(s,B);if(B+4+C>a)break;B+=4,m(s.subarray(B,B+C)),B+=C}B>0&&(s.copyWithin(0,B,a),a-=B)},c=v=>{t.didClose=!0,v&&(t.reason=": "+(v.message||v));let x="The service was stopped"+t.reason;for(let B in n)n[B](x,null);n={}},l=(v,x,B)=>{if(t.didClose)return B("The service is no longer running"+t.reason,null);let C=r++;n[C]=(S,D)=>{try{B(S,D)}finally{v&&v.unref()}},v&&v.ref(),u.writeToStdin(W8({id:C,isRequest:!0,value:x}))},f=(v,x)=>{if(t.didClose)throw new Error("The service is no longer running"+t.reason);u.writeToStdin(W8({id:v,isRequest:!1,value:x}))},_=async(v,x)=>{try{if(x.command==="ping"){f(v,{});return}if(typeof x.key=="number"){let B=e[x.key];if(!B)return;let C=B[x.command];if(C){await C(v,x);return}}throw new Error("Invalid command: "+x.command)}catch(B){let C=[Nu(B,u,null,void 0,"")];try{f(v,{errors:C})}catch{}}},p=!0,m=v=>{if(p){p=!1;let B=String.fromCharCode(...v);if(B!=="0.27.4")throw new Error(`Cannot start service: Host version "0.27.4" does not match binary version ${eu(B)}`);return}let x=nt(v);if(x.isRequest)_(x.id,x.value);else{let B=n[x.id];delete n[x.id],x.value.error?B(x.value.error,{}):B(null,x.value)}};return{readFromStdout:i,afterClose:c,service:{buildOrContext:({callName:v,refs:x,options:B,isTTY:C,defaultWD:S,callback:D})=>{let $=0,I=o++,M={},E={ref(){++$===1&&x&&x.ref()},unref(){--$===0&&(delete e[I],x&&x.unref())}};e[I]=M,E.ref(),dt(v,I,l,f,E,u,M,B,C,S,(P,T)=>{try{D(P,T)}finally{E.unref()}})},transform:({callName:v,refs:x,input:B,options:C,isTTY:S,fs:D,callback:$})=>{let I=se(),M=E=>{try{if(typeof B!="string"&&!(B instanceof Uint8Array))throw new Error('The input to "transform" must be a string or a Uint8Array');let{flags:P,mangleCache:T}=ht(v,C,S,H8),j={command:"transform",flags:P,inputFS:E!==null,input:E!==null?Mu(E):typeof B=="string"?Mu(B):B};T&&(j.mangleCache=T),l(x,j,(W,N)=>{if(W)return $(new Error(W),null);let Y=Qu(N.errors,I),J=Qu(N.warnings,I),A=1,H=()=>{if(--A===0){let V={warnings:J,code:N.code,map:N.map,mangleCache:void 0,legalComments:void 0};"legalComments"in N&&(V.legalComments=N?.legalComments),N.mangleCache&&(V.mangleCache=N?.mangleCache),$(null,V)}};if(Y.length>0)return $(c2("Transform failed",Y,J),null);N.codeFS&&(A++,D.readFile(N.code,(V,z)=>{V!==null?$(V,null):(N.code=z,H())})),N.mapFS&&(A++,D.readFile(N.map,(V,z)=>{V!==null?$(V,null):(N.map=z,H())})),H()})}catch(P){let T=[];try{A2(T,C,{},S,H8)}catch{}let j=Nu(P,u,I,void 0,"");l(x,{command:"error",flags:T,error:j},()=>{j.detail=I.load(j.detail),$(c2("Transform failed",[j],[]),null)})}};if((typeof B=="string"||B instanceof Uint8Array)&&B.length>1024*1024){let E=M;M=()=>D.writeFile(B,E)}M(null)},formatMessages:({callName:v,refs:x,messages:B,options:C,callback:S})=>{if(!C)throw new Error(`Missing second argument in ${v}() call`);let D={},$=b(C,D,"kind",O),I=b(C,D,"color",Z),M=b(C,D,"terminalWidth",Wu);if(uu(C,D,`in ${v}() call`),$===void 0)throw new Error(`Missing "kind" in ${v}() call`);if($!=="error"&&$!=="warning")throw new Error(`Expected "kind" to be "error" or "warning" in ${v}() call`);let E={command:"format-msgs",messages:Lu(B,"messages",null,"",M),isWarning:$==="warning"};I!==void 0&&(E.color=I),M!==void 0&&(E.terminalWidth=M),l(x,E,(P,T)=>{if(P)return S(new Error(P),null);S(null,T.messages)})},analyzeMetafile:({callName:v,refs:x,metafile:B,options:C,callback:S})=>{C===void 0&&(C={});let D={},$=b(C,D,"color",Z),I=b(C,D,"verbose",Z);uu(C,D,`in ${v}() call`);let M={command:"analyze-metafile",metafile:B};$!==void 0&&(M.color=$),I!==void 0&&(M.verbose=I),l(x,M,(E,P)=>{if(E)return S(new Error(E),null);S(null,P.result)})}}}}function dt(u,e,t,n,r,o,s,a,i,c,l){let f=se(),_=u==="context",p=(F,w)=>{let y=[];try{A2(y,a,{},i,Y8)}catch{}let v=Nu(F,o,f,void 0,w);t(r,{command:"error",flags:y,error:v},()=>{v.detail=f.load(v.detail),l(c2(_?"Context failed":"Build failed",[v],[]),null)})},m;if(typeof a=="object"){let F=a.plugins;if(F!==void 0){if(!Array.isArray(F))return p(new Error('"plugins" must be an array'),"");m=F}}if(m&&m.length>0){if(o.isSync)return p(new Error("Cannot use plugins in synchronous API calls"),"");_t(e,t,n,r,o,s,a,m,f).then(F=>{if(!F.ok)return p(F.error,F.pluginName);try{g(F.requestPlugins,F.runOnEndCallbacks,F.scheduleOnDisposeCallbacks)}catch(w){p(w,"")}},F=>p(F,""));return}try{g(null,(F,w)=>w([],[]),()=>{})}catch(F){p(F,"")}function g(F,w,y){let v=o.hasFS,{entries:x,flags:B,write:C,stdinContents:S,stdinResolveDir:D,absWorkingDir:$,nodePaths:I,mangleCache:M}=ft(u,a,i,Y8,v);if(C&&!o.hasFS)throw new Error('The "write" option is unavailable in this environment');let E={command:"build",key:e,entries:x,flags:B,write:C,stdinContents:S,stdinResolveDir:D,absWorkingDir:$||c,nodePaths:I,context:_};F&&(E.plugins=F),M&&(E.mangleCache=M);let P=(W,N)=>{let Y={errors:Qu(W.errors,f),warnings:Qu(W.warnings,f),outputFiles:void 0,metafile:void 0,mangleCache:void 0},J=Y.errors.slice(),A=Y.warnings.slice();W.outputFiles&&(Y.outputFiles=W.outputFiles.map(mt)),W.metafile&&(Y.metafile=gt(W.metafile)),W.mangleCache&&(Y.mangleCache=W.mangleCache),W.writeToStdout!==void 0&&console.log(Uu(W.writeToStdout).replace(/\n$/,"")),w(Y,(H,V)=>{if(J.length>0||H.length>0){let z=c2("Build failed",J.concat(H),A.concat(V));return N(z,null,H,V)}N(null,Y,H,V)})},T,j;_&&(s["on-end"]=(W,N)=>new Promise(Y=>{P(N,(J,A,H,V)=>{let z={errors:H,warnings:V};j&&j(J,A),T=void 0,j=void 0,n(W,z),Y()})})),t(r,E,(W,N)=>{if(W)return l(new Error(W),null);if(!_)return P(N,(A,H)=>(y(),l(A,H)));if(N.errors.length>0)return l(c2("Context failed",N.errors,N.warnings),null);let Y=!1,J={rebuild:()=>(T||(T=new Promise((A,H)=>{let V;j=(cu,X)=>{V||(V=()=>cu?H(cu):A(X))};let z=()=>{t(r,{command:"rebuild",key:e},(X,Pu)=>{X?H(new Error(X)):V?V():z()})};z()})),T),watch:(A={})=>new Promise((H,V)=>{if(!o.hasFS)throw new Error('Cannot use the "watch" API in this environment');let z={},cu=b(A,z,"delay",Wu);uu(A,z,"in watch() call");let X={command:"watch",key:e};cu&&(X.delay=cu),t(r,X,Pu=>{Pu?V(new Error(Pu)):H(void 0)})}),serve:(A={})=>new Promise((H,V)=>{if(!o.hasFS)throw new Error('Cannot use the "serve" API in this environment');let z={},cu=b(A,z,"port",ot),X=b(A,z,"host",O),Pu=b(A,z,"servedir",O),R=b(A,z,"keyfile",O),Su=b(A,z,"certfile",O),bu=b(A,z,"fallback",O),Eu=b(A,z,"cors",mu),Iu=b(A,z,"onRequest",X8);uu(A,z,"in serve() call");let Cu={command:"serve",key:e,onRequest:!!Iu};if(cu!==void 0&&(Cu.port=cu),X!==void 0&&(Cu.host=X),Pu!==void 0&&(Cu.servedir=Pu),R!==void 0&&(Cu.keyfile=R),Su!==void 0&&(Cu.certfile=Su),bu!==void 0&&(Cu.fallback=bu),Eu){let n2={},Gu=b(Eu,n2,"origin",ee);uu(Eu,n2,'on "cors" object'),Array.isArray(Gu)?Cu.corsOrigin=Gu:Gu!==void 0&&(Cu.corsOrigin=[Gu])}t(r,Cu,(n2,Gu)=>{if(n2)return V(new Error(n2));Iu&&(s["serve-request"]=(w5,y5)=>{Iu(y5.args),n(w5,{})}),H(Gu)})}),cancel:()=>new Promise(A=>{if(Y)return A();t(r,{command:"cancel",key:e},()=>{A()})}),dispose:()=>new Promise(A=>{if(Y)return A();Y=!0,t(r,{command:"dispose",key:e},()=>{A(),y(),r.unref()})})};r.ref(),l(null,J)})}}var _t=async(u,e,t,n,r,o,s,a,i)=>{let c=[],l=[],f={},_={},p=[],m=0,g=0,F=[],w=!1;a=[...a];for(let x of a){let B={};if(typeof x!="object")throw new Error(`Plugin at index ${g} must be an object`);let C=b(x,B,"name",O);if(typeof C!="string"||C==="")throw new Error(`Plugin at index ${g} is missing a name`);try{let S=b(x,B,"setup",X8);if(typeof S!="function")throw new Error("Plugin is missing a setup function");uu(x,B,`on plugin ${eu(C)}`);let D={name:C,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};g++;let I=S({initialOptions:s,resolve:(M,E={})=>{if(!w)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof M!="string")throw new Error("The path to resolve must be a string");let P=Object.create(null),T=b(E,P,"pluginName",O),j=b(E,P,"importer",O),W=b(E,P,"namespace",O),N=b(E,P,"resolveDir",O),Y=b(E,P,"kind",O),J=b(E,P,"pluginData",B2),A=b(E,P,"with",mu);return uu(E,P,"in resolve() call"),new Promise((H,V)=>{let z={command:"resolve",path:M,key:u,pluginName:C};if(T!=null&&(z.pluginName=T),j!=null&&(z.importer=j),W!=null&&(z.namespace=W),N!=null&&(z.resolveDir=N),Y!=null)z.kind=Y;else throw new Error('Must specify "kind" when calling "resolve"');J!=null&&(z.pluginData=i.store(J)),A!=null&&(z.with=pt(A,"with")),e(n,z,(cu,X)=>{cu!==null?V(new Error(cu)):H({errors:Qu(X.errors,i),warnings:Qu(X.warnings,i),path:X.path,external:X.external,sideEffects:X.sideEffects,namespace:X.namespace,suffix:X.suffix,pluginData:i.load(X.pluginData)})})})},onStart(M){let E='This error came from the "onStart" callback registered here:',P=x2(new Error(E),r,"onStart");c.push({name:C,callback:M,note:P}),D.onStart=!0},onEnd(M){let E='This error came from the "onEnd" callback registered here:',P=x2(new Error(E),r,"onEnd");l.push({name:C,callback:M,note:P}),D.onEnd=!0},onResolve(M,E){let P='This error came from the "onResolve" callback registered here:',T=x2(new Error(P),r,"onResolve"),j={},W=b(M,j,"filter",M2),N=b(M,j,"namespace",O);if(uu(M,j,`in onResolve() call for plugin ${eu(C)}`),W==null)throw new Error("onResolve() call is missing a filter");let Y=m++;f[Y]={name:C,callback:E,note:T},D.onResolve.push({id:Y,filter:E2(W),namespace:N||""})},onLoad(M,E){let P='This error came from the "onLoad" callback registered here:',T=x2(new Error(P),r,"onLoad"),j={},W=b(M,j,"filter",M2),N=b(M,j,"namespace",O);if(uu(M,j,`in onLoad() call for plugin ${eu(C)}`),W==null)throw new Error("onLoad() call is missing a filter");let Y=m++;_[Y]={name:C,callback:E,note:T},D.onLoad.push({id:Y,filter:E2(W),namespace:N||""})},onDispose(M){p.push(M)},esbuild:r.esbuild});I&&await I,F.push(D)}catch(S){return{ok:!1,error:S,pluginName:C}}}o["on-start"]=async(x,B)=>{i.clear();let C={errors:[],warnings:[]};await Promise.all(c.map(async({name:S,callback:D,note:$})=>{try{let I=await D();if(I!=null){if(typeof I!="object")throw new Error(`Expected onStart() callback in plugin ${eu(S)} to return an object`);let M={},E=b(I,M,"errors",Du),P=b(I,M,"warnings",Du);uu(I,M,`from onStart() callback in plugin ${eu(S)}`),E!=null&&C.errors.push(...Lu(E,"errors",i,S,void 0)),P!=null&&C.warnings.push(...Lu(P,"warnings",i,S,void 0))}}catch(I){C.errors.push(Nu(I,r,i,$&&$(),S))}})),t(x,C)},o["on-resolve"]=async(x,B)=>{let C={},S="",D,$;for(let I of B.ids)try{({name:S,callback:D,note:$}=f[I]);let M=await D({path:B.path,importer:B.importer,namespace:B.namespace,resolveDir:B.resolveDir,kind:B.kind,pluginData:i.load(B.pluginData),with:B.with});if(M!=null){if(typeof M!="object")throw new Error(`Expected onResolve() callback in plugin ${eu(S)} to return an object`);let E={},P=b(M,E,"pluginName",O),T=b(M,E,"path",O),j=b(M,E,"namespace",O),W=b(M,E,"suffix",O),N=b(M,E,"external",Z),Y=b(M,E,"sideEffects",Z),J=b(M,E,"pluginData",B2),A=b(M,E,"errors",Du),H=b(M,E,"warnings",Du),V=b(M,E,"watchFiles",fu),z=b(M,E,"watchDirs",fu);uu(M,E,`from onResolve() callback in plugin ${eu(S)}`),C.id=I,P!=null&&(C.pluginName=P),T!=null&&(C.path=T),j!=null&&(C.namespace=j),W!=null&&(C.suffix=W),N!=null&&(C.external=N),Y!=null&&(C.sideEffects=Y),J!=null&&(C.pluginData=i.store(J)),A!=null&&(C.errors=Lu(A,"errors",i,S,void 0)),H!=null&&(C.warnings=Lu(H,"warnings",i,S,void 0)),V!=null&&(C.watchFiles=v2(V,"watchFiles")),z!=null&&(C.watchDirs=v2(z,"watchDirs"));break}}catch(M){C={id:I,errors:[Nu(M,r,i,$&&$(),S)]};break}t(x,C)},o["on-load"]=async(x,B)=>{let C={},S="",D,$;for(let I of B.ids)try{({name:S,callback:D,note:$}=_[I]);let M=await D({path:B.path,namespace:B.namespace,suffix:B.suffix,pluginData:i.load(B.pluginData),with:B.with});if(M!=null){if(typeof M!="object")throw new Error(`Expected onLoad() callback in plugin ${eu(S)} to return an object`);let E={},P=b(M,E,"pluginName",O),T=b(M,E,"contents",te),j=b(M,E,"resolveDir",O),W=b(M,E,"pluginData",B2),N=b(M,E,"loader",O),Y=b(M,E,"errors",Du),J=b(M,E,"warnings",Du),A=b(M,E,"watchFiles",fu),H=b(M,E,"watchDirs",fu);uu(M,E,`from onLoad() callback in plugin ${eu(S)}`),C.id=I,P!=null&&(C.pluginName=P),T instanceof Uint8Array?C.contents=T:T!=null&&(C.contents=Mu(T)),j!=null&&(C.resolveDir=j),W!=null&&(C.pluginData=i.store(W)),N!=null&&(C.loader=N),Y!=null&&(C.errors=Lu(Y,"errors",i,S,void 0)),J!=null&&(C.warnings=Lu(J,"warnings",i,S,void 0)),A!=null&&(C.watchFiles=v2(A,"watchFiles")),H!=null&&(C.watchDirs=v2(H,"watchDirs"));break}}catch(M){C={id:I,errors:[Nu(M,r,i,$&&$(),S)]};break}t(x,C)};let y=(x,B)=>B([],[]);l.length>0&&(y=(x,B)=>{(async()=>{let C=[],S=[];for(let{name:D,callback:$,note:I}of l){let M,E;try{let P=await $(x);if(P!=null){if(typeof P!="object")throw new Error(`Expected onEnd() callback in plugin ${eu(D)} to return an object`);let T={},j=b(P,T,"errors",Du),W=b(P,T,"warnings",Du);uu(P,T,`from onEnd() callback in plugin ${eu(D)}`),j!=null&&(M=Lu(j,"errors",i,D,void 0)),W!=null&&(E=Lu(W,"warnings",i,D,void 0))}}catch(P){M=[Nu(P,r,i,I&&I(),D)]}if(M){C.push(...M);try{x.errors.push(...M)}catch{}}if(E){S.push(...E);try{x.warnings.push(...E)}catch{}}}B(C,S)})()});let v=()=>{for(let x of p)setTimeout(()=>x(),0)};return w=!0,{ok:!0,requestPlugins:F,runOnEndCallbacks:y,scheduleOnDisposeCallbacks:v}};function se(){let u=new Map,e=0;return{clear(){u.clear()},load(t){return u.get(t)},store(t){if(t===void 0)return-1;let n=e++;return u.set(n,t),n}}}function x2(u,e,t){let n,r=!1;return()=>{if(r)return n;r=!0;try{let o=(u.stack+"").split(`
|
|
9
|
-
`);o.
|
|
10
|
-
`),"")}catch{}return{id:"",pluginName:r,text:o,location:s,notes:n?[n]:[],detail:t?t.store(u):-1}}function ie(u,e,t){let n=" at ";if(u.readFileSync&&!e[0].startsWith(n)&&e[1].startsWith(n))for(let r=1;r<e.length;r++){let o=e[r];if(o.startsWith(n))for(o=o.slice(n.length);;){let s=/^(?:new |async )?\S+ \((.*)\)$/.exec(o);if(s){o=s[1];continue}if(s=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(o),s){o=s[1];continue}if(s=/^(\S+):(\d+):(\d+)$/.exec(o),s){let a;try{a=u.readFileSync(s[1],"utf8")}catch{break}let i=a.split(/\r\n|\r|\n|\u2028|\u2029/)[+s[2]-1]||"",c=+s[3]-1,l=i.slice(c,c+t.length)===t?t.length:0;return{file:s[1],namespace:"file",line:+s[2],column:Mu(i.slice(0,c)).length,length:Mu(i.slice(c,c+l)).length,lineText:i+`
|
|
11
|
-
`+
|
|
12
|
-
`)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
situation by installing esbuild on Windows or macOS and copying "node_modules"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
directory when you copy the files over, and running "npm ci" or "npm install"
|
|
24
|
-
|
|
25
|
-
instead of npm which has built-in support for installing a package on multiple
|
|
26
|
-
platforms simultaneously.
|
|
27
|
-
|
|
28
|
-
If you are installing with yarn, you can try listing both this platform and the
|
|
29
|
-
other platform in your ".yarnrc.yml" file using the "supportedArchitectures"
|
|
30
|
-
feature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
|
|
31
|
-
Keep in mind that this means multiple copies of esbuild will be present.
|
|
32
|
-
`;throw(u===K8&&o===G8||u===G8&&o===K8)&&(s=`
|
|
33
|
-
Specifically the "${o}" package is present but this platform
|
|
34
|
-
needs the "${u}" package instead. People often get into this
|
|
35
|
-
situation by installing esbuild with npm running inside of Rosetta 2 and then
|
|
36
|
-
trying to use it with node running outside of Rosetta 2, or vice versa (Rosetta
|
|
37
|
-
2 is Apple's on-the-fly x86_64-to-arm64 translation service).
|
|
38
|
-
|
|
39
|
-
If you are installing with npm, you can try ensuring that both npm and node are
|
|
40
|
-
not running under Rosetta 2 and then reinstalling esbuild. This likely involves
|
|
41
|
-
changing how you installed npm and/or node. For example, installing node with
|
|
42
|
-
the universal installer here should work: https://nodejs.org/en/download/. Or
|
|
43
|
-
you could consider using yarn instead of npm which has built-in support for
|
|
44
|
-
installing a package on multiple platforms simultaneously.
|
|
45
|
-
|
|
46
|
-
If you are installing with yarn, you can try listing both "arm64" and "x64"
|
|
47
|
-
in your ".yarnrc.yml" file using the "supportedArchitectures" feature:
|
|
48
|
-
https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
|
|
49
|
-
Keep in mind that this means multiple copies of esbuild will be present.
|
|
50
|
-
`),new Error(`
|
|
51
|
-
You installed esbuild for another platform than the one you're currently using.
|
|
52
|
-
This won't work because esbuild is written with native code and needs to
|
|
53
|
-
install a platform-specific binary executable.
|
|
54
|
-
${s}
|
|
55
|
-
Another alternative is to use the "esbuild-wasm" package instead, which works
|
|
56
|
-
the same way on all platforms. But it comes with a heavy performance cost and
|
|
57
|
-
can sometimes be 10x slower than the "esbuild" package, so you may also not
|
|
58
|
-
want to do that.
|
|
59
|
-
`)}throw new Error(`The package "${u}" could not be found, and is needed by esbuild.
|
|
60
|
-
|
|
61
|
-
If you are installing esbuild with npm, make sure that you don't specify the
|
|
62
|
-
"--no-optional" or "--omit=optional" flags. The "optionalDependencies" feature
|
|
63
|
-
of "package.json" is used by esbuild to install the correct binary executable
|
|
64
|
-
for your current platform.`)}throw r}}if(/\.zip\//.test(n)){let r;try{r=nu("pnpapi")}catch{}if(r){let o=r.getPackageInformation(r.topLevel).packageLocation,s=yu.join(o,"node_modules",".cache","esbuild",`pnpapi-${u.replace("/","-")}-0.27.4-${yu.basename(e)}`);return Ou.existsSync(s)||(Ou.mkdirSync(yu.dirname(s),{recursive:!0}),Ou.copyFileSync(n,s),Ou.chmodSync(s,493)),{binPath:s,isWASM:t}}}return{binPath:n,isWASM:t}}var ae=nu("child_process"),xt=nu("crypto"),X2=nu("path"),Yu=nu("fs"),vt=nu("os"),Bt=nu("tty"),ou;if(process.env.ESBUILD_WORKER_THREADS!=="0"){try{ou=nu("worker_threads")}catch{}let[u,e]=process.versions.node.split(".");(+u<12||+u==12&&+e<17||+u==13&&+e<13)&&(ou=void 0)}var J8,h2=((J8=ou?.workerData)==null?void 0:J8.esbuildVersion)==="0.27.4",ce=()=>{if(!qu&&(X2.basename(__filename)!=="main.js"||X2.basename(__dirname)!=="lib"))throw new Error(`The esbuild JavaScript API cannot be bundled. Please mark the "esbuild" package as external so it's not included in the bundle.
|
|
65
|
-
|
|
66
|
-
More information: The file containing the code for esbuild's JavaScript API (${__filename}) does not appear to be inside the esbuild package on the file system, which usually means that the esbuild package was bundled into another file. This is problematic because the API needs to run a binary executable inside the esbuild package which is located using a relative path from the API code to the executable. If the esbuild package is bundled, the relative path will be incorrect and the executable won't be found.`);{let{binPath:u,isWASM:e}=yt();return e?["node",[u]]:[u,[]]}},l2=()=>Bt.isatty(2),Mt={readFile(u,e){try{let t=Yu.readFileSync(u,"utf8");try{Yu.unlinkSync(u)}catch{}e(null,t)}catch(t){e(t,null)}},writeFile(u,e){try{let t=le();Yu.writeFileSync(t,u),e(t)}catch{e(null)}}},Et={readFile(u,e){try{Yu.readFile(u,"utf8",(t,n)=>{try{Yu.unlink(u,()=>e(t,n))}catch{e(t,n)}})}catch(t){e(t,null)}},writeFile(u,e){try{let t=le();Yu.writeFile(t,u,n=>e(n!==null?null:t))}catch{e(null)}}},Pt="0.27.4",St=u=>zu().build(u),It=u=>zu().context(u),At=(u,e)=>zu().transform(u,e),Dt=(u,e)=>zu().formatMessages(u,e),Lt=(u,e)=>zu().analyzeMetafile(u,e),Tt=u=>{if(ou&&!h2)return su||(su=L2(ou)),su.buildSync(u);let e;return D2(t=>t.buildOrContext({callName:"buildSync",refs:null,options:u,isTTY:l2(),defaultWD:Hu,callback:(n,r)=>{if(n)throw n;e=r}})),e},Ot=(u,e)=>{if(ou&&!h2)return su||(su=L2(ou)),su.transformSync(u,e);let t;return D2(n=>n.transform({callName:"transformSync",refs:null,input:u,options:e||{},isTTY:l2(),fs:Mt,callback:(r,o)=>{if(r)throw r;t=o}})),t},$t=(u,e)=>{if(ou&&!h2)return su||(su=L2(ou)),su.formatMessagesSync(u,e);let t;return D2(n=>n.formatMessages({callName:"formatMessagesSync",refs:null,messages:u,options:e,callback:(r,o)=>{if(r)throw r;t=o}})),t},Rt=(u,e)=>{if(ou&&!h2)return su||(su=L2(ou)),su.analyzeMetafileSync(u,e);let t;return D2(n=>n.analyzeMetafile({callName:"analyzeMetafileSync",refs:null,metafile:typeof u=="string"?u:JSON.stringify(u),options:e,callback:(r,o)=>{if(r)throw r;t=o}})),t},kt=()=>(I2&&I2(),su&&su.stop(),Promise.resolve()),u8=!1,jt=u=>{if(u=lt(u||{}),u.wasmURL)throw new Error('The "wasmURL" option only works in the browser');if(u.wasmModule)throw new Error('The "wasmModule" option only works in the browser');if(u.worker)throw new Error('The "worker" option only works in the browser');if(u8)throw new Error('Cannot call "initialize" more than once');return zu(),u8=!0,Promise.resolve()},Hu=process.cwd(),a2,I2,zu=()=>{if(a2)return a2;let[u,e]=ce(),t=ae.spawn(u,e.concat("--service=0.27.4","--ping"),{windowsHide:!0,stdio:["pipe","pipe","inherit"],cwd:Hu}),{readFromStdout:n,afterClose:r,service:o}=oe({writeToStdin(l){t.stdin.write(l,f=>{f&&r(f)})},readFileSync:Yu.readFileSync,isSync:!1,hasFS:!0,esbuild:f2});t.stdin.on("error",r),t.on("error",r);let s=t.stdin,a=t.stdout;a.on("data",n),a.on("end",r),I2=()=>{s.destroy(),a.destroy(),t.kill(),u8=!1,a2=void 0,I2=void 0};let i=0;t.unref(),s.unref&&s.unref(),a.unref&&a.unref();let c={ref(){++i===1&&t.ref()},unref(){--i===0&&t.unref()}};return a2={build:l=>new Promise((f,_)=>{o.buildOrContext({callName:"build",refs:c,options:l,isTTY:l2(),defaultWD:Hu,callback:(p,m)=>p?_(p):f(m)})}),context:l=>new Promise((f,_)=>o.buildOrContext({callName:"context",refs:c,options:l,isTTY:l2(),defaultWD:Hu,callback:(p,m)=>p?_(p):f(m)})),transform:(l,f)=>new Promise((_,p)=>o.transform({callName:"transform",refs:c,input:l,options:f||{},isTTY:l2(),fs:Et,callback:(m,g)=>m?p(m):_(g)})),formatMessages:(l,f)=>new Promise((_,p)=>o.formatMessages({callName:"formatMessages",refs:c,messages:l,options:f,callback:(m,g)=>m?p(m):_(g)})),analyzeMetafile:(l,f)=>new Promise((_,p)=>o.analyzeMetafile({callName:"analyzeMetafile",refs:c,metafile:typeof l=="string"?l:JSON.stringify(l),options:f,callback:(m,g)=>m?p(m):_(g)}))},a2},D2=u=>{let[e,t]=ce(),n=new Uint8Array,{readFromStdout:r,afterClose:o,service:s}=oe({writeToStdin(i){if(n.length!==0)throw new Error("Must run at most one command");n=i},isSync:!0,hasFS:!0,esbuild:f2});u(s);let a=ae.execFileSync(e,t.concat("--service=0.27.4"),{cwd:Hu,windowsHide:!0,input:n,maxBuffer:+process.env.ESBUILD_MAX_BUFFER||16*1024*1024});r(a),o(null)},le=()=>X2.join(vt.tmpdir(),`esbuild-${xt.randomBytes(32).toString("hex")}`),su=null,L2=u=>{let{port1:e,port2:t}=new u.MessageChannel,n=new u.Worker(__filename,{workerData:{workerPort:t,defaultWD:Hu,esbuildVersion:"0.27.4"},transferList:[t],execArgv:[]}),r=0,o=c=>{let l=new Error(`Build failed with 1 error:
|
|
67
|
-
error: ${c}`),f=[{id:"",pluginName:"",text:c,location:null,notes:[],detail:void 0}];return l.errors=f,l.warnings=[],l},s=c=>{if(!c)return;let l=c.plugins;if(l&&l.length>0)throw o("Cannot use plugins in synchronous API calls")},a=(c,l)=>{for(let f in l)c[f]=l[f]},i=(c,l)=>{let f=r++,_=new SharedArrayBuffer(8),p=new Int32Array(_),m={sharedBuffer:_,id:f,command:c,args:l};n.postMessage(m);let g=Atomics.wait(p,0,0);if(g!=="ok"&&g!=="not-equal")throw new Error("Internal error: Atomics.wait() failed: "+g);let{message:{id:F,resolve:w,reject:y,properties:v}}=u.receiveMessageOnPort(e);if(f!==F)throw new Error(`Internal error: Expected id ${f} but got id ${F}`);if(y)throw a(y,v),y;return w};return n.unref(),{buildSync(c){return s(c),i("build",[c])},transformSync(c,l){return i("transform",[c,l])},formatMessagesSync(c,l){return i("formatMessages",[c,l])},analyzeMetafileSync(c,l){return i("analyzeMetafile",[c,l])},stop(){n.terminate(),su=null}}},Nt=()=>{let u=ou.workerData.workerPort,e=ou.parentPort,t=n=>{let r={};if(n&&typeof n=="object")for(let o in n)r[o]=n[o];return r};try{let n=zu();Hu=ou.workerData.defaultWD,e.on("message",r=>{(async()=>{let{sharedBuffer:o,id:s,command:a,args:i}=r,c=new Int32Array(o);try{switch(a){case"build":u.postMessage({id:s,resolve:await n.build(i[0])});break;case"transform":u.postMessage({id:s,resolve:await n.transform(i[0],i[1])});break;case"formatMessages":u.postMessage({id:s,resolve:await n.formatMessages(i[0],i[1])});break;case"analyzeMetafile":u.postMessage({id:s,resolve:await n.analyzeMetafile(i[0],i[1])});break;default:throw new Error(`Invalid command: ${a}`)}}catch(l){u.postMessage({id:s,reject:l,properties:t(l)})}Atomics.add(c,0,1),Atomics.notify(c,0,1/0)})()})}catch(n){e.on("message",r=>{let{sharedBuffer:o,id:s}=r,a=new Int32Array(o);u.postMessage({id:s,reject:n,properties:t(n)}),Atomics.add(a,0,1),Atomics.notify(a,0,1/0)})}};h2&&Nt();var Wt=f2});import{resolve as _e,join as Yt}from"path";import{mkdirSync as Ht}from"fs";import{pathToFileURL as Ut}from"url";async function t8(u,e){let t=_e(u),n=Yt(e,zt(t));Ht(e,{recursive:!0});try{let{build:r}=await Promise.resolve().then(()=>A5(he(),1));await r({entryPoints:[t],outfile:n,bundle:!0,format:"esm",platform:"node",external:["terminaltui"],target:"node18"})}catch{return t}return n}function zt(u){return u.replace(/[^a-zA-Z0-9]/g,"_").slice(-80)+".mjs"}async function n8(u){let e=de.get(u);if(e)return e;let n=await import(Ut(_e(u)).href);return de.set(u,n),n}async function pe(u,e){let t=await t8(u,e),n=await n8(t);if(typeof n.default!="function")throw new Error(`Page file ${u} must have a default export that is a function. Got: ${typeof n.default}`);return{default:n.default,metadata:n.metadata}}async function me(u,e){let t=await t8(u,e),n=await n8(t);if(typeof n.default!="function")throw new Error(`Layout file ${u} must have a default export that is a function. Got: ${typeof n.default}`);return{default:n.default}}async function ge(u,e){let t=await t8(u,e),n=await n8(t),r={},o=["GET","POST","PUT","DELETE","PATCH"];for(let s of o)typeof n[s]=="function"&&(r[s]=n[s]);return r}var de,T2=r2(()=>{de=new Map});import{readFileSync as r8}from"fs";function Fe(u,e,t){let n=[],r=new Set;for(let i of u.routes)r.has(i.name)&&n.push({level:"error",message:`Duplicate page ID: "${i.name}"`}),r.add(i.name);if(u.routes.find(i=>i.name==="home")){let i=t.get("home");if(i)try{let c=r8(i,"utf-8");(c.includes('source: "auto"')||c.includes("source: 'auto'"))&&n.push({level:"warn",message:'pages/home.ts uses menu({ source: "auto" }) \u2014 this creates a duplicate menu. The framework renders the navigation menu automatically on the home screen. Remove the menu() call.'})}catch{}}let s=new Set(u.routes.map(i=>i.name));for(let[i,c]of t)try{let f=r8(c,"utf-8").matchAll(/navigate:\s*["']([^"']+)["']/g);for(let _ of f){let p=_[1];s.has(p)||u.routes.some(g=>g.isDynamic&&g.name.replace(/\/\[.*?\].*$/,"")===p)||n.push({level:"warn",message:`${i}: navigate("${p}") \u2014 page "${p}" not found. Available pages: ${[...s].join(", ")}`})}}catch{}let a=new Set;for(let[,i]of t)try{let l=r8(i,"utf-8").matchAll(/navigate:\s*["']([^"']+)["']/g);for(let f of l)a.add(f[1])}catch{}for(let i of u.routes)e.get(i.name)?.hidden&&!a.has(i.name)&&n.push({level:"warn",message:`"${i.name}" is hidden but never referenced by navigate(). It may be unreachable.`});return n}function be(u){if(u.length!==0){process.stderr.write(`
|
|
68
|
-
[terminaltui] Project validation:
|
|
69
|
-
`);for(let e of u){let t=e.level==="error"?" \x1B[31m\u2717\x1B[0m":" \x1B[33m\u26A0\x1B[0m";process.stderr.write(`${t} ${e.message}
|
|
70
|
-
`)}process.stderr.write(`
|
|
71
|
-
`)}}var O2=r2(()=>{});import{readdirSync as sn,statSync as an,existsSync as cn}from"fs";import{join as ln,relative as xe,basename as fn,extname as $2}from"path";function Vt(u,e,t){let n=new Map;for(let o of e)n.set(o.parentDir,o.absolutePath);let r=[];for(let o of u){let s=Gt(o,n,t);s&&r.push(s)}return{routes:r,layouts:n}}function Gt(u,e,t){let n=Kt(u),r=qt(u.parentDir,e);return{name:n,filePath:u.absolutePath,isIndex:u.isIndex,isDynamic:u.isDynamic,paramName:u.paramName,parentDir:u.parentDir,depth:u.depth,layoutChain:r}}function Kt(u){return u.isIndex?u.parentDir===""?"home":u.parentDir:u.isDynamic?u.parentDir===""?`[${u.paramName}]`:`${u.parentDir}/[${u.paramName}]`:u.parentDir===""?u.name:`${u.parentDir}/${u.name}`}function qt(u,e){let t=[],n=e.get("");if(n&&t.push(n),u!==""){let r=u.split("/"),o="";for(let s of r){o=o?`${o}/${s}`:s;let a=e.get(o);a&&t.push(a)}}return t}function Ce(u,e){return u.routes.find(t=>t.name===e)}function Jt(u,e){let t=e.split("/");for(let n of u.routes){if(!n.isDynamic)continue;let r=n.name.split("/");if(r.length!==t.length)continue;let o={},s=!0;for(let a=0;a<r.length;a++){let i=r[a].match(/^\[(\w+)\]$/);if(i)o[i[1]]=t[a];else if(r[a]!==t[a]){s=!1;break}}if(s)return{route:n,params:o}}}async function ye(u,e,t){if(e.length===0)return u;let n=[];for(let o of e){let s=await Qt(o,t);n.push(s)}let r=u;for(let o=n.length-1;o>=0;o--)r=n[o]({children:r});return r}async function Qt(u,e){let t=we.get(u);if(t)return t;let n=await me(u,e);return we.set(u,n.default),n.default}function Zt(u,e,t){if(t?.items&&t.items.length>0)return t.items.map((r,o)=>({label:r.label,page:r.page,icon:r.icon,order:o}));let n=[];for(let r of u.routes){if(!Xt(r))continue;let o=e.get(r.name);if(o?.hidden||t?.exclude?.includes(r.name))continue;let s=un(r,o,t),a=en(r,o,t),i=tn(r,o);n.push({label:s,page:r.name,icon:a,order:i})}return n.sort(nn),t?.order?rn(n,t.order):n}function Xt(u){return u.isDynamic?!1:!!(u.depth===0||u.isIndex&&u.depth===1)}function un(u,e,t){if(t?.labels?.[u.name])return t.labels[u.name];if(e?.label)return e.label;let n=u.isIndex?u.parentDir:u.name,r=n.split("/").pop()||n;return on(r)}function en(u,e,t){return t?.icons?.[u.name]?t.icons[u.name]:e?.icon}function tn(u,e){return u.name==="home"?-1/0:e?.order!==void 0?e.order:1/0}function nn(u,e){return u.order!==1/0&&e.order!==1/0?u.order-e.order:u.order!==1/0?-1:e.order!==1/0?1:u.label.localeCompare(e.label)}function rn(u,e){let t=[],n=[];for(let r of e){let o=u.find(s=>s.page===r);o&&t.push(o)}for(let r of u)e.includes(r.page)||n.push(r);return[...t,...n]}function on(u){return u.replace(/[-_]/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,e=>e.toUpperCase())}function o8(u,e){let t=e??u,n=[];if(!cn(u))return n;let r=sn(u);for(let o of r){let s=ln(u,o);if(o.startsWith(".")||o==="node_modules"||o===".terminaltui")continue;let a=an(s);if(a.isDirectory())n.push(...o8(s,t));else if(a.isFile()&&($2(o)===".ts"||$2(o)===".js"||$2(o)===".mjs")){let i=xe(t,s),c=fn(o,$2(o)),l=xe(t,u),f=c.match(/^\[(\w+)\]$/);n.push({absolutePath:s,relativePath:i,name:c,isLayout:c==="layout",isIndex:c==="index",isDynamic:!!f,paramName:f?.[1],depth:l===""?0:l.split("/").length,parentDir:l})}}return n}function hn(u){let e=o8(u);return{pages:e.filter(t=>!t.isLayout),layouts:e.filter(t=>t.isLayout)}}function dn(u){return o8(u)}function _n(u){let e=[];for(let t of u){let n=pn(t),r=mn(t);e.push({endpoint:n,filePath:t.absolutePath,methods:[],paramNames:r})}return e}function pn(u){let e=u.relativePath;return e=e.replace(/\.(ts|js|mjs)$/,""),e=e.replace(/\/index$/,""),e==="index"&&(e=""),e=e.replace(/\[(\w+)\]/g,":$1"),`/api/${e}`.replace(/\/+/g,"/")}function mn(u){let e=[],t=u.relativePath.matchAll(/\[(\w+)\]/g);for(let n of t)e.push(n[1]);return e}async function gn(u,e){let t={};for(let n of u){let r=await ge(n.filePath,e),o=["GET","POST","PUT","DELETE","PATCH"];for(let s of o){let a=r[s];if(!a)continue;n.methods.includes(s)||n.methods.push(s);let i=`${s} ${n.endpoint}`;t[i]=Fn(a)}}return t}function Fn(u){return async e=>u({params:e.params,body:e.body,query:e.query,headers:e.headers})}var we,R2,s8,i8=r2(()=>{T2();O2();we=new Map;R2=new Map,s8=class{routeTable=null;config;pagesDir;apiDir;outDir;metadataMap=new Map;menuItems=[];constructor(u){this.config=u.config,this.pagesDir=u.pagesDir,this.apiDir=u.apiDir,this.outDir=u.outDir}async initialize(){let{pages:u,layouts:e}=hn(this.pagesDir);this.routeTable=Vt(u,e,this.pagesDir),await this.loadAllMetadata(),this.menuItems=Zt(this.routeTable,this.metadataMap,this.config.menu)}async loadAllMetadata(){if(this.routeTable)for(let u of this.routeTable.routes)try{let e=await this.getPageModule(u);e.metadata&&this.metadataMap.set(u.name,e.metadata)}catch{}}async getPageModule(u){let e=R2.get(u.filePath);if(e)return e;let t=await pe(u.filePath,this.outDir);return R2.set(u.filePath,t),t}getRouteTable(){if(!this.routeTable)throw new Error("Router not initialized");return this.routeTable}getMenuItems(){return this.menuItems}getAllRouteNames(){return this.routeTable?this.routeTable.routes.map(u=>u.name):[]}getMenuRouteNames(){return this.menuItems.map(u=>u.page)}async resolvePage(u,e){if(!this.routeTable)throw new Error("Router not initialized");let t=Ce(this.routeTable,u),n=e??{};if(!t){let a=Jt(this.routeTable,u);a&&(t=a.route,n={...a.params,...e})}if(!t)throw new Error(`Route not found: ${u}`);let r=await this.getPageModule(t),o=t.isDynamic||Object.keys(n).length>0?{params:n}:void 0,s=await r.default(o);return t.layoutChain.length>0&&(s=await ye(s,t.layoutChain,this.outDir)),s}async buildPagesArray(){if(!this.routeTable)throw new Error("Router not initialized");let u=[];for(let e of this.menuItems){let t=Ce(this.routeTable,e.page);if(!t)continue;let n=this.metadataMap.get(t.name);u.push({id:t.name,title:e.label,icon:e.icon,content:this.createPageContentLoader(t)})}for(let e of this.routeTable.routes){if(u.some(n=>n.id===e.name))continue;let t=this.metadataMap.get(e.name);u.push({id:e.name,title:t?.label??e.name,icon:t?.icon,_hidden:!0,content:this.createPageContentLoader(e)})}return u}createPageContentLoader(u){let e=this;return async()=>{let t=await e.getPageModule(u),n;u.isDynamic&&(n=void 0);let r=await t.default(n);return u.layoutChain.length>0&&(r=await ye(r,u.layoutChain,e.outDir)),r}}async loadApiRoutes(){if(!this.apiDir)return{};let u=dn(this.apiDir),e=_n(u);return gn(e,this.outDir)}getMetadata(u){return this.metadataMap.get(u)}validate(){if(!this.routeTable)return[];let u=new Map;for(let e of this.routeTable.routes)u.set(e.name,e.filePath);return Fe(this.routeTable,this.metadataMap,u)}validateAndPrint(){let u=this.validate();be(u)}invalidate(u){R2.delete(u)}async reload(){R2.clear(),this.metadataMap.clear(),await this.initialize()}}});var a8,bn,ve,Cn,Be,Me,wn,Ee,k2=r2(()=>{a8=Object.defineProperty,bn=Object.getOwnPropertyDescriptor,ve=Object.getOwnPropertyNames,Cn=Object.prototype.hasOwnProperty,Be=(u,e)=>function(){return u&&(e=(0,u[ve(u)[0]])(u=0)),e},Me=(u,e)=>{for(var t in e)a8(u,t,{get:e[t],enumerable:!0})},wn=(u,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ve(e))!Cn.call(u,r)&&r!==t&&a8(u,r,{get:()=>e[r],enumerable:!(n=bn(e,r))||n.enumerable});return u},Ee=u=>wn(a8({},"__esModule",{value:!0}),u)});var Pe={};S5(Pe,{FileRouter:()=>s8});var Se=r2(()=>{i8();T2();O2();k2()});var P8={name:"Larry 3D",height:9,chars:{A:[" ______ ","/\\ _ \\ ","\\ \\ \\L\\ \\ "," \\ \\ __ \\ "," \\ \\ \\/\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],B:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\ "," \\ \\ _ <' "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],C:[" ____ ","/\\ _`\\ ","\\ \\ \\/\\_\\ "," \\ \\ \\/_/_ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],D:[" ____ ","/\\ _`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],E:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\ "," \\ \\ _\\L "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],F:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\"," \\ \\ _\\/"," \\ \\ \\/ "," \\ \\_\\ "," \\/_/ "," "," "],G:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\ "," \\ \\ \\L_L "," \\ \\ \\/, \\"," \\ \\____/"," \\/___/ "," "," "],H:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\_\\ \\ "," \\ \\ _ \\ "," \\ \\ \\ \\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],I:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\ \\ "," \\_\\ \\__ "," /\\_____\\"," \\/_____/"," "," "],J:[" _____ ","/\\___ \\ ","\\/__/\\ \\ "," _\\ \\ \\ "," /\\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],K:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\/'/' "," \\ \\ , < "," \\ \\ \\\\`\\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],L:[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ __ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],M:[" "," /'\\_/`\\ ","/\\ \\ ","\\ \\ \\__\\ \\ "," \\ \\ \\_/\\ \\ "," \\ \\_\\\\ \\_\\"," \\/_/ \\/_/"," "," "],N:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ `\\\\ \\ "," \\ \\ , ` \\ "," \\ \\ \\`\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],O:[" _____ ","/\\ __`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\ "," \\ \\_____\\"," \\/_____/"," "," "],P:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\"," \\ \\ ,__/"," \\ \\ \\/ "," \\ \\_\\ "," \\/_/ "," "," "],Q:[" _____ ","/\\ __`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\\\'\\\\ "," \\ \\___\\_\\"," \\/__//_/"," "," "],R:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\ "," \\ \\ , / "," \\ \\ \\\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/ /"," "," "],S:[" ____ ","/\\ _`\\ ","\\ \\,\\L\\_\\ "," \\/_\\__ \\ "," /\\ \\L\\ \\ "," \\ `\\____\\"," \\/_____/"," "," "],T:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],U:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\ "," \\ \\_____\\"," \\/_____/"," "," "],V:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_/ \\"," \\ `\\___/"," `\\/__/ "," "," "],W:[" __ __ ","/\\ \\ __/\\ \\ ","\\ \\ \\/\\ \\ \\ \\ "," \\ \\ \\ \\ \\ \\ \\ "," \\ \\ \\_/ \\_\\ \\"," \\ `\\___x___/"," '\\/__//__/ "," "," "],X:[" __ __ ","/\\ \\ /\\ \\ ","\\ `\\`\\/'/' "," `\\/ > < "," \\/'/\\`\\ "," /\\_\\\\ \\_\\"," \\/_/ \\/_/"," "," "],Y:[" __ __ ","/\\ \\ /\\ \\","\\ `\\`\\\\/'/"," `\\ `\\ /' "," `\\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],Z:[" ________ ","/\\_____ \\ ","\\/____//'/' "," //'/' "," //'/'___ "," /\\_______\\"," \\/_______/"," "," "],0:[" __ "," /'__`\\ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],1:[" _ "," /' \\ ","/\\_, \\ ","\\/_/\\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],2:[" ___ "," /'___`\\ ","/\\_\\ /\\ \\ ","\\/_/// /__ "," // /_\\ \\"," /\\______/"," \\/_____/ "," "," "],3:[" __ "," /'__`\\ ","/\\_\\L\\ \\ ","\\/_/_\\_<_ "," /\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],4:[" __ __ ","/\\ \\\\ \\ ","\\ \\ \\\\ \\ "," \\ \\ \\\\ \\_ "," \\ \\__ ,__\\"," \\/_/\\_\\_/"," \\/_/ "," "," "],5:[" ______ ","/\\ ___\\ ","\\ \\ \\__/ "," \\ \\___``\\ "," \\/\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],6:[" ____ "," /'___\\ ","/\\ \\__/ ","\\ \\ _``\\ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],7:[" ________ ","/\\_____ \\","\\/___//'/'"," /' /' "," /' /' "," /\\_/ "," \\// "," "," "],8:[" __ "," /'_ `\\ ","/\\ \\L\\ \\ ","\\/_> _ <_ "," /\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],9:[" __ "," /'_ `\\ ","/\\ \\L\\ \\ ","\\ \\___, \\ "," \\/__,/\\ \\ "," \\ \\_\\"," \\/_/"," "," "]," ":[" "," "," "," "," "," "," "," "," "],"!":[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ "," \\ \\_\\ "," \\/\\_\\"," \\/_/"," "," "],'"':[" __ __ ","/\\ \\\\ \\ ","\\ \\_\\\\_\\ "," \\/_//_/ "," "," "," "," "," "],"#":[" __ __ "," _\\ \\\\ \\__ ","/\\__ _ _\\ ","\\/_L\\ \\\\ \\L_ "," /\\_ _ _\\"," \\/_/\\_\\\\_\\/"," \\/_//_/ "," "," "],$:[" __ ","/\\ \\_ ","\\/'__`\\ ","/\\ \\_\\_\\ ","\\ \\____ \\ "," \\/\\ \\_\\ \\"," \\ `\\_ _/"," `\\_/\\_\\"," \\/_/"],"%":[" __ __ ","/\\_\\ / / ","\\/_/ / / "," / / "," / / __ "," /_/ /\\_\\"," /_/ \\/_/"," "," "],"&":[" ____ ","/| _ \\ ","|/\\ | "," \\// __`\\/\\ "," /| \\L> <_"," | \\_____/\\/"," \\/____/\\/ "," "," "],"'":[" __ ","/\\ \\ ","\\ \\/ "," \\/ "," "," "," "," "," "],"(":[" _ "," /' \\ ","/\\ ,/' ","\\ \\ \\ "," \\ \\ `\\ "," \\ `\\__\\"," `\\/_/ "," "," "],")":[" __ ","/\\ `\\ ","\\`\\ \\ "," `\\`\\ \\ "," `\\/' \\"," /\\__/"," \\/_/ "," "," "],"*":[" __ "," _\\ \\ _ ","/\\_` ' \\ ","\\/_> <_ "," /\\_, ,_\\"," \\/_/\\_\\/"," \\/_/ "," "," "],"+":[" __ "," /\\ \\ "," \\_\\ \\___ ","/\\___ __\\","\\/__/\\ \\_/"," \\ \\_\\ "," \\/_/ "," "," "],",":[" "," "," "," "," __ ","/\\ \\","\\ \\/"," \\/ "," "],"-":[" "," "," "," _______ ","/\\______\\","\\/______/"," "," "," "],".":[" "," "," "," "," __ ","/\\_\\","\\/_/"," "," "],"/":[" __"," / /"," / / "," / / "," / / "," /_/ ","/_/ "," "," "],":":[" "," "," __ ","/\\_\\ ","\\/_/_ "," /\\_\\"," \\/_/"," "," "],";":[" "," "," __ ","/\\_\\ ","\\/_/_ "," /\\ \\"," \\ \\/"," \\/ "," "],"<":[" ___ "," / / "," / / ","/< < ","\\ `\\ `\\ "," `\\ `\\_|"," `\\// "," "," "],"=":[" "," _______ ","/\\______\\ ","\\/______/_ "," /\\______\\"," \\/______/"," "," "," "],">":[" __ ","/\\ `\\ ","\\ `\\ `\\ "," `\\ > >"," / / "," /\\_/ "," \\// "," "," "],"?":[" _ "," /'_`\\ ","/\\_\\/\\`\\","\\/_//'/'"," /\\_\\ "," \\/\\_\\"," \\/_/"," "," "],"@":[" "," __ "," /'_`\\_ "," /'/'_` \\ ","/\\ \\ \\L\\ \\ ","\\ \\ `\\__,_\\"," \\ `\\_____\\"," `\\/_____/"," "],"[":[" ____ ","/\\ _\\ ","\\ \\ \\/ "," \\ \\ \\ "," \\ \\ \\_ "," \\ \\___\\"," \\/___/"," "," "],"\\":[" __ ","/\\ `\\ ","\\`\\ `\\ ","`\\`\\ `\\ "," `\\`\\ `\\ "," `\\`\\__\\"," `\\/__/"," "," "],"]":[" ____ ","/\\__ \\ ","\\/_/\\ \\ "," \\ \\ \\ "," \\_\\ \\ "," /\\___\\"," \\/___/"," "," "],"^":[" __ "," / `\\ ","/\\_/\\_\\ ","\\//\\// "," "," "," "," "," "],_:[" "," "," "," "," "," "," _______ "," /\\______\\"," \\/______/"],"{":[" _ "," /' \\"," \\ ,/'"," <' \\ ","< \\ `\\ "," \\`\\__\\"," \\/__/"," "," "],"|":[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"],"}":[" __ ","/\\ `\\ ","\\`\\ \\ "," \\ \\ `>"," //' \\ ","/\\__/' ","\\/_/ "," "," "],"~":[" _ _ "," /' \\/' \\ ","/\\_/\\__// ","\\//\\/__/ "," "," "," "," "," "]}};var S8={name:"Colossal",height:11,chars:{A:[" d8888 "," d88888 "," d88P888 "," d88P 888 "," d88P 888 "," d88P 888 "," d8888888888 ","d88P 888 "," "," "," "],B:["888888b. ",'888 "88b ',"888 .88P ","8888888K. ",'888 "Y88b ',"888 888 ","888 d88P ",'8888888P" '," "," "," "],C:[" .d8888b. ","d88P Y88b ","888 888 ","888 ","888 ","888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],D:["8888888b. ",'888 "Y88b ',"888 888 ","888 888 ","888 888 ","888 888 ","888 .d88P ",'8888888P" '," "," "," "],E:["8888888888 ","888 ","888 ","8888888 ","888 ","888 ","888 ","8888888888 "," "," "," "],F:["8888888888 ","888 ","888 ","8888888 ","888 ","888 ","888 ","888 "," "," "," "],G:[" .d8888b. ","d88P Y88b ","888 888 ","888 ","888 88888 ","888 888 ","Y88b d88P ",' "Y8888P88 '," "," "," "],H:["888 888 ","888 888 ","888 888 ","8888888888 ","888 888 ","888 888 ","888 888 ","888 888 "," "," "," "],I:["8888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],J:[" 888888 ",' "88b '," 888 "," 888 "," 888 "," 888 "," 88P "," 888 "," .d88P ",' .d88P" ','888P" '],K:["888 d8P ","888 d8P ","888 d8P ","888d88K ","8888888b ","888 Y88b ","888 Y88b ","888 Y88b "," "," "," "],L:["888 ","888 ","888 ","888 ","888 ","888 ","888 ","88888888 "," "," "," "],M:["888b d888 ","8888b d8888 ","88888b.d88888 ","888Y88888P888 ","888 Y888P 888 ","888 Y8P 888 ",'888 " 888 ',"888 888 "," "," "," "],N:["888b 888 ","8888b 888 ","88888b 888 ","888Y88b 888 ","888 Y88b888 ","888 Y88888 ","888 Y8888 ","888 Y888 "," "," "," "],O:[" .d88888b. ",'d88P" "Y88b ',"888 888 ","888 888 ","888 888 ","888 888 ","Y88b. .d88P ",' "Y88888P" '," "," "," "],P:["8888888b. ","888 Y88b ","888 888 ","888 d88P ",'8888888P" ',"888 ","888 ","888 "," "," "," "],Q:[" .d88888b. ",'d88P" "Y88b ',"888 888 ","888 888 ","888 888 ","888 Y8b 888 ","Y88b.Y8b88P ",' "Y888888" '," Y8b "," "," "],R:["8888888b. ","888 Y88b ","888 888 ","888 d88P ",'8888888P" ',"888 T88b ","888 T88b ","888 T88b "," "," "," "],S:[" .d8888b. ","d88P Y88b ","Y88b. ",' "Y888b. ',' "Y88b. ',' "888 ',"Y88b d88P ",' "Y8888P" '," "," "," "],T:["88888888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 "," "," "," "],U:["888 888 ","888 888 ","888 888 ","888 888 ","888 888 ","888 888 ","Y88b. .d88P ",' "Y88888P" '," "," "," "],V:["888 888 ","888 888 ","888 888 ","Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," Y8P "," "," "," "],W:["888 888 ","888 o 888 ","888 d8b 888 ","888 d888b 888 ","888d88888b888 ","88888P Y88888 ","8888P Y8888 ","888P Y888 "," "," "," "],X:["Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," d888b "," d88888b "," d88P Y88b ","d88P Y88b "," "," "," "],Y:["Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," 888 "," 888 "," 888 "," 888 "," "," "," "],Z:["8888888888P "," d88P "," d88P "," d88P "," d88P "," d88P "," d88P ","d8888888888 "," "," "," "],0:[" .d8888b. ","d88P Y88b ","888 888 ","888 888 ","888 888 ","888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],1:[" d888 ","d8888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],2:[" .d8888b. ","d88P Y88b "," 888 "," .d88P ",' .od888P" ','d88P" ','888" ',"888888888 "," "," "," "],3:[" .d8888b. ","d88P Y88b "," .d88P ",' 8888" ',' "Y8b. ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],4:[" d8888 "," d8P888 "," d8P 888 "," d8P 888 ","d88 888 ","8888888888 "," 888 "," 888 "," "," "," "],5:["888888888 ","888 ","888 ","8888888b. ",' "Y88b '," 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],6:[" .d8888b. ","d88P Y88b ","888 ","888d888b. ",'888P "Y88b ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],7:["8888888888 "," d88P "," d88P "," d88P "," 88888888 "," d88P "," d88P ","d88P "," "," "," "],8:[" .d8888b. ","d88P Y88b ","Y88b. d88P ",' "Y88888" ','.d8P""Y8b. ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],9:[" .d8888b. ","d88P Y88b ","888 888 ","Y88b. d888 ",' "Y888P888 '," 888 ","Y88b d88P ",' "Y8888P" '," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "],"!":["888 ","888 ","888 ","888 ","888 ","Y8P ",' " ',"888 "," "," "," "],'"':["88 88 ","8P 8P ",'" " '," "," "," "," "," "," "," "," "],"#":[" 888 888 "," 888 888 ","888888888888 "," 888 888 "," 888 888 ","888888888888 "," 888 888 "," 888 888 "," "," "," "],$:[" 88 "," .d88888b. ",'d88P 88"88b ',"Y88b.88 ",' "Y88888b. ',' 88"88b ',"Y88b 88.88P ",' "Y88888P" '," 88 "," "," "],"%":["d88b d88P ","Y88P d88P "," d88P "," d88P "," d88P "," d88P "," d88P d88b ","d88P Y88P "," "," "," "],"&":[" .d8888b. ",'d88P "88b ',"Y88b. d88P ",' "Y8888P" ',".d88P88K.d88P ",'888" Y888P" ',"Y88b .d8888b ",' "Y8888P" Y88b'," "," "," "],"'":["d8b ","88P ","8P ",'" '," "," "," "," "," "," "," "],"(":[" .d88 ",' d88P" ',"d88P ","888 ","888 ","Y88b "," Y88b. ",' "Y88 '," "," "," "],")":["88b. ",'"Y88b '," Y88b "," 888 "," 888 "," d88P ",".d88P ",'88P" '," "," "," "],"*":[" "," o "," d8b "," d888b ",'"Y888888888P"',' "Y88888P" ',' d88P"Y88b ',' dP" "Yb '," "," "," "],"+":[" "," "," "," 888 ","8888888 "," 888 "," "," "," "," "," "],",":[" "," "," "," "," "," ","d8b ","88P ","8P ",'" '," "],"-":[" "," "," "," "," ","888888 "," "," "," "," "," "],".":[" "," "," "," "," "," ","d8b ","Y8P "," "," "," "],"/":[" d88P "," d88P "," d88P "," d88P "," d88P "," d88P "," d88P ","d88P "," "," "," "],":":[" "," "," ","d8b ","Y8P "," ","d8b ","Y8P "," "," "," "],";":[" "," "," ","d8b ","Y8P "," ","d8b ","88P ","8P ",'" '," "],"<":[" d88P "," d88P "," d88P ","d88P ","Y88b "," Y88b "," Y88b "," Y88b "," "," "," "],"=":[" "," "," ","888888 "," ","888888 "," "," "," "," "," "],">":["Y88b "," Y88b "," Y88b "," Y88b "," d88P "," d88P "," d88P ","d88P "," "," "," "],"?":[" .d8888b. ","d88P Y88b "," .d88P ",' .d88P" ',' 888" '," 888 "," "," 888 "," "," "," "],"@":[" .d8888888b. ",'d88P" "Y88b ',"888 d8b 888 ","888 888 888 ","888 888bd88P ",'888 Y8888P" ',"Y88b. .d8 ",' "Y88888888P" '," "," "," "],"[":["8888888 ","888 ","888 ","888 ","888 ","888 ","888 ","8888888 "," "," "," "],"\\":["Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," "," "," "],"]":["8888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],"^":[" o "," d8b "," d888b ",' d8P"Y8b '," "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," ","88888888 "," "," "," "],"{":[" .d888 ",' d88P" '," 888 ",".888 ","888( ",'"888 '," 888 "," Y88b. ",' "Y888 '," "," "],"|":[" 888 "," 888 "," 888 "," 888 "," "," 888 "," 888 "," 888 "," 888 "," "," "],"}":["888b. ",' "Y88b '," 888 "," 888. "," )888 ",' 888" '," 888 "," .d88P ",'888P" '," "," "],"~":[" "," "," d888b d88 ","d888888888P ","88P Y888P "," "," "," "," "," "," "]}};var I8={name:"Isometric1",height:11,chars:{A:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],B:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\__\\ "," /:/\\:\\ \\:|__|"," \\:\\~\\:\\/:/ /"," \\:\\ \\::/ / "," \\:\\/:/ / "," \\::/__/ "," ~~ "],C:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/ \\:\\__\\"," \\:\\ \\ \\/__/"," \\:\\ \\ "," \\:\\ \\ "," \\:\\__\\ "," \\/__/ "],D:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\__\\ "," /:/__/ \\:|__|"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/__/ "," ~~ "],E:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\:\\~\\:\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\ \\/__/ "," \\:\\__\\ "," \\/__/ "],F:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\ \\/__/"," \\:\\__\\ "," \\/__/ "," "," "],G:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/_\\:\\__\\"," \\:\\ /\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],H:[" ___ "," /\\__\\ "," /:/ / "," /:/__/ "," /::\\ \\ ___ "," /:/\\:\\ /\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],I:[" "," ___ "," /\\ \\ "," \\:\\ \\ "," /::\\__\\"," __/:/\\/__/"," /\\/:/ / "," \\::/__/ "," \\:\\__\\ "," \\/__/ "," "],J:[" ___ "," /\\ \\ "," \\:\\ \\ "," ___ /::\\__\\"," /\\ /:/\\/__/"," \\:\\/:/ / "," \\::/ / "," \\/__/ "," "," "," "],K:[" ___ "," /\\__\\ "," /:/ / "," /:/__/ "," /::\\__\\____ "," /:/\\:::::\\__\\"," \\/_|:|~~|~ "," |:| | "," |:| | "," |:| | "," \\|__| "],L:[" ___ "," /\\__\\"," /:/ /"," /:/ / "," /:/ / "," /:/__/ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\__\\"," \\/__/"],M:[" ___ "," /\\__\\ "," /::| | "," /:|:| | "," /:/|:|__|__ "," /:/ |::::\\__\\"," \\/__/~~/:/ /"," /:/ / "," /:/ / "," /:/ / "," \\/__/ "],N:[" ___ "," /\\__\\ "," /::| | "," /:|:| | "," /:/|:| |__ "," /:/ |:| /\\__\\"," \\/__|:|/:/ /"," |:/:/ / "," |::/ / "," /:/ / "," \\/__/ "],O:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/ \\:\\__\\"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],P:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," \\/__/ "," "," "],Q:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," \\:\\~\\:\\ \\ "," \\:\\ \\:\\__\\"," \\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],R:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/_|::\\/:/ /"," |:|::/ / "," |:|\\/__/ "," |:| | "," \\|__| "],S:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\ \\ \\ "," _\\:\\~\\ \\ \\ "," /\\ \\:\\ \\ \\__\\"," \\:\\ \\:\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],T:[" ___ "," /\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," /::\\ \\ "," /:/\\:\\__\\"," /:/ \\/__/"," /:/ / "," \\/__/ "," "," "],U:[" ___ "," /\\__\\ "," /:/ / "," /:/ / "," /:/ / ___ "," /:/__/ /\\__\\"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],V:[" ___ "," /\\__\\ "," /:/ / "," /:/ / "," /:/__/ ___ "," |:| | /\\__\\"," |:| |/:/ /"," |:|__/:/ / "," \\::::/__/ "," ~~~~ "," "],W:[" ___ "," /\\__\\ "," /:/ _/_ "," /:/ /\\__\\ "," /:/ /:/ _/_ "," /:/_/:/ /\\__\\"," \\:\\/:/ /:/ /"," \\::/_/:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],X:[" ___ "," |\\__\\ "," |:| | "," |:| | "," |:|__|__ "," ____/::::\\__\\"," \\::::/~~/~ "," ~~|:|~~| "," |:| | "," |:| | "," \\|__| "],Y:[" ___ "," |\\__\\ "," |:| | "," |:| | "," |:|__|__ "," /::::\\__\\"," /:/~~/~ "," /:/ / "," \\/__/ "," "," "],Z:[" ___ "," /\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," _______\\:\\__\\"," \\::::::::/__/"," \\:\\~~\\~~ "," \\:\\ \\ "," \\:\\__\\ "," \\/__/ "],0:[" "," "," "," "," "," "," "," "," "," "," "],1:[" "," "," "," "," "," "," "," "," "," "," "],2:[" "," "," "," "," "," "," "," "," "," "," "],3:[" "," "," "," "," "," "," "," "," "," "," "],4:[" "," "," "," "," "," "," "," "," "," "," "],5:[" "," "," "," "," "," "," "," "," "," "," "],6:[" "," "," "," "," "," "," "," "," "," "," "],7:[" "," "," "," "," "," "," "," "," "," "," "],8:[" "," "," "," "," "," "," "," "," "," "," "],9:[" "," "," "," "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "],"!":[" "," "," "," "," "," "," "," "," "," "," "],"-":[" "," "," "," "," "," "," "," "," "," "," "],".":[" "," "," "," "," "," "," "," "," "," "," "],":":[" "," "," "," "," "," "," "," "," "," "," "],"[":[" ___ "," /\\ \\ "," /::\\ \\ "," /::::\\ \\ "," /::::::\\ \\ "," /:::LS:::\\__\\"," \\::1994::/ /"," \\::::::/ / "," \\::::/ / "," \\::/ / "," \\/__/ "],_:[" "," "," "," "," "," "," "," "," "," "," "]}};var A8={name:"DOS Rebel",height:10,chars:{A:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],B:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],C:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588"," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],D:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],E:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588"," \u2591\u2588\u2588\u2588 \u2588 \u2591 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588 "," \u2591\u2588\u2588\u2588 \u2591 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],F:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588"," \u2591\u2588\u2588\u2588 \u2588 \u2591 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2588 "," \u2591\u2588\u2588\u2588 \u2591 "," \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591 "," "," "],G:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],H:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],I:[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],J:[" \u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],K:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591 "," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591 "," "," "],L:[" \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],M:[" \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],N:[" \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],O:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],P:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591 "," "," "],Q:[" \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591 "," "," "],R:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],S:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],T:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2588","\u2591 \u2591\u2588\u2588\u2588 \u2591 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],U:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],V:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],W:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],X:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],Y:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],Z:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591 \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],0:[" \u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],1:[" \u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],2:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591 "," \u2588\u2588\u2588 \u2588","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],3:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],4:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2588"," \u2591\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],5:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588","\u2591\u2588\u2588\u2588 \u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],6:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],7:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],8:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],9:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "],"!":[" \u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 "," \u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "],'"':[" \u2588\u2588 \u2588\u2588","\u2591\u2588\u2588\u2591\u2588\u2588","\u2591\u2591 \u2591\u2591 "," "," "," "," "," "," "," "],"#":[" \u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "," "," "],$:[" \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],"%":[" \u2588\u2588\u2588 \u2588\u2588\u2588"," \u2591\u2591\u2591 \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 \u2588\u2588\u2588 ","\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],"&":[" \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],"'":[" \u2588\u2588"," \u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "," "," "," "," "," "],"(":[" \u2588\u2588\u2588"," \u2588\u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],")":[" \u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 "," \u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],"*":[" \u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 "," \u2591\u2591\u2591 "," "," "],"+":[" "," \u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "," "],",":[" "," "," "," "," "," "," \u2588\u2588"," \u2588\u2588 ","\u2591\u2591 "," "],"-":[" "," "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "," "," "," "],".":[" "," "," "," "," "," "," \u2588\u2588","\u2591\u2591 "," "," "],"/":[" \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],":":[" "," "," \u2588\u2588","\u2591\u2591 "," "," "," \u2588\u2588","\u2591\u2591 "," "," "],";":[" "," "," "," "," \u2588\u2588"," \u2591\u2591 "," \u2588\u2588"," \u2588\u2588 ","\u2591\u2591 "," "],"<":[" \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"=":[" "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "," "," "],">":[" \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],"?":[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2591\u2591 "," \u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],"@":[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],"[":[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],"\\":[" \u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"]":[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],"^":[" \u2588\u2588 "," \u2588\u2588\u2588\u2588 "," \u2588\u2588\u2591\u2591\u2588\u2588","\u2591\u2591 \u2591\u2591 "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],"{":[" \u2588\u2588\u2588"," \u2588\u2588\u2591 "," \u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"|":[" \u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "],"}":[" \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2591 "," \u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2591\u2591 "," "," "],"~":[" "," \u2588\u2588\u2588 \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "," "," "," "," "]}};var D8={name:"Ghost",height:9,chars:{A:[" ('-. "," ( OO ).-. "," / . --. / "," | \\-. \\ ",".-'-' | | "," \\| |_.' | "," | .-. | "," | | | | "," `--' `--' "],B:[".-. .-') ","\\ ( OO ) "," ;-----.\\ "," | .-. | "," | '-' /_) "," | .-. `. "," | | \\ | "," | '--' / "," `------' "],C:[" "," "," .-----. "," ' .--./ "," | |('-. "," /_) |OO ) "," || |`-'| ","(_' '--'\\ "," `-----' "],D:[" _ .-') _ ","( ( OO) ) "," \\ .'_ "," ,`'--..._) "," | | \\ ' "," | | ' | "," | | / : "," | '--' / "," `-------' "],E:[" ('-. "," _( OO) ","(,------. "," | .---' "," | | ","(| '--. "," | .--' "," | `---. "," `------' "],F:[" "," "," ,------. ","('-| _.---' ","(OO|(_\\ ","/ | '--. ","\\_)| .--' "," \\| |_) "," `--' "],G:[" "," "," ,----. "," ' .-./-') "," | |_( O- ) "," | | .--, \\ ","(| | '. (_/ "," | '--' | "," `------' "],H:[" ('-. .-. ","( OO ) / ",",--. ,--. ","| | | | ","| .| | ","| | ","| .-. | ","| | | | ","`--' `--' "],I:[" "," "," ,-.-') "," | |OO) "," | | \\ "," | |(_/ "," ,| |_.' ","(_| | "," `--' "],J:[" "," "," ,--. "," .-')| ,| ","( OO |(_| ","| `-'| | ",",--. | | ","| '-' / "," `-----' "],K:[".-. .-') ","\\ ( OO ) ",",--. ,--. ","| .' / ","| /, ","| ' _) ","| . \\ ","| |\\ \\ ","`--' '--' "],L:[" "," "," ,--. "," | |.-') "," | | OO ) "," | |`-' | ","(| '---.' "," | | "," `------' "],M:[" _ .-') ","( '.( OO )_ "," ,--. ,--.)"," | `.' | "," | | "," | |'.'| | "," | | | | "," | | | | "," `--' `--' "],N:[" .-') _ "," ( OO ) ) ",",--./ ,--,' ","| \\ | |\\ ","| \\| | ) ","| . |/ ","| |\\ | ","| | \\ | ","`--' `--' "],O:[" "," "," .-'),-----. ","( OO' .-. '","/ | | | |","\\_) | |\\| |"," \\ | | | |"," `' '-' '"," `-----' "],P:[" _ (`-. "," ( (OO ) "," _.` \\ ","(__...--'' "," | / | | "," | |_.' | "," | .___.' "," | | "," `--' "],Q:[" .-') "," .( OO) "," (_)---\\_) "," ' .-. ' "," ,| | | | ","(_| | | | "," | | | | "," ' '-' '-."," `-----'--'"],R:[" _ .-') ","( \\( -O ) "," ,------. "," | /`. ' "," | / | | "," | |_.' | "," | . '.' "," | |\\ \\ "," `--' '--' "],S:[" .-') "," ( OO ). ","(_)---\\_) ","/ _ | ","\\ :` `. "," '..`''.) ",".-._) \\ ","\\ / "," `-----' "],T:[" .-') _ ","( OO) ) ","/ '._ ","|'--...__) ","'--. .--' "," | | "," | | "," | | "," `--' "],U:[" "," "," ,--. ,--. "," | | | | "," | | | .-') "," | |_|( OO )"," | | | `-' /","(' '-'(_.-' "," `-----' "],V:[" (`-. "," _(OO )_ ",",--(_/ ,. \\","\\ \\ /(__/"," \\ \\ / / "," \\ ' /, "," \\ /__)"," \\ / "," `-' "],W:[" (`\\ .-') /`"," `.( OO ),'",",--./ .--. ","| | | ","| | | |, ","| |.'.| |_)","| | ","| ,'. | ","'--' '--' "],X:[") (`-. "," ( OO ). ","(_/. \\_)-. "," \\ `.' / "," \\ /\\ "," \\ \\ | "," .' \\_) "," / .'. \\ ","'--' '--' "],Y:[" "," "," ,--. ,--."," \\ `.' / "," .-') / ","(OO \\ / "," | / /\\_ "," `-./ /.__) "," `--' "],Z:[" .-') _ "," ( OO) ) ",",(_)----. ","| | ","'--. / ","(_/ / "," / /___ ","| | ","`--------' "],0:[" "," "," .----. "," / .. \\ ",". / \\ . ","| | ' | ","' \\ / ' "," \\ `' / "," `---'' "],1:[" "," "," .---. ","/_ | "," | | "," | | "," | | "," | | "," `---' "],2:[" "," "," .-----. ","/ ,-. \\ ","'-' | | "," .' / "," .' /__ ","| | ","`-------' "],3:[" "," "," .-----. ","/ -. \\ ","'-' _' | "," |_ < ",".-. | | ","\\ `-' / "," `----'' "],4:[" "," "," .---. "," / . | "," / /| | "," / / | |_ ","/ '-' | ","`----| |-' "," `--' "],5:[" "," ",".------. ","| ___| ","| '--. ","`---. '. ",".- | | ","| `-' / "," `----'' "],6:[" "," "," ,--. "," / .' ",". / -. ","| .-. ' ","' \\ | | ","\\ `' / "," `----' "],7:[" "," ",".--------. ","| __ ' ","`--' . / "," / / "," . / "," / / "," `--' "],8:[" "," "," .-----. "," / .-. \\ ","| \\_.' / "," / .-. '. ","| | | | "," \\ '-' / "," `----'' "],9:[" "," "," .----. "," / ,. \\ ","| | \\ | "," ' `-' ' "," `- / ' "," ,' / "," `---' "]," ":[" "," "," "," "," "," "," "," "," "],"!":[",---. ","| | ","| | ","| | ","| | ","| .' ","`--' ",".--. ","'--' "],'"':[" ",",--.,--. ","\\ |\\ | "," `-' `-' "," "," "," "," "," "],"#":[" "," ,-. ,-. "," | | | | ",",--| |-| |--.","'--| |-| |--'","'--| |-| |--'"," | | | | "," `-' `-' "," "],$:[" ,-. "," .-| |-. ","| | |_/ ","\\ | |. "," '-| | '. ",".- | | | ","| `| | / "," `-| |'` "," `-' "],"%":[" ,-. "," ,--. / / "," '--'/ / "," / / "," / / "," / / "," / / ,--. ","/ / '--' ","`-' "],"&":[" "," .-----. ","/ .-. \\ ","| \\_.' / ","/ .-. ',-. ","| | | . /_ ","\\ '-' _.__)"," `----'' "," "],"'":[" ",",--. ","\\ | "," `-' "," "," "," "," "," "],"(":[" ,-. "," / | ","' .' ","| | ","| | ","| | ","' '. "," \\ | "," `-' "],")":[",-. ","| \\ ","'. ' "," | | "," | | "," | | ",".' ' ","| / ","`-' "],"*":[" "," .-. "," .-,| |,-. "," _\\ ' ' /_ ","(__ __) "," / . . \\ "," `-'| |`-' "," `-' "," "],"+":[" "," "," ,-. "," | | ",",---| |---. ","'---| |---' "," | | "," `-' "," "],",":[" "," "," "," "," "," "," ",".-. ","',/ "],"-":[" "," "," "," .-') "," _( OO) ","(,------. "," '------' "," "," "],".":[" "," "," "," "," "," "," ",".-. ","`-' "],"/":[" ,-. "," / / "," / / "," / / "," / / "," / / "," / / ","/ / ","`-' "],":":[" "," ",".-. ","`-' "," ",".-. ","`-' "," "," "],";":[" "," ",".-. ","'-' "," ",".-. ","',/ "," "," "],"<":[" "," ,-. "," / / "," / / ","/ / ","\\ \\ "," \\ \\ "," \\ \\ "," `-' "],"=":[" "," ",",-----. ","'-----' "," ",",-----. ","'-----' "," "," "],">":[" ",",-. "," \\ \\ "," \\ \\ "," \\ \\ "," / / "," / / "," / / ","`-' "],"?":[" ,------. ","' .--. ' ","| | | | ","'--' | | "," __. | "," | .' "," |___| "," .---. "," '---' "],"@":[" "," "," ____ "," .' __ \\ ","/ .' \\ | ","| | (_/ | ","\\ `.__.'\\ "," `.___ .' "," "],"[":[",----. ","| | ","| .-' ","| | ","| | ","| | ","| '-. ","| | ","`----' "],"\\":[",-. ","\\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," `-' "],"]":[",----. ","| | ","`-. | "," | | "," | | "," | | ",".-' | ","| | ","`----' "],"^":[" "," "," ,---. "," / \\ \\ ","`--' `--' "," "," "," "," "],_:[" "," "," "," "," "," (`-. "," (OO )_ ",",------.) ","`------' "],"{":[" ,--. "," | | "," | .' "," .' / ","< < "," `. \\ "," | '. "," | | "," `--' "],"|":[",-. ","| | ","| | ","| | ","| | ","| | ","| | ","| | ","`-' "],"}":[",--. ","| | ","'. | "," \\ ` "," > > "," / . ",".' | ","| | ","`--' "],"~":[" "," .--, "," .--' / "," / ---` ","`--' "," "," "," "," "]}};var L8={name:"Bloody",height:10,chars:{A:[" \u2584\u2584\u2584 ","\u2592\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588 \u2580\u2588\u2584 ","\u2591\u2588\u2588\u2584\u2584\u2584\u2584\u2588\u2588 "," \u2593\u2588 \u2593\u2588\u2588\u2592"," \u2592\u2592 \u2593\u2592\u2588\u2591"," \u2592 \u2592\u2592 \u2591"," \u2591 \u2592 "," \u2591 \u2591"," "],B:[" \u2584\u2584\u2584\u2584 ","\u2593\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2592 \u2584\u2588\u2588","\u2592\u2588\u2588\u2591\u2588\u2580 ","\u2591\u2593\u2588 \u2580\u2588\u2593","\u2591\u2592\u2593\u2588\u2588\u2588\u2580\u2592","\u2592\u2591\u2592 \u2591 "," \u2591 \u2591 "," \u2591 "," \u2591 "],C:[" \u2584\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2580 \u2580\u2588 ","\u2592\u2593\u2588 \u2584 ","\u2592\u2593\u2593\u2584 \u2584\u2588\u2588\u2592","\u2592 \u2593\u2588\u2588\u2588\u2580 \u2591","\u2591 \u2591\u2592 \u2592 \u2591"," \u2591 \u2592 ","\u2591 ","\u2591 \u2591 ","\u2591 "],D:["\u2593\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2580 \u2588\u2588\u258C","\u2591\u2588\u2588 \u2588\u258C","\u2591\u2593\u2588\u2584 \u258C","\u2591\u2592\u2588\u2588\u2588\u2588\u2593 "," \u2592\u2592\u2593 \u2592 "," \u2591 \u2592 \u2592 "," \u2591 \u2591 \u2591 "," \u2591 "," \u2591 "],E:["\u2593\u2588\u2588\u2588\u2588\u2588 ","\u2593\u2588 \u2580 ","\u2592\u2588\u2588\u2588 ","\u2592\u2593\u2588 \u2584 ","\u2591\u2592\u2588\u2588\u2588\u2588\u2592","\u2591\u2591 \u2592\u2591 \u2591"," \u2591 \u2591 \u2591"," \u2591 "," \u2591 \u2591"," "],F:[" \u2588\u2588\u2588\u2588\u2588\u2592","\u2593\u2588\u2588 \u2592 ","\u2592\u2588\u2588\u2588\u2588 \u2591 ","\u2591\u2593\u2588\u2592 \u2591 ","\u2591\u2592\u2588\u2591 "," \u2592 \u2591 "," \u2591 "," \u2591 \u2591 "," "," "],G:[" \u2584\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2592 \u2580\u2588\u2592","\u2592\u2588\u2588\u2591\u2584\u2584\u2584\u2591","\u2591\u2593\u2588 \u2588\u2588\u2593","\u2591\u2592\u2593\u2588\u2588\u2588\u2580\u2592"," \u2591\u2592 \u2592 "," \u2591 \u2591 ","\u2591 \u2591 \u2591 "," \u2591 "," "],H:[" \u2588\u2588\u2591 \u2588\u2588 ","\u2593\u2588\u2588\u2591 \u2588\u2588\u2592","\u2592\u2588\u2588\u2580\u2580\u2588\u2588\u2591","\u2591\u2593\u2588 \u2591\u2588\u2588 ","\u2591\u2593\u2588\u2592\u2591\u2588\u2588\u2593"," \u2592 \u2591\u2591\u2592\u2591\u2592"," \u2592 \u2591\u2592\u2591 \u2591"," \u2591 \u2591\u2591 \u2591"," \u2591 \u2591 \u2591"," "],I:[" \u2588\u2588\u2593","\u2593\u2588\u2588\u2592","\u2592\u2588\u2588\u2592","\u2591\u2588\u2588\u2591","\u2591\u2588\u2588\u2591","\u2591\u2593 "," \u2592 \u2591"," \u2592 \u2591"," \u2591 "," "],J:[" \u2584\u2584\u2584\u2588\u2588\u2580\u2580\u2580"," \u2592\u2588\u2588 "," \u2591\u2588\u2588 ","\u2593\u2588\u2588\u2584\u2588\u2588\u2593 "," \u2593\u2588\u2588\u2588\u2592 "," \u2592\u2593\u2592\u2592\u2591 "," \u2592 \u2591\u2592\u2591 "," \u2591 \u2591 \u2591 "," \u2591 \u2591 "," "],K:[" \u2588\u2588 \u2584\u2588\u2580"," \u2588\u2588\u2584\u2588\u2592 ","\u2593\u2588\u2588\u2588\u2584\u2591 ","\u2593\u2588\u2588 \u2588\u2584 ","\u2592\u2588\u2588\u2592 \u2588\u2584","\u2592 \u2592\u2592 \u2593\u2592","\u2591 \u2591\u2592 \u2592\u2591","\u2591 \u2591\u2591 \u2591 ","\u2591 \u2591 "," "],L:[" \u2588\u2588\u2593 ","\u2593\u2588\u2588\u2592 ","\u2592\u2588\u2588\u2591 ","\u2592\u2588\u2588\u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2591 \u2592\u2591\u2593 \u2591","\u2591 \u2591 \u2592 \u2591"," \u2591 \u2591 "," \u2591 \u2591"," "],M:[" \u2588\u2588\u2588\u2584 \u2584\u2588\u2588\u2588\u2593","\u2593\u2588\u2588\u2592\u2580\u2588\u2580 \u2588\u2588\u2592","\u2593\u2588\u2588 \u2593\u2588\u2588\u2591","\u2592\u2588\u2588 \u2592\u2588\u2588 ","\u2592\u2588\u2588\u2592 \u2591\u2588\u2588\u2592","\u2591 \u2592\u2591 \u2591 \u2591","\u2591 \u2591 \u2591","\u2591 \u2591 "," \u2591 "," "],N:[" \u2588\u2588\u2588\u2584 \u2588 "," \u2588\u2588 \u2580\u2588 \u2588 ","\u2593\u2588\u2588 \u2580\u2588 \u2588\u2588\u2592","\u2593\u2588\u2588\u2592 \u2590\u258C\u2588\u2588\u2592","\u2592\u2588\u2588\u2591 \u2593\u2588\u2588\u2591","\u2591 \u2592\u2591 \u2592 \u2592 ","\u2591 \u2591\u2591 \u2591 \u2592\u2591"," \u2591 \u2591 \u2591 "," \u2591 "," "],O:[" \u2592\u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588\u2592 \u2588\u2588\u2592","\u2592\u2588\u2588\u2591 \u2588\u2588\u2592","\u2592\u2588\u2588 \u2588\u2588\u2591","\u2591 \u2588\u2588\u2588\u2588\u2593\u2592\u2591","\u2591 \u2592\u2591\u2592\u2591\u2592\u2591 "," \u2591 \u2592 \u2592\u2591 ","\u2591 \u2591 \u2591 \u2592 "," \u2591 \u2591 "," "],P:[" \u2588\u2588\u2593\u2588\u2588\u2588 ","\u2593\u2588\u2588\u2591 \u2588\u2588\u2592","\u2593\u2588\u2588\u2591 \u2588\u2588\u2593\u2592","\u2592\u2588\u2588\u2584\u2588\u2593\u2592 \u2592","\u2592\u2588\u2588\u2592 \u2591 \u2591","\u2592\u2593\u2592\u2591 \u2591 \u2591","\u2591\u2592 \u2591 ","\u2591\u2591 "," "," "],Q:[" \u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588\u2593 \u2588\u2588\u2592","\u2592\u2588\u2588\u2592 \u2588\u2588\u2591","\u2591\u2588\u2588 \u2588\u2580 \u2591","\u2591\u2592\u2588\u2588\u2588\u2592\u2588\u2584 ","\u2591\u2591 \u2592\u2592\u2591 \u2592 "," \u2591 \u2592\u2591 \u2591 "," \u2591 \u2591 "," \u2591 "," "],R:[" \u2588\u2588\u2580\u2588\u2588\u2588 ","\u2593\u2588\u2588 \u2592 \u2588\u2588\u2592","\u2593\u2588\u2588 \u2591\u2584\u2588 \u2592","\u2592\u2588\u2588\u2580\u2580\u2588\u2584 ","\u2591\u2588\u2588\u2593 \u2592\u2588\u2588\u2592","\u2591 \u2592\u2593 \u2591\u2592\u2593\u2591"," \u2591\u2592 \u2591 \u2592\u2591"," \u2591\u2591 \u2591 "," \u2591 "," "],S:[" \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588 \u2592 ","\u2591 \u2593\u2588\u2588\u2584 "," \u2592 \u2588\u2588\u2592","\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2592","\u2592 \u2592\u2593\u2592 \u2592 \u2591","\u2591 \u2591\u2592 \u2591 \u2591","\u2591 \u2591 \u2591 "," \u2591 "," "],T:["\u2584\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2593","\u2593 \u2588\u2588\u2592 \u2593\u2592","\u2592 \u2593\u2588\u2588\u2591 \u2592\u2591","\u2591 \u2593\u2588\u2588\u2593 \u2591 "," \u2592\u2588\u2588\u2592 \u2591 "," \u2592 \u2591\u2591 "," \u2591 "," \u2591 "," "," "],U:[" \u2588 \u2588\u2588 "," \u2588\u2588 \u2593\u2588\u2588\u2592","\u2593\u2588\u2588 \u2592\u2588\u2588\u2591","\u2593\u2593\u2588 \u2591\u2588\u2588\u2591","\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2593 ","\u2591\u2592\u2593\u2592 \u2592 \u2592 ","\u2591\u2591\u2592\u2591 \u2591 \u2591 "," \u2591\u2591\u2591 \u2591 \u2591 "," \u2591 "," "],V:[" \u2588\u2588\u2592 \u2588\u2593","\u2593\u2588\u2588\u2591 \u2588\u2592"," \u2593\u2588\u2588 \u2588\u2592\u2591"," \u2592\u2588\u2588 \u2588\u2591\u2591"," \u2592\u2580\u2588\u2591 "," \u2591 \u2590\u2591 "," \u2591 \u2591\u2591 "," \u2591\u2591 "," \u2591 "," \u2591 "],W:[" \u2588 \u2588\u2591","\u2593\u2588\u2591 \u2588 \u2591\u2588\u2591","\u2592\u2588\u2591 \u2588 \u2591\u2588 ","\u2591\u2588\u2591 \u2588 \u2591\u2588 ","\u2591\u2591\u2588\u2588\u2592\u2588\u2588\u2593 ","\u2591 \u2593\u2591\u2592 \u2592 "," \u2592 \u2591 \u2591 "," \u2591 \u2591 "," \u2591 "," "],X:["\u2592\u2588\u2588 \u2588\u2588\u2592","\u2592\u2592 \u2588 \u2588 \u2592\u2591","\u2591\u2591 \u2588 \u2591"," \u2591 \u2588 \u2588 \u2592 ","\u2592\u2588\u2588\u2592 \u2592\u2588\u2588\u2592","\u2592\u2592 \u2591 \u2591\u2593 \u2591","\u2591\u2591 \u2591\u2592 \u2591"," \u2591 \u2591 "," \u2591 \u2591 "," "],Y:["\u2593\u2588\u2588 \u2588\u2588\u2593"," \u2592\u2588\u2588 \u2588\u2588\u2592"," \u2592\u2588\u2588 \u2588\u2588\u2591"," \u2591 \u2590\u2588\u2588\u2593\u2591"," \u2591 \u2588\u2588\u2592\u2593\u2591"," \u2588\u2588\u2592\u2592\u2592 "," \u2593\u2588\u2588 \u2591\u2592\u2591 "," \u2592 \u2592 \u2591\u2591 "," \u2591 \u2591 "," \u2591 \u2591 "],Z:["\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2592 \u2592 \u2592 \u2584\u2580\u2591","\u2591 \u2592 \u2584\u2580\u2592\u2591 "," \u2584\u2580\u2592 \u2591","\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2591\u2592\u2592 \u2593\u2591\u2592\u2591\u2592","\u2591\u2591\u2592 \u2592 \u2591 \u2592","\u2591 \u2591 \u2591 \u2591 \u2591"," \u2591 \u2591 ","\u2591 "],0:[" "," "," "," "," "," "," "," "," "," "],1:[" "," "," "," "," "," "," "," "," "," "],2:[" "," "," "," "," "," "," "," "," "," "],3:[" "," "," "," "," "," "," "," "," "," "],4:[" "," "," "," "," "," "," "," "," "," "],5:[" "," "," "," "," "," "," "," "," "," "],6:[" "," "," "," "," "," "," "," "," "," "],7:[" "," "," "," "," "," "," "," "," "," "],8:[" "," "," "," "," "," "," "," "," "," "],9:[" "," "," "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "],"!":[" \u2590\u2588\u2588\u258C "," \u2590\u2588\u2588\u258C "," \u2590\u2588\u2588\u258C "," \u2593\u2588\u2588\u2592 "," \u2592\u2584\u2584 "," \u2591\u2580\u2580\u2592 "," \u2591 \u2591 "," \u2591 "," \u2591 "," "],"-":[" "," "," "," "," "," "," "," "," "," "],".":[" "," "," "," "," \u2588\u2588\u2593 "," \u2592\u2593\u2592 "," \u2591\u2592 "," \u2591 "," \u2591 "," \u2591 "],":":[" "," "," "," "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," "," "," "," "]}};var T8={name:"Electronic",height:12,chars:{A:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],B:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],C:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],D:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],E:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],F:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],G:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u258C\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u258C \u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],H:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],I:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],J:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],K:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C ","\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u2591\u258C ","\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],L:[" \u2584 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],M:[" \u2584\u2584 \u2584\u2584 ","\u2590\u2591\u2591\u258C \u2590\u2591\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2580 \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],N:[" \u2584\u2584 \u2584 ","\u2590\u2591\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2591\u258C"," \u2580 \u2580\u2580 "," "],O:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],P:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],Q:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580 "," \u2590\u2591\u258C "," \u2580 "," "],R:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580 ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],S:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],T:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],U:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],V:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],W:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2584 \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u2591\u258C \u2590\u2591\u2591\u258C"," \u2580\u2580 \u2580\u2580 "," "],X:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],Y:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],Z:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],0:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 "," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2591\u258C"," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],1:[" \u2584\u2584\u2584\u2584 "," \u2584\u2588\u2591\u2591\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C\u2590\u2591\u2591\u258C "," \u2580\u2580 \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2584\u2584\u2584\u2584\u2588\u2591\u2591\u2588\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],2:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],3:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],4:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2580 "," "],5:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],6:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],7:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],8:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C"," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],9:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "," "],"!":[" \u2584 ","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C"," \u2580 "," \u2584 ","\u2590\u2591\u258C"," \u2580 "," "],"#":[" \u2584 \u2584 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2580 \u2580 "," "],$:[" \u2584 "," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2588\u2591\u258C"," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2580 "," "],"%":[" \u2584"," \u2584 \u2590\u2591"," \u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C \u2584 "," \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2580 "," \u2580 "," "],"*":[" \u2584 \u2584 \u2584 ","\u2590\u2591\u258C\u2590\u2591\u258C\u2590\u2591\u258C"," \u2590\u2591\u2590\u2591\u258C\u2591\u258C "," \u2590\u2591 \u2591\u258C "," \u2584\u2584\u2588\u2591\u2588\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2588\u2591\u2588\u2580\u2580 "," \u2590\u2591 \u2591\u258C "," \u2590\u2591\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C\u2590\u2591\u258C"," \u2580 \u2580 \u2580 "," "],"-":[" "," "," "," "," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "," "," "," "," "],".":[" "," "," "," "," "," "," "," "," \u2584 ","\u2590\u2591\u258C"," \u2580 "," "],":":[" "," "," "," "," "," "," "," "," "," "," "," "],"<":[" \u2584 "," \u2590\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C"," \u2580"," "],">":[" \u2584 ","\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],"^":[" \u2584 "," \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C "," \u2580 \u2580 "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," "," "," "," "," "," "]}};var O8={name:"Sub-Zero",height:6,chars:{A:[" ______ ","/\\ __ \\ ","\\ \\ __ \\ "," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],B:[" ______ ","/\\ == \\ ","\\ \\ __< "," \\ \\_____\\ "," \\/_____/ "," "],C:[" ______ ","/\\ ___\\ ","\\ \\ \\____ "," \\ \\_____\\ "," \\/_____/ "," "],D:[" _____ ","/\\ __-. ","\\ \\ \\/\\ \\ "," \\ \\____- "," \\/____/ "," "],E:[" ______ ","/\\ ___\\ ","\\ \\ __\\ "," \\ \\_____\\ "," \\/_____/ "," "],F:[" ______ ","/\\ ___\\ ","\\ \\ __\\ "," \\ \\_\\ "," \\/_/ "," "],G:[" ______ ","/\\ ___\\ ","\\ \\ \\__ \\ "," \\ \\_____\\ "," \\/_____/ "," "],H:[" __ __ ","/\\ \\_\\ \\ ","\\ \\ __ \\ "," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],I:[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\_\\ "," \\/_/ "," "],J:[" __ "," /\\ \\ "," _\\_\\ \\ ","/\\_____\\ ","\\/_____/ "," "],K:[" __ __ ","/\\ \\/ / ",'\\ \\ _"-. '," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],L:[" __ ","/\\ \\ ","\\ \\ \\____ "," \\ \\_____\\ "," \\/_____/ "," "],M:[" __ __ ",'/\\ "-./ \\ ',"\\ \\ \\-./\\ \\ "," \\ \\_\\ \\ \\_\\ "," \\/_/ \\/_/ "," "],N:[" __ __ ",'/\\ "-.\\ \\ ',"\\ \\ \\-. \\ ",' \\ \\_\\\\"\\_\\ '," \\/_/ \\/_/ "," "],O:[" ______ ","/\\ __ \\ ","\\ \\ \\/\\ \\ "," \\ \\_____\\ "," \\/_____/ "," "],P:[" ______ ","/\\ == \\ ","\\ \\ _-/ "," \\ \\_\\ "," \\/_/ "," "],Q:[" ______ ","/\\ __ \\ ","\\ \\ \\/\\_\\ "," \\ \\___\\_\\ "," \\/___/_/ "," "],R:[" ______ ","/\\ == \\ ","\\ \\ __< "," \\ \\_\\ \\_\\ "," \\/_/ /_/ "," "],S:[" ______ ","/\\ ___\\ ","\\ \\___ \\ "," \\/\\_____\\ "," \\/_____/ "," "],T:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\_\\ "," \\/_/ "," "],U:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\_\\ \\ "," \\ \\_____\\ "," \\/_____/ "," "],V:[" __ __ ","/\\ \\ / / ","\\ \\ \\'/ "," \\ \\__| "," \\/_/ "," "],W:[" __ __ ","/\\ \\ _ \\ \\ ",'\\ \\ \\/ ".\\ \\ ',' \\ \\__/".~\\_\\ '," \\/_/ \\/_/ "," "],X:[" __ __ ","/\\_\\_\\_\\ ","\\/_/\\_\\/_ "," /\\_\\/\\_\\ "," \\/_/\\/_/ "," "],Y:[" __ __ ","/\\ \\_\\ \\ ","\\ \\____ \\ "," \\/\\_____\\ "," \\/_____/ "," "],Z:[" ______ ","/\\___ \\ ","\\/_/ /__ "," /\\_____\\ "," \\/_____/ "," "],0:[" "," "," "," "," "," "],1:[" "," "," "," "," "," "],2:[" "," "," "," "," "," "],3:[" "," "," "," "," "," "],4:[" "," "," "," "," "," "],5:[" "," "," "," "," "," "],6:[" "," "," "," "," "," "],7:[" "," "," "," "," "," "],8:[" "," "," "," "," "," "],9:[" "," "," "," "," "," "]," ":[" "," "," "," "," "," "],"!":[" "," "," "," "," "," "],"-":[" "," "," "," "," "," "],".":[" "," "," "," "," "," "],":":[" "," "," "," "," "," "],_:[" "," "," "," "," "," "]}};function y2(u){let e=u.match(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function D5(u,e,t){return"#"+[u,e,t].map(n=>n.toString(16).padStart(2,"0")).join("")}function R8(){let u=process.env;return u.NO_COLOR!==void 0?"none":u.TERM_PROGRAM==="Apple_Terminal"?"256":u.COLORTERM==="truecolor"||u.COLORTERM==="24bit"?"truecolor":u.TERM_PROGRAM==="iTerm.app"||u.TERM_PROGRAM==="WezTerm"||u.TERM_PROGRAM==="vscode"||u.TERM_PROGRAM==="Hyper"||u.TERM_PROGRAM==="WarpTerminal"||u.WT_SESSION!==void 0?u.COLORTERM?"truecolor":"256":u.TERM?.includes("256color")?"256":u.TERM?"16":"none"}var du=R8();function U2(u){du=u}function k8(u,e,t){if(u===e&&e===t)return u<8?16:u>248?231:Math.round((u-8)/247*24)+232;let n=Math.round(u/255*5),r=Math.round(e/255*5),o=Math.round(t/255*5);return 16+36*n+6*r+o}var L5=[{r:0,g:0,b:0,code:30},{r:170,g:0,b:0,code:31},{r:0,g:170,b:0,code:32},{r:170,g:170,b:0,code:33},{r:0,g:0,b:170,code:34},{r:170,g:0,b:170,code:35},{r:0,g:170,b:170,code:36},{r:170,g:170,b:170,code:37},{r:85,g:85,b:85,code:90},{r:255,g:85,b:85,code:91},{r:85,g:255,b:85,code:92},{r:255,g:255,b:85,code:93},{r:85,g:85,b:255,code:94},{r:255,g:85,b:255,code:95},{r:85,g:255,b:255,code:96},{r:255,g:255,b:255,code:97}];function j8(u,e,t){let n=30,r=1/0;for(let o of L5){let s=u-o.r,a=e-o.g,i=t-o.b,c=s*s+a*a+i*i;c<r&&(r=c,n=o.code)}return n}function h(u){if(du==="none")return"";let e=y2(u);return e?du==="16"?`\x1B[${j8(e.r,e.g,e.b)}m`:du==="256"?`\x1B[38;5;${k8(e.r,e.g,e.b)}m`:`\x1B[38;2;${e.r};${e.g};${e.b}m`:""}function z2(u){if(du==="none")return"";let e=y2(u);return e?du==="16"?`\x1B[${j8(e.r,e.g,e.b)+10}m`:du==="256"?`\x1B[48;5;${k8(e.r,e.g,e.b)}m`:`\x1B[48;2;${e.r};${e.g};${e.b}m`:""}function T5(u,e,t){let n=y2(u),r=y2(e);if(!n||!r)return u;let o=Math.round(n.r+(r.r-n.r)*t),s=Math.round(n.g+(r.g-n.g)*t),a=Math.round(n.b+(r.b-n.b)*t);return D5(o,s,a)}function V2(u,e){if(u.length===0)return[];if(u.length===1)return Array(e).fill(u[0]);let t=[];for(let n=0;n<e;n++){let r=e<=1?0:n/(e-1)*(u.length-1),o=Math.min(Math.floor(r),u.length-2),s=r-o;t.push(T5(u[o],u[Math.min(o+1,u.length-1)],s))}return t}var d=du==="none"?"":"\x1B[0m",k=du==="none"?"":"\x1B[1m",q=du==="none"?"":"\x1B[2m",Ku=du==="none"?"":"\x1B[3m",s2=du==="none"?"":"\x1B[4m",G2=du==="none"?"":"\x1B[7m",O5=class{renderers=new Map;focusableTypes=new Set;register(u,e,t=!1){this.renderers.set(u,e),t&&this.focusableTypes.add(u)}getRenderer(u){return this.renderers.get(u)}isFocusable(u){return this.focusableTypes.has(u)}has(u){return this.renderers.has(u)}},U=new O5;function ku(u){return u<32||u===127||u>=768&&u<=879||u===8203||u===8204||u===8205||u===173||u===65279||u>=6832&&u<=6911||u>=7616&&u<=7679||u>=8400&&u<=8447||u>=65056&&u<=65071||u>=65024&&u<=65039||u>=917760&&u<=917999?0:u>=19968&&u<=40959||u>=13312&&u<=19903||u>=131072&&u<=173791||u>=173824&&u<=177983||u>=177984&&u<=178207||u>=63744&&u<=64255||u>=12288&&u<=12351||u>=12352&&u<=12447||u>=12448&&u<=12543||u>=44032&&u<=55215||u>=4352&&u<=4447||u>=65281&&u<=65376||u>=65504&&u<=65510||u>=127744&&u<=129535||u>=129536&&u<=129647||u>=129648&&u<=129791?2:(u>=9984&&u<=10175||u>=9728&&u<=9983,1)}function L(u){let e=i2(u),t=0;for(let n of e)t+=ku(n.codePointAt(0)??0);return t}function N8(u,e){return h(e)+u+d}function _u(u,e,t="left"){let n=L(u),r=Math.max(0,e-n);switch(t){case"center":{let o=Math.floor(r/2),s=r-o;return" ".repeat(o)+u+" ".repeat(s)}case"right":return" ".repeat(r)+u;default:return u+" ".repeat(r)}}function i2(u){return u.replace(/\x1b\[[0-9;]*m/g,"")}function Q(u,e){if(!u)return"";if(L(u)<=e)return u;let t=0,n="",r=!1;for(let o of u){if(o==="\x1B"){r=!0,n+=o;continue}if(r){n+=o,o==="m"&&(r=!1);continue}let s=ku(o.codePointAt(0)??0);if(t+s>=e){n+="\u2026";break}n+=o,t+=s}return n+d}function pu(u,e){if(e<=0)return[];let t=u.split(`
|
|
72
|
-
`),n=[];for(let r of t){if(r.length===0){n.push("");continue}let o=r.split(" "),s="",a=0;for(let i of o){let c=L(i);if(c>e){s&&(n.push(s),s="",a=0);let l="",f=0;for(let _ of i){let p=ku(_.codePointAt(0)??0);f+p>e&&l&&(n.push(l),l="",f=0),l+=_,f+=p}s=l,a=f;continue}a===0?(s=i,a=c):a+1+c<=e?(s+=" "+i,a+=1+c):(n.push(s),s=i,a=c)}s&&n.push(s)}return n.length>0?n:[""]}var $5={name:"ANSI Shadow",height:6,chars:{A:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],B:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],C:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D"],D:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],E:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],F:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u255D ","\u2588\u2588\u2551 ","\u255A\u2550\u255D "],G:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D ","\u2588\u2588\u2551 \u2588\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],H:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],I:["\u2588\u2588\u2557","\u2588\u2588\u2551","\u2588\u2588\u2551","\u2588\u2588\u2551","\u2588\u2588\u2551","\u255A\u2550\u255D"],J:[" \u2588\u2588\u2557"," \u2588\u2588\u2551"," \u2588\u2588\u2551","\u2588\u2588 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],K:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2554\u255D","\u2588\u2588\u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ","\u2588\u2588\u2551 \u2588\u2588\u2557","\u255A\u2550\u255D \u255A\u2550\u255D"],L:["\u2588\u2588\u2557 ","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],M:["\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551","\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551","\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],N:["\u2588\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551","\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D"],O:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],P:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2550\u255D ","\u2588\u2588\u2551 ","\u255A\u2550\u255D "],Q:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551\u2584\u2584 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2580\u2580\u2550\u255D "],R:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],S:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],T:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D"," \u2588\u2588\u2551 "," \u2588\u2588\u2551 "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],U:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],V:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2588\u2554\u255D "," \u255A\u2550\u2550\u2550\u255D "],W:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2551\u2588\u2588\u2588\u2557\u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2554\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u255D\u255A\u2550\u2550\u255D "],X:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u2588\u2588\u2557 ","\u2588\u2588\u2554\u255D \u2588\u2588\u2557","\u255A\u2550\u255D \u255A\u2550\u255D"],Y:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2588\u2554\u255D "," \u255A\u2588\u2588\u2554\u255D "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],Z:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2588\u2588\u2588\u2554\u255D"," \u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],0:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],1:[" \u2588\u2588\u2557","\u2588\u2588\u2588\u2551","\u255A\u2588\u2588\u2551"," \u2588\u2588\u2551"," \u2588\u2588\u2551"," \u255A\u2550\u255D"],2:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2550\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],3:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],4:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2551"," \u255A\u2550\u255D"],5:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],6:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],7:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],8:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],9:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2551"," \u255A\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "]," ":[" "," "," "," "," "," "],".":[" "," "," "," ","\u2588\u2588\u2557","\u255A\u2550\u255D"],"!":["\u2588\u2588\u2557","\u2588\u2588\u2551","\u2588\u2588\u2551","\u255A\u2550\u255D","\u2588\u2588\u2557","\u255A\u2550\u255D"],"-":[" "," ","\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u255D"," "," "],_:[" "," "," "," ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],":":[" ","\u2588\u2588\u2557","\u255A\u2550\u255D","\u2588\u2588\u2557","\u255A\u2550\u255D"," "],"'":["\u2588\u2588\u2557","\u255A\u2588\u2551"," \u255A\u255D"," "," "," "],",":[" "," "," "," ","\u2584\u2588\u2557","\u255A\u2550\u255D"],"/":[" \u2588\u2588\u2557"," \u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u255D ","\u255A\u2550\u255D "],"?":["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2584\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2588\u2551 "," \u2588\u2588\u2588\u2588\u2551 "," \u255A\u2550\u2550\u2550\u255D "],"+":[" "," \u2588\u2588\u2557 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2588\u2588\u2554\u2550\u255D"," \u255A\u2550\u255D "," "],"=":[" ","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u255D"," "],"@":[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2551","\u2588\u2588\u2554\u2550\u2550\u2550\u255D\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],"#":[" \u2588\u2588\u2557\u2588\u2588\u2557 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u255A\u2588\u2588\u2554\u2588\u2588\u2554\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u255A\u2588\u2588\u2554\u2588\u2588\u2554\u255D"," \u255A\u2550\u255D\u255A\u2550\u255D "],"&":[" \u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ","\u255A\u2588\u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],"(":[" \u2588\u2588\u2557","\u2588\u2588\u2554\u255D","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u255A\u2588\u2588\u2557"," \u255A\u2550\u255D"],")":["\u2588\u2588\u2557 ","\u255A\u2588\u2588\u2557"," \u2588\u2588\u2551"," \u2588\u2588\u2551","\u2588\u2588\u2554\u255D","\u255A\u2550\u255D "],"*":[" ","\u2584\u2588\u2557\u2588\u2584 ","\u255A\u2588\u2588\u2588\u2554\u255D","\u2584\u2588\u2588\u2588\u2584\u2557","\u255A\u2588\u2554\u255D\u2588\u255D"," "],"%":["\u2588\u2588\u2557\u2588\u2588\u2557 ","\u255A\u2550\u255D\u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u255D\u2588\u2588\u2557","\u255A\u2550\u255D\u255A\u2550\u255D "]}},R5={name:"Block",height:4,chars:{A:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2588 ","\u2588 \u2588 "],B:["\u2588\u2588\u2584 ","\u2588\u2584\u2588 ","\u2588 \u2588 ","\u2588\u2588\u2580 "],C:["\u2584\u2588\u2588 ","\u2588 ","\u2588 ","\u2580\u2588\u2588 "],D:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2588\u2588\u2580 "],E:["\u2588\u2588\u2588 ","\u2588\u2584 ","\u2588\u2580 ","\u2588\u2588\u2588 "],F:["\u2588\u2588\u2588 ","\u2588\u2584 ","\u2588 ","\u2588 "],G:["\u2584\u2588\u2588 ","\u2588 ","\u2588\u2584\u2588 ","\u2580\u2588\u2588 "],H:["\u2588 \u2588 ","\u2588\u2588\u2588 ","\u2588 \u2588 ","\u2588 \u2588 "],I:["\u2588\u2588\u2588 "," \u2588 "," \u2588 ","\u2588\u2588\u2588 "],J:[" \u2588\u2588 "," \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],K:["\u2588\u2584\u2588 ","\u2588\u2588 ","\u2588\u2580\u2588 ","\u2588 \u2588 "],L:["\u2588 ","\u2588 ","\u2588 ","\u2588\u2588\u2588 "],M:["\u2588\u2584\u2584\u2588 ","\u2588\u2580\u2580\u2588 ","\u2588 \u2588 ","\u2588 \u2588 "],N:["\u2588\u2584 \u2588 ","\u2588\u2580\u2588\u2588 ","\u2588 \u2580\u2588 ","\u2588 \u2588 "],O:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],P:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2580 ","\u2588 "],Q:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2584\u2588 ","\u2580 \u2580\u2588"],R:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2580 ","\u2588 \u2588 "],S:["\u2584\u2588\u2588 ","\u2588\u2584 "," \u2580\u2588 ","\u2588\u2588\u2580 "],T:["\u2588\u2588\u2588\u2588 "," \u2588\u2588 "," \u2588\u2588 "," \u2588\u2588 "],U:["\u2588 \u2588 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],V:["\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2584\u2584\u2580 "," \u2580\u2580 "],W:["\u2588 \u2588 ","\u2588 \u2588 ","\u2588\u2584\u2584\u2588 ","\u2580 \u2580 "],X:["\u2588 \u2588 ","\u2580\u2588\u2580 ","\u2584\u2588\u2584 ","\u2588 \u2588 "],Y:["\u2588 \u2588 ","\u2580\u2588\u2580 "," \u2588 "," \u2588 "],Z:["\u2588\u2588\u2588 "," \u2584\u2588 ","\u2588\u2580 ","\u2588\u2588\u2588 "],0:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],1:[" \u2588 ","\u2588\u2588 "," \u2588 ","\u2588\u2588\u2588 "],2:["\u2584\u2588\u2584 "," \u2584\u2588 ","\u2588\u2580 ","\u2588\u2588\u2588 "],3:["\u2588\u2588\u2584 "," \u2584\u2588 "," \u2580\u2588 ","\u2588\u2588\u2580 "],4:["\u2588 \u2588 ","\u2588\u2588\u2588 "," \u2588 "," \u2588 "],5:["\u2588\u2588\u2588 ","\u2588\u2584 "," \u2580\u2588 ","\u2588\u2588\u2580 "],6:["\u2584\u2588\u2588 ","\u2588\u2584 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],7:["\u2588\u2588\u2588 "," \u2588 "," \u2588 ","\u2588 "],8:["\u2584\u2588\u2584 ","\u2580\u2588\u2580 ","\u2584\u2588\u2584 ","\u2580\u2588\u2580 "],9:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2580\u2588\u2588 "," \u2584\u2588 "]," ":[" "," "," "," "],".":[" "," "," ","\u2580 "],"!":["\u2588 ","\u2588 "," ","\u2580 "],"-":[" ","\u2584\u2584\u2584 "," "," "],":":[" ","\u2580 "," ","\u2580 "],_:[" "," "," ","\u2584\u2584\u2584 "]}},k5={name:"Slant",height:5,chars:{A:[" ___ "," / | "," / /| | ","/ ___ | ","/_/ |_| "],B:[" ___ "," / _ ) "," / _ | ","/ /_) | ","\\____/ "],C:[" _____ "," / ___/ ","/ / ","\\ \\___ "," \\____/ "],D:[" ___ "," / _ \\ "," / // / ","/ /\\_/ ","\\___/ "],E:[" ____ "," / __/ "," / _/ ","/___/ "," "],F:[" ____ "," / __/ "," / _/ ","/_/ "," "],G:[" _____ "," / ___/ ","/ (_ / ","\\___/ "," "],H:[" __ __ "," / // / "," / _ / ","/_//_/ "," "],I:[" __ "," / / "," / / ","/_/ "," "],J:[" __ "," __ / / ","/ /_/ / ","\\____/ "," "],K:[" __ __ "," / //_/ "," / ,< ","/_/|_| "," "],L:[" __ "," / / "," / /__ ","/____/ "," "],M:[" __ __ "," / |/ | "," / /|_/ / ","/_/ /_/ "," "],N:[" _ __ "," / |/ / "," / / ","/_/|_/ "," "],O:[" ____ "," / __ \\ ","/ /_/ / ","\\____/ "," "],P:[" ___ "," / _ \\ "," / ___/ ","/_/ "," "],Q:[" ____ "," / __ \\ ","/ /_/ / ","\\___\\_\\ "," "],R:[" ___ "," / _ \\ "," / , _/ ","/_/|_| "," "],S:[" ____ "," / __/ "," \\__ \\ ","/____/ "," "],T:[" ______ ","/_ __/ "," / / ","/_/ "," "],U:[" __ __ "," / / / / ","/ /_/ / ","\\____/ "," "],V:[" _ __ ","| | / / ","| |/ / ","|___/ "," "],W:[" _ __ ","| | /| / / ","| |/ |/ / ","|__/|__/ "," "],X:[" _ __ "," | |/ / "," _> < ","/_/|_| "," "],Y:["__ __ ","\\ \\ / / "," \\_ / "," /_/ "," "],Z:[" ____ ","/_ / "," / /_ ","/___/ "," "]," ":[" "," "," "," "," "],0:[" __ ","/ /\\ ","\\/_/ "," "," "],1:[" _ ","/ | ","| | ","|_| "," "],2:[" __ ","|_ | ","/ _/ ","\\__| "," "],3:[" __ ","|_ / "," _|\\ ","|__/ "," "],4:[" _ _ ","| | |","|_ |"," |_|"," "],5:[" __ ","| _| ","\\_ \\ ","|__/ "," "],6:[" __ ","/ _| ","| _ |","\\__/ "," "],7:[" ___ ","|_ / "," / / ","/_/ "," "],8:[" __ ","(_ ) ","/ _ |","\\__/ "," "],9:[" __ ","/ _ \\","\\_, /","/___/"," "],".":[" "," "," _ ","(_) "," "],"!":[" _ ","| | ","|_| ","(_) "," "],"-":[" "," "," _____ "," "," "],":":[" "," _ ","(_) ","(_) "," "],_:[" "," "," "," ______ "," "]}},j5={name:"Calvin S",height:4,chars:{A:[" ___ ","| . |","| |","|_|_|"],B:[" ___ ","| . >","| . >","|___>"],C:[" ___ ","| _>","| <_ ","|___>"],D:[" ___ ","| . \\ ","| | | ","|___/ "],E:[" ___ ","| __>","| _> ","|___>"],F:[" ___ ","| __>","| _> ","|_| "],G:[" ___ ","| . >","| . |","|___|"],H:[" _ _ ","| || |","| >< |","|_||_|"],I:[" _ ","| |","| |","|_|"],J:[" _ "," | |","|_| |","|___|"],K:[" _ _ ","| |/ >","| |\\ >","|_| \\_>"],L:[" _ ","| | ","| |_ ","|___| "],M:[" _ _ ","| ' ' |","| . . |","|_|_|_|"],N:[" _ _ ","| \\| |","| . |","|_|\\_|"],O:[" ___ ","| . |","| . |","|___|"],P:[" ___ ","| . >","| _>","|_| "],Q:[" ___ ","| . |","| . |","|_\\_\\"],R:[" ___ ","| . >","| >","|_\\_>"],S:[" ___ ","| __>","<__. |","<___>"],T:[" ___ ","|_ _|"," | | "," |_| "],U:[" _ _ ","| || |","| || |","|____>"],V:[" _ _ ","| || |","\\ \\/ /"," \\__/ "],W:[" _ _ ","| | | |","| |/\\| |","\\_/\\_/ "],X:[" _ _ ","\\ \\/ /"," > < ","/_/\\_\\"],Y:[" _ _ ","\\ \\/ /"," \\ / "," \\/ "],Z:[" ___ ","|_ |"," / / ","|___|"]," ":[" "," "," "," "],0:[" ___ ","| . |","| . |","|___|"],1:[" _ ","| | ","| | ","|_| "],2:[" ___ ","|_ |","| _/|","|___|"],3:[" ___ ","|__ \\ "," __) |","|___/ "],4:[" _ _ ","| | |","|_ |"," |_|"],5:[" ___ ","| __|","|__ |","|___|"],6:[" _ "," / | ","| _ |","|___|"],7:[" ___ ","|_ |"," | |"," |_|"],8:[" ___ ","| _ |","| _ |","|___|"],9:[" ___ ","| _ |","|__ |","|___|"],".":[" "," "," "," ."],"!":[" ! "," ! "," "," ! "],"-":[" "," "," --- "," "],":":[" "," : "," "," : "],_:[" "," "," "," ___ "]}},N5={name:"Small",height:4,chars:{A:[" "," /\\ ","/--\\"," "],B:[" __ ","|__)","|__)"," "],C:[" __ ","| ","|__ "," "],D:[" __ ","| \\","|_/"," "],E:[" __ ","|_ ","|__"," "],F:[" __ ","|_ ","| "," "],G:[" __ ","/ _ ","\\_|"," "],H:[" ","|__|","| |"," "],I:[" _ ","| |","|_|"," "],J:[" _ "," | ","\\_| "," "],K:[" ","|/ ","|\\ "," "],L:[" ","| ","|__ "," "],M:[" ","|\\/|","| | "," "],N:[" ","|\\ | ","| \\| "," "],O:[" __ ","/ \\","\\__/"," "],P:[" __ ","|__)","| "," "],Q:[" __ ","/ \\","\\_\\/"," "],R:[" __ ","|__)","|\\ "," "],S:[" __ ","(__ "," __)"," "],T:["___ "," | "," | "," "],U:[" ","| |","\\__/"," "],V:[" ","\\ / "," \\/ "," "],W:[" ","\\ /"," \\/\\/ "," "],X:[" ","\\/ ","/\\ "," "],Y:[" ","\\_/ "," | "," "],Z:["___ "," _/ ","/__ "," "]," ":[" "," "," "," "],0:[" _ ","/ \\","\\_/"," "],1:[" "," /|"," |"," "],2:[" _ "," _)","(_ "," "],3:[" _ "," _)"," _)"," "],4:[" ","|_|"," | "," "],5:[" _ ","|_ "," _)"," "],6:[" _ ","|_ ","|_)"," "],7:["__ "," / ","/ "," "],8:[" _ ","(_)","(_)"," "],9:[" _ ","(_|"," _|"," "],".":[" "," ",". "," "],"!":[" ","! ",". "," "],"-":[" "," ","--- "," "],":":[" ",": ",": "," "],_:[" "," "," ","___ "]}},W5={name:"Ogre",height:5,chars:{A:[" _ "," / \\ ","/ _ \\ ","| |_| |","|_| |_|"],B:[" ___ ","| _ ) ","| _ \\ ","|____/ "," "],C:[" ___ "," / __| ","| (__ "," \\___| "," "],D:[" ___ ","| _ \\ ","| | | ","|___/ "," "],E:[" ___ ","| __| ","| _| ","|___| "," "],F:[" ___ ","| __| ","| _| ","|_| "," "],G:[" ___ "," / __| ","| |___ "," \\____| "," "],H:[" _ _ ","| || | ","| __ | ","|_||_| "," "],I:[" ___ ","|_ _| "," | | ","|___| "," "],J:[" _ "," | | "," | | ","|__/ "," "],K:[" _ _ ","| |/ / ","| ' < ","|_|\\_\\ "," "],L:[" _ ","| | ","| |__ ","|____| "," "],M:[" __ __ ","| \\/ | ","| |\\/| | ","|_| |_| "," "],N:[" _ _ ","| \\ | | ","| .\\| | ","|_|\\_| "," "],O:[" ___ "," / _ \\ ","| |_| |"," \\___/ "," "],P:[" ___ ","| _ \\ ","| _/ ","|_| "," "],Q:[" ___ "," / _ \\ ","| |_| |"," \\__\\_\\"," "],R:[" ___ ","| _ \\ ","| / ","|_\\_\\ "," "],S:[" ___ ","/ __| ","\\__ \\ ","|___/ "," "],T:[" _____ ","|_ _| "," | | "," |_| "," "],U:[" _ _ ","| || | ","| \\/ | "," \\__/ "," "],V:["__ __ ","\\ \\ / / "," \\ V / "," \\_/ "," "],W:["__ __ ","\\ \\ / / "," \\ \\/\\/ / "," \\_/\\_/ "," "],X:["__ __ ","\\ \\/ / "," > < ","/_/\\_\\ "," "],Y:["__ __ ","\\ \\ / / "," \\_ / "," |_| "," "],Z:[" ____ ","|_ / "," / / ","/____| "," "]," ":[" "," "," "," "," "],0:[" __ "," / \\ ","| () |"," \\__/ "," "],1:[" _ ","/ | ","| | ","|_| "," "],2:[" ___ ","|_ ) "," / / ","/___| "," "],3:[" ___ ","|__ / "," |_ \\ ","|___/ "," "],4:[" _ _ ","| | | ","|_ | "," |_| "," "],5:[" ___ ","| __| ","|__ \\ ","|___/ "," "],6:[" __ "," / / ","| _ \\ "," \\__/ "," "],7:[" ____ ","|__ |"," / / "," /_/ "," "],8:[" __ "," / _ \\","| (_) |"," \\___/ "," "],9:[" __ "," / _ \\","| (_) |"," \\__, |"," /_/ "],".":[" "," "," _ ","(_)"," "],"!":[" _ ","| | ","|_| ","(_) "," "],"-":[" "," "," _____ ","|_____|"," "],":":[" "," _ ","(_) ","(_) "," "],_:[" "," "," "," ______ ","|______|"]}},Y5={"ANSI Shadow":$5,Block:R5,Slant:k5,"Calvin S":j5,Small:N5,Ogre:W5,"DOS Rebel":A8,Ghost:D8,Bloody:L8,Electronic:T8,"Sub-Zero":O8,"Larry 3D":P8,Colossal:S8,Isometric1:I8},H2=Y5,H5="ANSI Shadow";function U5(u,e){let t=u.split(`
|
|
73
|
-
`);if(t.length===0)throw new Error(`parseFLF: empty font data for "${e}"`);let n=t[0];if(!n.startsWith("flf2"))throw new Error(`parseFLF: invalid FLF header for "${e}": ${n}`);let r=n.charAt(5),o=n.slice(6).trim().split(/\s+/),s=parseInt(o[0],10),a=parseInt(o[4],10)||0;if(isNaN(s)||s<=0)throw new Error(`parseFLF: invalid height in header for "${e}"`);let i=1+a,c={},l=new Set;for(let p=65;p<=90;p++)l.add(p);for(let p=48;p<=57;p++)l.add(p);l.add(32);let f="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";for(let p of f)l.add(p.charCodeAt(0));let _=i;for(let p=32;p<=126&&!(_+s>t.length);p++){let m=[];for(let g=0;g<s;g++){let F=t[_+g]??"";F.endsWith("@@")?F=F.slice(0,-2):F.endsWith("@")&&(F=F.slice(0,-1)),r&&r!==" "&&(F=F.split(r).join(" ")),m.push(F)}if(_+=s,l.has(p)){let g=String.fromCharCode(p);c[g]=m}}return{name:e,height:s,chars:c}}function o2(u){return u.toLowerCase().replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function z5(u){return!Array.isArray(u)&&Array.isArray(u.art)}function V5(u){if(Array.isArray(u))return!1;let e=u;return e.small!==void 0||e.medium!==void 0||e.large!==void 0||e.art!==void 0||e.author!==void 0||e.source!==void 0}var G5=class{fonts=new Map;scenes=new Map;icons=new Map;patterns=new Map;register(u,e,t,n="custom"){let r=o2(e);switch(u){case"font":{this.fonts.has(r)&&process.stderr.write(`[art-registry] warning: font "${r}" overwritten (source: ${n})
|
|
74
|
-
`);let o;typeof t=="string"?o=U5(t,r):o=t,this.fonts.set(r,{font:o,source:n,author:void 0});break}case"scene":{this.scenes.has(r)&&process.stderr.write(`[art-registry] warning: scene "${r}" overwritten (source: ${n})
|
|
75
|
-
`);let o;if(Array.isArray(t))o={art:t,source:n};else if(z5(t))o={...t,source:t.source??n};else throw new Error(`Invalid scene data for "${e}"`);this.scenes.set(r,{scene:o,source:n});break}case"icon":{this.icons.has(r)&&process.stderr.write(`[art-registry] warning: icon "${r}" overwritten (source: ${n})
|
|
76
|
-
`);let o;if(Array.isArray(t))o=K5(t,n);else if(V5(t))o={...t,source:t.source??n};else throw new Error(`Invalid icon data for "${e}"`);this.icons.set(r,{icon:o,source:n});break}case"pattern":{this.patterns.has(r)&&process.stderr.write(`[art-registry] warning: pattern "${r}" overwritten (source: ${n})
|
|
77
|
-
`);let o=t;this.patterns.set(r,{pattern:{...o,source:o.source??n},source:n});break}}}get(u,e){let t=o2(e),n=this.mapFor(u),r=n.get(t);if(r)return this.unwrapEntry(u,r);if(e.includes("/")){let o=o2(e.replace("/","-")),s=n.get(o);if(s)return this.unwrapEntry(u,s)}for(let[o,s]of n)if(o.endsWith(`-${t}`)||o.endsWith(`/${t}`))return this.unwrapEntry(u,s);return null}has(u,e){return this.get(u,e)!==null}list(u){if(u)return Array.from(this.mapFor(u).keys()).sort();let e=new Set;for(let t of this.fonts.keys())e.add(t);for(let t of this.scenes.keys())e.add(t);for(let t of this.icons.keys())e.add(t);for(let t of this.patterns.keys())e.add(t);return Array.from(e).sort()}getInfo(u,e){let t=o2(e),r=this.mapFor(u).get(t);if(!r)return null;let o={name:t,type:u,source:""};switch(u){case"font":{let s=r;o.source=s.source,o.author=s.author;break}case"scene":{let s=r;o.source=s.source,o.author=s.scene.author,o.description=s.scene.description;break}case"icon":{let s=r;o.source=s.source,o.author=s.icon.author;break}case"pattern":{let s=r;o.source=s.source,o.author=s.pattern.author;break}}return o}loadPack(u){let e=`pack:${u.name}`;if(u.fonts){for(let[t,n]of Object.entries(u.fonts))if(this.register("font",t,n,e),u.author){let r=o2(t),o=this.fonts.get(r);o&&!o.author&&(o.author=u.author)}}if(u.scenes)for(let[t,n]of Object.entries(u.scenes))this.register("scene",t,n,e);if(u.icons)for(let[t,n]of Object.entries(u.icons))this.register("icon",t,n,e);if(u.patterns)for(let[t,n]of Object.entries(u.patterns))this.register("pattern",t,n,e)}clear(){this.fonts.clear(),this.scenes.clear(),this.icons.clear(),this.patterns.clear()}mapFor(u){switch(u){case"font":return this.fonts;case"scene":return this.scenes;case"icon":return this.icons;case"pattern":return this.patterns}}unwrapEntry(u,e){switch(u){case"font":return e.font;case"scene":return e.scene;case"icon":return e.icon;case"pattern":return e.pattern}}};function K5(u,e){let t=u.length,n={source:e};return t<=4?n.small=u:t<=6?n.medium=u:n.large=u,n}var K2=new G5;var $8={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",teeLeft:"\u2563",teeRight:"\u2560",teeUp:"\u2569",teeDown:"\u2566",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",teeLeft:"\u252B",teeRight:"\u2523",teeUp:"\u253B",teeDown:"\u2533",cross:"\u254B"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2504",vertical:"\u2506",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+",teeUp:"+",teeDown:"+",cross:"+"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",horizontal:" ",vertical:" ",teeLeft:" ",teeRight:" ",teeUp:" ",teeDown:" ",cross:" "}};function ju(u){return $8[u??"rounded"]??$8.rounded}function q2(u,e={},t){let n=e.font??"ANSI Shadow",o=K2.get("font",n)??H2[n]??H2[H5];if(!o)return[u];let s=u.toUpperCase(),a=Array(o.height).fill("");for(let l of s){let f=o.chars[l]??o.chars[" "]??Array(o.height).fill(" "),_=Math.max(0,...f.map(p=>(p??"").length));for(let p=0;p<o.height;p++){let m=f[p]??"";a[p]+=m+" ".repeat(Math.max(0,_-m.length))}}for(a=a.map(l=>l.trimEnd());a.length>0&&a[a.length-1]==="";)a.pop();let i=Math.max(0,...a.map(l=>l.length));a=a.map(l=>l+" ".repeat(Math.max(0,i-l.length)));let c=e.width??t;return c!==void 0&&Math.max(0,...a.map(f=>L(f)))>c?[u]:(e.shadow&&(a=q5(a)),e.border&&e.border!=="none"&&(a=J5(a,e.border)),a)}function q5(u){let e=[];for(let n=0;n<u.length;n++)e.push(u[n]+" ");let t=Math.max(0,...u.map(n=>L(n)));return e.push(" "+"\u2591".repeat(t)),e}function J5(u,e){let t=ju(e),n=Math.max(0,...u.map(s=>L(s))),r=n+2,o=[];o.push(t.topLeft+t.horizontal.repeat(r)+t.topRight);for(let s of u){let a=s+" ".repeat(Math.max(0,n-L(s)));o.push(t.vertical+" "+a+" "+t.vertical)}return o.push(t.bottomLeft+t.horizontal.repeat(r)+t.bottomRight),o}function J2(u,e){if(u.length===0)return u;let t=Math.max(0,...u.map(o=>L(o))),n=Math.max(0,Math.floor((e-t)/2)),r=" ".repeat(n);return u.map(o=>{if(L(o)>e){let a=0,i="",c=!1;for(let l of o){if(l==="\x1B"){c=!0,i+=l;continue}if(c){i+=l,l==="m"&&(c=!1);continue}let f=ku(l.codePointAt(0)??0);if(a+f>e)break;i+=l,a+=f}return i+"\x1B[0m"}return r+o})}i8();T2();O2();k2();import{readFileSync as vn,existsSync as Bn}from"fs";import{resolve as Mn}from"path";import{EventEmitter as Sn}from"events";import{EventEmitter as Dn}from"events";import{createServer as Yn}from"http";import{exec as er}from"child_process";var Re={};Me(Re,{defaultTheme:()=>b2,themes:()=>F2});var F2,b2,W2=Be({"src/style/theme.ts"(){"use strict";F2={cyberpunk:{accent:"#ff2a6d",accentDim:"#b91d4f",text:"#05d9e8",muted:"#0abdc6",subtle:"#01579b",success:"#05d9e8",warning:"#d1f7ff",error:"#ff2a6d",border:"#01579b",bg:"#01012b"},dracula:{accent:"#ff79c6",accentDim:"#bd93f9",text:"#f8f8f2",muted:"#6272a4",subtle:"#44475a",success:"#50fa7b",warning:"#f1fa8c",error:"#ff5555",border:"#6272a4",bg:"#282a36"},nord:{accent:"#88c0d0",accentDim:"#5e81ac",text:"#eceff4",muted:"#81a1c1",subtle:"#4c566a",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",border:"#4c566a",bg:"#2e3440"},monokai:{accent:"#f92672",accentDim:"#ae81ff",text:"#f8f8f2",muted:"#75715e",subtle:"#49483e",success:"#a6e22e",warning:"#e6db74",error:"#f92672",border:"#75715e",bg:"#272822"},solarized:{accent:"#268bd2",accentDim:"#2aa198",text:"#839496",muted:"#657b83",subtle:"#586e75",success:"#859900",warning:"#b58900",error:"#dc322f",border:"#586e75",bg:"#002b36"},gruvbox:{accent:"#fe8019",accentDim:"#d65d0e",text:"#ebdbb2",muted:"#a89984",subtle:"#504945",success:"#b8bb26",warning:"#fabd2f",error:"#fb4934",border:"#504945",bg:"#282828"},catppuccin:{accent:"#f5c2e7",accentDim:"#cba6f7",text:"#cdd6f4",muted:"#a6adc8",subtle:"#45475a",success:"#a6e3a1",warning:"#f9e2af",error:"#f38ba8",border:"#585b70",bg:"#1e1e2e"},tokyoNight:{accent:"#7aa2f7",accentDim:"#bb9af7",text:"#c0caf5",muted:"#565f89",subtle:"#3b4261",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",border:"#3b4261",bg:"#1a1b26"},rosePine:{accent:"#ebbcba",accentDim:"#c4a7e7",text:"#e0def4",muted:"#908caa",subtle:"#6e6a86",success:"#9ccfd8",warning:"#f6c177",error:"#eb6f92",border:"#6e6a86",bg:"#191724"},hacker:{accent:"#00ff41",accentDim:"#008f11",text:"#00ff41",muted:"#008f11",subtle:"#003b00",success:"#00ff41",warning:"#ccff00",error:"#ff0000",border:"#008f11",bg:"#0d0208"}},b2=F2.dracula}}),yn=null;function Ie(u){yn=u}var xn=null;function Ae(u){xn=u}function En(u){let e={};for(let t of u.split(`
|
|
78
|
-
`)){let n=t.trim();if(!n||n.startsWith("#"))continue;let r=n.indexOf("=");if(r<0)continue;let o=n.substring(0,r).trim(),s=n.substring(r+1).trim();if(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))s=s.slice(1,-1);else{let a=s.indexOf(" #");a>=0&&(s=s.substring(0,a).trim())}e[o]=s}return e}function C8(u){let e=u??process.cwd(),t=process.env.NODE_ENV??"",n=[".env",".env.local"];t==="production"?n.push(".env.production"):t==="development"&&n.push(".env.development");for(let r of n){let o=Mn(e,r);if(Bn(o))try{let s=vn(o,"utf-8"),a=En(s);for(let[i,c]of Object.entries(a))process.env[i]===void 0&&(process.env[i]=c)}catch{}}}W2();function Pn(){let u=!!process.stdout.isTTY,e=process.env,t=e.TERM_PROGRAM??"",n=t==="Apple_Terminal",r=t||e.TERM||"unknown",o="none";e.NO_COLOR!==void 0?o="none":u&&(n?o="256":e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||t==="iTerm.app"||t==="Hyper"||t==="WezTerm"||t==="WarpTerminal"||e.WT_SESSION!==void 0||e.TERM?.includes("24bit")||e.TERM?.includes("truecolor")?o="truecolor":e.TERM?.includes("256color")?o="256":u&&(o="16"));let s=e.LANG?.includes("UTF-8")||e.LANG?.includes("utf8")||e.LC_ALL?.includes("UTF-8")||t==="iTerm.app"||t==="WezTerm"||e.WT_SESSION!==void 0||process.platform==="darwin";return{colorDepth:o,unicode:!!s,columns:process.stdout.columns||80,rows:process.stdout.rows||24,isTTY:u,terminalName:r,isAppleTerminal:n}}var In=class extends Sn{started=!1;rawModeWas;start(){this.started||(this.started=!0,process.stdin.isTTY&&(this.rawModeWas=process.stdin.isRaw,process.stdin.setRawMode(!0)),process.stdin.resume(),process.stdin.setEncoding("utf-8"),process.stdin.on("data",this.handleData))}stop(){this.started&&(this.started=!1,process.stdin.removeListener("data",this.handleData),process.stdin.isTTY&&this.rawModeWas!==void 0&&process.stdin.setRawMode(this.rawModeWas),process.stdin.pause())}handleData=u=>{for(let e of An(u))this.emit("keypress",e)}};function An(u){let e=[];if(u==="\x1B[A")e.push(iu("up","",!1,!1,!1,u));else if(u==="\x1B[B")e.push(iu("down","",!1,!1,!1,u));else if(u==="\x1B[C")e.push(iu("right","",!1,!1,!1,u));else if(u==="\x1B[D")e.push(iu("left","",!1,!1,!1,u));else if(u==="\r"||u===`
|
|
79
|
-
`)e.push(iu("return","",!1,!1,!1,u));else if(u==="\x1B")e.push(iu("escape","",!1,!1,!1,u));else if(u==="\x7F"||u==="\b")e.push(iu("backspace","",!1,!1,!1,u));else if(u===" ")e.push(iu("tab","",!1,!1,!1,u));else if(u==="\x1B[Z")e.push(iu("tab","",!1,!1,!0,u));else if(u==="\x1B[3~")e.push(iu("delete","",!1,!1,!1,u));else if(u==="\x1B[H"||u==="\x1B[1~"||u==="\x1BOH")e.push(iu("home","",!1,!1,!1,u));else if(u==="\x1B[F"||u==="\x1B[4~"||u==="\x1BOF")e.push(iu("end","",!1,!1,!1,u));else if(u===" ")e.push(iu("space"," ",!1,!1,!1,u));else for(let t=0;t<u.length;t++){let n=u[t],r=n.charCodeAt(0);if(r<=26&&r>0){let o=String.fromCharCode(r+96);e.push(iu(o,n,!0,!1,!1,n))}else e.push(iu(n,n,!1,!1,!1,n))}return e}function iu(u,e,t,n,r,o){return{name:u,char:e,ctrl:t,meta:n,shift:r,sequence:o}}var c8=new In,Ln=class extends Dn{_size;constructor(){super(),this._size=this.measure(),process.stdout.on("resize",()=>{this._size=this.measure(),this.emit("resize",this._size)}),typeof process.on=="function"&&process.on("SIGWINCH",()=>{this._size=this.measure(),this.emit("resize",this._size)})}get size(){return this._size}get columns(){return this._size.columns}get rows(){return this._size.rows}measure(){return{columns:process.stdout.columns||80,rows:process.stdout.rows||24}}},ke=new Ln;function Bu(){return ke.size}var Tn=class{listeners=new Map;on(u,e){return this.listeners.has(u)||this.listeners.set(u,new Set),this.listeners.get(u).add(e),()=>this.off(u,e)}off(u,e){this.listeners.get(u)?.delete(e)}emit(u,...e){this.listeners.get(u)?.forEach(t=>{try{t(...e)}catch{}})}once(u,e){let t=(...n)=>{this.off(u,t),e(...n)};return this.on(u,t)}removeAll(u){u?this.listeners.delete(u):this.listeners.clear()}},De=new Tn,On=class{pages=[];_currentPage="";history=[];get currentPage(){return this._currentPage}get currentIndex(){return this.pages.indexOf(this._currentPage)}get pageCount(){return this.pages.length}registerPages(u){this.pages=[...u]}navigate(u){return this.pages.includes(u)?(this.history.push(this._currentPage),this._currentPage=u,De.emit("navigate",{from:this.history[this.history.length-1],to:u}),!0):!1}navigateByIndex(u){return u<0||u>=this.pages.length?!1:this._currentPage===this.pages[u]?!0:this.navigate(this.pages[u])}back(){if(this.history.length===0)return!1;let u=this.history.pop(),e=this._currentPage;return this._currentPage=u,De.emit("navigate",{from:e,to:u}),!0}home(){return this._currentPage===""||(this.history=[],this._currentPage=""),!0}isHome(){return this._currentPage===""}getPageId(u){return this.pages[u]}getAllPages(){return[...this.pages]}},$n=class{items=[];_focusIndex=0;get focusedId(){return this.items[this._focusIndex]}get focusIndex(){return this._focusIndex}set focusIndex(u){u>=0&&u<this.items.length&&(this._focusIndex=u)}setItems(u){this.items=[...u],this._focusIndex>=this.items.length&&(this._focusIndex=Math.max(0,this.items.length-1))}focusNext(){if(this.items.length!==0)return this._focusIndex=(this._focusIndex+1)%this.items.length,this.items[this._focusIndex]}focusPrev(){if(this.items.length!==0)return this._focusIndex=(this._focusIndex-1+this.items.length)%this.items.length,this.items[this._focusIndex]}focusFirst(){return this._focusIndex=0,this.items[0]}focusLast(){return this._focusIndex=Math.max(0,this.items.length-1),this.items[this._focusIndex]}isFocused(u){return this.items[this._focusIndex]===u}get count(){return this.items.length}},Rn=class{animations=new Map;timer=null;fps=30;running=!1;start(){if(this.running)return;this.running=!0;let u=Math.floor(1e3/this.fps);this.timer=setInterval(()=>this.tick(),u)}stop(){this.running=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.animations.clear()}add(u,e,t,n){this.animations.set(u,{id:u,totalFrames:e,onFrame:t,onComplete:n,currentFrame:0}),this.running||this.start()}remove(u){this.animations.delete(u),this.animations.size===0&&this.stop()}tick(){let u=[];for(let[e,t]of this.animations)t.onFrame(t.currentFrame,t.totalFrames,t.currentFrame/this.fps),t.currentFrame++,t.currentFrame>=t.totalFrames&&(u.push(e),t.onComplete?.());for(let e of u)this.animations.delete(e);this.animations.size===0&&this.stop()}get isRunning(){return this.running}get activeCount(){return this.animations.size}},kn=new Rn,jn=class{_mode="navigation";_editingId=null;get mode(){return this._mode}get editingId(){return this._editingId}get isEditing(){return this._mode==="editing"}get isNavigating(){return this._mode==="navigation"}enterEdit(u){this._mode="editing",this._editingId=u}exitEdit(){this._mode="navigation",this._editingId=null}reset(){this._mode="navigation",this._editingId=null}},Nn=class{_notifications=[];get current(){return this.prune(),this._notifications[0]??null}get all(){return this.prune(),[...this._notifications]}success(u,e=3e3){this._notifications.push({message:u,type:"success",createdAt:Date.now(),duration:e})}error(u,e=4e3){this._notifications.push({message:u,type:"error",createdAt:Date.now(),duration:e})}info(u,e=3e3){this._notifications.push({message:u,type:"info",createdAt:Date.now(),duration:e})}prune(){let u=Date.now(),e=this._notifications.length;return this._notifications=this._notifications.filter(t=>u-t.createdAt<t.duration),this._notifications.length!==e}clear(){this._notifications=[]}},Wn=class{states=new Map;refreshTimers=new Map;getState(u){return this.states.get(u)}needsLoad(u){let e=this.states.get(u);return!e||e.status==="loading"}load(u,e,t){this.states.get(u)?.status!=="loading"&&(this.states.set(u,{status:"loading"}),e().then(r=>{this.states.set(u,{status:"loaded",content:r,lastLoadTime:Date.now()}),t()}).catch(r=>{this.states.set(u,{status:"error",error:r instanceof Error?r:new Error(String(r))}),t()}))}setupRefresh(u,e,t,n){this.clearRefresh(u);let r=setInterval(()=>{let o=this.states.get(u);t().then(s=>{this.states.set(u,{status:"loaded",content:s,lastLoadTime:Date.now()}),n()}).catch(s=>{o?.content?this.states.set(u,{...o,lastLoadTime:Date.now()}):this.states.set(u,{status:"error",error:s instanceof Error?s:new Error(String(s))}),n()})},e);this.refreshTimers.set(u,r)}clearRefresh(u){let e=this.refreshTimers.get(u);e&&(clearInterval(e),this.refreshTimers.delete(u))}reload(u,e,t){this.states.delete(u),this.load(u,e,t)}cleanup(){for(let u of this.refreshTimers.values())clearInterval(u);this.refreshTimers.clear()}reset(u){this.states.delete(u),this.clearRefresh(u)}};function Hn(u){let e=u.indexOf(" ");if(e===-1)throw new Error(`Invalid API route key: "${u}". Expected format: "METHOD /path"`);let t=u.slice(0,e).toUpperCase(),n=u.slice(e+1).trim();if(!n.startsWith("/"))throw new Error(`API route path must start with "/": "${u}"`);let r=[],o=n.replace(/:(\w+)/g,(a,i)=>(r.push(i),"([^/]+)")),s=new RegExp(`^${o}$`);return{method:t,pattern:s,paramNames:r}}function Un(u){let e=[];for(let[t,n]of Object.entries(u)){let{method:r,pattern:o,paramNames:s}=Hn(t);e.push({method:r,pattern:o,paramNames:s,handler:n})}return e}function zn(u,e,t){for(let n of u){if(n.method!==e)continue;let r=t.match(n.pattern);if(!r)continue;let o={};return n.paramNames.forEach((s,a)=>{o[s]=decodeURIComponent(r[a+1])}),{route:n,params:o}}return null}var je=class{routes=[];server=null;port=0;registerRoutes(u){this.routes=Un(u)}async start(){return new Promise((u,e)=>{this.server=Yn((t,n)=>{this.handleRequest(t,n)}),this.server.on("error",e),this.server.listen(0,"127.0.0.1",()=>{let t=this.server.address();this.port=typeof t=="object"&&t?t.port:0,u(this.port)})})}async stop(){if(this.server)return new Promise(u=>{this.server.close(()=>u())})}getPort(){return this.port}getBaseUrl(){return`http://127.0.0.1:${this.port}`}async handleRequest(u,e){let t=new URL(u.url||"/",`http://127.0.0.1:${this.port}`),n=(u.method||"GET").toUpperCase(),r=t.pathname;if(e.setHeader("Access-Control-Allow-Origin","*"),e.setHeader("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, PATCH, OPTIONS"),e.setHeader("Access-Control-Allow-Headers","Content-Type"),e.setHeader("Content-Type","application/json"),n==="OPTIONS"){e.writeHead(204),e.end();return}let o=zn(this.routes,n,r);if(!o){e.writeHead(404),e.end(JSON.stringify({error:"Not found"}));return}let s={};t.searchParams.forEach((c,l)=>{s[l]=c});let a;["POST","PUT","PATCH"].includes(n)&&(a=await this.parseBody(u));let i={method:n,path:r,params:o.params,query:s,body:a,headers:u.headers};try{let c=await o.route.handler(i),l=JSON.stringify(c);e.writeHead(200),e.end(l)}catch(c){let l=c?.message||"Internal server error";e.writeHead(500),e.end(JSON.stringify({error:l}))}}parseBody(u){return new Promise((e,t)=>{let n="";u.on("data",r=>{n+=r.toString()}),u.on("end",()=>{if(!n){e(void 0);return}try{e(JSON.parse(n))}catch{e(n)}}),u.on("error",t)})}},_8="__terminaltui_api_base_url__";function p8(u){u?globalThis[_8]=u:delete globalThis[_8]}function Vn(){return globalThis[_8]??null}function Ne(u){let e=Vn();return u.startsWith("/")&&e?`${e}${u}`:u}var Gn=class{entries=new Map;get(u){let e=this.entries.get(u);if(e){if(Date.now()-e.timestamp>e.ttl){this.entries.delete(u);return}return e.data}}set(u,e,t){this.entries.set(u,{data:e,timestamp:Date.now(),ttl:t})}has(u){return this.get(u)!==void 0}delete(u){this.entries.delete(u)}clear(){this.entries.clear()}},oo=new Gn,Kn="__terminaltui_fetcher_registry__";function We(){let u=globalThis[Kn];if(u){for(let e of u.values())e.destroy();u.clear()}}function qn(u){let e=u??"";return{value:e,cursorPos:typeof e=="string"?e.length:0,error:null,open:!1,highlightIndex:0,scrollOffset:0}}function Jn(u,e){return u.name==="q"&&!u.ctrl||u.name==="c"&&u.ctrl?"quit":u.name==="escape"?e?"quit":"back":u.name==="backspace"?e?null:"back":u.name==="up"||u.name==="k"?"up":u.name==="down"||u.name==="j"?"down":u.name==="left"||u.name==="h"?"left":u.name==="right"||u.name==="l"?"right":u.name==="return"?"select":u.char===":"||u.char==="/"?"command":u.name==="tab"?u.shift?"up":"down":u.char==="g"&&!u.shift&&!u.ctrl?"home":u.char==="G"||u.char==="g"&&u.shift?"pageDown":u.char>="1"&&u.char<="9"?`jump${u.char}`:null}function j2(u,e,t){let n=t.find(a=>a.focusIndex===u);if(!n)return null;let r=t.filter(a=>a.focusIndex===u?!1:Qn(n,a,e));if(r.length===0)return null;let o=r[0],s=Le(n,o,e);for(let a=1;a<r.length;a++){let i=Le(n,r[a],e);i<s&&(o=r[a],s=i)}return o.focusIndex}function Qn(u,e,t){switch(t){case"right":return e.x>u.x;case"left":return e.x+e.width<u.x+u.width;case"down":return e.y>u.y;case"up":return e.y+e.height<u.y+u.height}}function Le(u,e,t){let n=u.x+u.width/2,r=u.y+u.height/2,o=e.x+e.width/2,s=e.y+e.height/2,a,i;return t==="left"||t==="right"?(a=Math.abs(o-n),i=Math.abs(s-r)):(a=Math.abs(s-r),i=Math.abs(o-n)),a+i*2}function G(u,e){let t=e.margin??0,n=typeof e.border=="boolean"?e.border?1:0:e.border??0,r=e.padding??0,o=t*2+n*2+r*2,s=Math.max(0,u-o);return{allocated:u,margin:t,border:n,padding:r,content:s}}var K={card:{padding:1,border:!0,margin:0},text:{padding:0,border:!1,margin:0},hero:{padding:0,border:!1,margin:0},table:{padding:0,border:!0,margin:0},quote:{padding:1,border:!0,margin:1},badge:{padding:0,border:!1,margin:0},progressBar:{padding:0,border:!1,margin:0},link:{padding:0,border:!1,margin:0},list:{padding:0,border:!1,margin:0},section:{padding:0,border:!1,margin:0},divider:{padding:0,border:!1,margin:0},spacer:{padding:0,border:!1,margin:0},timeline:{padding:1,border:!0,margin:1},gallery:{padding:0,border:!1,margin:0},image:{padding:0,border:!0,margin:0},markdown:{padding:0,border:!1,margin:0},menu:{padding:0,border:!1,margin:0},accordion:{padding:2,border:!1,margin:0},tabs:{padding:2,border:!1,margin:0},scrollView:{padding:0,border:!1,margin:0},textInput:{padding:1,border:!0,margin:0},textArea:{padding:1,border:!0,margin:0},select:{padding:1,border:!0,margin:0},checkbox:{padding:0,border:!1,margin:0},toggle:{padding:0,border:!1,margin:0},radioGroup:{padding:0,border:!1,margin:0},numberInput:{padding:1,border:!0,margin:0},searchInput:{padding:1,border:!0,margin:0},button:{padding:2,border:!0,margin:1},form:{padding:1,border:!0,margin:0},box:{padding:0,border:!1,margin:0}};function $u(u,e){let t=u.border??e.borderStyle??"rounded",n=ju(t),r=u.width??e.width,o=u.padding??1,s=Math.max(0,Math.floor((r-2)/2)),a=Math.min(o,s),i=G(r,{border:!0,padding:a}),c=i.content,l=u.borderColor??e.theme.border,f=[],_=Math.max(0,i.allocated-i.border*2);if(u.title){let F=` ${u.title} `,w="";u.titleRight&&(w=` ${u.titleRight} `);let y=Math.max(0,_-L(F)-L(w)-1);f.push(h(l)+n.topLeft+n.horizontal+d+h(e.theme.accent)+F+d+h(l)+n.horizontal.repeat(y)+(w?d+h(e.theme.muted)+w+d+h(l):"")+n.topRight+d)}else f.push(h(l)+n.topLeft+n.horizontal.repeat(_)+n.topRight+d);let p=[];for(let F of u.content)p.push(F);let m=u.height?Math.max(0,u.height-2):p.length+(a>0,0),g=Math.max(m,p.length);for(let F=0;F<g;F++){let w=p[F]??"",y=" ".repeat(a);f.push(h(l)+n.vertical+d+y+_u(w,c)+y+h(l)+n.vertical+d),u.midSeparatorAfter!==void 0&&F===u.midSeparatorAfter&&f.push(h(l)+n.teeRight+n.horizontal.repeat(_)+n.teeLeft+d)}return f.push(h(l)+n.bottomLeft+n.horizontal.repeat(_)+n.bottomRight+d),f}function Ye(u,e){if(!u.resultMessage)return[];let t=e.theme,n=G(e.width,K.form),r,o;switch(u.resultType){case"success":r="\u2713",o=t.success;break;case"error":r="\u2717",o=t.error;break;default:r="\u2139",o=t.accent;break}let s=[h(o)+r+" "+u.resultMessage+d];return $u({content:s,width:e.width,border:e.borderStyle??"rounded",padding:1,borderColor:o},e)}function Zn(u){let e=[];for(let t of u)"id"in t&&t.type!=="form"&&t.type!=="button"&&e.push(t.id);return e}function w8(u){switch(u.type){case"textInput":case"textArea":return u.defaultValue??"";case"select":case"radioGroup":return u.defaultValue??"";case"checkbox":case"toggle":return u.defaultValue??!1;case"numberInput":return u.defaultValue??0;case"searchInput":return"";default:return}}function Te(u,e){let t=u.toLowerCase(),n=e.toLowerCase(),r=0;for(let o=0;o<n.length&&r<t.length;o++)n[o]===t[r]&&r++;return r===t.length}function m8(u,e,t){if(!e)return u.slice(0,t);let n=[];for(let r of u){let o=Te(e,r.label),s=r.keywords?.some(i=>Te(e,i))??!1,a=r.label.toLowerCase().includes(e.toLowerCase());if(o||s){let i=a?2:o?1:0;n.push({label:r.label,value:r.value,score:i})}}return n.sort((r,o)=>o.score-r.score),n.slice(0,t).map(r=>({label:r.label,value:r.value}))}function Xn(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=e.editing,i=G(t.width,K.searchInput).content,c=u.label??"",l="\u{1F50D}";c&&r.push(h(o?n.accent:n.text)+k+" "+c+d);let f;if(e.query.length===0&&!s)f=h(n.subtle)+q+(u.placeholder??"Search...")+d;else if(s){let w=Math.min(e.cursorPos,e.query.length),y=e.query.substring(0,w),v=e.query.substring(w);f=h(n.text)+y+h(n.accent)+"\u2588"+d+h(n.text)+v+d}else f=h(n.text)+e.query+d;let _=[f],p=u.maxResults??5;if(s||e.query.length>0){let w=e.filteredItems;if(w.length===0)_.push(h(n.subtle)+q+"No results"+d);else for(let y=0;y<w.length;y++){let v=w[y],x=y===e.highlightIndex,B=x?"\u276F ":" ",C=x?n.accent:n.text,S=Q(v.label,Math.max(1,i-2));_.push(h(C)+(x?k:"")+B+S+d)}}let m=o?n.accent:n.border,g=_.length>1,F=$u({content:_,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:m,midSeparatorAfter:g?0:void 0},t);return r.push(...F),r}function u0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??""),r=n.value,o=n.cursorPos;if(t.name==="escape"){u.validateInput(e),u.inputMode.exitEdit();return}if(t.name==="return"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusNext();return}if(t.name==="up"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusPrev();return}if(t.name==="down"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusNext();return}t.name==="backspace"?o>0&&(r=r.substring(0,o-1)+r.substring(o),o--):t.name==="delete"?o<r.length&&(r=r.substring(0,o)+r.substring(o+1)):t.name==="left"?o>0&&o--:t.name==="right"?o<r.length&&o++:t.name==="home"?o=0:t.name==="end"?o=r.length:t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(!e.maxLength||r.length<e.maxLength)&&(r=r.substring(0,o)+t.char+r.substring(o),o++),e.transform&&(r=e.transform(r),o=Math.min(o,r.length));let s=n.value!==r;n.value=r,n.cursorPos=o,n.error=null,s&&e.onChange&&e.onChange(r)}function e0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??""),r=n.value,o=n.cursorPos;if(t.name==="escape"){u.validateInput(e),u.inputMode.exitEdit();return}if(t.name==="return")(!e.maxLength||r.length<e.maxLength)&&(r=r.substring(0,o)+`
|
|
80
|
-
`+r.substring(o),o++);else if(t.name==="backspace")o>0&&(r=r.substring(0,o-1)+r.substring(o),o--);else if(t.name==="delete")o<r.length&&(r=r.substring(0,o)+r.substring(o+1));else if(t.name==="left")o>0&&o--;else if(t.name==="right")o<r.length&&o++;else if(t.name==="up"){let a=r.substring(0,o).split(`
|
|
81
|
-
`);if(a.length>1){let i=a[a.length-1].length,c=a[a.length-2],l=Math.min(i,c.length);o=a.slice(0,-1).join(`
|
|
82
|
-
`).length-c.length+l,o<0&&(o=0)}}else if(t.name==="down"){let a=r.substring(0,o),i=r.substring(o),c=a.lastIndexOf(`
|
|
83
|
-
`)+1,l=o-c,f=i.indexOf(`
|
|
84
|
-
`);if(f>=0){let _=i.substring(f+1),p=_.indexOf(`
|
|
85
|
-
`),m=p>=0?p:_.length,g=Math.min(l,m);o=o+f+1+g}}else if(t.name==="home")o=r.substring(0,o).lastIndexOf(`
|
|
86
|
-
`)+1;else if(t.name==="end"){let i=r.substring(o).indexOf(`
|
|
87
|
-
`);o=i>=0?o+i:r.length}else t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(!e.maxLength||r.length<e.maxLength)&&(r=r.substring(0,o)+t.char+r.substring(o),o++);let s=n.value!==r;n.value=r,n.cursorPos=o,n.error=null,s&&e.onChange&&e.onChange(r)}function t0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??"");if(t.name==="escape"){n.open=!1,u.inputMode.exitEdit();return}if(!n.open){if(t.name==="return"){n.open=!0;let r=e.options.findIndex(o=>o.value===n.value);n.highlightIndex=r>=0?r:0}return}if(t.name==="up")n.highlightIndex=Math.max(0,n.highlightIndex-1);else if(t.name==="down")n.highlightIndex=Math.min(e.options.length-1,n.highlightIndex+1);else if(t.name==="return"){let r=e.options[n.highlightIndex];r&&(n.value=r.value,e.onChange?.(r.value)),n.open=!1,u.inputMode.exitEdit()}}function n0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??0),r=e.step??1,o=e.min??-1/0,s=e.max??1/0;if(t.name==="escape"){u.inputMode.exitEdit();return}if(t.name==="return"||t.name==="up"||t.name==="down"){u.inputMode.exitEdit(),t.name==="up"&&u.pageFocusPrev(),t.name==="down"&&u.pageFocusNext();return}if(t.name==="left"||t.char==="-")n.value=Math.max(o,n.value-r);else if(t.name==="right"||t.char==="+")n.value=Math.min(s,n.value+r);else if(t.char&&/[0-9]/.test(t.char)){let a=String(n.value)==="0"?t.char:String(n.value)+t.char,i=parseInt(a,10);isNaN(i)||(n.value=Math.max(o,Math.min(s,i)))}else if(t.name==="backspace"){let a=String(n.value).slice(0,-1);n.value=a?Math.max(o,Math.min(s,parseInt(a,10)||0)):0}}function r0(u,e,t){let n=u.getInputState(e.id,""),r=n.value,o=n.cursorPos;if(t.name==="escape")return u.inputMode.exitEdit(),{};if(t.name==="return"){let s=e.maxResults??10,i=m8(e.items,r,s)[n.highlightIndex];return u.inputMode.exitEdit(),i?{action:"search",selected:i}:{}}if(t.name==="up")return n.highlightIndex=Math.max(0,n.highlightIndex-1),{};if(t.name==="down"){let s=e.maxResults??10,a=m8(e.items,r,s);return n.highlightIndex=Math.min(a.length-1,n.highlightIndex+1),{}}return t.name==="backspace"?o>0&&(r=r.substring(0,o-1)+r.substring(o),o--):t.name==="left"?o>0&&o--:t.name==="right"?o<r.length&&o++:t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(r=r.substring(0,o)+t.char+r.substring(o),o++),n.value=r,n.cursorPos=o,n.highlightIndex=0,{}}function o0(u,e,t){let n=u.getInputState(e.id,e.defaultValue??"");if(t.name==="escape"){u.inputMode.exitEdit();return}if(t.name==="up"){n.highlightIndex>0?n.highlightIndex--:(u.inputMode.exitEdit(),u.pageFocusPrev());return}if(t.name==="down"){n.highlightIndex<e.options.length-1?n.highlightIndex++:(u.inputMode.exitEdit(),u.pageFocusNext());return}if(t.name==="return"||t.name==="space"){let r=e.options[n.highlightIndex];r&&(n.value=r.value,e.onChange?.(r.value));return}}function s0(u,e){if(e.name==="escape"){u.commandMode=!1,u.commandBuffer="",u.render();return}if(e.name==="return"){u.executeCommand(u.commandBuffer),u.commandMode=!1,u.commandBuffer="",u.render();return}if(e.name==="backspace"){u.commandBuffer=u.commandBuffer.slice(0,-1),u.render();return}if(e.char&&e.char.length===1&&!e.ctrl){u.commandBuffer+=e.char,u.render();return}}function i0(u,e){let t=u.router.isHome();if(!t){let r=u.getFocusedInputBlock();if(r&&u.isTextEntryType(r.type)&&u.isAutoEditKey(e)){let o=r.id;u.inputMode.enterEdit(o),u.getInputState(o,w8(r)),u.handleEditMode(e),u.render();return}}let n=Jn(e,t);if(n)switch(n){case"quit":u.stop();break;case"back":u.router.back()&&(u.scrollOffset=0,u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset(),u.render());break;case"up":if(t)u.focus.focusPrev();else{let r=j2(u.pageFocusIndex,"up",u.focusRects);r!==null?u.pageFocusIndex=r:u.pageFocusPrev()}u.render();break;case"down":if(t)u.focus.focusNext();else{let r=j2(u.pageFocusIndex,"down",u.focusRects);r!==null?u.pageFocusIndex=r:u.pageFocusNext()}u.render();break;case"left":if(!t){let r=u.pageFocusItems[u.pageFocusIndex];if(r?.kind==="block"&&r.block.type==="tabs"){let o=r.block,s=o.items.map(i=>i.label).join(","),a=u.tabState.get(s)??0;u.tabState.set(s,a>0?a-1:o.items.length-1)}else{let o=j2(u.pageFocusIndex,"left",u.focusRects);o!==null?u.pageFocusIndex=o:u.router.back()&&(u.scrollOffset=0,u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset())}}u.render();break;case"right":if(t){let r=u.focus.focusedId;r&&u.navigateToPage(r)}else{let r=u.pageFocusItems[u.pageFocusIndex];if(r?.kind==="block"&&r.block.type==="tabs"){let o=r.block,s=o.items.map(i=>i.label).join(","),a=u.tabState.get(s)??0;u.tabState.set(s,(a+1)%o.items.length)}else{let o=j2(u.pageFocusIndex,"right",u.focusRects);o!==null&&(u.pageFocusIndex=o)}}u.render();break;case"select":if(t){let r=u.focus.focusedId;r&&u.navigateToPage(r)}else u.handlePageSelect();u.render();break;case"home":u.router.isHome()||(u.pageFocusIndex=0,u.pageScrollOffset=0),u.render();break;case"pageDown":!u.router.isHome()&&u.pageFocusItems.length>0&&(u.pageFocusIndex=u.pageFocusItems.length-1),u.render();break;case"command":u.commandMode=!0,u.commandBuffer="",u.render();break;default:if(n.startsWith("jump")){let r=parseInt(n.replace("jump",""));if(u.router.isHome()){let o=r-1;if(o<u.focus.count){u.focus.focusIndex=o;let s=u.router.getPageId(o);s&&u.navigateToPage(s)}}u.render()}break}}function a0(u,e){let t=u.getFocusedInputBlock();if(!t){u.inputMode.exitEdit(),u.render();return}switch(t.type){case"textInput":u0(u,t,e);break;case"textArea":e0(u,t,e);break;case"select":t0(u,t,e);break;case"numberInput":n0(u,t,e);break;case"searchInput":{let n=r0(u,t,e);n.action==="search"&&n.selected&&c0(u,t,n.selected);break}case"radioGroup":o0(u,t,e);break;default:e.name==="escape"&&u.inputMode.exitEdit();break}u.render()}function Ru(u){return u.toLowerCase().replace(/[^a-z0-9]/g,"")}function c0(u,e,t){if((e.action??(e.onSelect?"callback":"navigate"))==="callback"&&e.onSelect){e.onSelect(t.value);return}let r=t.value,o=u.site.pages.find(c=>c.id===r);if(o){u.router.navigate(r),u.enterPage(),u.showFeedback(`\u2192 ${o.title}`),u.render();return}if(l8(u,r,t.label)){u.showFeedback(t.label),u.render();return}let a=u.getCurrentPage(),i=a?typeof a.content=="function"?u.resolvedPageContent.get(a.id):a.content:null;if(i&&_2(u,i,r,t.label)){u.render(),setTimeout(()=>{l8(u,r,t.label),u.showFeedback(t.label),u.render()},50);return}for(let c of u.site.pages){if(c.id===u.router.currentPage)continue;let l=typeof c.content=="function"?u.resolvedPageContent.get(c.id):c.content;if(l&&gu(r,t.label,l)){u.router.navigate(c.id),u.enterPage(),l8(u,r,t.label),u.showFeedback(`\u2192 ${c.title} \u203A ${t.label}`),u.render();return}}e.onSelect&&e.onSelect(r),u.showFeedback(t.label)}function vu(u,e,t){if(!u)return!1;let n=Ru(u);return u.toLowerCase().includes(e)||n.includes(t)||t.includes(n)}function l8(u,e,t){let n=e.toLowerCase(),r=Ru(e),o=t.toLowerCase(),s=Ru(t);for(let i=0;i<u.pageFocusItems.length;i++){let c=u.pageFocusItems[i];if(c.kind==="block"){let l=c.block;if("id"in l&&l.id===e||l.type==="card"&&(vu(l.title,n,r)||vu(l.subtitle,n,r)||vu(l.title,s,s)||vu(l.subtitle,s,s))||l.type==="link"&&vu(l.label,n,r)||l.type==="hero"&&vu(l.title,n,r))return u.pageFocusIndex=i,!0}if(c.kind==="accordion-item"){let l=c.accordion.items[c.itemIndex].label,f=l.toLowerCase().replace(/[^a-z0-9]/g,""),_=n.replace(/[^a-z0-9]/g,"");if(l.toLowerCase().includes(n)||f.includes(_)||_.includes(f)||l.toLowerCase().startsWith(o.split(" \u2014 ")[0]?.trim().toLowerCase()??"\0")){u.pageFocusIndex=i;let p=c.accordion.items.map(m=>m.label).join(",");return u.accordionState.set(p,c.itemIndex),!0}}if(c.kind==="timeline-item"&&c.timeline.items[c.itemIndex].title.toLowerCase().includes(n))return u.pageFocusIndex=i,!0}let a=u.getCurrentPage();if(a){let i=typeof a.content=="function"?u.resolvedPageContent.get(a.id):a.content;if(i){let c=l0(i,e,t,u);if(c>=0)return u.pageFocusIndex=c,!0}}return!1}function _2(u,e,t,n){let r=t.toLowerCase(),o=Ru(t);for(let s of e){if(s.type==="tabs"){let a=s;for(let i=0;i<a.items.length;i++){let c=a.items[i].content;if(gu(t,n,c)){let l=a.items.map(f=>f.label).join(",");return u.tabState.set(l,i),!0}}}if(s.type==="section"&&s.content&&_2(u,s.content,t,n))return!0;if(s.type==="columns"){for(let a of s.panels)if(_2(u,a.content,t,n))return!0}if(s.type==="split"){let a=s;if(_2(u,a.config.first,t,n)||_2(u,a.config.second,t,n))return!0}}return!1}function l0(u,e,t,n){let r=e.toLowerCase(),o=Ru(e),s=Ru(t),a=0;for(let i of u)if(i.type==="grid"){let c=i;for(let l of c.config.items){let f=tu(l.content);if(l.title&&(vu(l.title,r,o)||vu(l.title,s,s)))return a;a+=f}}else if(i.type==="columns")for(let c of i.panels){let l=tu(c.content);if(c.title&&(vu(c.title,r,o)||vu(c.title,s,s)))return a;a+=l}else if(i.type==="split"){let c=i;a+=tu(c.config.first),a+=tu(c.config.second)}else if(i.type==="rows")for(let c of i.panels)a+=tu(c.content);else a+=tu([i]);return-1}function tu(u){let e=0;for(let t of u)if(["card","link","hero","textInput","textArea","select","checkbox","toggle","radioGroup","numberInput","searchInput","button"].includes(t.type))e++;else if(t.type==="accordion")e+=t.items.length;else if(t.type==="timeline")e+=t.items.length;else if(t.type==="tabs")e++;else if(t.type==="section")e+=tu(t.content);else if(t.type==="form")e+=tu(t.fields);else if(t.type==="columns")for(let n of t.panels)e+=tu(n.content);else if(t.type==="rows")for(let n of t.panels)e+=tu(n.content);else if(t.type==="split")e+=tu(t.config.first),e+=tu(t.config.second);else if(t.type==="grid")for(let n of t.config.items)e+=tu(n.content);else if(t.type==="panel")e+=tu(t.config.content);else if(t.type==="box")e+=tu(t.config.children);else if(t.type==="row")for(let n of t.cols)e+=tu(n.content);else t.type==="container"&&(e+=tu(t.content));return e}function gu(u,e,t){let n=u.toLowerCase(),r=Ru(u);for(let o of t){if("id"in o&&o.id===u||o.type==="card"&&(vu(o.title,n,r)||vu(o.subtitle,n,r)))return!0;if(o.type==="link"){let s=Ru(o.label);if(o.label.toLowerCase().includes(n)||s.includes(r)||r.includes(s))return!0}if(o.type==="accordion")for(let s of o.items){let a=s.label.toLowerCase().replace(/[^a-z0-9]/g,"");if(s.label.toLowerCase().includes(n)||a.includes(r)||r.includes(a))return!0}if(o.type==="timeline"){for(let s of o.items)if(s.title.toLowerCase().includes(n))return!0}if(o.type==="section"&&gu(u,e,o.content)||o.type==="form"&&gu(u,e,o.fields))return!0;if(o.type==="columns"){for(let s of o.panels)if(gu(u,e,s.content))return!0}if(o.type==="rows"){for(let s of o.panels)if(gu(u,e,s.content))return!0}if(o.type==="split"){let s=o;if(gu(u,e,s.config.first)||gu(u,e,s.config.second))return!0}if(o.type==="grid"){for(let s of o.config.items)if(gu(u,e,s.content))return!0}if(o.type==="panel"&&gu(u,e,o.config.content)||o.type==="box"&&gu(u,e,o.config.children))return!0;if(o.type==="row"){for(let s of o.cols)if(gu(u,e,s.content))return!0}if(o.type==="container"&&gu(u,e,o.content))return!0}return!1}function f0(u,e){if(e.length===0)return u;if(e.length===1)return u.map(r=>h(e[0])+r+d);let t=Math.max(...u.map(r=>r.length),2),n=V2(e,t);return u.map(r=>{let o="",s=!1;for(let a=0;a<r.length;a++)r[a]===" "?(s&&(o+=d,s=!1),o+=" "):(o+=h(n[a])+r[a],s=!0);return o+d})}var h0={dots:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],bars:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E","\u258F"],braille:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"],circle:["\u25D0","\u25D3","\u25D1","\u25D2"],bounce:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"],line:["-","\\","|","/"]};function g8(u,e){let t=h0[u];return t[e%t.length]}function F8(u,e,t){let n=[],r=t.theme,o=G(t.width,K.menu);for(let s=0;s<u.length;s++){let a=u[s],i=s===e,c=a.icon??"\u25C6",f=` [${`${s+1}`}]`;if(i){let p=Math.max(1,o.content-7-L(f)),m=Q(a.label,p),g=h(r.accent)+"\u276F"+d,F=h(r.accent)+k+` ${c} `+d,w=h(r.accent)+k+m+d,y=h(r.muted)+q+f+d;n.push(` ${g}${F}${w}${y}`)}else{let p=Math.max(1,o.content-7-L(f)),m=Q(a.label,p),g=h(r.muted)+` ${c} `+d,F=h(r.text)+m+d,w=h(r.subtle)+q+f+d;n.push(` ${g}${F}${w}`)}}return n}function He(u,e){if(u===void 0||u==="auto")return"auto";if(typeof u=="number")return u;if(typeof u=="string"&&u.endsWith("%")){let n=parseFloat(u);if(!isNaN(n))return Math.floor(n/100*e)}let t=parseInt(u,10);return isNaN(t)?"auto":t}function Ue(u,e,t){let n=Math.max(0,e-t),r=0,o=0;for(let i of u)i==="auto"?o++:r+=i;if(r>n&&r>0&&o===0){let i=n/r;return u.map(c=>Math.max(0,c==="auto"?0:Math.floor(c*i)))}let s=Math.max(0,n-r),a=o>0?Math.floor(s/o):0;return u.map(i=>Math.max(0,i==="auto"?a:i))}var d0=10,_0=3,N2=3;function g2(u,e,t){if(u.length===0)return[];if(u.length===1)return[{x:0,y:0,width:e,height:t,panel:u[0]}];let r=(u.length-1)*N2,o=Math.max(0,e-r),s=u.map(l=>He(l.width,o)),a=Ue(s,e,r),i=[],c=0;for(let l=0;l<u.length;l++)i.push({x:c,y:0,width:a[l],height:t,panel:u[l]}),c+=a[l],l<u.length-1&&(c+=N2);return i}function y8(u,e,t){if(u.length===0)return[];if(u.length===1)return[{x:0,y:0,width:e,height:t,panel:u[0]}];let n=u.length-1,r=u.map(i=>He(i.height,t)),o=Ue(r,t,n),s=[],a=0;for(let i=0;i<u.length;i++)s.push({x:0,y:a,width:e,height:o[i],panel:u[i]}),a+=o[i],i<u.length-1&&(a+=1);return s}function b8(u,e,t){let n=u.ratio??50,o=u.border!==!1?N2:0;if(u.direction==="horizontal"){let s=Math.floor((e-o)*n/100),a=e-s-o;return[{x:0,y:0,width:s,height:t,panel:{content:u.first}},{x:s+o,y:0,width:a,height:t,panel:{content:u.second}}]}else{let s=Math.floor((t-o)*n/100),a=t-s-o;return[{x:0,y:0,width:e,height:s,panel:{content:u.first}},{x:0,y:s+o,width:e,height:a,panel:{content:u.second}}]}}function ze(u,e,t){let{cols:n,items:r,gap:o=1}=u;if(r.length===0||n<=0)return[];let s=u.rows??Math.ceil(r.length/n),a=Math.max(d0,Math.floor((e-o*(n-1))/n)),i=Math.max(_0,Math.floor((t-o*(s-1))/s)),c=[];for(let l=0;l<r.length;l++){let f=l%n,_=Math.floor(l/n);if(_>=s)break;c.push({x:f*(a+o),y:_*(i+o),width:a,height:i,panel:r[l]})}return c}function Zu(u,e){let n=u*20+(u-1);return e<n}function Ve(u,e,t){let r=u;for(;r>1&&!(Math.floor((e-t*(r-1))/r)>=20);)r--;return Math.max(1,r)}var p0=12;function x8(u){return u<60?"xs":u<90?"sm":u<120?"md":"lg"}function v8(u,e,t){let n=e;return n==="xs"&&u.xs!==void 0?u.xs:(n==="xs"||n==="sm")&&u.sm!==void 0?u.sm:(n==="xs"||n==="sm"||n==="md")&&u.md!==void 0?u.md:u.lg!==void 0&&n==="lg"?u.lg:u.span??t}function Ge(u,e,t=1,n=e){if(u.length===0)return[];let r=x8(n),o=Math.max(1,Math.floor(p0/u.length)),s=u.map(_=>v8(_,r,o)),a=s.reduce((_,p)=>_+p,0),i=u.length>1?(u.length-1)*N2:0,c=Math.max(0,e-i),l=u.map((_,p)=>Math.max(1,Math.floor(s[p]/a*c))),f=c-l.reduce((_,p)=>_+p,0);for(let _=0;_<l.length&&f>0;_++)l[_]++,f--;return u.map((_,p)=>({content:_.content,width:l[p],padding:_.padding}))}function Ke(u,e,t,n){let r=[];return ru(u,0,0,e,t,r,{value:0},n),r}function ru(u,e,t,n,r,o,s,a){let i=t;for(let c of u)switch(c.type){case"columns":{let l=c;if(Zu(l.panels.length,n))for(let f of l.panels){let _=d2(f);i=ru(f.content,e+_.dx,i+_.dy,n-_.dw,r-_.dh,o,s,a),i+=2}else{let f=g2(l.panels,n,r);for(let p=0;p<f.length;p++){let m=f[p],g=d2(l.panels[p]);ru(l.panels[p].content,e+m.x+g.dx,i+g.dy,m.width-g.dw,m.height-g.dh,o,s,a)}let _=f.length>0?Math.max(...f.map(p=>p.height)):0;i+=_+1}break}case"rows":{let l=c,f=y8(l.panels,n,r);for(let p=0;p<f.length;p++){let m=f[p],g=d2(l.panels[p]);ru(l.panels[p].content,e+m.x+g.dx,i+m.y+g.dy,m.width-g.dw,m.height-g.dh,o,s,a)}let _=f.length>0?f[f.length-1].y+f[f.length-1].height:0;i+=_+1;break}case"split":{let f=c.config,m=f.direction==="horizontal"&&Zu(2,n)?{...f,direction:"vertical"}:f,g=b8(m,n,r),F=[f.first,f.second];for(let y=0;y<g.length;y++){let v=g[y];ru(F[y],e+v.x,i+v.y,v.width,v.height,o,s,a)}let w=g.length>0?Math.max(...g.map(y=>y.y+y.height)):0;i+=w+1;break}case"grid":{let l=c,f=l.config.gap??1,_=Ve(l.config.cols,n,f),p={...l.config,cols:_},m=ze(p,n,r);for(let F=0;F<m.length;F++){let w=m[F],y=l.config.items[F];if(!y)continue;let v=d2(y);ru(y.content,e+w.x+v.dx,i+w.y+v.dy,w.width-v.dw,w.height-v.dh,o,s,a)}let g=m.length>0?Math.max(...m.map(F=>F.y+F.height)):0;i+=g+1;break}case"panel":{let l=c,f=d2(l.config);i=ru(l.config.content,e+f.dx,i+f.dy,n-f.dw,r-f.dh,o,s,a),i+=1;break}case"box":{let l=c.config,f=l.direction??"column",_=l.gap??0,p=l.children??[];if(f==="row"){let m=p.map(g=>g.type==="box"?{content:[g],width:g.config?.width,height:g.config?.height,padding:g.config?.padding}:{content:[g]});if(Zu(m.length,n))for(let g of m)i=ru(g.content,e,i,n,r,o,s,a),i+=_||1;else{let g=g2(m,n,r);for(let w=0;w<g.length;w++){let y=g[w];ru(m[w].content,e+y.x,i,y.width,y.height,o,s,a)}let F=g.length>0?Math.max(...g.map(w=>w.height)):0;i+=F+1}}else{for(let m=0;m<p.length;m++)m>0&&_>0&&(i+=_),i=ru([p[m]],e,i,n,r,o,s,a);i+=1}break}case"row":{let l=c,f=l.gap??1,_=l.cols,p=x8(n),m=Math.max(1,Math.floor(12/_.length)),g=_.map(y=>v8(y,p,m)),F=[[]],w=0;for(let y=0;y<_.length;y++){let v=_[y].offset??0,x=g[y]+v;w+x>12&&F[F.length-1].length>0&&(F.push([]),w=0),F[F.length-1].push(_[y]),w+=x}for(let y of F){let v=Ge(y,n,f,n);if(Zu(v.length,n))for(let x of v)i=ru(x.content,e,i,n,r,o,s,a),i+=2;else{let x=g2(v,n,r);for(let C=0;C<x.length;C++){let S=x[C];ru(v[C].content,e+S.x,i,S.width,S.height,o,s,a)}let B=x.length>0?Math.max(...x.map(C=>C.height)):0;i+=B+1}}break}case"container":{let l=c,f=l.padding??0,_=l.maxWidth??n,p=Math.max(1,Math.min(n,_)-f*2),m=n-p,g=l.center!==!1?Math.floor(m/2):f;i=ru(l.content,e+g,i,p,r,o,s,a),i+=1;break}case"section":i+=3,i=ru(c.content,e,i,n,r,o,s,a);break;case"form":i=ru(c.fields,e,i,n,r,o,s,a);break;case"dynamic":{let l=a(c);i=ru(l,e,i,n,r,o,s,a);break}case"accordion":{for(let l=0;l<c.items.length;l++)o.push({focusIndex:s.value,x:e,y:i,width:n,height:2}),s.value++,i+=2;i+=1;break}case"timeline":{for(let l=0;l<c.items.length;l++)o.push({focusIndex:s.value,x:e,y:i,width:n,height:3}),s.value++,i+=3;i+=1;break}case"tabs":{o.push({focusIndex:s.value,x:e,y:i,width:n,height:3}),s.value++,i+=4;break}default:{let l=U.isFocusable(c.type),f=m0(c,n);l&&(o.push({focusIndex:s.value,x:e,y:i,width:n,height:f}),s.value++),i+=f+1}}return i}function m0(u,e){switch(u.type){case"card":{let t=3;return u.subtitle&&t++,u.body&&(t+=Math.ceil(u.body.length/Math.max(1,e-6))+1),u.tags&&u.tags.length>0&&t++,Math.max(3,t)}case"link":return 1;case"hero":return 5;case"textInput":return 3;case"textArea":return(u.rows??3)+2;case"select":return 2;case"checkbox":return 1;case"toggle":return 1;case"radioGroup":return(u.options?.length??2)+1;case"numberInput":return 2;case"searchInput":return 3;case"button":return 1;case"text":return Math.max(1,Math.ceil((u.content?.length??0)/Math.max(1,e))+1);case"table":return(u.rows?.length??0)+3;case"list":return(u.items?.length??0)+1;case"divider":return 1;case"spacer":return u.lines??1;case"quote":return 3;case"badge":return 1;case"image":return 10;case"progressBar":return 2;case"gallery":return 8;default:return 3}}function d2(u){let e=u.border===!0||typeof u.border=="string"&&u.border!=="none"&&u.border!=="left"&&u.border!=="right"&&u.border!=="top"&&u.border!=="bottom",t=u.padding??0,n=!!u.title&&!e,r=e?1:0,o=n?1:0;return{dx:r+t,dy:r+t+o,dw:(r+t)*2,dh:(r+t)*2+o}}function g0(u,e,t){let r=G(t.width,{padding:1,border:!0}).content,o=[];if(e.messages.length===0&&!e.loading){if(u.suggestedQuestions&&u.suggestedQuestions.length>0){o.push(h(t.theme.muted)+q+" Try asking:"+d);for(let c of u.suggestedQuestions)o.push(h(t.theme.subtle)+" "+c+d);o.push("")}}else for(let c of e.messages){if(c.role==="user")o.push(h(t.theme.accent)+k+" You: "+d+h(t.theme.text)+c.content+d);else{let l=pu(c.content,Math.max(1,r-6));o.push(h(t.theme.muted)+k+" AI: "+d+h(t.theme.text)+l[0]+d);for(let f=1;f<l.length;f++)o.push(" "+h(t.theme.text)+l[f]+d)}o.push("")}e.loading&&(o.push(h(t.theme.accent)+" ..."+d),o.push("")),e.error&&(o.push(h(t.theme.error)+" "+e.error+d),o.push(""));let s=u.placeholder??"Type a message...",a=e.input||(t.editing?"":h(t.theme.subtle)+s+d),i=t.editing?h(t.theme.accent)+k+" > "+d:h(t.theme.muted)+" > "+d;return o.push(i+a),o}function qe(u,e,t){let r=G(e.width,K.text).content,o=e.theme;return t==="markdown"?F0(u,r,o):pu(u,r).map(s=>N8(s,o.text))}function F0(u,e,t){let n=[],r=u.split(/\n\n+/);for(let o of r){let s=o.trim();if(!s)continue;let a=s.split(`
|
|
88
|
-
`);for(let i of a){let c=i.trim();if(!c)continue;if(c.startsWith("#")){let _=c.match(/^(#+)\s+(.*)/);if(_){let p=_[2];n.push(k+h(t.accent)+p+d);continue}}if(c.match(/^[-*]\s/)){let _=c.replace(/^[-*]\s+/,""),p=f8(_,t),m=Oe(_),g=pu(m,e-2);for(let F=0;F<g.length;F++){let w=F===0?"\u2022 ":" ",y=F===0?f8(g[F],t):h(t.text)+g[F]+d;n.push(h(t.text)+w+y+d)}continue}let l=Oe(c),f=pu(l,e);for(let _ of f)n.push(h(t.text)+f8(_,t)+d)}n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function f8(u,e){let t=u;return t=t.replace(/\*\*(.+?)\*\*/g,(n,r)=>k+h(e.accent)+r+d+h(e.text)),t=t.replace(/\*(.+?)\*/g,(n,r)=>Ku+r+d+h(e.text)),t=t.replace(/`(.+?)`/g,(n,r)=>h(e.warning)+r+d+h(e.text)),t}function Oe(u){return u.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/`(.+?)`/g,"$1")}function B8(u,e){let t=e.theme,r=G(e.width,K.card).content,o=[],s=e.focused?"\u25C6":"\u25C7",a=u.title??"";if(u.subtitle){let i=s+" ",c=u.subtitle,l=L(i)+L(a)+1+L(c);if(l>r){let f=Math.max(1,r-L(i)),_=Math.min(L(c),Math.max(4,Math.floor(f/2))),p=Q(c,_),m=i2(p),g=Math.max(1,f-1-L(m)),F=Q(a,g),w=i2(F),y=L(i)+L(w)+L(m),v=Math.max(1,r-y);o.push(h(t.accent)+s+" "+k+F+d+" ".repeat(v)+h(t.muted)+p+d)}else{let f=Math.max(1,r-l);o.push(h(t.accent)+s+" "+k+a+d+" ".repeat(f)+h(t.muted)+u.subtitle+d)}}else{let i=s+" ";if(L(i)+L(a)>r){let c=Math.max(1,r-L(i)),l=Q(a,c);o.push(h(t.accent)+s+" "+k+l+d)}else o.push(h(t.accent)+s+" "+k+a+d)}if(u.body){let i=pu(u.body,r);for(let c of i)o.push(h(t.text)+c+d)}if(u.tags&&u.tags.length>0){o.push("");let i="",c="";for(let l=0;l<u.tags.length;l++){let _="["+u.tags[l]+"]",p=h(t.warning)+_+d;L(i)===0?(i=_,c=p):L(i)+1+L(_)<=r?(i+=" "+_,c+=" "+p):(o.push(c),i=_,c=p)}c&&o.push(c)}return $u({content:o,width:e.width,border:u.border??e.borderStyle??"rounded",padding:1,borderColor:e.focused?e.theme.accent:void 0},e)}function Je(u,e,t){let n=[],r=e.theme,o=G(e.width,K.timeline),s=e.width,a=o.content;for(let i=0;i<u.length;i++){let c=u[i],l=i===0,f=i===u.length-1,_=l?"\u25CF":"\u25CB",p=h(r.accent)+" "+_+" "+d,m=o.content,g;if(c.subtitle)if((c.title+" \xB7 "+c.subtitle).length>m){let w=m-c.title.length-3;w>0?g=p+h(r.accent)+k+c.title+d+h(r.muted)+" \xB7 "+Q(c.subtitle,w)+d:g=p+h(r.accent)+k+Q(c.title,m)+d}else g=p+h(r.accent)+k+c.title+d+h(r.muted)+" \xB7 "+c.subtitle+d;else g=p+h(r.accent)+k+Q(c.title,m)+d;if(n.push(g),c.period&&n.push(h(r.border)+" \u2502 "+d+h(r.muted)+q+c.period+d),c.description){let F=pu(c.description,a);for(let w of F)n.push(h(r.border)+" \u2502 "+d+h(r.text)+w+d)}f||n.push(h(r.border)+" \u2502"+d)}return n}function Qe(u,e,t,n){let r=t.theme,o=G(t.width,K.progressBar),s=n?.max??100,a=n?.showPercent??!0,i=Number.isFinite(e)?e:0,c=Math.min(100,Math.max(0,i/s*100)),l=a?5:0,f=Math.max(4,Math.floor(o.content*.4)),_=Math.min(L(u)+2,f),p=Math.max(5,o.content-_-l-2),m=Math.round(c/100*p),g=p-m,F;c>=70?F=r.success:c>=40?F=r.warning:F=r.error;let w=L(u)>_-2?Q(u,_-2):u,y=h(r.text)+_u(w,_)+d,v=h(F)+"\u2588".repeat(m)+d,x=h(r.subtle)+"\u2591".repeat(g)+d,B=a?h(r.muted)+` ${Math.round(c)}%`+d:"";return[y+v+x+B]}function Ze(u,e,t){let n=t.theme,r=[],o=u.length,s=G(t.width,K.table),a=u.map((p,m)=>Math.max(L(p),...e.map(F=>L(F[m]??"")))+2),i=Math.max(o,s.content-(o-1)),c=a.reduce((p,m)=>p+m,0);if(c>i){for(let m=0;m<a.length;m++)a[m]=Math.max(2,Math.floor(a[m]/c*i));let p=a.reduce((m,g)=>m+g,0);for(;p>i;){let m=0;for(let g=1;g<a.length;g++)a[g]>a[m]&&(m=g);if(a[m]<=2)break;a[m]--,p--}}let l=t.borderStyle??"single",f=ju(l);r.push(h(n.border)+f.topLeft+a.map(p=>f.horizontal.repeat(p)).join(f.teeDown)+f.topRight+d);let _=u.map((p,m)=>{let g=" "+p,F=a[m]-1,w=L(g)>F?Q(g,F)+" ":_u(g,a[m]);return h(n.accent)+k+w+d});r.push(h(n.border)+f.vertical+d+_.join(h(n.border)+f.vertical+d)+h(n.border)+f.vertical+d),r.push(h(n.border)+f.teeRight+a.map(p=>f.horizontal.repeat(p)).join(f.cross)+f.teeLeft+d);for(let p of e){let m=p.map((g,F)=>{let w=" "+(g??""),y=a[F]-1,v=L(w)>y?Q(w,y)+" ":_u(w,a[F]);return h(n.text)+v+d});r.push(h(n.border)+f.vertical+d+m.join(h(n.border)+f.vertical+d)+h(n.border)+f.vertical+d)}return r.push(h(n.border)+f.bottomLeft+a.map(p=>f.horizontal.repeat(p)).join(f.teeUp)+f.bottomRight+d),r}function Xe(u,e,t,n){let r=t.theme,o=n?.icon??"\u2192",s=n?.focused??t.focused??!1,i=G(t.width,K.link).content;if(s){let F=" \u276F "+o+" ",w=" ",y=L(F),v=i-y;if(v<=0)return[h(r.accent)+k+Q(F,i)+d];let x=L(u)+L(w)+L(e);if(y+x<=i)return[h(r.accent)+k+F+s2+u+d+h(r.muted)+q+w+e+d];let B=i-y-L(u)-L(w);if(B>=4){let S=Q(e,B);return[h(r.accent)+k+F+s2+u+d+h(r.muted)+q+w+S+d]}let C=Q(u,v);return[h(r.accent)+k+F+s2+C+d]}let c=" "+o+" ",l=" ",f=L(c),_=i-f;if(_<=0)return[h(r.text)+Q(c,i)+d];let p=L(u)+L(l)+L(e);if(f+p<=i)return[h(r.text)+c+u+d+h(r.subtle)+q+l+e+d];let m=i-f-L(u)-L(l);if(m>=4){let F=Q(e,m);return[h(r.text)+c+u+d+h(r.subtle)+q+l+F+d]}let g=Q(u,_);return[h(r.text)+c+g+d]}function u5(u,e){let t=u.theme,n=e?.color??t.border,o=G(u.width,K.divider).content;if(e?.style==="label"&&e.label){let a=Math.max(0,o-8),i=e.label;i.length>a&&(i=i.slice(0,Math.max(0,a-1))+"\u2026");let c=` ${i} `,l=Math.max(0,o-c.length-4),f=Math.floor(l/2),_=l-f;return[h(n)+"\u2500\u2500"+"\u2500".repeat(f)+d+h(t.muted)+c+d+h(n)+"\u2500".repeat(_)+"\u2500\u2500"+d]}let s="\u2500";return e?.style==="dashed"?s="\u2504":e?.style==="dotted"?s="\xB7":e?.style==="double"&&(s="\u2550"),[h(n)+s.repeat(o)+d]}function e5(u=1){return Array(Math.max(0,u)).fill("")}function t5(u,e,t){let n=e.theme,r=t?.style??"border",s=G(e.width,K.quote).content,a=[],i=pu(`"${u}"`,s);if(r==="border"){for(let c of i)a.push(h(n.accent)+" \u2502 "+d+Ku+h(n.text)+c+d);if(t?.attribution){let c="\u2014 "+t.attribution;L(c)>s&&(c=c.substring(0,s-1)+"\u2026");let l=Math.max(0,s-L(c));a.push(h(n.accent)+" \u2502 "+d+h(n.muted)+q+" ".repeat(l)+c+d)}}else if(r==="fancy"){a.push(h(n.accent)+" \u250C"+"\u2500".repeat(s+2)+"\u2510"+d);for(let c of i)a.push(h(n.accent)+" \u2502 "+d+Ku+h(n.text)+c+" ".repeat(Math.max(0,s-L(c)))+d+h(n.accent)+" \u2502"+d);if(t?.attribution){let c="\u2014 "+t.attribution,l=Math.max(0,s-L(c));a.push(h(n.accent)+" \u2502 "+d+" ".repeat(l)+h(n.muted)+c+d+h(n.accent)+" \u2502"+d)}a.push(h(n.accent)+" \u2514"+"\u2500".repeat(s+2)+"\u2518"+d)}else{for(let c of i)a.push(" "+Ku+h(n.text)+c+d);t?.attribution&&a.push(" "+h(n.muted)+q+"\u2014 "+t.attribution+d)}return a}function n5(u,e,t){let n=G(e.width,K.badge),r=t?.color??e.theme.warning;return(t?.style??"outline")==="filled"?G2+h(r)+` ${u} `+d:h(r)+`[${u}]`+d}function r5(u,e){let t=e.theme,n=[],o=G(e.width,K.hero).content;n.push("");let s=pu(u.title,o);for(let a of s){let i=h(t.accent)+k+a+d;n.push(_u(i,o,"center"))}if(n.push(""),u.subtitle){let a=pu(u.subtitle,o);for(let i of a){let c=h(t.text)+i+d;n.push(_u(c,o,"center"))}n.push("")}if(u.cta){let a=h(t.accent)+k+s2+u.cta.label+d;n.push(_u(a,o,"center")),n.push("")}if(u.art){let a=u.art.split(`
|
|
89
|
-
`);for(let i of a)n.push(_u(h(t.muted)+i+d,o,"center"))}return n.push(""),n}function o5(u,e,t){let n=G(e.width,K.list),r=e.theme,o=t??"bullet",s={bullet:()=>"\u2022",number:c=>`${c+1}.`,dash:()=>"\u2500",check:()=>"\u2713",arrow:()=>"\u2192"},a=s[o]??s.bullet,i=[];for(let c=0;c<u.length;c++){let f=` ${a(c)} `,_=" ".repeat(f.length),p=Math.max(1,n.content-f.length),m=pu(u[c],p);for(let g=0;g<m.length;g++)g===0?i.push(h(r.accent)+f+d+h(r.text)+m[g]+d):i.push(_+h(r.text)+m[g]+d)}return i}function s5(u,e,t){let n=G(e.width,K.image),r=Math.min(t?.width??Math.min(40,n.content),n.content),o=Math.floor(r/3),s=e.theme,a=[];a.push(h(s.border)+"\u250C"+"\u2500".repeat(r)+"\u2510"+d);for(let i=0;i<o;i++)if(i===Math.floor(o/2)){let c=`[Image: ${u}]`,l=Math.max(0,r-L(c)),f=Math.floor(l/2),_=l-f;a.push(h(s.border)+"\u2502"+d+" ".repeat(f)+h(s.muted)+c+d+" ".repeat(_)+h(s.border)+"\u2502"+d)}else a.push(h(s.border)+"\u2502"+" ".repeat(r)+"\u2502"+d);return a.push(h(s.border)+"\u2514"+"\u2500".repeat(r)+"\u2518"+d),a}function i5(u,e,t){let n=G(e.width,K.gallery),r=t?.columns??Math.min(3,Math.max(1,Math.floor(n.content/30))),o=t?.scrollIndex??0,s=e.theme,a=Math.floor((n.content-(r-1)*2)/r);for(;a<20&&r>1;)r--,a=Math.floor((n.content-(r-1)*2)/r);let c=u.slice(o,o+r).map(_=>B8(_,{...e,width:a})),l=Math.max(0,...c.map(_=>_.length)),f=[];for(let _=0;_<l;_++){let p=c.map(m=>{let g=m[_]??"";return _u(g,a)});f.push(p.join(" "))}if(u.length>r){let _=h(s.muted)+q+` \u25C2 ${o+1}-${Math.min(o+r,u.length)} of ${u.length} \u25B8`+d;f.push(_u(_,n.content,"center"))}return f}U.register("text",(u,e)=>qe(u.content,e,u.style));U.register("list",(u,e)=>o5(u.items,e,u.style));U.register("quote",(u,e)=>t5(u.text,e,{attribution:u.attribution,style:u.style}));U.register("table",(u,e)=>Ze(u.headers,u.rows,e));U.register("progressBar",(u,e)=>Qe(u.label,u.value,e,{max:u.max,showPercent:u.showPercent}));U.register("badge",(u,e)=>[n5(u.text,e,{color:u.color,style:u.style})]);U.register("image",(u,e)=>s5(u.path,e,{width:u.width,mode:u.mode}));U.register("divider",(u,e)=>u5(e,{style:u.style,label:u.label,color:u.color}));U.register("spacer",u=>e5(u.lines));U.register("custom",(u,e)=>u.render(e.width,e.theme));U.register("card",(u,e)=>B8(u,e),!0);U.register("link",(u,e)=>Xe(u.label,u.url,e,{icon:u.icon}),!0);U.register("hero",(u,e)=>r5(u,e),!0);U.register("tabs",(u,e)=>[],!0);U.register("accordion",(u,e)=>[],!0);U.register("timeline",(u,e)=>Je(u.items,e,u.style));U.register("gallery",(u,e)=>i5(u.items,e,{columns:u.columns}));U.register("textInput",(u,e)=>[],!0);U.register("textArea",(u,e)=>[],!0);U.register("select",(u,e)=>[],!0);U.register("checkbox",(u,e)=>[],!0);U.register("toggle",(u,e)=>[],!0);U.register("radioGroup",(u,e)=>[],!0);U.register("numberInput",(u,e)=>[],!0);U.register("searchInput",(u,e)=>[],!0);U.register("button",(u,e)=>[],!0);U.register("columns",(u,e)=>[]);U.register("rows",(u,e)=>[]);U.register("split",(u,e)=>[]);U.register("grid",(u,e)=>[]);U.register("panel",(u,e)=>[]);U.register("box",(u,e)=>[]);U.register("row",(u,e)=>[]);U.register("container",(u,e)=>[]);function b0(u,e,t,n){let r=t.theme,o=t.focused??!1,s=[],a=G(t.width,K.accordion);for(let i=0;i<u.length;i++){let c=u[i],l=i===e,f=l?"\u25BE":"\u25B8",_=o&&(l||e<0&&i===0),p=Math.max(0,a.content-2),m=Q(c.label,p),g=l||_?r.accent:r.text,F=_?"\u276F ":" ";if(s.push(h(g)+k+`${F}${f} ${m}`+d),l){let w=n(c.content,{...t,width:a.content,focused:!1});for(let y of w)s.push(" "+y);s.push("")}}return s}function C0(u,e,t,n){let r=t.theme,o=[],s=G(t.width,K.tabs),a=" ";for(let c=0;c<u.length;c++){let l=u[c];c===e?a+=G2+h(r.accent)+` ${l.label} `+d+" ":a+=h(r.muted)+`[${l.label}]`+d+" "}o.push(a),o.push(h(r.border)+" "+"\u2500".repeat(Math.max(0,s.content))+d);let i=u[e];if(i){let c=n(i.content,{...t,width:s.content});for(let l of c)o.push(" "+l)}return o}function w0(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=e.editing;r.push(h(o?n.accent:n.text)+k+" "+u.label+d);let i=G(t.width,K.textInput).content,c,l=e.value;if(l.length===0&&!s?c=h(n.subtle)+q+(u.placeholder??"")+d:u.mask&&l.length>0?c=h(n.text)+"\u25CF".repeat(l.length)+d:c=h(n.text)+l+d,s){let p=Math.min(e.cursorPos,l.length),m;u.mask?m="\u25CF".repeat(l.length):m=l;let g=Math.max(1,i-1),F=0;p>g&&(F=p-g);let w=F+g,y=m.substring(F,w),v=p-F,x=y.substring(0,v),B=v<y.length?y[v]:" ",C=y.substring(v+1);c=h(n.text)+x+h(n.accent)+k+"\u2588"+d+h(n.text)+C+d,v>=y.length&&(c=h(n.text)+y+h(n.accent)+"\u2588"+d)}let f=o?n.accent:n.border,_=$u({content:[c],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:f},t);return r.push(..._),e.error&&r.push(h(n.error)+" \u2717 "+e.error+d),r}function y0(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=e.editing,a=u.rows??4,c=G(t.width,K.textArea).content;r.push(h(o?n.accent:n.text)+k+" "+u.label+d);let l=e.value,f=l.split(`
|
|
90
|
-
`),_=[],p=[];for(let x=0;x<f.length;x++)if(f[x].length===0)_.push(""),p.push({origLine:x,origCol:0});else{let B=pu(f[x],c);for(let C of B)_.push(C),p.push({origLine:x,origCol:0})}let m=0,g=0;if(s){let x=e.cursorPos;for(let B=0;B<f.length;B++){if(x<=f[B].length){let C=0;for(let S=0;S<_.length;S++)if(p[S].origLine===B){if(x<=_[S].length){m=S,g=x;break}if(x-=_[S].length,x>0&&S+1<_.length&&p[S+1]?.origLine===B)continue;m=S,g=_[S].length;break}break}x-=f[B].length+1}}let F=e.scrollOffset;s&&(m<F?F=m:m>=F+a&&(F=m-a+1)),F=Math.max(0,Math.min(F,Math.max(0,_.length-a)));let w=[];for(let x=0;x<a;x++){let B=F+x;if(B<_.length){let C=_[B];if(s&&B===m){let S=C.substring(0,g),D=C.substring(g);C=h(n.text)+S+h(n.accent)+"\u2588"+d+h(n.text)+D+d}else C=h(n.text)+C+d;if(_.length>a){let S=Math.max(1,Math.floor(a*a/_.length)),D=Math.floor(F*a/_.length);x>=D&&x<D+S}w.push(C)}else w.push("")}l.length===0&&!s&&u.placeholder&&(w[0]=h(n.subtle)+q+u.placeholder+d);let y=o?n.accent:n.border,v=$u({content:w,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:y},t);return r.push(...v),e.error&&r.push(h(n.error)+" \u2717 "+e.error+d),r}function x0(u,e,t){let n=t.theme,r=[],o=!!t.focused,a=G(t.width,K.select).content;r.push(h(o?n.accent:n.text)+k+" "+u.label+d);let i=u.options.find(y=>y.value===e.value),c=i?.label??u.placeholder??"Choose an option...",l=i?n.text:n.subtle,f=e.open?"\u25B4":"\u25BE",_=h(n.muted)+f+d,p=Math.max(1,a-2),m=Q(c,p),g=L(m),F=Math.max(1,a-g-1),w=h(l)+m+d+" ".repeat(F)+_;if(e.open){let y=[w],v=0;for(let C=0;C<u.options.length;C++){let S=u.options[C],D=C===e.highlightIndex,$=D?"\u276F ":" ",I=D?n.accent:n.text,M=Q(S.label,Math.max(1,a-2));y.push(h(I)+(D?k:"")+$+M+d)}let x=o?n.accent:n.border,B=$u({content:y,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:x,midSeparatorAfter:v},t);r.push(...B)}else{let y=o?n.accent:n.border,v=$u({content:[w],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:y},t);r.push(...v)}return r}function v0(u,e,t){let n=t.theme,r=!!t.focused,o=G(t.width,K.checkbox),s=e?"\u2611":"\u2610",a=e||r?n.accent:n.muted,i=r?n.accent:n.text;return[h(a)+(r?k:"")+" "+s+d+h(i)+" "+u.label+d]}function B0(u,e,t){let n=t.theme,r=!!t.focused,o=G(t.width,K.toggle),s=u.onLabel??"On",a=u.offLabel??"Off",i=r?n.accent:n.text,c,l;return e?(c=h(n.accent)+"\u25CB\u2500\u2500\u2500\u2500\u25CF"+d,l=h(n.accent)+k+" "+s+d):(c=h(n.muted)+"\u25CF\u2500\u2500\u2500\u2500\u25CB"+d,l=h(n.muted)+q+" "+a+d),[h(i)+(r?k:"")+" "+u.label+d+" "+c+l]}function M0(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=G(t.width,K.radioGroup);r.push(h(o?n.accent:n.text)+k+" "+u.label+d);for(let a=0;a<u.options.length;a++){let i=u.options[a],c=i.value===e.value,l=o&&a===e.highlightIndex,f=c?"\u25C9":"\u25CB",_=c||l?n.accent:n.muted,p=l?n.accent:n.text;r.push(h(_)+(l?k:"")+" "+f+d+h(p)+" "+i.label+d)}return r}function E0(u,e,t){let n=t.theme,r=[],o=!!t.focused,s=e.editing,i=G(t.width,K.numberInput).content;r.push(h(o?n.accent:n.text)+k+" "+u.label+d);let c=h(o?n.accent:n.muted)+"\u25C2"+d,l=h(o?n.accent:n.muted)+"\u25B8"+d,f;s&&e.textBuffer.length>0?f=h(n.text)+e.textBuffer+h(n.accent)+"\u2588"+d:f=h(n.text)+k+String(e.value)+d;let _=c+" "+f+" "+l,p=o?n.accent:n.border,m=$u({content:[_],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:p},t);return r.push(...m),r}function P0(u,e,t){let n=e.theme,r=!!e.focused,o=t||u.loading,s=u.style??"secondary",a,i;switch(s){case"primary":a=n.accent,i="\u25C6";break;case"danger":a=n.error,i="\u25C6";break;default:a=n.border,i="";break}let c;if(o){let y=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];c=y[Math.floor(Date.now()/100)%y.length]+" "+u.label}else i?c=i+" "+u.label:c=u.label;let l=G(e.width,K.button),f=2,_=Math.max(1,l.content);L(c)>_&&(c=Q(c,_));let m=L(c)+f*2,g=ju(e.borderStyle??"rounded"),F=[],w=" ";if(r&&s==="primary")F.push(w+h(a)+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(w+h(a)+g.vertical+d+z2(a)+h("#000000")+k+" ".repeat(f)+c+" ".repeat(f)+d+h(a)+g.vertical+d),F.push(w+h(a)+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d);else if(r)F.push(w+h(a)+k+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(w+h(a)+k+g.vertical+d+h(a)+k+" ".repeat(f)+c+" ".repeat(f)+d+h(a)+k+g.vertical+d),F.push(w+h(a)+k+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d);else{let y=s==="danger"?a:n.border,v=s==="primary"?a:n.text;F.push(w+h(y)+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(w+h(y)+g.vertical+d+h(v)+" ".repeat(f)+c+" ".repeat(f)+d+h(y)+g.vertical+d),F.push(w+h(y)+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d)}return F}function e2(u,e,t){let{width:n,height:r,active:o=!1,renderContent:s}=t;if(n<=0||r<=0)return[];let a=u.border===!0||typeof u.border=="string"&&u.border!=="none",i=typeof u.border=="string"&&["single","double","rounded","heavy","dashed","ascii","none"].includes(u.border)?u.border:"rounded",c=ju(a?i:"none"),l=u.padding??0,f=!!u.title&&!a,_=f?1:0,p=a?2:0,m=a?2:0,g=Math.max(0,n-p-l*2),F=Math.max(0,r-m-l*2-_);if(g<=0||F<=0){let I=[];for(let M=0;M<r;M++)I.push(" ".repeat(n));return I}let w={...e,width:g,panelHeight:F},v=s(u.content,w).slice(0,F),x=[],B=" ".repeat(l);for(let I=0;I<F;I++){let M=I<v.length?v[I]:"",E=L(M),P=Math.max(0,g-E);x.push(B+M+" ".repeat(P)+B)}let C=o?e.theme.accent:e.theme.border,S=o?e.theme.accent:e.theme.muted,D=I=>h(C)+I+d,$=[];if(a){let I=n-2;if(u.title){let M=` ${u.title} `,E=L(M),P=Math.max(0,I-E-1);$.push(D(c.topLeft+c.horizontal)+h(S)+k+M+d+D(c.horizontal.repeat(P)+c.topRight))}else $.push(D(c.topLeft+c.horizontal.repeat(I)+c.topRight));for(let M of x)$.push(D(c.vertical)+M+D(c.vertical));$.push(D(c.bottomLeft+c.horizontal.repeat(I)+c.bottomRight))}else{if(f){let I=u.title,M=L(I),E="\u2500".repeat(Math.min(M+2,g));$.push(h(S)+k+I+d+" ".repeat(Math.max(0,n-M)))}for(let I of x)$.push(I)}for(;$.length<r;)$.push(" ".repeat(n));return $.length>r&&($.length=r),$.map(I=>{let M=L(I);return M>n?Q(I,n):M<n?I+" ".repeat(n-M):I})}function a5(u,e,t){let{panels:n}=u;if(n.length===0)return[];let{availableHeight:r,activePanelIndex:o=-1,renderContent:s}=t,a=e.width;if(Zu(n.length,a))return S0(n,e,t);let i=g2(n,a,r);return M8(i,e,a,r,o,s)}function S0(u,e,t){let{availableHeight:n,activePanelIndex:r=-1,renderContent:o}=t,s=y8(u,e.width,n),a=[];for(let i=0;i<s.length;i++){let c=s[i],l=e2(c.panel,e,{width:c.width,height:c.height,active:i===r,renderContent:o});a.push(...l),i<s.length-1&&a.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return a}function M8(u,e,t,n,r,o){let s=[];for(let i=0;i<u.length;i++){let c=u[i],l={...e,width:c.width},f=e2(c.panel,l,{width:c.width,height:c.height,active:i===r,renderContent:o});s.push(f)}if(u.length>1&&u[0].y===u[1].y){let i=Math.max(...s.map(l=>l.length)),c=[];for(let l=0;l<i;l++){let f="";for(let _=0;_<u.length;_++){let p=s[_][l]??" ".repeat(u[_].width);if(_>0){let m=" "+h(e.theme.border)+"\u2502"+d+" ";f+=m}f+=p}c.push(f)}return c}else{let i=[];for(let c=0;c<s.length;c++)i.push(...s[c]),c<s.length-1&&i.push(h(e.theme.border)+"\u2500".repeat(t)+d);return i}}function I0(u,e,t){let{panels:n}=u;if(n.length===0)return[];let{availableHeight:r,activePanelIndex:o=-1,renderContent:s}=t,a=y8(n,e.width,r),i=[];for(let c=0;c<a.length;c++){let l=a[c],f=e2(l.panel,e,{width:l.width,height:l.height,active:c===o,renderContent:s});i.push(...f),c<a.length-1&&i.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return i}function A0(u,e,t){let{config:n}=u,{availableHeight:r,activePanelIndex:o=-1,renderContent:s}=t;if(n.direction==="horizontal"&&Zu(2,e.width)){let i=b8({...n,direction:"vertical"},e.width,r),c=[];for(let l=0;l<i.length;l++){let f=i[l],_=e2(f.panel,e,{width:f.width,height:f.height,active:l===o,renderContent:s});c.push(..._),l===0&&n.border!==!1&&c.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return c}let a=b8(n,e.width,r);return M8(a,e,e.width,r,o,s)}function D0(u,e,t){let{config:n}=u,{availableHeight:r,activePanelIndex:o=-1,renderContent:s}=t;if(n.items.length===0)return[];let a=n.gap??1,i=Ve(n.cols,e.width,a),c={...n,cols:i},l=ze(c,e.width,r);if(l.length===0)return[];let f=[];for(let F=0;F<l.length;F++){let w=l[F],y={...e,width:w.width},v=e2(w.panel,y,{width:w.width,height:w.height,active:F===o,renderContent:s});f.push(v)}let _=c.rows??Math.ceil(n.items.length/i),p=l[0]?.height??0,m=l[0]?.width??0,g=[];for(let F=0;F<_;F++){if(F>0)for(let w=0;w<a;w++)g.push("");for(let w=0;w<p;w++){let y="";for(let v=0;v<i;v++){let x=F*i+v;if(v>0&&(y+=" ".repeat(a)),x<f.length){let B=f[x][w]??" ".repeat(m);y+=B}else y+=" ".repeat(m)}g.push(y)}}return g}function C2(u,e){let t=e._dynamicId??"",n=u.dynamicCache.get(t);if(n)return n;try{let r=e.render(),o=Array.isArray(r)?r:[r];return t&&u.dynamicCache.set(t,o),o}catch{return[]}}function L0(u){u.dynamicCache.clear()}function c5(u){return U.isFocusable(u.type)}function Fu(u,e,t){let n=[];for(let r of e){let o=t;u.currentFocusedBlock&&r===u.currentFocusedBlock&&(o={...t,focused:!0});let s=Vu(u,r,o);n.push(...s),n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function Vu(u,e,t){switch(e.type){case"text":return qe(e.content,t,e.style);case"card":return B8(e,t);case"timeline":return Je(e.items,t,e.style);case"table":return Ze(e.headers,e.rows,t);case"list":return o5(e.items,t,e.style);case"quote":return t5(e.text,t,{attribution:e.attribution,style:e.style});case"hero":return r5(e,t);case"gallery":{let n=JSON.stringify(e.items.map(o=>o.title)),r=u.galleryState.get(n)??0;return i5(e.items,t,{columns:e.columns,scrollIndex:r})}case"tabs":{let n=e.items.map(o=>o.label).join(","),r=u.tabState.get(n)??0;return C0(e.items,r,t,(o,s)=>Fu(u,o,s))}case"accordion":{let n=e.items.map(o=>o.label).join(","),r=u.accordionState.get(n)??-1;return b0(e.items,r,t,(o,s)=>Fu(u,o,s))}case"link":return Xe(e.label,e.url,t,{icon:e.icon});case"progressBar":return Qe(e.label,e.value,t,{max:e.max,showPercent:e.showPercent});case"badge":return[n5(e.text,t,{color:e.color,style:e.style})];case"image":return s5(e.path,t,{width:e.width,mode:e.mode});case"divider":return u5(t,{style:e.style,label:e.label,color:e.color});case"spacer":return e5(e.lines);case"section":{let n=G(t.width,K.section),r=[];return r.push(h(t.theme.accent)+k+" "+e.title+d),r.push(h(t.theme.border)+" "+"\u2500".repeat(Math.max(0,n.content-4))+d),r.push(""),r.push(...Fu(u,e.content,t)),r}case"custom":return e.render(t.width,t.theme);case"textInput":{let n=u.getInputState(e.id,e.defaultValue??"");return w0(e,{value:n.value,cursorPos:n.cursorPos,editing:!!t.editing,error:n.error},t)}case"textArea":{let n=u.getInputState(e.id,e.defaultValue??"");return y0(e,{value:n.value,cursorPos:n.cursorPos,editing:!!t.editing,error:n.error,scrollOffset:n.scrollOffset},t)}case"select":{let n=u.getInputState(e.id,e.defaultValue??"");return x0(e,{value:n.value,open:n.open,highlightIndex:n.highlightIndex},t)}case"checkbox":{let n=u.getInputState(e.id,e.defaultValue??!1);return v0(e,n.value,t)}case"toggle":{let n=u.getInputState(e.id,e.defaultValue??!1);return B0(e,n.value,t)}case"radioGroup":{let n=u.getInputState(e.id,e.defaultValue??"");return M0(e,{value:n.value,highlightIndex:n.highlightIndex},t)}case"numberInput":{let n=u.getInputState(e.id,e.defaultValue??0);return E0(e,{value:n.value,editing:!!t.editing,textBuffer:""},t)}case"searchInput":{let n=u.getInputState(e.id,""),r=e.maxResults??10,o=m8(e.items,n.value,r);return Xn(e,{query:n.value,cursorPos:n.cursorPos,editing:!!t.editing,highlightIndex:n.highlightIndex,filteredItems:o},t)}case"button":{let n=u.buttonLoading.get(e.label)??!1;return P0(e,t,n)}case"form":{let n=Fu(u,e.fields,t),r=u.formResults.get(e.id);return r&&(n.push(""),n.push(...Ye({resultMessage:r.message,resultType:r.type},t))),n}case"asyncContent":return[];case"dynamic":{let n=C2(u,e);return Fu(u,n,t)}case"columns":{let{rows:n}=Bu(),r=Math.max(10,n-8),o=e,s=Xu(o.panels.map(a=>a.content),u.currentFocusedBlock);return a5(o,t,{availableHeight:r,activePanelIndex:s,renderContent:(a,i)=>Fu(u,a,i)})}case"rows":{let{rows:n}=Bu(),r=Math.max(10,n-8),o=e,s=Xu(o.panels.map(a=>a.content),u.currentFocusedBlock);return I0(o,t,{availableHeight:r,activePanelIndex:s,renderContent:(a,i)=>Fu(u,a,i)})}case"split":{let{rows:n}=Bu(),r=Math.max(10,n-8),o=e,s=Xu([o.config.first,o.config.second],u.currentFocusedBlock);return A0(o,t,{availableHeight:r,activePanelIndex:s,renderContent:(a,i)=>Fu(u,a,i)})}case"grid":{let{rows:n}=Bu(),r=Math.max(10,n-8),o=e,s=Xu(o.config.items.map(a=>a.content),u.currentFocusedBlock);return D0(o,t,{availableHeight:r,activePanelIndex:s,renderContent:(a,i)=>Fu(u,a,i)})}case"panel":{let{rows:n}=Bu(),r=Math.max(10,n-8);return e2(e.config,t,{width:t.width,height:r,renderContent:(o,s)=>Fu(u,o,s)})}case"box":return T0(u,e,t);case"row":return O0(u,e,t);case"container":return R0(u,e,t);case"menu":return $0(u,e,t);case"chat":{let n=e,r=u.getInputState(n.id,{messages:[],input:"",cursorPos:0,loading:!1,error:null}),o={messages:r.value?.messages??[],input:r.value?.input??r.value??"",cursorPos:r.cursorPos??0,loading:r.value?.loading??!1,error:r.value?.error??null};return g0(n,o,t)}default:return[]}}function Xu(u,e){if(!e)return-1;for(let t=0;t<u.length;t++)if(xu(u[t],e))return t;return-1}function xu(u,e){for(let t of u){if(t===e)return!0;if(t.type==="columns"){for(let n of t.panels)if(xu(n.content,e))return!0}else if(t.type==="rows"){for(let n of t.panels)if(xu(n.content,e))return!0}else if(t.type==="split"){let n=t.config;if(xu(n.first,e)||xu(n.second,e))return!0}else if(t.type==="grid"){for(let n of t.config.items)if(xu(n.content,e))return!0}else if(t.type==="panel"){if(xu(t.config.content,e))return!0}else if(t.type==="section"){if(xu(t.content,e))return!0}else if(t.type==="form"){if(xu(t.fields,e))return!0}else if(t.type==="box"){if(xu(t.config.children,e))return!0}else if(t.type==="row"){for(let n of t.cols)if(xu(n.content,e))return!0}else if(t.type==="container"&&xu(t.content,e))return!0}return!1}function T0(u,e,t){let{config:n}=e,r=n.direction??"column",o=n.gap??0,{rows:s}=Bu(),a=Math.max(10,s-8);if(r==="row"){let i=n.children.map(l=>l.type==="box"?{content:[l],width:l.config.width,height:l.config.height,padding:l.config.padding}:{content:[l]}),c=Xu(i.map(l=>l.content),u.currentFocusedBlock);return a5({type:"columns",panels:i},t,{availableHeight:a,activePanelIndex:c,renderContent:(l,f)=>Fu(u,l,f)})}else{let i=[];for(let c=0;c<n.children.length;c++){if(c>0&&o>0)for(let _=0;_<o;_++)i.push("");let l=n.children[c],f=t;u.currentFocusedBlock&&l===u.currentFocusedBlock&&(f={...t,focused:!0}),i.push(...Vu(u,l,f))}return i}}function O0(u,e,t){let{cols:n,gap:r=1}=e;if(n.length===0)return[];let{rows:o,columns:s}=Bu(),a=Math.max(10,o-8),i=x8(s),c=Math.max(1,Math.floor(12/n.length)),l=n.map(m=>v8(m,i,c)),f=[[]],_=0;for(let m=0;m<n.length;m++){let g=n[m].offset??0,F=l[m]+g;_+F>12&&f[f.length-1].length>0&&(f.push([]),_=0),f[f.length-1].push({col:n[m],span:l[m]}),_+=F}let p=[];for(let m of f){let g=m.map(x=>x.col),F=Ge(g,t.width,r,s),w=Xu(F.map(x=>x.content),u.currentFocusedBlock),y=g2(F,t.width,a),v=M8(y,t,t.width,a,w,(x,B)=>Fu(u,x,B));for(;v.length>0;){let B=v[v.length-1].replace(/\x1b\[[0-9;]*m/g,"");if(/^[\s\u2502\u2506\u250a\u2503]*$/.test(B))v.pop();else break}p.length>0&&p.push(""),p.push(...v)}return p}function $0(u,e,t){let n=[];if(e.items&&e.items.length>0)n=e.items.map(r=>({label:r.label,icon:r.icon,id:r.page}));else if(e.source==="auto"){let r=u._fileRouter;if(r)n=r.getMenuItems().map(s=>({label:s.label,icon:s.icon,id:s.page}));else{let o=u.site;o?.pages&&(n=o.pages.filter(s=>typeof s.title=="string").map(s=>({label:s.title,icon:s.icon,id:s.id})))}}return F8(n,0,t)}function R0(u,e,t){let n=e.padding??0,r=e.maxWidth??t.width,o=Math.max(1,Math.min(t.width,r)-n*2),s={...t,width:o},a=[];for(let i of e.content){let c=s;u.currentFocusedBlock&&i===u.currentFocusedBlock&&(c={...s,focused:!0});let l=Vu(u,i,c),f=e.center!==!1,_=t.width-o,p=f?Math.floor(_/2):n,m=" ".repeat(p);for(let g of l)a.push(m+g);a.push("")}return a.length>0&&a[a.length-1]===""&&a.pop(),a}function k0(u,e,t){let n=t.theme;return[h(n.accent)+k+u+d+h(n.text)+e+d+h(n.muted)+"\u2588"+d]}function j0(u,e){let t=0,n="",r=!1;for(let o of u){if(o==="\x1B"){r=!0,n+=o;continue}if(r){n+=o,o==="m"&&(r=!1);continue}let s=ku(o.codePointAt(0)??0);if(t+s>e)break;n+=o,t+=s}return n+"\x1B[0m"}function l5(u,e){return{width:Math.min(e,100),theme:u.theme,borderStyle:u.borderStyle}}function N0(u,e,t,n){let r="\x1B[H";for(let o=0;o<n;o++){if(r+="\x1B[2K",o<e.length){let s=e[o];L(s)>t?r+=j0(s,t):r+=s}o<n-1&&(r+=`
|
|
91
|
-
`)}if(u.commandMode)r+=`\x1B[${n};1H\x1B[2K`,r+=k0(":",u.commandBuffer,l5(u,t)).join("");else{let o=u.notifications.current;if(o){r+=`\x1B[${n};1H\x1B[2K`;let s,a;switch(o.type){case"success":s=u.theme.success,a="\u2713";break;case"error":s=u.theme.error,a="\u2717";break;default:s=u.theme.accent,a="\u2139";break}r+=h(s)+" "+a+" "+o.message+d}else u.feedbackMessage&&(r+=`\x1B[${n};1H\x1B[2K`,r+=h(u.theme.success)+" "+u.feedbackMessage+d)}r+=u.inputMode.isEditing?"\x1B[?25h":"\x1B[?25l",process.stdout.write(r)}function W0(u){L0(u);let e=u.getCurrentPage();if(e&&!u.router.isHome()){let s=u.getPageContent(e);if(s){let a=u.pageFocusIndex;u.pageFocusItems=u.collectFocusItems(s),u.pageFocusIndex=Math.min(a,Math.max(0,u.pageFocusItems.length-1)),u.registerForms(s);let i=Bu(),c=Math.min(120,i.columns-2),l=Math.max(10,i.rows-8);u.focusRects=Ke(s,c,l,f=>C2(u,f))}}let{columns:t,rows:n}=Bu(),r=[],o=l5(u,t);u.router.isHome()?Y0(u,r,o,t,n):H0(u,r,o,t,n),N0(u,r,t,n)}function Y0(u,e,t,n,r){let o=t.width,s=Math.max(0,Math.floor((n-o)/2)),a=" ".repeat(s);if(u.site.banner){let f=q2(u.site.banner.text,{font:u.site.banner.font});if(f=J2(f,o),u.site.banner.gradient?f=f0(f,u.site.banner.gradient):f=f.map(_=>h(u.theme.accent)+_+d),!u.bootComplete&&u.site.animations?.boot){let _=Math.floor(u.bootFrame/30*f.length);f=f.slice(0,_)}e.push("");for(let _ of f)e.push(a+_)}else{e.push("");let f=h(u.theme.accent)+k+u.site.name+d;e.push(a+_u(f,o,"center"))}if(e.push(""),u.site.tagline){let f=h(u.theme.muted)+Ku+u.site.tagline+d;e.push(a+_u(f,o,"center")),e.push("")}e.push(a+h(u.theme.border)+"\u2500".repeat(o)+d),e.push("");let i=u.site.pages.find(f=>f.id==="home"),c=i?u.getPageContent(i):null;if(c?p2(c):!1){if(c){let f=Math.max(1,o-1),_={...t,width:f};for(let p of c){let m=Vu(u,p,_);for(let g of m)e.push(a+" "+g);e.push("")}}}else{let f;u.site.menu?.items&&u.site.menu.items.length>0?f=u.site.menu.items.map(p=>({label:p.label,icon:p.icon,id:p.page})):u._fileRouter?f=u._fileRouter.getMenuItems().map(m=>({label:m.label,icon:m.icon,id:m.page})):f=u.site.pages.filter(p=>typeof p.title=="string"&&!p._hidden).map(p=>({label:p.title,icon:p.icon,id:p.id}));let _;if(!u.bootComplete&&u.site.animations?.boot){let p=Math.max(0,Math.floor((u.bootFrame-15)/3));_=F8(f.slice(0,p),u.focus.focusIndex,t)}else _=F8(f,u.focus.focusIndex,t);for(let p of _)e.push(a+p)}e.push(""),e.push(a+h(u.theme.border)+"\u2500".repeat(o)+d),e.push(""),e.push(a+h(u.theme.subtle)+q+" \u2191\u2193 navigate \u23CE select q quit : command"+d),u.site.handle&&(e.push(""),e.push(a+h(u.theme.subtle)+q+" "+u.site.handle+d))}function p2(u){for(let e of u){if(e.type==="menu"||e.type==="section"&&p2(e.content))return!0;if(e.type==="columns"){for(let t of e.panels)if(p2(t.content))return!0}if(e.type==="split"){let t=e.config;if(p2(t.first)||p2(t.second))return!0}}return!1}function Tu(u,e){if(u===e)return!0;if(u.type==="columns"){for(let t of u.panels)for(let n of t.content)if(Tu(n,e))return!0}else if(u.type==="rows"){for(let t of u.panels)for(let n of t.content)if(Tu(n,e))return!0}else if(u.type==="split"){let t=u.config;for(let n of t.first)if(Tu(n,e))return!0;for(let n of t.second)if(Tu(n,e))return!0}else if(u.type==="grid"){for(let t of u.config.items)for(let n of t.content)if(Tu(n,e))return!0}else if(u.type==="box"){for(let t of u.config.children)if(Tu(t,e))return!0}else if(u.type==="row"){for(let t of u.cols)for(let n of t.content)if(Tu(n,e))return!0}else if(u.type==="container"){for(let t of u.content)if(Tu(t,e))return!0}return!1}function H0(u,e,t,n,r){let o=u.getCurrentPage();if(!o)return;let s=u.getPageContent(o),a=t.width,i=Math.max(0,Math.floor((n-a)/2)),c=" ".repeat(i);if(s===null){let E=o.loading??"Loading...";e.push("");let P=h(u.theme.subtle)+q+"\u2190 back"+d,T=h(u.theme.accent)+k+(o.icon?o.icon+" ":"")+u.resolvePageTitle(o)+d;e.push(c+P+" "+T),e.push(c+h(u.theme.border)+"\u2500".repeat(a)+d),e.push("");let j=g8("dots",Math.floor(Date.now()/80));e.push(c+" "+h(u.theme.accent)+j+d+h(u.theme.muted)+" "+E+d);return}u.pageFocusItems.length===0&&s.length>0&&u.initializePageContent(s);let l=u.pageFocusItems[u.pageFocusIndex],f=[],_=-1,p=-1;u.currentFocusedBlock=l?.kind==="block"?l.block:void 0;let m=E=>!!l&&l.kind==="block"&&l.block===E,g=E=>!l||l.kind!=="accordion-item"||l.accordion!==E?-1:l.itemIndex,F=h(u.theme.accent)+"\u258C"+d,w=Math.max(1,a-1),y={...t,width:w},v=E=>{for(let P of E){if(P.type==="section"){let T=G(w,K.section);f.push(h(y.theme.accent)+k+" "+P.title+d),f.push(h(y.theme.border)+" "+"\u2500".repeat(Math.max(0,T.content-4))+d),f.push(""),v(P.content)}else if(P.type==="form"){v(P.fields);let T=u.formResults.get(P.id);if(T){for(let j of Ye({resultMessage:T.message,resultType:T.type},y))f.push(" "+j);f.push("")}}else if(P.type==="dynamic"){v(C2(u,P));continue}else if(P.type==="asyncContent")V0(u,P,f,y,v);else if(P.type==="accordion")U0(u,P,f,y,w,g,F,_,p,(T,j)=>{_=T,p=j});else if(P.type==="timeline")z0(u,P,f,y,w,l,F,_,p,(T,j)=>{_=T,p=j});else{let T=m(P),W=(P.type==="columns"||P.type==="rows"||P.type==="split"||P.type==="grid"||P.type==="box"||P.type==="row"||P.type==="container")&&!T&&!!u.currentFocusedBlock&&Tu(P,u.currentFocusedBlock);(T||W)&&(_=f.length);let N=c5(P),Y=T&&u.inputMode.isEditing,J=T?{...y,focused:!0,editing:Y}:y,A=Vu(u,P,J);if(N&&T)for(let H of A)f.push(F+H);else for(let H of A)f.push(" "+H);(T||W)&&(p=f.length)}f.push("")}};v(s),f.length>0&&f[f.length-1]===""&&f.pop();let x=4,B=3,C=Math.max(1,r-x-B);_>=0&&(_<u.pageScrollOffset?u.pageScrollOffset=Math.max(0,_):p>u.pageScrollOffset+C&&(u.pageScrollOffset=Math.max(0,p-C))),u.pageScrollOffset=Math.min(u.pageScrollOffset,Math.max(0,f.length-C));let S=0,D=0;u.pageFocusItems.length>0&&(S=u.pageFocusIndex,D=u.pageFocusItems.length-1-u.pageFocusIndex),e.push(""),e.push(c+h(u.theme.subtle)+q+"\u2190 back"+d+" "+h(u.theme.accent)+k+(o.icon?o.icon+" ":"")+u.resolvePageTitle(o)+d),e.push(c+h(u.theme.border)+"\u2500".repeat(a)+d),u.pageScrollOffset>0&&S>0?e.push(c+h(u.theme.subtle)+q+" \u2191 "+S+" item"+(S>1?"s":"")+" above"+d):u.pageScrollOffset>0?e.push(c+h(u.theme.subtle)+q+" \u2191 more above"+d):e.push("");for(let E of f.slice(u.pageScrollOffset,u.pageScrollOffset+C))e.push(c+E);for(;e.length<r-B;)e.push("");let $=u.pageScrollOffset+C<f.length;D>0?e.push(c+h(u.theme.subtle)+q+" \u2193 "+D+" item"+(D>1?"s":"")+" below"+d):$?e.push(c+h(u.theme.subtle)+q+" \u2193 more below"+d):e.push(""),e.push(c+h(u.theme.border)+"\u2500".repeat(a)+d);let I=u.router.currentIndex+1,M=u.router.pageCount;u.inputMode.isEditing?e.push(c+h(u.theme.accent)+k+" \u2500\u2500 Editing \u2500\u2500"+d+h(u.theme.subtle)+q+" Type to input Esc done ["+I+"/"+M+"]"+d):e.push(c+h(u.theme.subtle)+q+" \u2191\u2193 navigate \u23CE select \u2190 back q quit ["+I+"/"+M+"]"+d)}function U0(u,e,t,n,r,o,s,a,i,c){let l=o(e),f=e.items.map(p=>p.label).join(","),_=u.accordionState.get(f)??-1;for(let p=0;p<e.items.length;p++){let m=e.items[p],g=l===p,F=p===_,w=-1,y=-1;g&&(w=t.length);let v=F?"\u25BE":"\u25B8",x=F||g?n.theme.accent:n.theme.text,B=G(r,K.accordion),C=Math.max(0,B.content-2),S=h(x)+k+` ${v} ${m.label.length>C?m.label.substring(0,C-1)+"\u2026":m.label}`+d;if(t.push(g?s+S:" "+S),F){let D={...n,width:B.content,focused:!1};for(let $ of m.content)for(let I of Vu(u,$,D))t.push(" "+I);t.push("")}g&&(y=t.length,c(w,y))}}function z0(u,e,t,n,r,o,s,a,i,c){let l=o?.kind==="timeline-item"&&o.timeline===e?o.itemIndex:-1;for(let f=0;f<e.items.length;f++){let _=e.items[f],p=l===f,m=f===e.items.length-1,g=-1,F=-1;p&&(g=t.length);let w=p?"\u25CF":"\u25CB",y=_.title;_.subtitle&&(y+=" \xB7 "+_.subtitle);let v=p?n.theme.accent:n.theme.border,x=p?n.theme.accent:n.theme.text;if(t.push(" "+h(v)+" "+w+" "+d+h(x)+k+y+d),(_.period||_.date)&&t.push(" "+h(n.theme.border)+" \u2502 "+d+h(n.theme.muted)+q+(_.period??_.date)+d),_.description){let B=G(r,K.timeline);for(let C of pu(_.description,B.content))t.push(" "+h(n.theme.border)+" \u2502 "+d+h(n.theme.text)+C+d)}m||t.push(" "+h(n.theme.border)+" \u2502"+d),p&&(F=t.length,c(g,F))}}function V0(u,e,t,n,r){let o=e._asyncId??"async-anon",s=u.asyncManager.getState(o);if(!s){u.asyncManager.load(o,e.load,()=>u.render());let a=g8("dots",Math.floor(Date.now()/80));t.push(" "+h(n.theme.accent)+a+d+h(n.theme.muted)+" "+(e.loading??"Loading...")+d);return}if(s.status==="loading"){let a=g8("dots",Math.floor(Date.now()/80));t.push(" "+h(n.theme.accent)+a+d+h(n.theme.muted)+" "+(e.loading??"Loading...")+d),setTimeout(()=>u.render(),100);return}if(s.status==="error"){e.fallback?r(e.fallback):t.push(" "+h(n.theme.error)+"\u26A0 "+(s.error?.message??"Failed to load content")+d);return}s.content&&r(s.content)}async function G0(u,e){for(let t of u){let n=await t(e);if(n&&"redirect"in n)return n}}function f5(u,e,t){let n=u.site.pages.find(o=>o.id===e);if(n||(n=u.site.pages.find(o=>{if(!o.id.includes("["))return!1;let s=o.id.replace(/\/\[.*?\].*$/,"");return e===s||e.startsWith(s+"/")})),!n){typeof process<"u"&&process.stderr&&process.stderr.write(`[terminaltui] navigate: page '${e}' not found. Available: ${u.site.pages.map(o=>o.id).join(", ")}
|
|
92
|
-
`);return}let r=[...u.site.middleware??[],...n.middleware??[]];r.length>0?G0(r,{page:e,params:t??{},state:null}).then(o=>{if(o&&"redirect"in o){f5(u,o.redirect,o.params);return}h8(u,e,t)}).catch(()=>{h8(u,e,t)}):h8(u,e,t)}function h8(u,e,t){let n=u.router.currentPage;u.router.navigate(e),u.currentParams=t??{},u.scrollOffset=0,h5(u),u.site.onNavigate&&u.site.onNavigate(n,e,t),u.render()}function h5(u){u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset(),u.formRegistry.clear();let e=_5(u);if(!e)return;let t=u.site.pages.find(r=>r.id===e.id);if(t&&typeof t.title=="function"){K0(u,t);return}let n=e.content;if(typeof n=="function"){q0(u,e);return}u2(u,n)}function K0(u,e){let t=u.currentParams,n=`route-${e.id}-${JSON.stringify(t)}`,r=async()=>{let o=e.content(t);return o instanceof Promise?await o:o};u.asyncManager.load(n,r,()=>{let o=u.asyncManager.getState(n);if(o?.status==="loaded"&&o.content)u.resolvedPageContent.set(e.id,o.content),u2(u,o.content);else if(o?.status==="error"&&e.onError){let s=e.onError(o.error,t);u.resolvedPageContent.set(e.id,s),u2(u,s)}u.render()})}function q0(u,e){let t=`page-${e.id}`,n=e.content;u.asyncManager.load(t,n,()=>{let r=u.asyncManager.getState(t);if(r?.status==="loaded"&&r.content)u.resolvedPageContent.set(e.id,r.content),u2(u,r.content);else if(r?.status==="error"&&e.onError){let o=e.onError(r.error);u.resolvedPageContent.set(e.id,o),u2(u,o)}u.render()}),e.refreshInterval&&u.asyncManager.setupRefresh(t,e.refreshInterval,n,()=>{let r=u.asyncManager.getState(t);if(r?.status==="loaded"&&r.content){u.resolvedPageContent.set(e.id,r.content);let o=u.pageFocusIndex;u.pageFocusItems=au(u,r.content),u.pageFocusIndex=Math.min(o,Math.max(0,u.pageFocusItems.length-1)),hu(u,r.content),d5(u,r.content)}u.render()})}function u2(u,e){u.pageFocusItems=au(u,e),hu(u,e),d5(u,e)}function d5(u,e){let{columns:t}=Bu(),n=Math.min(120,t-2),{rows:r}=Bu(),o=Math.max(10,r-8);u.focusRects=Ke(e,n,o,s=>C2(u,s))}function hu(u,e){for(let t of e)if(t.type==="form")u.formRegistry.set(t.id,t),hu(u,t.fields);else if(t.type==="section")hu(u,t.content);else if(t.type==="columns")for(let n of t.panels)hu(u,n.content);else if(t.type==="rows")for(let n of t.panels)hu(u,n.content);else if(t.type==="split"){let n=t;hu(u,n.config.first),hu(u,n.config.second)}else if(t.type==="grid")for(let n of t.config.items)hu(u,n.content);else if(t.type==="panel")hu(u,t.config.content);else if(t.type==="box")hu(u,t.config.children);else if(t.type==="row")for(let n of t.cols)hu(u,n.content);else t.type==="container"&&hu(u,t.content)}function J0(u,e){let t=u.site.pages.find(n=>n.id===e.id);return t&&typeof t.title=="function"?t.title(u.currentParams):e.title}function Q0(u,e){return typeof e.content=="function"?u.resolvedPageContent.get(e.id)??null:e.content}function au(u,e){let t=[];for(let n of e)switch(n.type){case"card":case"link":case"hero":t.push({kind:"block",block:n});break;case"textInput":case"textArea":case"select":case"checkbox":case"toggle":case"radioGroup":case"numberInput":case"searchInput":case"button":case"chat":t.push({kind:"block",block:n});break;case"accordion":for(let r=0;r<n.items.length;r++)t.push({kind:"accordion-item",accordion:n,itemIndex:r});break;case"timeline":for(let r=0;r<n.items.length;r++)t.push({kind:"timeline-item",timeline:n,itemIndex:r});break;case"tabs":t.push({kind:"block",block:n});break;case"section":t.push(...au(u,n.content));break;case"form":t.push(...au(u,n.fields));break;case"dynamic":{let r=C2(u,n);t.push(...au(u,r));break}case"columns":{let r=n;for(let o of r.panels)t.push(...au(u,o.content));break}case"rows":{let r=n;for(let o of r.panels)t.push(...au(u,o.content));break}case"split":{let r=n;t.push(...au(u,r.config.first)),t.push(...au(u,r.config.second));break}case"grid":{let r=n;for(let o of r.config.items)t.push(...au(u,o.content));break}case"panel":{let r=n;t.push(...au(u,r.config.content));break}case"box":{let r=n;t.push(...au(u,r.config.children));break}case"row":{let r=n;for(let o of r.cols)t.push(...au(u,o.content));break}case"container":{let r=n;t.push(...au(u,r.content));break}default:break}return t}function Z0(u){if(u.pageFocusItems.length===0){u.pageScrollOffset++;return}u.pageFocusIndex<u.pageFocusItems.length-1?u.pageFocusIndex++:u.pageScrollOffset++}function X0(u){if(u.pageFocusItems.length===0){u.pageScrollOffset>0&&u.pageScrollOffset--;return}u.pageFocusIndex>0?u.pageFocusIndex--:u.pageScrollOffset>0&&u.pageScrollOffset--}function _5(u){let e=u.site.pages.find(t=>t.id===u.router.currentPage);if(e)return e}function m2(u,e){u.feedbackMessage=e,u.feedbackTimer&&clearTimeout(u.feedbackTimer),u.feedbackTimer=setTimeout(()=>{u.feedbackMessage="",u.render()},2e3),u.render()}function ur(u,e){let t=e.trim().toLowerCase();if(t==="q"||t==="quit"){u.stop();return}if(t.startsWith("theme ")){let n=t.slice(6).trim(),{themes:r}=(W2(),Ee(Re));r[n]?(u.theme=r[n],m2(u,`Theme: ${n}`)):m2(u,`Unknown theme: ${n}`);return}if(u.site.easterEggs?.commands?.[t]){let n=u.site.easterEggs.commands[t];typeof n=="string"?m2(u,n):n();return}m2(u,`Unknown command: ${e}`)}function d8(u){return new Promise((e,t)=>{let n=process.platform,r;n==="darwin"?r=`open "${u}"`:n==="win32"?r=`start "" "${u}"`:r=`xdg-open "${u}"`,er(r,o=>{o?t(o):e()})})}function tr(u){let e=u.pageFocusItems[u.pageFocusIndex];if(!e)return;if(e.kind==="accordion-item"){let r=e.accordion.items.map(s=>s.label).join(","),o=u.accordionState.get(r)??-1;u.accordionState.set(r,o===e.itemIndex?-1:e.itemIndex);return}if(e.kind==="timeline-item")return;let t=e.block;if(t.type==="textInput"||t.type==="textArea"||t.type==="numberInput"||t.type==="searchInput"){let n=t.id;u.inputMode.enterEdit(n),u.getInputState(n,w8(t));return}if(t.type==="select"){let n=t.id,r=u.getInputState(n,t.defaultValue??"");u.inputMode.enterEdit(n),r.open=!0;let o=t.options.findIndex(s=>s.value===r.value);r.highlightIndex=o>=0?o:0;return}if(t.type==="radioGroup"){let n=t.id,r=u.getInputState(n,t.defaultValue??"");u.inputMode.enterEdit(n);let o=t.options.findIndex(s=>s.value===r.value);r.highlightIndex=o>=0?o:0;return}if(t.type==="checkbox"||t.type==="toggle"){let n=t.id,r=u.getInputState(n,t.defaultValue??!1);r.value=!r.value,t.onChange?.(r.value);return}if(t.type==="button"){nr(u,t);return}if(t.type==="link"){u.showFeedback(`Opening ${t.url}...`),d8(t.url).catch(()=>{});return}if(t.type==="card"&&t.url){u.showFeedback(`Opening ${t.url}...`),d8(t.url).catch(()=>{});return}if(t.type==="card"&&t.action){rr(u,t);return}if(t.type==="tabs"){let n=t.items.map(o=>o.label).join(","),r=u.tabState.get(n)??0;u.tabState.set(n,(r+1)%t.items.length);return}if(t.type==="hero"&&t.cta?.url){u.showFeedback(`Opening ${t.cta.url}...`),d8(t.cta.url).catch(()=>{});return}}function nr(u,e){if(e._formId){or(u,e._formId);return}if(e.onPress){let t=e.onPress();if(t&&typeof t.then=="function"){let n=e.label;u.buttonLoading.set(n,!0),u.render(),t.then(r=>{u.buttonLoading.delete(n),$e(u,r),u.render()}).catch(r=>{u.buttonLoading.delete(n),u.notifications.error(r instanceof Error?r.message:String(r)),u.render()})}else t&&$e(u,t),u.render()}}function rr(u,e){if(!e.action)return;if(e.action.navigate){u.navigateToPage(e.action.navigate,e.action.params);return}if(e.action.confirm&&u.showFeedback("Action triggered"),!e.action.onPress)return;let t=e.action.onPress();t&&typeof t.then=="function"&&t.then(()=>u.render()).catch(()=>u.render())}function $e(u,e){!e||typeof e!="object"||("success"in e?u.notifications.success(e.success):"error"in e?u.notifications.error(e.error):"info"in e&&u.notifications.info(e.info))}function p5(u,e){if(e.type==="textInput"){let t=e;if(t.validate){let n=u.getInputState(t.id,t.defaultValue??""),r=t.validate(n.value);return n.error=r,r===null}}else if(e.type==="textArea"){let t=e;if(t.validate){let n=u.getInputState(t.id,t.defaultValue??""),r=t.validate(n.value);return n.error=r,r===null}}return!0}async function or(u,e){let t=u.formRegistry.get(e);if(!t)return;let n=Zn(t.fields),r=-1;for(let i=0;i<t.fields.length;i++){let c=t.fields[i];p5(u,c)||r<0&&(r=i)}if(r>=0){let c=t.fields[r].id;if(c)for(let l=0;l<u.pageFocusItems.length;l++){let f=u.pageFocusItems[l];if(f.kind==="block"&&"id"in f.block&&f.block.id===c){u.pageFocusIndex=l;break}}u.render();return}let o={};for(let i of n){let c=u.inputStates.get(i);o[i]=c?.value??void 0}let s=t.fields.find(i=>i.type==="button"),a=s?s.label:"";a&&u.buttonLoading.set(a,!0),u.render();try{let i=await t.onSubmit(o);a&&u.buttonLoading.delete(a),"success"in i?(u.formResults.set(e,{message:i.success,type:"success"}),u.notifications.success(i.success),t.resetOnSubmit&&m5(u,t)):"error"in i?(u.formResults.set(e,{message:i.error,type:"error"}),u.notifications.error(i.error)):"info"in i&&(u.formResults.set(e,{message:i.info,type:"info"}),u.notifications.info(i.info))}catch(i){a&&u.buttonLoading.delete(a);let c=i instanceof Error?i.message:"An error occurred";u.formResults.set(e,{message:c,type:"error"}),u.notifications.error(c)}u.render(),setTimeout(()=>{u.formResults.delete(e),u.render()},5e3)}function m5(u,e){for(let t of e.fields)if("id"in t&&t.type!=="button"){let n=t.id,r=w8(t),o=u.inputStates.get(n);o&&(o.value=r,o.cursorPos=typeof r=="string"?r.length:0,o.error=null,o.open=!1,o.highlightIndex=0,o.scrollOffset=0)}}var g5=class{site;theme;router;focus;borderStyle;scrollOffset=0;commandMode=!1;commandBuffer="";feedbackMessage="";feedbackTimer=null;accordionState=new Map;tabState=new Map;galleryState=new Map;pageFocusIndex=0;pageFocusItems=[];pageScrollOffset=0;bootComplete=!1;bootFrame=0;bootTimer=null;inputMode=new jn;inputStates=new Map;formResults=new Map;buttonLoading=new Map;notifications=new Nn;notificationTimer=null;asyncManager=new Wn;resolvedPageContent=new Map;formRegistry=new Map;currentParams={};dynamicCache=new Map;apiServer=null;focusRects=[];constructor(u){this.site=u.config,this.theme=this.resolveTheme(u.config.theme),this.borderStyle=u.config.borders??"rounded",this.router=new On,this.focus=new $n;let e=u.config.pages.map(n=>n.id);this.router.registerPages(e);let t=u.config.pages.filter(n=>typeof n.title=="string"&&!n._hidden).map(n=>n.id);this.focus.setItems(t)}resolveTheme(u){return u?typeof u=="string"?F2[u]??b2:u:b2}async start(){C8(),this.site.api&&Object.keys(this.site.api).length>0&&(this.apiServer=new je,this.apiServer.registerRoutes(this.site.api),await this.apiServer.start(),p8(this.apiServer.getBaseUrl()));let u=Pn();U2(u.colorDepth),Ae(()=>this.render());let e=null;if(globalThis.__terminaltui_render_callback__=()=>{e||(e=setTimeout(()=>{e=null,this.render()},0))},Ie((t,n)=>this.navigateToPage(t,n)),this.site.onInit)try{await this.site.onInit({state:null,navigate:(t,n)=>this.navigateToPage(t,n)})}catch(t){console.error("[terminaltui] onInit error:",t)}this.setupTerminal(),ke.on("resize",()=>this.render()),c8.on("keypress",t=>this.handleKey(t)),c8.start(),this.notificationTimer=setInterval(()=>{this.notifications.prune()&&this.render()},500),this.site.animations?.boot?this.runBootAnimation():(this.bootComplete=!0,this.render())}setupTerminal(){process.stdout.write("\x1B[?1049h"),process.stdout.write("\x1B[?25l"),process.stdout.write("\x1B[2J"),process.stdout.write("\x1B[H");let u=()=>this.cleanup();process.on("SIGINT",u),process.on("SIGTERM",u),process.on("uncaughtException",e=>{this.cleanup(),console.error(e),process.exit(1)})}cleanup(){c8.stop(),kn.stop(),this.asyncManager.cleanup(),this.bootTimer&&clearInterval(this.bootTimer),this.feedbackTimer&&clearTimeout(this.feedbackTimer),this.notificationTimer&&clearInterval(this.notificationTimer),We(),this.apiServer&&(this.apiServer.stop(),p8(null)),delete globalThis.__terminaltui_render_callback__,process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[?1049l"),process.stdout.write("\x1B[0m")}async stop(){if(this.site.onExit)try{await this.site.onExit({state:null,navigate:()=>{}})}catch{}if(Ae(null),Ie(null),this.site.animations?.exitMessage){let{columns:u,rows:e}=Bu();process.stdout.write("\x1B[2J\x1B[H");let t=this.site.animations.exitMessage,n=Math.floor(e/2),r=Math.max(0,Math.floor((u-L(t))/2));process.stdout.write(`\x1B[${n};${r}H`),process.stdout.write(h(this.theme.accent)+k+t+d),await new Promise(o=>setTimeout(o,800))}this.cleanup(),process.exit(0)}runBootAnimation(){this.bootComplete=!1,this.bootFrame=0;let u=30;this.bootTimer=setInterval(()=>{this.bootFrame++,this.render(),this.bootFrame>=u&&(this.bootTimer&&clearInterval(this.bootTimer),this.bootTimer=null,this.bootComplete=!0,this.render())},33)}handleKey(u){if(this.commandMode){s0(this,u);return}if(this.inputMode.isEditing){this.handleEditMode(u);return}i0(this,u)}handleEditMode(u){a0(this,u)}render(){W0(this)}navigateToPage(u,e){f5(this,u,e)}enterPage(){h5(this)}getCurrentPage(){return _5(this)}getPageContent(u){return Q0(this,u)}resolvePageTitle(u){return J0(this,u)}collectFocusItems(u){return au(this,u)}initializePageContent(u){u2(this,u)}registerForms(u){hu(this,u)}pageFocusNext(){Z0(this)}pageFocusPrev(){X0(this)}handlePageSelect(){tr(this)}showFeedback(u){m2(this,u)}executeCommand(u){ur(this,u)}validateInput(u){return p5(this,u)}renderBlock(u,e){return Vu(this,u,e)}isBlockFocusable(u){return c5(u)}renderContentBlocks(u,e){return Fu(this,u,e)}getInputState(u,e){let t=this.inputStates.get(u);return t||(t=qn(e),this.inputStates.set(u,t)),t}getFocusedInputBlock(){let u=this.pageFocusItems[this.pageFocusIndex];if(!u||u.kind!=="block")return null;let e=u.block;return["textInput","textArea","select","checkbox","toggle","radioGroup","numberInput","searchInput","button"].includes(e.type)?e:null}getFocusedInputId(){let u=this.getFocusedInputBlock();return u?u.id??null:null}isTextEntryType(u){return u==="textInput"||u==="textArea"||u==="searchInput"||u==="numberInput"}isAutoEditKey(u){return!!(u.char&&u.char.length===1&&!u.ctrl&&!["up","down","left","right","escape","return","delete","home","end","tab"].includes(u.name)||u.name==="space"||u.name==="backspace")}resetForm(u){let e=this.formRegistry.get(u);e&&(m5(this,e),this.render())}clearField(u){let e=this.inputStates.get(u);e&&(e.value="",e.cursorPos=0,e.error=null,this.render())}};async function E8(u){let{FileRouter:e}=await Promise.resolve().then(()=>(Se(),Pe)),t=new e({config:u.config,pagesDir:u.pagesDir,apiDir:u.apiDir,outDir:u.outDir});await t.initialize(),t.validateAndPrint();let n=await t.buildPagesArray(),r=await t.loadApiRoutes(),s={config:{name:u.config.name,handle:u.config.handle,tagline:u.config.tagline,banner:u.config.banner,theme:u.config.theme,borders:u.config.borders,animations:u.config.animations,navigation:u.config.navigation,easterEggs:u.config.easterEggs,footer:u.config.footer,statusBar:u.config.statusBar,artDir:u.config.artDir,middleware:u.config.middleware,menu:u.config.menu,pages:n,api:{...r||{}},onInit:u.config.onInit,onExit:u.config.onExit,onNavigate:u.config.onNavigate,onError:u.config.onError}},a=new g5(s);a._fileRouter=t,await a.start()}k2();W2();async function t2(u){try{let e=new AbortController,t=u.timeout?setTimeout(()=>e.abort(),u.timeout):null,n={method:u.method??"GET",headers:{"Content-Type":"application/json",...u.headers},signal:e.signal};u.body&&u.method!=="GET"&&(n.body=typeof u.body=="string"?u.body:JSON.stringify(u.body));let r=await fetch(Ne(u.url),n);t&&clearTimeout(t);let o=null;return(r.headers.get("content-type")??"").includes("application/json")?o=await r.json():o=await r.text(),r.ok?{data:o,error:null,status:r.status,ok:!0}:{data:o,error:new Error(`HTTP ${r.status}: ${r.statusText}`),status:r.status,ok:!1}}catch(e){return{data:null,error:e instanceof Error?e:new Error(String(e)),status:0,ok:!1}}}async function w2(u){return t2(u)}w2.get=(u,e)=>t2({url:u,method:"GET",headers:e});w2.post=(u,e,t)=>t2({url:u,method:"POST",body:e,headers:t});w2.put=(u,e,t)=>t2({url:u,method:"PUT",body:e,headers:t});w2.delete=(u,e)=>t2({url:u,method:"DELETE",headers:e});w2.patch=(u,e,t)=>t2({url:u,method:"PATCH",body:e,headers:t});var F5=!1;function sr(){if(!F5){F5=!0;try{C8()}catch{}}}function b5(u){if("name"in u&&typeof u.name=="string"){let r=u;if(!r.name)throw new Error("defineConfig() config must have a name");return r}let e=u;sr();let t={},n=[];for(let[r,o]of Object.entries(e)){let s=process.env[o.env];s!==void 0?t[r]=o.transform?o.transform(s):s:o.default!==void 0?t[r]=o.default:o.required?n.push(`Missing required environment variable: ${o.env} (config key: ${r})`):t[r]=void 0}if(n.length>0)throw new Error(`[terminaltui] Configuration errors:
|
|
2
|
+
var Lu=(u,e)=>()=>(u&&(e=u(u=0)),e);var Ku=Lu(()=>{});var Ju=Lu(()=>{});var o8=Lu(()=>{Ku();Ju()});var Qu,L5,r8,O5,s8,i8,R5,a8,Zu=Lu(()=>{Qu=Object.defineProperty,L5=Object.getOwnPropertyDescriptor,r8=Object.getOwnPropertyNames,O5=Object.prototype.hasOwnProperty,s8=(u,e)=>function(){return u&&(e=(0,u[r8(u)[0]])(u=0)),e},i8=(u,e)=>{for(var t in e)Qu(u,t,{get:e[t],enumerable:!0})},R5=(u,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of r8(e))!O5.call(u,o)&&o!==t&&Qu(u,o,{get:()=>e[o],enumerable:!(n=L5(e,o))||n.enumerable});return u},a8=u=>R5(Qu({},"__esModule",{value:!0}),u)});var U2={name:"Larry 3D",height:9,chars:{A:[" ______ ","/\\ _ \\ ","\\ \\ \\L\\ \\ "," \\ \\ __ \\ "," \\ \\ \\/\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],B:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\ "," \\ \\ _ <' "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],C:[" ____ ","/\\ _`\\ ","\\ \\ \\/\\_\\ "," \\ \\ \\/_/_ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],D:[" ____ ","/\\ _`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],E:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\ "," \\ \\ _\\L "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],F:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\"," \\ \\ _\\/"," \\ \\ \\/ "," \\ \\_\\ "," \\/_/ "," "," "],G:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\_\\ "," \\ \\ \\L_L "," \\ \\ \\/, \\"," \\ \\____/"," \\/___/ "," "," "],H:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\_\\ \\ "," \\ \\ _ \\ "," \\ \\ \\ \\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],I:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\ \\ "," \\_\\ \\__ "," /\\_____\\"," \\/_____/"," "," "],J:[" _____ ","/\\___ \\ ","\\/__/\\ \\ "," _\\ \\ \\ "," /\\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],K:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\/'/' "," \\ \\ , < "," \\ \\ \\\\`\\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],L:[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ __ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],M:[" "," /'\\_/`\\ ","/\\ \\ ","\\ \\ \\__\\ \\ "," \\ \\ \\_/\\ \\ "," \\ \\_\\\\ \\_\\"," \\/_/ \\/_/"," "," "],N:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ `\\\\ \\ "," \\ \\ , ` \\ "," \\ \\ \\`\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/_/"," "," "],O:[" _____ ","/\\ __`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\ "," \\ \\_____\\"," \\/_____/"," "," "],P:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\"," \\ \\ ,__/"," \\ \\ \\/ "," \\ \\_\\ "," \\/_/ "," "," "],Q:[" _____ ","/\\ __`\\ ","\\ \\ \\/\\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\\\'\\\\ "," \\ \\___\\_\\"," \\/__//_/"," "," "],R:[" ____ ","/\\ _`\\ ","\\ \\ \\L\\ \\ "," \\ \\ , / "," \\ \\ \\\\ \\ "," \\ \\_\\ \\_\\"," \\/_/\\/ /"," "," "],S:[" ____ ","/\\ _`\\ ","\\ \\,\\L\\_\\ "," \\/_\\__ \\ "," /\\ \\L\\ \\ "," \\ `\\____\\"," \\/_____/"," "," "],T:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],U:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\ "," \\ \\_____\\"," \\/_____/"," "," "],V:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\ \\ \\ "," \\ \\ \\_/ \\"," \\ `\\___/"," `\\/__/ "," "," "],W:[" __ __ ","/\\ \\ __/\\ \\ ","\\ \\ \\/\\ \\ \\ \\ "," \\ \\ \\ \\ \\ \\ \\ "," \\ \\ \\_/ \\_\\ \\"," \\ `\\___x___/"," '\\/__//__/ "," "," "],X:[" __ __ ","/\\ \\ /\\ \\ ","\\ `\\`\\/'/' "," `\\/ > < "," \\/'/\\`\\ "," /\\_\\\\ \\_\\"," \\/_/ \\/_/"," "," "],Y:[" __ __ ","/\\ \\ /\\ \\","\\ `\\`\\\\/'/"," `\\ `\\ /' "," `\\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],Z:[" ________ ","/\\_____ \\ ","\\/____//'/' "," //'/' "," //'/'___ "," /\\_______\\"," \\/_______/"," "," "],0:[" __ "," /'__`\\ ","/\\ \\/\\ \\ ","\\ \\ \\ \\ \\ "," \\ \\ \\_\\ \\"," \\ \\____/"," \\/___/ "," "," "],1:[" _ "," /' \\ ","/\\_, \\ ","\\/_/\\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"," "," "],2:[" ___ "," /'___`\\ ","/\\_\\ /\\ \\ ","\\/_/// /__ "," // /_\\ \\"," /\\______/"," \\/_____/ "," "," "],3:[" __ "," /'__`\\ ","/\\_\\L\\ \\ ","\\/_/_\\_<_ "," /\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],4:[" __ __ ","/\\ \\\\ \\ ","\\ \\ \\\\ \\ "," \\ \\ \\\\ \\_ "," \\ \\__ ,__\\"," \\/_/\\_\\_/"," \\/_/ "," "," "],5:[" ______ ","/\\ ___\\ ","\\ \\ \\__/ "," \\ \\___``\\ "," \\/\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],6:[" ____ "," /'___\\ ","/\\ \\__/ ","\\ \\ _``\\ "," \\ \\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],7:[" ________ ","/\\_____ \\","\\/___//'/'"," /' /' "," /' /' "," /\\_/ "," \\// "," "," "],8:[" __ "," /'_ `\\ ","/\\ \\L\\ \\ ","\\/_> _ <_ "," /\\ \\L\\ \\"," \\ \\____/"," \\/___/ "," "," "],9:[" __ "," /'_ `\\ ","/\\ \\L\\ \\ ","\\ \\___, \\ "," \\/__,/\\ \\ "," \\ \\_\\"," \\/_/"," "," "]," ":[" "," "," "," "," "," "," "," "," "],"!":[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ "," \\ \\_\\ "," \\/\\_\\"," \\/_/"," "," "],'"':[" __ __ ","/\\ \\\\ \\ ","\\ \\_\\\\_\\ "," \\/_//_/ "," "," "," "," "," "],"#":[" __ __ "," _\\ \\\\ \\__ ","/\\__ _ _\\ ","\\/_L\\ \\\\ \\L_ "," /\\_ _ _\\"," \\/_/\\_\\\\_\\/"," \\/_//_/ "," "," "],$:[" __ ","/\\ \\_ ","\\/'__`\\ ","/\\ \\_\\_\\ ","\\ \\____ \\ "," \\/\\ \\_\\ \\"," \\ `\\_ _/"," `\\_/\\_\\"," \\/_/"],"%":[" __ __ ","/\\_\\ / / ","\\/_/ / / "," / / "," / / __ "," /_/ /\\_\\"," /_/ \\/_/"," "," "],"&":[" ____ ","/| _ \\ ","|/\\ | "," \\// __`\\/\\ "," /| \\L> <_"," | \\_____/\\/"," \\/____/\\/ "," "," "],"'":[" __ ","/\\ \\ ","\\ \\/ "," \\/ "," "," "," "," "," "],"(":[" _ "," /' \\ ","/\\ ,/' ","\\ \\ \\ "," \\ \\ `\\ "," \\ `\\__\\"," `\\/_/ "," "," "],")":[" __ ","/\\ `\\ ","\\`\\ \\ "," `\\`\\ \\ "," `\\/' \\"," /\\__/"," \\/_/ "," "," "],"*":[" __ "," _\\ \\ _ ","/\\_` ' \\ ","\\/_> <_ "," /\\_, ,_\\"," \\/_/\\_\\/"," \\/_/ "," "," "],"+":[" __ "," /\\ \\ "," \\_\\ \\___ ","/\\___ __\\","\\/__/\\ \\_/"," \\ \\_\\ "," \\/_/ "," "," "],",":[" "," "," "," "," __ ","/\\ \\","\\ \\/"," \\/ "," "],"-":[" "," "," "," _______ ","/\\______\\","\\/______/"," "," "," "],".":[" "," "," "," "," __ ","/\\_\\","\\/_/"," "," "],"/":[" __"," / /"," / / "," / / "," / / "," /_/ ","/_/ "," "," "],":":[" "," "," __ ","/\\_\\ ","\\/_/_ "," /\\_\\"," \\/_/"," "," "],";":[" "," "," __ ","/\\_\\ ","\\/_/_ "," /\\ \\"," \\ \\/"," \\/ "," "],"<":[" ___ "," / / "," / / ","/< < ","\\ `\\ `\\ "," `\\ `\\_|"," `\\// "," "," "],"=":[" "," _______ ","/\\______\\ ","\\/______/_ "," /\\______\\"," \\/______/"," "," "," "],">":[" __ ","/\\ `\\ ","\\ `\\ `\\ "," `\\ > >"," / / "," /\\_/ "," \\// "," "," "],"?":[" _ "," /'_`\\ ","/\\_\\/\\`\\","\\/_//'/'"," /\\_\\ "," \\/\\_\\"," \\/_/"," "," "],"@":[" "," __ "," /'_`\\_ "," /'/'_` \\ ","/\\ \\ \\L\\ \\ ","\\ \\ `\\__,_\\"," \\ `\\_____\\"," `\\/_____/"," "],"[":[" ____ ","/\\ _\\ ","\\ \\ \\/ "," \\ \\ \\ "," \\ \\ \\_ "," \\ \\___\\"," \\/___/"," "," "],"\\":[" __ ","/\\ `\\ ","\\`\\ `\\ ","`\\`\\ `\\ "," `\\`\\ `\\ "," `\\`\\__\\"," `\\/__/"," "," "],"]":[" ____ ","/\\__ \\ ","\\/_/\\ \\ "," \\ \\ \\ "," \\_\\ \\ "," /\\___\\"," \\/___/"," "," "],"^":[" __ "," / `\\ ","/\\_/\\_\\ ","\\//\\// "," "," "," "," "," "],_:[" "," "," "," "," "," "," _______ "," /\\______\\"," \\/______/"],"{":[" _ "," /' \\"," \\ ,/'"," <' \\ ","< \\ `\\ "," \\`\\__\\"," \\/__/"," "," "],"|":[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\ \\ "," \\ \\_\\"," \\/_/"],"}":[" __ ","/\\ `\\ ","\\`\\ \\ "," \\ \\ `>"," //' \\ ","/\\__/' ","\\/_/ "," "," "],"~":[" _ _ "," /' \\/' \\ ","/\\_/\\__// ","\\//\\/__/ "," "," "," "," "," "]}};var G2={name:"Colossal",height:11,chars:{A:[" d8888 "," d88888 "," d88P888 "," d88P 888 "," d88P 888 "," d88P 888 "," d8888888888 ","d88P 888 "," "," "," "],B:["888888b. ",'888 "88b ',"888 .88P ","8888888K. ",'888 "Y88b ',"888 888 ","888 d88P ",'8888888P" '," "," "," "],C:[" .d8888b. ","d88P Y88b ","888 888 ","888 ","888 ","888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],D:["8888888b. ",'888 "Y88b ',"888 888 ","888 888 ","888 888 ","888 888 ","888 .d88P ",'8888888P" '," "," "," "],E:["8888888888 ","888 ","888 ","8888888 ","888 ","888 ","888 ","8888888888 "," "," "," "],F:["8888888888 ","888 ","888 ","8888888 ","888 ","888 ","888 ","888 "," "," "," "],G:[" .d8888b. ","d88P Y88b ","888 888 ","888 ","888 88888 ","888 888 ","Y88b d88P ",' "Y8888P88 '," "," "," "],H:["888 888 ","888 888 ","888 888 ","8888888888 ","888 888 ","888 888 ","888 888 ","888 888 "," "," "," "],I:["8888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],J:[" 888888 ",' "88b '," 888 "," 888 "," 888 "," 888 "," 88P "," 888 "," .d88P ",' .d88P" ','888P" '],K:["888 d8P ","888 d8P ","888 d8P ","888d88K ","8888888b ","888 Y88b ","888 Y88b ","888 Y88b "," "," "," "],L:["888 ","888 ","888 ","888 ","888 ","888 ","888 ","88888888 "," "," "," "],M:["888b d888 ","8888b d8888 ","88888b.d88888 ","888Y88888P888 ","888 Y888P 888 ","888 Y8P 888 ",'888 " 888 ',"888 888 "," "," "," "],N:["888b 888 ","8888b 888 ","88888b 888 ","888Y88b 888 ","888 Y88b888 ","888 Y88888 ","888 Y8888 ","888 Y888 "," "," "," "],O:[" .d88888b. ",'d88P" "Y88b ',"888 888 ","888 888 ","888 888 ","888 888 ","Y88b. .d88P ",' "Y88888P" '," "," "," "],P:["8888888b. ","888 Y88b ","888 888 ","888 d88P ",'8888888P" ',"888 ","888 ","888 "," "," "," "],Q:[" .d88888b. ",'d88P" "Y88b ',"888 888 ","888 888 ","888 888 ","888 Y8b 888 ","Y88b.Y8b88P ",' "Y888888" '," Y8b "," "," "],R:["8888888b. ","888 Y88b ","888 888 ","888 d88P ",'8888888P" ',"888 T88b ","888 T88b ","888 T88b "," "," "," "],S:[" .d8888b. ","d88P Y88b ","Y88b. ",' "Y888b. ',' "Y88b. ',' "888 ',"Y88b d88P ",' "Y8888P" '," "," "," "],T:["88888888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 "," "," "," "],U:["888 888 ","888 888 ","888 888 ","888 888 ","888 888 ","888 888 ","Y88b. .d88P ",' "Y88888P" '," "," "," "],V:["888 888 ","888 888 ","888 888 ","Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," Y8P "," "," "," "],W:["888 888 ","888 o 888 ","888 d8b 888 ","888 d888b 888 ","888d88888b888 ","88888P Y88888 ","8888P Y8888 ","888P Y888 "," "," "," "],X:["Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," d888b "," d88888b "," d88P Y88b ","d88P Y88b "," "," "," "],Y:["Y88b d88P "," Y88b d88P "," Y88o88P "," Y888P "," 888 "," 888 "," 888 "," 888 "," "," "," "],Z:["8888888888P "," d88P "," d88P "," d88P "," d88P "," d88P "," d88P ","d8888888888 "," "," "," "],0:[" .d8888b. ","d88P Y88b ","888 888 ","888 888 ","888 888 ","888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],1:[" d888 ","d8888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],2:[" .d8888b. ","d88P Y88b "," 888 "," .d88P ",' .od888P" ','d88P" ','888" ',"888888888 "," "," "," "],3:[" .d8888b. ","d88P Y88b "," .d88P ",' 8888" ',' "Y8b. ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],4:[" d8888 "," d8P888 "," d8P 888 "," d8P 888 ","d88 888 ","8888888888 "," 888 "," 888 "," "," "," "],5:["888888888 ","888 ","888 ","8888888b. ",' "Y88b '," 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],6:[" .d8888b. ","d88P Y88b ","888 ","888d888b. ",'888P "Y88b ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],7:["8888888888 "," d88P "," d88P "," d88P "," 88888888 "," d88P "," d88P ","d88P "," "," "," "],8:[" .d8888b. ","d88P Y88b ","Y88b. d88P ",' "Y88888" ','.d8P""Y8b. ',"888 888 ","Y88b d88P ",' "Y8888P" '," "," "," "],9:[" .d8888b. ","d88P Y88b ","888 888 ","Y88b. d888 ",' "Y888P888 '," 888 ","Y88b d88P ",' "Y8888P" '," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "],"!":["888 ","888 ","888 ","888 ","888 ","Y8P ",' " ',"888 "," "," "," "],'"':["88 88 ","8P 8P ",'" " '," "," "," "," "," "," "," "," "],"#":[" 888 888 "," 888 888 ","888888888888 "," 888 888 "," 888 888 ","888888888888 "," 888 888 "," 888 888 "," "," "," "],$:[" 88 "," .d88888b. ",'d88P 88"88b ',"Y88b.88 ",' "Y88888b. ',' 88"88b ',"Y88b 88.88P ",' "Y88888P" '," 88 "," "," "],"%":["d88b d88P ","Y88P d88P "," d88P "," d88P "," d88P "," d88P "," d88P d88b ","d88P Y88P "," "," "," "],"&":[" .d8888b. ",'d88P "88b ',"Y88b. d88P ",' "Y8888P" ',".d88P88K.d88P ",'888" Y888P" ',"Y88b .d8888b ",' "Y8888P" Y88b'," "," "," "],"'":["d8b ","88P ","8P ",'" '," "," "," "," "," "," "," "],"(":[" .d88 ",' d88P" ',"d88P ","888 ","888 ","Y88b "," Y88b. ",' "Y88 '," "," "," "],")":["88b. ",'"Y88b '," Y88b "," 888 "," 888 "," d88P ",".d88P ",'88P" '," "," "," "],"*":[" "," o "," d8b "," d888b ",'"Y888888888P"',' "Y88888P" ',' d88P"Y88b ',' dP" "Yb '," "," "," "],"+":[" "," "," "," 888 ","8888888 "," 888 "," "," "," "," "," "],",":[" "," "," "," "," "," ","d8b ","88P ","8P ",'" '," "],"-":[" "," "," "," "," ","888888 "," "," "," "," "," "],".":[" "," "," "," "," "," ","d8b ","Y8P "," "," "," "],"/":[" d88P "," d88P "," d88P "," d88P "," d88P "," d88P "," d88P ","d88P "," "," "," "],":":[" "," "," ","d8b ","Y8P "," ","d8b ","Y8P "," "," "," "],";":[" "," "," ","d8b ","Y8P "," ","d8b ","88P ","8P ",'" '," "],"<":[" d88P "," d88P "," d88P ","d88P ","Y88b "," Y88b "," Y88b "," Y88b "," "," "," "],"=":[" "," "," ","888888 "," ","888888 "," "," "," "," "," "],">":["Y88b "," Y88b "," Y88b "," Y88b "," d88P "," d88P "," d88P ","d88P "," "," "," "],"?":[" .d8888b. ","d88P Y88b "," .d88P ",' .d88P" ',' 888" '," 888 "," "," 888 "," "," "," "],"@":[" .d8888888b. ",'d88P" "Y88b ',"888 d8b 888 ","888 888 888 ","888 888bd88P ",'888 Y8888P" ',"Y88b. .d8 ",' "Y88888888P" '," "," "," "],"[":["8888888 ","888 ","888 ","888 ","888 ","888 ","888 ","8888888 "," "," "," "],"\\":["Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," Y88b "," "," "," "],"]":["8888888 "," 888 "," 888 "," 888 "," 888 "," 888 "," 888 ","8888888 "," "," "," "],"^":[" o "," d8b "," d888b ",' d8P"Y8b '," "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," ","88888888 "," "," "," "],"{":[" .d888 ",' d88P" '," 888 ",".888 ","888( ",'"888 '," 888 "," Y88b. ",' "Y888 '," "," "],"|":[" 888 "," 888 "," 888 "," 888 "," "," 888 "," 888 "," 888 "," 888 "," "," "],"}":["888b. ",' "Y88b '," 888 "," 888. "," )888 ",' 888" '," 888 "," .d88P ",'888P" '," "," "],"~":[" "," "," d888b d88 ","d888888888P ","88P Y888P "," "," "," "," "," "," "]}};var V2={name:"Isometric1",height:11,chars:{A:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],B:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\__\\ "," /:/\\:\\ \\:|__|"," \\:\\~\\:\\/:/ /"," \\:\\ \\::/ / "," \\:\\/:/ / "," \\::/__/ "," ~~ "],C:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/ \\:\\__\\"," \\:\\ \\ \\/__/"," \\:\\ \\ "," \\:\\ \\ "," \\:\\__\\ "," \\/__/ "],D:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\__\\ "," /:/__/ \\:|__|"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/__/ "," ~~ "],E:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\:\\~\\:\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\ \\/__/ "," \\:\\__\\ "," \\/__/ "],F:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\ \\/__/"," \\:\\__\\ "," \\/__/ "," "," "],G:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/_\\:\\__\\"," \\:\\ /\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],H:[" ___ "," /\\__\\ "," /:/ / "," /:/__/ "," /::\\ \\ ___ "," /:/\\:\\ /\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],I:[" "," ___ "," /\\ \\ "," \\:\\ \\ "," /::\\__\\"," __/:/\\/__/"," /\\/:/ / "," \\::/__/ "," \\:\\__\\ "," \\/__/ "," "],J:[" ___ "," /\\ \\ "," \\:\\ \\ "," ___ /::\\__\\"," /\\ /:/\\/__/"," \\:\\/:/ / "," \\::/ / "," \\/__/ "," "," "," "],K:[" ___ "," /\\__\\ "," /:/ / "," /:/__/ "," /::\\__\\____ "," /:/\\:::::\\__\\"," \\/_|:|~~|~ "," |:| | "," |:| | "," |:| | "," \\|__| "],L:[" ___ "," /\\__\\"," /:/ /"," /:/ / "," /:/ / "," /:/__/ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\__\\"," \\/__/"],M:[" ___ "," /\\__\\ "," /::| | "," /:|:| | "," /:/|:|__|__ "," /:/ |::::\\__\\"," \\/__/~~/:/ /"," /:/ / "," /:/ / "," /:/ / "," \\/__/ "],N:[" ___ "," /\\__\\ "," /::| | "," /:|:| | "," /:/|:| |__ "," /:/ |:| /\\__\\"," \\/__|:|/:/ /"," |:/:/ / "," |::/ / "," /:/ / "," \\/__/ "],O:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /:/ \\:\\ \\ "," /:/__/ \\:\\__\\"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],P:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/__\\:\\/:/ /"," \\::/ / "," \\/__/ "," "," "],Q:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," \\:\\~\\:\\ \\ "," \\:\\ \\:\\__\\"," \\:\\/:/ /"," \\::/ / "," /:/ / "," /:/ / "," \\/__/ "],R:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\:\\ \\ "," /::\\~\\:\\ \\ "," /:/\\:\\ \\:\\__\\"," \\/_|::\\/:/ /"," |:|::/ / "," |:|\\/__/ "," |:| | "," \\|__| "],S:[" ___ "," /\\ \\ "," /::\\ \\ "," /:/\\ \\ \\ "," _\\:\\~\\ \\ \\ "," /\\ \\:\\ \\ \\__\\"," \\:\\ \\:\\ \\/__/"," \\:\\ \\:\\__\\ "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],T:[" ___ "," /\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," /::\\ \\ "," /:/\\:\\__\\"," /:/ \\/__/"," /:/ / "," \\/__/ "," "," "],U:[" ___ "," /\\__\\ "," /:/ / "," /:/ / "," /:/ / ___ "," /:/__/ /\\__\\"," \\:\\ \\ /:/ /"," \\:\\ /:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],V:[" ___ "," /\\__\\ "," /:/ / "," /:/ / "," /:/__/ ___ "," |:| | /\\__\\"," |:| |/:/ /"," |:|__/:/ / "," \\::::/__/ "," ~~~~ "," "],W:[" ___ "," /\\__\\ "," /:/ _/_ "," /:/ /\\__\\ "," /:/ /:/ _/_ "," /:/_/:/ /\\__\\"," \\:\\/:/ /:/ /"," \\::/_/:/ / "," \\:\\/:/ / "," \\::/ / "," \\/__/ "],X:[" ___ "," |\\__\\ "," |:| | "," |:| | "," |:|__|__ "," ____/::::\\__\\"," \\::::/~~/~ "," ~~|:|~~| "," |:| | "," |:| | "," \\|__| "],Y:[" ___ "," |\\__\\ "," |:| | "," |:| | "," |:|__|__ "," /::::\\__\\"," /:/~~/~ "," /:/ / "," \\/__/ "," "," "],Z:[" ___ "," /\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," \\:\\ \\ "," _______\\:\\__\\"," \\::::::::/__/"," \\:\\~~\\~~ "," \\:\\ \\ "," \\:\\__\\ "," \\/__/ "],0:[" "," "," "," "," "," "," "," "," "," "," "],1:[" "," "," "," "," "," "," "," "," "," "," "],2:[" "," "," "," "," "," "," "," "," "," "," "],3:[" "," "," "," "," "," "," "," "," "," "," "],4:[" "," "," "," "," "," "," "," "," "," "," "],5:[" "," "," "," "," "," "," "," "," "," "," "],6:[" "," "," "," "," "," "," "," "," "," "," "],7:[" "," "," "," "," "," "," "," "," "," "," "],8:[" "," "," "," "," "," "," "," "," "," "," "],9:[" "," "," "," "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "],"!":[" "," "," "," "," "," "," "," "," "," "," "],"-":[" "," "," "," "," "," "," "," "," "," "," "],".":[" "," "," "," "," "," "," "," "," "," "," "],":":[" "," "," "," "," "," "," "," "," "," "," "],"[":[" ___ "," /\\ \\ "," /::\\ \\ "," /::::\\ \\ "," /::::::\\ \\ "," /:::LS:::\\__\\"," \\::1994::/ /"," \\::::::/ / "," \\::::/ / "," \\::/ / "," \\/__/ "],_:[" "," "," "," "," "," "," "," "," "," "," "]}};var q2={name:"DOS Rebel",height:10,chars:{A:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],B:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],C:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588"," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],D:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],E:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588"," \u2591\u2588\u2588\u2588 \u2588 \u2591 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588 "," \u2591\u2588\u2588\u2588 \u2591 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],F:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588"," \u2591\u2588\u2588\u2588 \u2588 \u2591 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2588 "," \u2591\u2588\u2588\u2588 \u2591 "," \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591 "," "," "],G:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],H:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],I:[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],J:[" \u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],K:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591 "," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591 "," "," "],L:[" \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],M:[" \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],N:[" \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],O:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],P:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591 "," "," "],Q:[" \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591 "," "," "],R:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],S:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],T:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2588","\u2591 \u2591\u2588\u2588\u2588 \u2591 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],U:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],V:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],W:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],X:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591 "," "," "],Y:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],Z:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591 \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588 \u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],0:[" \u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],1:[" \u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],2:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591 "," \u2588\u2588\u2588 \u2588","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],3:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],4:[" \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588"," \u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2588"," \u2591\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591 "," "," "],5:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2588","\u2591\u2588\u2588\u2588 \u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],6:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],7:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],8:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],9:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "],"!":[" \u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 "," \u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "],'"':[" \u2588\u2588 \u2588\u2588","\u2591\u2588\u2588\u2591\u2588\u2588","\u2591\u2591 \u2591\u2591 "," "," "," "," "," "," "," "],"#":[" \u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "," "," "],$:[" \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],"%":[" \u2588\u2588\u2588 \u2588\u2588\u2588"," \u2591\u2591\u2591 \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 \u2588\u2588\u2588 ","\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],"&":[" \u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "],"'":[" \u2588\u2588"," \u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "," "," "," "," "," "],"(":[" \u2588\u2588\u2588"," \u2588\u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],")":[" \u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588 "," \u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],"*":[" \u2588\u2588\u2588 "," \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588 \u2591\u2591\u2591 "," \u2591\u2591\u2591 "," "," "],"+":[" "," \u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "," "],",":[" "," "," "," "," "," "," \u2588\u2588"," \u2588\u2588 ","\u2591\u2591 "," "],"-":[" "," "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "," "," "," "],".":[" "," "," "," "," "," "," \u2588\u2588","\u2591\u2591 "," "," "],"/":[" \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],":":[" "," "," \u2588\u2588","\u2591\u2591 "," "," "," \u2588\u2588","\u2591\u2591 "," "," "],";":[" "," "," "," "," \u2588\u2588"," \u2591\u2591 "," \u2588\u2588"," \u2588\u2588 ","\u2591\u2591 "," "],"<":[" \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"=":[" "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "," "," "],">":[" \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 "," \u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 "," "," "],"?":[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588\u2591\u2591\u2591 "," \u2591\u2591\u2591 "," \u2588\u2588\u2588 "," \u2591\u2591\u2591 "," "," "],"@":[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591 ","\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591\u2591\u2591 \u2591\u2588\u2588\u2588","\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 "," \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],"[":[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2588\u2588\u2588\u2591 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588 ","\u2591\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],"\\":[" \u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"]":[" \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588"," \u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591 "," "," "],"^":[" \u2588\u2588 "," \u2588\u2588\u2588\u2588 "," \u2588\u2588\u2591\u2591\u2588\u2588","\u2591\u2591 \u2591\u2591 "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 "," "," "],"{":[" \u2588\u2588\u2588"," \u2588\u2588\u2591 "," \u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2591\u2591\u2591 "," "," "],"|":[" \u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2588\u2588\u2588","\u2591\u2591\u2591 "," "," "],"}":[" \u2588\u2588\u2588 ","\u2591\u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588 "," \u2591\u2591\u2588\u2588\u2588"," \u2588\u2588\u2591 "," \u2588\u2588 "," \u2588\u2588\u2588 ","\u2591\u2591\u2591 "," "," "],"~":[" "," \u2588\u2588\u2588 \u2588\u2588\u2588"," \u2588\u2588\u2588\u2591\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591 \u2591\u2591\u2591 "," "," "," "," "," "," "]}};var K2={name:"Ghost",height:9,chars:{A:[" ('-. "," ( OO ).-. "," / . --. / "," | \\-. \\ ",".-'-' | | "," \\| |_.' | "," | .-. | "," | | | | "," `--' `--' "],B:[".-. .-') ","\\ ( OO ) "," ;-----.\\ "," | .-. | "," | '-' /_) "," | .-. `. "," | | \\ | "," | '--' / "," `------' "],C:[" "," "," .-----. "," ' .--./ "," | |('-. "," /_) |OO ) "," || |`-'| ","(_' '--'\\ "," `-----' "],D:[" _ .-') _ ","( ( OO) ) "," \\ .'_ "," ,`'--..._) "," | | \\ ' "," | | ' | "," | | / : "," | '--' / "," `-------' "],E:[" ('-. "," _( OO) ","(,------. "," | .---' "," | | ","(| '--. "," | .--' "," | `---. "," `------' "],F:[" "," "," ,------. ","('-| _.---' ","(OO|(_\\ ","/ | '--. ","\\_)| .--' "," \\| |_) "," `--' "],G:[" "," "," ,----. "," ' .-./-') "," | |_( O- ) "," | | .--, \\ ","(| | '. (_/ "," | '--' | "," `------' "],H:[" ('-. .-. ","( OO ) / ",",--. ,--. ","| | | | ","| .| | ","| | ","| .-. | ","| | | | ","`--' `--' "],I:[" "," "," ,-.-') "," | |OO) "," | | \\ "," | |(_/ "," ,| |_.' ","(_| | "," `--' "],J:[" "," "," ,--. "," .-')| ,| ","( OO |(_| ","| `-'| | ",",--. | | ","| '-' / "," `-----' "],K:[".-. .-') ","\\ ( OO ) ",",--. ,--. ","| .' / ","| /, ","| ' _) ","| . \\ ","| |\\ \\ ","`--' '--' "],L:[" "," "," ,--. "," | |.-') "," | | OO ) "," | |`-' | ","(| '---.' "," | | "," `------' "],M:[" _ .-') ","( '.( OO )_ "," ,--. ,--.)"," | `.' | "," | | "," | |'.'| | "," | | | | "," | | | | "," `--' `--' "],N:[" .-') _ "," ( OO ) ) ",",--./ ,--,' ","| \\ | |\\ ","| \\| | ) ","| . |/ ","| |\\ | ","| | \\ | ","`--' `--' "],O:[" "," "," .-'),-----. ","( OO' .-. '","/ | | | |","\\_) | |\\| |"," \\ | | | |"," `' '-' '"," `-----' "],P:[" _ (`-. "," ( (OO ) "," _.` \\ ","(__...--'' "," | / | | "," | |_.' | "," | .___.' "," | | "," `--' "],Q:[" .-') "," .( OO) "," (_)---\\_) "," ' .-. ' "," ,| | | | ","(_| | | | "," | | | | "," ' '-' '-."," `-----'--'"],R:[" _ .-') ","( \\( -O ) "," ,------. "," | /`. ' "," | / | | "," | |_.' | "," | . '.' "," | |\\ \\ "," `--' '--' "],S:[" .-') "," ( OO ). ","(_)---\\_) ","/ _ | ","\\ :` `. "," '..`''.) ",".-._) \\ ","\\ / "," `-----' "],T:[" .-') _ ","( OO) ) ","/ '._ ","|'--...__) ","'--. .--' "," | | "," | | "," | | "," `--' "],U:[" "," "," ,--. ,--. "," | | | | "," | | | .-') "," | |_|( OO )"," | | | `-' /","(' '-'(_.-' "," `-----' "],V:[" (`-. "," _(OO )_ ",",--(_/ ,. \\","\\ \\ /(__/"," \\ \\ / / "," \\ ' /, "," \\ /__)"," \\ / "," `-' "],W:[" (`\\ .-') /`"," `.( OO ),'",",--./ .--. ","| | | ","| | | |, ","| |.'.| |_)","| | ","| ,'. | ","'--' '--' "],X:[") (`-. "," ( OO ). ","(_/. \\_)-. "," \\ `.' / "," \\ /\\ "," \\ \\ | "," .' \\_) "," / .'. \\ ","'--' '--' "],Y:[" "," "," ,--. ,--."," \\ `.' / "," .-') / ","(OO \\ / "," | / /\\_ "," `-./ /.__) "," `--' "],Z:[" .-') _ "," ( OO) ) ",",(_)----. ","| | ","'--. / ","(_/ / "," / /___ ","| | ","`--------' "],0:[" "," "," .----. "," / .. \\ ",". / \\ . ","| | ' | ","' \\ / ' "," \\ `' / "," `---'' "],1:[" "," "," .---. ","/_ | "," | | "," | | "," | | "," | | "," `---' "],2:[" "," "," .-----. ","/ ,-. \\ ","'-' | | "," .' / "," .' /__ ","| | ","`-------' "],3:[" "," "," .-----. ","/ -. \\ ","'-' _' | "," |_ < ",".-. | | ","\\ `-' / "," `----'' "],4:[" "," "," .---. "," / . | "," / /| | "," / / | |_ ","/ '-' | ","`----| |-' "," `--' "],5:[" "," ",".------. ","| ___| ","| '--. ","`---. '. ",".- | | ","| `-' / "," `----'' "],6:[" "," "," ,--. "," / .' ",". / -. ","| .-. ' ","' \\ | | ","\\ `' / "," `----' "],7:[" "," ",".--------. ","| __ ' ","`--' . / "," / / "," . / "," / / "," `--' "],8:[" "," "," .-----. "," / .-. \\ ","| \\_.' / "," / .-. '. ","| | | | "," \\ '-' / "," `----'' "],9:[" "," "," .----. "," / ,. \\ ","| | \\ | "," ' `-' ' "," `- / ' "," ,' / "," `---' "]," ":[" "," "," "," "," "," "," "," "," "],"!":[",---. ","| | ","| | ","| | ","| | ","| .' ","`--' ",".--. ","'--' "],'"':[" ",",--.,--. ","\\ |\\ | "," `-' `-' "," "," "," "," "," "],"#":[" "," ,-. ,-. "," | | | | ",",--| |-| |--.","'--| |-| |--'","'--| |-| |--'"," | | | | "," `-' `-' "," "],$:[" ,-. "," .-| |-. ","| | |_/ ","\\ | |. "," '-| | '. ",".- | | | ","| `| | / "," `-| |'` "," `-' "],"%":[" ,-. "," ,--. / / "," '--'/ / "," / / "," / / "," / / "," / / ,--. ","/ / '--' ","`-' "],"&":[" "," .-----. ","/ .-. \\ ","| \\_.' / ","/ .-. ',-. ","| | | . /_ ","\\ '-' _.__)"," `----'' "," "],"'":[" ",",--. ","\\ | "," `-' "," "," "," "," "," "],"(":[" ,-. "," / | ","' .' ","| | ","| | ","| | ","' '. "," \\ | "," `-' "],")":[",-. ","| \\ ","'. ' "," | | "," | | "," | | ",".' ' ","| / ","`-' "],"*":[" "," .-. "," .-,| |,-. "," _\\ ' ' /_ ","(__ __) "," / . . \\ "," `-'| |`-' "," `-' "," "],"+":[" "," "," ,-. "," | | ",",---| |---. ","'---| |---' "," | | "," `-' "," "],",":[" "," "," "," "," "," "," ",".-. ","',/ "],"-":[" "," "," "," .-') "," _( OO) ","(,------. "," '------' "," "," "],".":[" "," "," "," "," "," "," ",".-. ","`-' "],"/":[" ,-. "," / / "," / / "," / / "," / / "," / / "," / / ","/ / ","`-' "],":":[" "," ",".-. ","`-' "," ",".-. ","`-' "," "," "],";":[" "," ",".-. ","'-' "," ",".-. ","',/ "," "," "],"<":[" "," ,-. "," / / "," / / ","/ / ","\\ \\ "," \\ \\ "," \\ \\ "," `-' "],"=":[" "," ",",-----. ","'-----' "," ",",-----. ","'-----' "," "," "],">":[" ",",-. "," \\ \\ "," \\ \\ "," \\ \\ "," / / "," / / "," / / ","`-' "],"?":[" ,------. ","' .--. ' ","| | | | ","'--' | | "," __. | "," | .' "," |___| "," .---. "," '---' "],"@":[" "," "," ____ "," .' __ \\ ","/ .' \\ | ","| | (_/ | ","\\ `.__.'\\ "," `.___ .' "," "],"[":[",----. ","| | ","| .-' ","| | ","| | ","| | ","| '-. ","| | ","`----' "],"\\":[",-. ","\\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," \\ \\ "," `-' "],"]":[",----. ","| | ","`-. | "," | | "," | | "," | | ",".-' | ","| | ","`----' "],"^":[" "," "," ,---. "," / \\ \\ ","`--' `--' "," "," "," "," "],_:[" "," "," "," "," "," (`-. "," (OO )_ ",",------.) ","`------' "],"{":[" ,--. "," | | "," | .' "," .' / ","< < "," `. \\ "," | '. "," | | "," `--' "],"|":[",-. ","| | ","| | ","| | ","| | ","| | ","| | ","| | ","`-' "],"}":[",--. ","| | ","'. | "," \\ ` "," > > "," / . ",".' | ","| | ","`--' "],"~":[" "," .--, "," .--' / "," / ---` ","`--' "," "," "," "," "]}};var J2={name:"Bloody",height:10,chars:{A:[" \u2584\u2584\u2584 ","\u2592\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588 \u2580\u2588\u2584 ","\u2591\u2588\u2588\u2584\u2584\u2584\u2584\u2588\u2588 "," \u2593\u2588 \u2593\u2588\u2588\u2592"," \u2592\u2592 \u2593\u2592\u2588\u2591"," \u2592 \u2592\u2592 \u2591"," \u2591 \u2592 "," \u2591 \u2591"," "],B:[" \u2584\u2584\u2584\u2584 ","\u2593\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2592 \u2584\u2588\u2588","\u2592\u2588\u2588\u2591\u2588\u2580 ","\u2591\u2593\u2588 \u2580\u2588\u2593","\u2591\u2592\u2593\u2588\u2588\u2588\u2580\u2592","\u2592\u2591\u2592 \u2591 "," \u2591 \u2591 "," \u2591 "," \u2591 "],C:[" \u2584\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2580 \u2580\u2588 ","\u2592\u2593\u2588 \u2584 ","\u2592\u2593\u2593\u2584 \u2584\u2588\u2588\u2592","\u2592 \u2593\u2588\u2588\u2588\u2580 \u2591","\u2591 \u2591\u2592 \u2592 \u2591"," \u2591 \u2592 ","\u2591 ","\u2591 \u2591 ","\u2591 "],D:["\u2593\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2592\u2588\u2588\u2580 \u2588\u2588\u258C","\u2591\u2588\u2588 \u2588\u258C","\u2591\u2593\u2588\u2584 \u258C","\u2591\u2592\u2588\u2588\u2588\u2588\u2593 "," \u2592\u2592\u2593 \u2592 "," \u2591 \u2592 \u2592 "," \u2591 \u2591 \u2591 "," \u2591 "," \u2591 "],E:["\u2593\u2588\u2588\u2588\u2588\u2588 ","\u2593\u2588 \u2580 ","\u2592\u2588\u2588\u2588 ","\u2592\u2593\u2588 \u2584 ","\u2591\u2592\u2588\u2588\u2588\u2588\u2592","\u2591\u2591 \u2592\u2591 \u2591"," \u2591 \u2591 \u2591"," \u2591 "," \u2591 \u2591"," "],F:[" \u2588\u2588\u2588\u2588\u2588\u2592","\u2593\u2588\u2588 \u2592 ","\u2592\u2588\u2588\u2588\u2588 \u2591 ","\u2591\u2593\u2588\u2592 \u2591 ","\u2591\u2592\u2588\u2591 "," \u2592 \u2591 "," \u2591 "," \u2591 \u2591 "," "," "],G:[" \u2584\u2588\u2588\u2588\u2588 "," \u2588\u2588\u2592 \u2580\u2588\u2592","\u2592\u2588\u2588\u2591\u2584\u2584\u2584\u2591","\u2591\u2593\u2588 \u2588\u2588\u2593","\u2591\u2592\u2593\u2588\u2588\u2588\u2580\u2592"," \u2591\u2592 \u2592 "," \u2591 \u2591 ","\u2591 \u2591 \u2591 "," \u2591 "," "],H:[" \u2588\u2588\u2591 \u2588\u2588 ","\u2593\u2588\u2588\u2591 \u2588\u2588\u2592","\u2592\u2588\u2588\u2580\u2580\u2588\u2588\u2591","\u2591\u2593\u2588 \u2591\u2588\u2588 ","\u2591\u2593\u2588\u2592\u2591\u2588\u2588\u2593"," \u2592 \u2591\u2591\u2592\u2591\u2592"," \u2592 \u2591\u2592\u2591 \u2591"," \u2591 \u2591\u2591 \u2591"," \u2591 \u2591 \u2591"," "],I:[" \u2588\u2588\u2593","\u2593\u2588\u2588\u2592","\u2592\u2588\u2588\u2592","\u2591\u2588\u2588\u2591","\u2591\u2588\u2588\u2591","\u2591\u2593 "," \u2592 \u2591"," \u2592 \u2591"," \u2591 "," "],J:[" \u2584\u2584\u2584\u2588\u2588\u2580\u2580\u2580"," \u2592\u2588\u2588 "," \u2591\u2588\u2588 ","\u2593\u2588\u2588\u2584\u2588\u2588\u2593 "," \u2593\u2588\u2588\u2588\u2592 "," \u2592\u2593\u2592\u2592\u2591 "," \u2592 \u2591\u2592\u2591 "," \u2591 \u2591 \u2591 "," \u2591 \u2591 "," "],K:[" \u2588\u2588 \u2584\u2588\u2580"," \u2588\u2588\u2584\u2588\u2592 ","\u2593\u2588\u2588\u2588\u2584\u2591 ","\u2593\u2588\u2588 \u2588\u2584 ","\u2592\u2588\u2588\u2592 \u2588\u2584","\u2592 \u2592\u2592 \u2593\u2592","\u2591 \u2591\u2592 \u2592\u2591","\u2591 \u2591\u2591 \u2591 ","\u2591 \u2591 "," "],L:[" \u2588\u2588\u2593 ","\u2593\u2588\u2588\u2592 ","\u2592\u2588\u2588\u2591 ","\u2592\u2588\u2588\u2591 ","\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2591 \u2592\u2591\u2593 \u2591","\u2591 \u2591 \u2592 \u2591"," \u2591 \u2591 "," \u2591 \u2591"," "],M:[" \u2588\u2588\u2588\u2584 \u2584\u2588\u2588\u2588\u2593","\u2593\u2588\u2588\u2592\u2580\u2588\u2580 \u2588\u2588\u2592","\u2593\u2588\u2588 \u2593\u2588\u2588\u2591","\u2592\u2588\u2588 \u2592\u2588\u2588 ","\u2592\u2588\u2588\u2592 \u2591\u2588\u2588\u2592","\u2591 \u2592\u2591 \u2591 \u2591","\u2591 \u2591 \u2591","\u2591 \u2591 "," \u2591 "," "],N:[" \u2588\u2588\u2588\u2584 \u2588 "," \u2588\u2588 \u2580\u2588 \u2588 ","\u2593\u2588\u2588 \u2580\u2588 \u2588\u2588\u2592","\u2593\u2588\u2588\u2592 \u2590\u258C\u2588\u2588\u2592","\u2592\u2588\u2588\u2591 \u2593\u2588\u2588\u2591","\u2591 \u2592\u2591 \u2592 \u2592 ","\u2591 \u2591\u2591 \u2591 \u2592\u2591"," \u2591 \u2591 \u2591 "," \u2591 "," "],O:[" \u2592\u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588\u2592 \u2588\u2588\u2592","\u2592\u2588\u2588\u2591 \u2588\u2588\u2592","\u2592\u2588\u2588 \u2588\u2588\u2591","\u2591 \u2588\u2588\u2588\u2588\u2593\u2592\u2591","\u2591 \u2592\u2591\u2592\u2591\u2592\u2591 "," \u2591 \u2592 \u2592\u2591 ","\u2591 \u2591 \u2591 \u2592 "," \u2591 \u2591 "," "],P:[" \u2588\u2588\u2593\u2588\u2588\u2588 ","\u2593\u2588\u2588\u2591 \u2588\u2588\u2592","\u2593\u2588\u2588\u2591 \u2588\u2588\u2593\u2592","\u2592\u2588\u2588\u2584\u2588\u2593\u2592 \u2592","\u2592\u2588\u2588\u2592 \u2591 \u2591","\u2592\u2593\u2592\u2591 \u2591 \u2591","\u2591\u2592 \u2591 ","\u2591\u2591 "," "," "],Q:[" \u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588\u2593 \u2588\u2588\u2592","\u2592\u2588\u2588\u2592 \u2588\u2588\u2591","\u2591\u2588\u2588 \u2588\u2580 \u2591","\u2591\u2592\u2588\u2588\u2588\u2592\u2588\u2584 ","\u2591\u2591 \u2592\u2592\u2591 \u2592 "," \u2591 \u2592\u2591 \u2591 "," \u2591 \u2591 "," \u2591 "," "],R:[" \u2588\u2588\u2580\u2588\u2588\u2588 ","\u2593\u2588\u2588 \u2592 \u2588\u2588\u2592","\u2593\u2588\u2588 \u2591\u2584\u2588 \u2592","\u2592\u2588\u2588\u2580\u2580\u2588\u2584 ","\u2591\u2588\u2588\u2593 \u2592\u2588\u2588\u2592","\u2591 \u2592\u2593 \u2591\u2592\u2593\u2591"," \u2591\u2592 \u2591 \u2592\u2591"," \u2591\u2591 \u2591 "," \u2591 "," "],S:[" \u2588\u2588\u2588\u2588\u2588\u2588 ","\u2592\u2588\u2588 \u2592 ","\u2591 \u2593\u2588\u2588\u2584 "," \u2592 \u2588\u2588\u2592","\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2592\u2592","\u2592 \u2592\u2593\u2592 \u2592 \u2591","\u2591 \u2591\u2592 \u2591 \u2591","\u2591 \u2591 \u2591 "," \u2591 "," "],T:["\u2584\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2593","\u2593 \u2588\u2588\u2592 \u2593\u2592","\u2592 \u2593\u2588\u2588\u2591 \u2592\u2591","\u2591 \u2593\u2588\u2588\u2593 \u2591 "," \u2592\u2588\u2588\u2592 \u2591 "," \u2592 \u2591\u2591 "," \u2591 "," \u2591 "," "," "],U:[" \u2588 \u2588\u2588 "," \u2588\u2588 \u2593\u2588\u2588\u2592","\u2593\u2588\u2588 \u2592\u2588\u2588\u2591","\u2593\u2593\u2588 \u2591\u2588\u2588\u2591","\u2592\u2592\u2588\u2588\u2588\u2588\u2588\u2593 ","\u2591\u2592\u2593\u2592 \u2592 \u2592 ","\u2591\u2591\u2592\u2591 \u2591 \u2591 "," \u2591\u2591\u2591 \u2591 \u2591 "," \u2591 "," "],V:[" \u2588\u2588\u2592 \u2588\u2593","\u2593\u2588\u2588\u2591 \u2588\u2592"," \u2593\u2588\u2588 \u2588\u2592\u2591"," \u2592\u2588\u2588 \u2588\u2591\u2591"," \u2592\u2580\u2588\u2591 "," \u2591 \u2590\u2591 "," \u2591 \u2591\u2591 "," \u2591\u2591 "," \u2591 "," \u2591 "],W:[" \u2588 \u2588\u2591","\u2593\u2588\u2591 \u2588 \u2591\u2588\u2591","\u2592\u2588\u2591 \u2588 \u2591\u2588 ","\u2591\u2588\u2591 \u2588 \u2591\u2588 ","\u2591\u2591\u2588\u2588\u2592\u2588\u2588\u2593 ","\u2591 \u2593\u2591\u2592 \u2592 "," \u2592 \u2591 \u2591 "," \u2591 \u2591 "," \u2591 "," "],X:["\u2592\u2588\u2588 \u2588\u2588\u2592","\u2592\u2592 \u2588 \u2588 \u2592\u2591","\u2591\u2591 \u2588 \u2591"," \u2591 \u2588 \u2588 \u2592 ","\u2592\u2588\u2588\u2592 \u2592\u2588\u2588\u2592","\u2592\u2592 \u2591 \u2591\u2593 \u2591","\u2591\u2591 \u2591\u2592 \u2591"," \u2591 \u2591 "," \u2591 \u2591 "," "],Y:["\u2593\u2588\u2588 \u2588\u2588\u2593"," \u2592\u2588\u2588 \u2588\u2588\u2592"," \u2592\u2588\u2588 \u2588\u2588\u2591"," \u2591 \u2590\u2588\u2588\u2593\u2591"," \u2591 \u2588\u2588\u2592\u2593\u2591"," \u2588\u2588\u2592\u2592\u2592 "," \u2593\u2588\u2588 \u2591\u2592\u2591 "," \u2592 \u2592 \u2591\u2591 "," \u2591 \u2591 "," \u2591 \u2591 "],Z:["\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2592 \u2592 \u2592 \u2584\u2580\u2591","\u2591 \u2592 \u2584\u2580\u2592\u2591 "," \u2584\u2580\u2592 \u2591","\u2592\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592","\u2591\u2592\u2592 \u2593\u2591\u2592\u2591\u2592","\u2591\u2591\u2592 \u2592 \u2591 \u2592","\u2591 \u2591 \u2591 \u2591 \u2591"," \u2591 \u2591 ","\u2591 "],0:[" "," "," "," "," "," "," "," "," "," "],1:[" "," "," "," "," "," "," "," "," "," "],2:[" "," "," "," "," "," "," "," "," "," "],3:[" "," "," "," "," "," "," "," "," "," "],4:[" "," "," "," "," "," "," "," "," "," "],5:[" "," "," "," "," "," "," "," "," "," "],6:[" "," "," "," "," "," "," "," "," "," "],7:[" "," "," "," "," "," "," "," "," "," "],8:[" "," "," "," "," "," "," "," "," "," "],9:[" "," "," "," "," "," "," "," "," "," "]," ":[" "," "," "," "," "," "," "," "," "," "],"!":[" \u2590\u2588\u2588\u258C "," \u2590\u2588\u2588\u258C "," \u2590\u2588\u2588\u258C "," \u2593\u2588\u2588\u2592 "," \u2592\u2584\u2584 "," \u2591\u2580\u2580\u2592 "," \u2591 \u2591 "," \u2591 "," \u2591 "," "],"-":[" "," "," "," "," "," "," "," "," "," "],".":[" "," "," "," "," \u2588\u2588\u2593 "," \u2592\u2593\u2592 "," \u2591\u2592 "," \u2591 "," \u2591 "," \u2591 "],":":[" "," "," "," "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," "," "," "," "]}};var Q2={name:"Electronic",height:12,chars:{A:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],B:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],C:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],D:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],E:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],F:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],G:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u258C\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u258C \u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],H:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],I:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],J:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],K:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C ","\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u2591\u258C ","\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],L:[" \u2584 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],M:[" \u2584\u2584 \u2584\u2584 ","\u2590\u2591\u2591\u258C \u2590\u2591\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2580 \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],N:[" \u2584\u2584 \u2584 ","\u2590\u2591\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u2591\u258C"," \u2580 \u2580\u2580 "," "],O:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],P:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],Q:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580 "," \u2590\u2591\u258C "," \u2580 "," "],R:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580 ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],S:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],T:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],U:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],V:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],W:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2584 \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u258C\u2591\u258C \u2590\u2591\u2590\u2591\u258C","\u2590\u2591\u2591\u258C \u2590\u2591\u2591\u258C"," \u2580\u2580 \u2580\u2580 "," "],X:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2580 "," "],Y:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],Z:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],0:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 "," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C\u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2591\u258C"," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C "," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],1:[" \u2584\u2584\u2584\u2584 "," \u2584\u2588\u2591\u2591\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C\u2590\u2591\u2591\u258C "," \u2580\u2580 \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2590\u2591\u2591\u258C "," \u2584\u2584\u2584\u2584\u2588\u2591\u2591\u2588\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],2:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],3:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],4:[" \u2584 \u2584 ","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2580 "," "],5:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],6:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 ","\u2590\u2591\u258C ","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],7:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2580 "," "],8:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C"," \u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C ","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "],9:[" \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C","\u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u258C"," \u2590\u2591\u258C"," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "]," ":[" "," "," "," "," "," "," "," "," "," "," "," "],"!":[" \u2584 ","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C","\u2590\u2591\u258C"," \u2580 "," \u2584 ","\u2590\u2591\u258C"," \u2580 "," "],"#":[" \u2584 \u2584 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580 "," \u2590\u2591\u258C \u2590\u2591\u258C "," \u2580 \u2580 "," "],$:[" \u2584 "," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C","\u2590\u2591\u2588\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 ","\u2590\u2591\u2588\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2588\u2591\u258C"," \u2584\u2584\u2584\u2584\u2588\u2591\u2588\u2584\u2584\u2588\u2591\u258C","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2588\u2591\u2588\u2580\u2580\u2580\u2580 "," \u2580 "," "],"%":[" \u2584"," \u2584 \u2590\u2591"," \u2590\u2591\u258C \u2590\u2591\u258C"," \u2580 \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C \u2584 "," \u2590\u2591\u258C \u2590\u2591\u258C","\u2590\u2591\u258C \u2580 "," \u2580 "," "],"*":[" \u2584 \u2584 \u2584 ","\u2590\u2591\u258C\u2590\u2591\u258C\u2590\u2591\u258C"," \u2590\u2591\u2590\u2591\u258C\u2591\u258C "," \u2590\u2591 \u2591\u258C "," \u2584\u2584\u2588\u2591\u2588\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2588\u2591\u2588\u2580\u2580 "," \u2590\u2591 \u2591\u258C "," \u2590\u2591\u2590\u2591\u258C\u2591\u258C ","\u2590\u2591\u258C\u2590\u2591\u258C\u2590\u2591\u258C"," \u2580 \u2580 \u2580 "," "],"-":[" "," "," "," "," \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 ","\u2590\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u258C"," \u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580 "," "," "," "," "," "],".":[" "," "," "," "," "," "," "," "," \u2584 ","\u2590\u2591\u258C"," \u2580 "," "],":":[" "," "," "," "," "," "," "," "," "," "," "," "],"<":[" \u2584 "," \u2590\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C"," \u2580"," "],">":[" \u2584 ","\u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C "," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C"," \u2590\u2591\u258C "," \u2590\u2591\u258C ","\u2590\u2591\u258C "," \u2580 "," "],"^":[" \u2584 "," \u2590\u2591\u258C "," \u2590\u2591\u2590\u2591\u258C "," \u2590\u2591\u258C \u2590\u2591\u258C ","\u2590\u2591\u258C \u2590\u2591\u258C "," \u2580 \u2580 "," "," "," "," "," "," "],_:[" "," "," "," "," "," "," "," "," "," "," "," "]}};var Z2={name:"Sub-Zero",height:6,chars:{A:[" ______ ","/\\ __ \\ ","\\ \\ __ \\ "," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],B:[" ______ ","/\\ == \\ ","\\ \\ __< "," \\ \\_____\\ "," \\/_____/ "," "],C:[" ______ ","/\\ ___\\ ","\\ \\ \\____ "," \\ \\_____\\ "," \\/_____/ "," "],D:[" _____ ","/\\ __-. ","\\ \\ \\/\\ \\ "," \\ \\____- "," \\/____/ "," "],E:[" ______ ","/\\ ___\\ ","\\ \\ __\\ "," \\ \\_____\\ "," \\/_____/ "," "],F:[" ______ ","/\\ ___\\ ","\\ \\ __\\ "," \\ \\_\\ "," \\/_/ "," "],G:[" ______ ","/\\ ___\\ ","\\ \\ \\__ \\ "," \\ \\_____\\ "," \\/_____/ "," "],H:[" __ __ ","/\\ \\_\\ \\ ","\\ \\ __ \\ "," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],I:[" __ ","/\\ \\ ","\\ \\ \\ "," \\ \\_\\ "," \\/_/ "," "],J:[" __ "," /\\ \\ "," _\\_\\ \\ ","/\\_____\\ ","\\/_____/ "," "],K:[" __ __ ","/\\ \\/ / ",'\\ \\ _"-. '," \\ \\_\\ \\_\\ "," \\/_/\\/_/ "," "],L:[" __ ","/\\ \\ ","\\ \\ \\____ "," \\ \\_____\\ "," \\/_____/ "," "],M:[" __ __ ",'/\\ "-./ \\ ',"\\ \\ \\-./\\ \\ "," \\ \\_\\ \\ \\_\\ "," \\/_/ \\/_/ "," "],N:[" __ __ ",'/\\ "-.\\ \\ ',"\\ \\ \\-. \\ ",' \\ \\_\\\\"\\_\\ '," \\/_/ \\/_/ "," "],O:[" ______ ","/\\ __ \\ ","\\ \\ \\/\\ \\ "," \\ \\_____\\ "," \\/_____/ "," "],P:[" ______ ","/\\ == \\ ","\\ \\ _-/ "," \\ \\_\\ "," \\/_/ "," "],Q:[" ______ ","/\\ __ \\ ","\\ \\ \\/\\_\\ "," \\ \\___\\_\\ "," \\/___/_/ "," "],R:[" ______ ","/\\ == \\ ","\\ \\ __< "," \\ \\_\\ \\_\\ "," \\/_/ /_/ "," "],S:[" ______ ","/\\ ___\\ ","\\ \\___ \\ "," \\/\\_____\\ "," \\/_____/ "," "],T:[" ______ ","/\\__ _\\ ","\\/_/\\ \\/ "," \\ \\_\\ "," \\/_/ "," "],U:[" __ __ ","/\\ \\/\\ \\ ","\\ \\ \\_\\ \\ "," \\ \\_____\\ "," \\/_____/ "," "],V:[" __ __ ","/\\ \\ / / ","\\ \\ \\'/ "," \\ \\__| "," \\/_/ "," "],W:[" __ __ ","/\\ \\ _ \\ \\ ",'\\ \\ \\/ ".\\ \\ ',' \\ \\__/".~\\_\\ '," \\/_/ \\/_/ "," "],X:[" __ __ ","/\\_\\_\\_\\ ","\\/_/\\_\\/_ "," /\\_\\/\\_\\ "," \\/_/\\/_/ "," "],Y:[" __ __ ","/\\ \\_\\ \\ ","\\ \\____ \\ "," \\/\\_____\\ "," \\/_____/ "," "],Z:[" ______ ","/\\___ \\ ","\\/_/ /__ "," /\\_____\\ "," \\/_____/ "," "],0:[" "," "," "," "," "," "],1:[" "," "," "," "," "," "],2:[" "," "," "," "," "," "],3:[" "," "," "," "," "," "],4:[" "," "," "," "," "," "],5:[" "," "," "," "," "," "],6:[" "," "," "," "," "," "],7:[" "," "," "," "," "," "],8:[" "," "," "," "," "," "],9:[" "," "," "," "," "," "]," ":[" "," "," "," "," "," "],"!":[" "," "," "," "," "," "],"-":[" "," "," "," "," "," "],".":[" "," "," "," "," "," "],":":[" "," "," "," "," "," "],_:[" "," "," "," "," "," "]}};function Ou(u){let e=u.match(/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function p5(u,e,t){return"#"+[u,e,t].map(n=>n.toString(16).padStart(2,"0")).join("")}function u8(){let u=process.env;return u.NO_COLOR!==void 0?"none":u.TERM_PROGRAM==="Apple_Terminal"?"256":u.COLORTERM==="truecolor"||u.COLORTERM==="24bit"?"truecolor":u.TERM_PROGRAM==="iTerm.app"||u.TERM_PROGRAM==="WezTerm"||u.TERM_PROGRAM==="vscode"||u.TERM_PROGRAM==="Hyper"||u.TERM_PROGRAM==="WarpTerminal"||u.WT_SESSION!==void 0?u.COLORTERM?"truecolor":"256":u.TERM?.includes("256color")?"256":u.TERM?"16":"none"}var V=u8();function Nu(u){V=u}function e8(u,e,t){if(u===e&&e===t)return u<8?16:u>248?231:Math.round((u-8)/247*24)+232;let n=Math.round(u/255*5),o=Math.round(e/255*5),r=Math.round(t/255*5);return 16+36*n+6*o+r}var m5=[{r:0,g:0,b:0,code:30},{r:170,g:0,b:0,code:31},{r:0,g:170,b:0,code:32},{r:170,g:170,b:0,code:33},{r:0,g:0,b:170,code:34},{r:170,g:0,b:170,code:35},{r:0,g:170,b:170,code:36},{r:170,g:170,b:170,code:37},{r:85,g:85,b:85,code:90},{r:255,g:85,b:85,code:91},{r:85,g:255,b:85,code:92},{r:255,g:255,b:85,code:93},{r:85,g:85,b:255,code:94},{r:255,g:85,b:255,code:95},{r:85,g:255,b:255,code:96},{r:255,g:255,b:255,code:97}];function t8(u,e,t){let n=30,o=1/0;for(let r of m5){let s=u-r.r,i=e-r.g,a=t-r.b,c=s*s+i*i+a*a;c<o&&(o=c,n=r.code)}return n}function h(u){if(V==="none")return"";let e=Ou(u);return e?V==="16"?`\x1B[${t8(e.r,e.g,e.b)}m`:V==="256"?`\x1B[38;5;${e8(e.r,e.g,e.b)}m`:`\x1B[38;2;${e.r};${e.g};${e.b}m`:""}function Hu(u){if(V==="none")return"";let e=Ou(u);return e?V==="16"?`\x1B[${t8(e.r,e.g,e.b)+10}m`:V==="256"?`\x1B[48;5;${e8(e.r,e.g,e.b)}m`:`\x1B[48;2;${e.r};${e.g};${e.b}m`:""}function g5(u,e,t){let n=Ou(u),o=Ou(e);if(!n||!o)return u;let r=Math.round(n.r+(o.r-n.r)*t),s=Math.round(n.g+(o.g-n.g)*t),i=Math.round(n.b+(o.b-n.b)*t);return p5(r,s,i)}function zu(u,e){if(u.length===0)return[];if(u.length===1)return Array(e).fill(u[0]);let t=[];for(let n=0;n<e;n++){let o=e<=1?0:n/(e-1)*(u.length-1),r=Math.min(Math.floor(o),u.length-2),s=o-r;t.push(g5(u[r],u[Math.min(r+1,u.length-1)],s))}return t}var d=V==="none"?"":"\x1B[0m",v=V==="none"?"":"\x1B[1m",L=V==="none"?"":"\x1B[2m",du=V==="none"?"":"\x1B[3m",wu=V==="none"?"":"\x1B[4m",Uu=V==="none"?"":"\x1B[7m",F5=class{renderers=new Map;focusableTypes=new Set;register(u,e,t=!1){this.renderers.set(u,e),t&&this.focusableTypes.add(u)}getRenderer(u){return this.renderers.get(u)}isFocusable(u){return this.focusableTypes.has(u)}has(u){return this.renderers.has(u)}},A=new F5;function cu(u){return u<32||u===127||u>=768&&u<=879||u===8203||u===8204||u===8205||u===173||u===65279||u>=6832&&u<=6911||u>=7616&&u<=7679||u>=8400&&u<=8447||u>=65056&&u<=65071||u>=65024&&u<=65039||u>=917760&&u<=917999?0:u>=19968&&u<=40959||u>=13312&&u<=19903||u>=131072&&u<=173791||u>=173824&&u<=177983||u>=177984&&u<=178207||u>=63744&&u<=64255||u>=12288&&u<=12351||u>=12352&&u<=12447||u>=12448&&u<=12543||u>=44032&&u<=55215||u>=4352&&u<=4447||u>=65281&&u<=65376||u>=65504&&u<=65510||u>=127744&&u<=129535||u>=129536&&u<=129647||u>=129648&&u<=129791?2:(u>=9984&&u<=10175||u>=9728&&u<=9983,1)}function y(u){let e=yu(u),t=0;for(let n of e)t+=cu(n.codePointAt(0)??0);return t}function n8(u,e){return h(e)+u+d}function q(u,e,t="left"){let n=y(u),o=Math.max(0,e-n);switch(t){case"center":{let r=Math.floor(o/2),s=o-r;return" ".repeat(r)+u+" ".repeat(s)}case"right":return" ".repeat(o)+u;default:return u+" ".repeat(o)}}function yu(u){return u.replace(/\x1b\[[0-9;]*m/g,"")}function O(u,e){if(!u)return"";if(y(u)<=e)return u;let t=0,n="",o=!1;for(let r of u){if(r==="\x1B"){o=!0,n+=r;continue}if(o){n+=r,r==="m"&&(o=!1);continue}let s=cu(r.codePointAt(0)??0);if(t+s>=e){n+="\u2026";break}n+=r,t+=s}return n+d}function K(u,e){if(e<=0)return[];let t=u.split(`
|
|
3
|
+
`),n=[];for(let o of t){if(o.length===0){n.push("");continue}let r=o.split(" "),s="",i=0;for(let a of r){let c=y(a);if(c>e){s&&(n.push(s),s="",i=0);let l="",f=0;for(let _ of a){let p=cu(_.codePointAt(0)??0);f+p>e&&l&&(n.push(l),l="",f=0),l+=_,f+=p}s=l,i=f;continue}i===0?(s=a,i=c):i+1+c<=e?(s+=" "+a,i+=1+c):(n.push(s),s=a,i=c)}s&&n.push(s)}return n.length>0?n:[""]}var b5={name:"ANSI Shadow",height:6,chars:{A:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],B:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],C:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D"],D:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],E:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],F:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u255D ","\u2588\u2588\u2551 ","\u255A\u2550\u255D "],G:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D ","\u2588\u2588\u2551 \u2588\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],H:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],I:["\u2588\u2588\u2557","\u2588\u2588\u2551","\u2588\u2588\u2551","\u2588\u2588\u2551","\u2588\u2588\u2551","\u255A\u2550\u255D"],J:[" \u2588\u2588\u2557"," \u2588\u2588\u2551"," \u2588\u2588\u2551","\u2588\u2588 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],K:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2554\u255D","\u2588\u2588\u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ","\u2588\u2588\u2551 \u2588\u2588\u2557","\u255A\u2550\u255D \u255A\u2550\u255D"],L:["\u2588\u2588\u2557 ","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],M:["\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551","\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551","\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551","\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],N:["\u2588\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551","\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D"],O:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],P:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2550\u255D ","\u2588\u2588\u2551 ","\u255A\u2550\u255D "],Q:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551\u2584\u2584 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2580\u2580\u2550\u255D "],R:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2550\u255D \u255A\u2550\u255D"],S:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],T:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D"," \u2588\u2588\u2551 "," \u2588\u2588\u2551 "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],U:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],V:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2588\u2554\u255D "," \u255A\u2550\u2550\u2550\u255D "],W:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2557 \u2588\u2588\u2551","\u2588\u2588\u2551\u2588\u2588\u2588\u2557\u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2554\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u255D\u255A\u2550\u2550\u255D "],X:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u255A\u2588\u2588\u2557\u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u2588\u2588\u2557 ","\u2588\u2588\u2554\u255D \u2588\u2588\u2557","\u255A\u2550\u255D \u255A\u2550\u255D"],Y:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D"," \u255A\u2588\u2588\u2588\u2588\u2554\u255D "," \u255A\u2588\u2588\u2554\u255D "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],Z:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2588\u2588\u2588\u2554\u255D"," \u2588\u2588\u2588\u2554\u255D "," \u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],0:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2551 \u2588\u2588\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D "],1:[" \u2588\u2588\u2557","\u2588\u2588\u2588\u2551","\u255A\u2588\u2588\u2551"," \u2588\u2588\u2551"," \u2588\u2588\u2551"," \u255A\u2550\u255D"],2:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2550\u255D ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],3:["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u255A\u2550\u2550\u2550\u2550\u2550\u255D "],4:["\u2588\u2588\u2557 \u2588\u2588\u2557","\u2588\u2588\u2551 \u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2551"," \u255A\u2550\u255D"],5:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],6:[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],7:["\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2551 "," \u255A\u2550\u255D "],8:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],9:[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2551"," \u255A\u2550\u2550\u2550\u2588\u2588\u2551"," \u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "]," ":[" "," "," "," "," "," "],".":[" "," "," "," ","\u2588\u2588\u2557","\u255A\u2550\u255D"],"!":["\u2588\u2588\u2557","\u2588\u2588\u2551","\u2588\u2588\u2551","\u255A\u2550\u255D","\u2588\u2588\u2557","\u255A\u2550\u255D"],"-":[" "," ","\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u255D"," "," "],_:[" "," "," "," ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"],":":[" ","\u2588\u2588\u2557","\u255A\u2550\u255D","\u2588\u2588\u2557","\u255A\u2550\u255D"," "],"'":["\u2588\u2588\u2557","\u255A\u2588\u2551"," \u255A\u255D"," "," "," "],",":[" "," "," "," ","\u2584\u2588\u2557","\u255A\u2550\u255D"],"/":[" \u2588\u2588\u2557"," \u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u255D ","\u255A\u2550\u255D "],"?":["\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ","\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2557"," \u2584\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2588\u2551 "," \u2588\u2588\u2588\u2588\u2551 "," \u255A\u2550\u2550\u2550\u255D "],"+":[" "," \u2588\u2588\u2557 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2588\u2588\u2554\u2550\u255D"," \u255A\u2550\u255D "," "],"=":[" ","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u255A\u2550\u2550\u2550\u2550\u2550\u255D"," "],"@":[" \u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2551","\u2588\u2588\u2554\u2550\u2550\u2550\u255D\u2551","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],"#":[" \u2588\u2588\u2557\u2588\u2588\u2557 ","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u255A\u2588\u2588\u2554\u2588\u2588\u2554\u255D","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u255A\u2588\u2588\u2554\u2588\u2588\u2554\u255D"," \u255A\u2550\u255D\u255A\u2550\u255D "],"&":[" \u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2554\u2550\u2588\u2588\u2557 ","\u255A\u2588\u2588\u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557","\u255A\u2588\u2588\u2588\u2588\u2588\u2554\u255D"," \u255A\u2550\u2550\u2550\u2550\u255D "],"(":[" \u2588\u2588\u2557","\u2588\u2588\u2554\u255D","\u2588\u2588\u2551 ","\u2588\u2588\u2551 ","\u255A\u2588\u2588\u2557"," \u255A\u2550\u255D"],")":["\u2588\u2588\u2557 ","\u255A\u2588\u2588\u2557"," \u2588\u2588\u2551"," \u2588\u2588\u2551","\u2588\u2588\u2554\u255D","\u255A\u2550\u255D "],"*":[" ","\u2584\u2588\u2557\u2588\u2584 ","\u255A\u2588\u2588\u2588\u2554\u255D","\u2584\u2588\u2588\u2588\u2584\u2557","\u255A\u2588\u2554\u255D\u2588\u255D"," "],"%":["\u2588\u2588\u2557\u2588\u2588\u2557 ","\u255A\u2550\u255D\u2588\u2588\u2554\u255D"," \u2588\u2588\u2554\u255D "," \u2588\u2588\u2554\u255D ","\u2588\u2588\u2554\u255D\u2588\u2588\u2557","\u255A\u2550\u255D\u255A\u2550\u255D "]}},C5={name:"Block",height:4,chars:{A:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2588 ","\u2588 \u2588 "],B:["\u2588\u2588\u2584 ","\u2588\u2584\u2588 ","\u2588 \u2588 ","\u2588\u2588\u2580 "],C:["\u2584\u2588\u2588 ","\u2588 ","\u2588 ","\u2580\u2588\u2588 "],D:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2588\u2588\u2580 "],E:["\u2588\u2588\u2588 ","\u2588\u2584 ","\u2588\u2580 ","\u2588\u2588\u2588 "],F:["\u2588\u2588\u2588 ","\u2588\u2584 ","\u2588 ","\u2588 "],G:["\u2584\u2588\u2588 ","\u2588 ","\u2588\u2584\u2588 ","\u2580\u2588\u2588 "],H:["\u2588 \u2588 ","\u2588\u2588\u2588 ","\u2588 \u2588 ","\u2588 \u2588 "],I:["\u2588\u2588\u2588 "," \u2588 "," \u2588 ","\u2588\u2588\u2588 "],J:[" \u2588\u2588 "," \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],K:["\u2588\u2584\u2588 ","\u2588\u2588 ","\u2588\u2580\u2588 ","\u2588 \u2588 "],L:["\u2588 ","\u2588 ","\u2588 ","\u2588\u2588\u2588 "],M:["\u2588\u2584\u2584\u2588 ","\u2588\u2580\u2580\u2588 ","\u2588 \u2588 ","\u2588 \u2588 "],N:["\u2588\u2584 \u2588 ","\u2588\u2580\u2588\u2588 ","\u2588 \u2580\u2588 ","\u2588 \u2588 "],O:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],P:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2580 ","\u2588 "],Q:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2584\u2588 ","\u2580 \u2580\u2588"],R:["\u2588\u2588\u2584 ","\u2588 \u2588 ","\u2588\u2588\u2580 ","\u2588 \u2588 "],S:["\u2584\u2588\u2588 ","\u2588\u2584 "," \u2580\u2588 ","\u2588\u2588\u2580 "],T:["\u2588\u2588\u2588\u2588 "," \u2588\u2588 "," \u2588\u2588 "," \u2588\u2588 "],U:["\u2588 \u2588 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],V:["\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2584\u2584\u2580 "," \u2580\u2580 "],W:["\u2588 \u2588 ","\u2588 \u2588 ","\u2588\u2584\u2584\u2588 ","\u2580 \u2580 "],X:["\u2588 \u2588 ","\u2580\u2588\u2580 ","\u2584\u2588\u2584 ","\u2588 \u2588 "],Y:["\u2588 \u2588 ","\u2580\u2588\u2580 "," \u2588 "," \u2588 "],Z:["\u2588\u2588\u2588 "," \u2584\u2588 ","\u2588\u2580 ","\u2588\u2588\u2588 "],0:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],1:[" \u2588 ","\u2588\u2588 "," \u2588 ","\u2588\u2588\u2588 "],2:["\u2584\u2588\u2584 "," \u2584\u2588 ","\u2588\u2580 ","\u2588\u2588\u2588 "],3:["\u2588\u2588\u2584 "," \u2584\u2588 "," \u2580\u2588 ","\u2588\u2588\u2580 "],4:["\u2588 \u2588 ","\u2588\u2588\u2588 "," \u2588 "," \u2588 "],5:["\u2588\u2588\u2588 ","\u2588\u2584 "," \u2580\u2588 ","\u2588\u2588\u2580 "],6:["\u2584\u2588\u2588 ","\u2588\u2584 ","\u2588 \u2588 ","\u2580\u2588\u2580 "],7:["\u2588\u2588\u2588 "," \u2588 "," \u2588 ","\u2588 "],8:["\u2584\u2588\u2584 ","\u2580\u2588\u2580 ","\u2584\u2588\u2584 ","\u2580\u2588\u2580 "],9:["\u2584\u2588\u2584 ","\u2588 \u2588 ","\u2580\u2588\u2588 "," \u2584\u2588 "]," ":[" "," "," "," "],".":[" "," "," ","\u2580 "],"!":["\u2588 ","\u2588 "," ","\u2580 "],"-":[" ","\u2584\u2584\u2584 "," "," "],":":[" ","\u2580 "," ","\u2580 "],_:[" "," "," ","\u2584\u2584\u2584 "]}},w5={name:"Slant",height:5,chars:{A:[" ___ "," / | "," / /| | ","/ ___ | ","/_/ |_| "],B:[" ___ "," / _ ) "," / _ | ","/ /_) | ","\\____/ "],C:[" _____ "," / ___/ ","/ / ","\\ \\___ "," \\____/ "],D:[" ___ "," / _ \\ "," / // / ","/ /\\_/ ","\\___/ "],E:[" ____ "," / __/ "," / _/ ","/___/ "," "],F:[" ____ "," / __/ "," / _/ ","/_/ "," "],G:[" _____ "," / ___/ ","/ (_ / ","\\___/ "," "],H:[" __ __ "," / // / "," / _ / ","/_//_/ "," "],I:[" __ "," / / "," / / ","/_/ "," "],J:[" __ "," __ / / ","/ /_/ / ","\\____/ "," "],K:[" __ __ "," / //_/ "," / ,< ","/_/|_| "," "],L:[" __ "," / / "," / /__ ","/____/ "," "],M:[" __ __ "," / |/ | "," / /|_/ / ","/_/ /_/ "," "],N:[" _ __ "," / |/ / "," / / ","/_/|_/ "," "],O:[" ____ "," / __ \\ ","/ /_/ / ","\\____/ "," "],P:[" ___ "," / _ \\ "," / ___/ ","/_/ "," "],Q:[" ____ "," / __ \\ ","/ /_/ / ","\\___\\_\\ "," "],R:[" ___ "," / _ \\ "," / , _/ ","/_/|_| "," "],S:[" ____ "," / __/ "," \\__ \\ ","/____/ "," "],T:[" ______ ","/_ __/ "," / / ","/_/ "," "],U:[" __ __ "," / / / / ","/ /_/ / ","\\____/ "," "],V:[" _ __ ","| | / / ","| |/ / ","|___/ "," "],W:[" _ __ ","| | /| / / ","| |/ |/ / ","|__/|__/ "," "],X:[" _ __ "," | |/ / "," _> < ","/_/|_| "," "],Y:["__ __ ","\\ \\ / / "," \\_ / "," /_/ "," "],Z:[" ____ ","/_ / "," / /_ ","/___/ "," "]," ":[" "," "," "," "," "],0:[" __ ","/ /\\ ","\\/_/ "," "," "],1:[" _ ","/ | ","| | ","|_| "," "],2:[" __ ","|_ | ","/ _/ ","\\__| "," "],3:[" __ ","|_ / "," _|\\ ","|__/ "," "],4:[" _ _ ","| | |","|_ |"," |_|"," "],5:[" __ ","| _| ","\\_ \\ ","|__/ "," "],6:[" __ ","/ _| ","| _ |","\\__/ "," "],7:[" ___ ","|_ / "," / / ","/_/ "," "],8:[" __ ","(_ ) ","/ _ |","\\__/ "," "],9:[" __ ","/ _ \\","\\_, /","/___/"," "],".":[" "," "," _ ","(_) "," "],"!":[" _ ","| | ","|_| ","(_) "," "],"-":[" "," "," _____ "," "," "],":":[" "," _ ","(_) ","(_) "," "],_:[" "," "," "," ______ "," "]}},y5={name:"Calvin S",height:4,chars:{A:[" ___ ","| . |","| |","|_|_|"],B:[" ___ ","| . >","| . >","|___>"],C:[" ___ ","| _>","| <_ ","|___>"],D:[" ___ ","| . \\ ","| | | ","|___/ "],E:[" ___ ","| __>","| _> ","|___>"],F:[" ___ ","| __>","| _> ","|_| "],G:[" ___ ","| . >","| . |","|___|"],H:[" _ _ ","| || |","| >< |","|_||_|"],I:[" _ ","| |","| |","|_|"],J:[" _ "," | |","|_| |","|___|"],K:[" _ _ ","| |/ >","| |\\ >","|_| \\_>"],L:[" _ ","| | ","| |_ ","|___| "],M:[" _ _ ","| ' ' |","| . . |","|_|_|_|"],N:[" _ _ ","| \\| |","| . |","|_|\\_|"],O:[" ___ ","| . |","| . |","|___|"],P:[" ___ ","| . >","| _>","|_| "],Q:[" ___ ","| . |","| . |","|_\\_\\"],R:[" ___ ","| . >","| >","|_\\_>"],S:[" ___ ","| __>","<__. |","<___>"],T:[" ___ ","|_ _|"," | | "," |_| "],U:[" _ _ ","| || |","| || |","|____>"],V:[" _ _ ","| || |","\\ \\/ /"," \\__/ "],W:[" _ _ ","| | | |","| |/\\| |","\\_/\\_/ "],X:[" _ _ ","\\ \\/ /"," > < ","/_/\\_\\"],Y:[" _ _ ","\\ \\/ /"," \\ / "," \\/ "],Z:[" ___ ","|_ |"," / / ","|___|"]," ":[" "," "," "," "],0:[" ___ ","| . |","| . |","|___|"],1:[" _ ","| | ","| | ","|_| "],2:[" ___ ","|_ |","| _/|","|___|"],3:[" ___ ","|__ \\ "," __) |","|___/ "],4:[" _ _ ","| | |","|_ |"," |_|"],5:[" ___ ","| __|","|__ |","|___|"],6:[" _ "," / | ","| _ |","|___|"],7:[" ___ ","|_ |"," | |"," |_|"],8:[" ___ ","| _ |","| _ |","|___|"],9:[" ___ ","| _ |","|__ |","|___|"],".":[" "," "," "," ."],"!":[" ! "," ! "," "," ! "],"-":[" "," "," --- "," "],":":[" "," : "," "," : "],_:[" "," "," "," ___ "]}},x5={name:"Small",height:4,chars:{A:[" "," /\\ ","/--\\"," "],B:[" __ ","|__)","|__)"," "],C:[" __ ","| ","|__ "," "],D:[" __ ","| \\","|_/"," "],E:[" __ ","|_ ","|__"," "],F:[" __ ","|_ ","| "," "],G:[" __ ","/ _ ","\\_|"," "],H:[" ","|__|","| |"," "],I:[" _ ","| |","|_|"," "],J:[" _ "," | ","\\_| "," "],K:[" ","|/ ","|\\ "," "],L:[" ","| ","|__ "," "],M:[" ","|\\/|","| | "," "],N:[" ","|\\ | ","| \\| "," "],O:[" __ ","/ \\","\\__/"," "],P:[" __ ","|__)","| "," "],Q:[" __ ","/ \\","\\_\\/"," "],R:[" __ ","|__)","|\\ "," "],S:[" __ ","(__ "," __)"," "],T:["___ "," | "," | "," "],U:[" ","| |","\\__/"," "],V:[" ","\\ / "," \\/ "," "],W:[" ","\\ /"," \\/\\/ "," "],X:[" ","\\/ ","/\\ "," "],Y:[" ","\\_/ "," | "," "],Z:["___ "," _/ ","/__ "," "]," ":[" "," "," "," "],0:[" _ ","/ \\","\\_/"," "],1:[" "," /|"," |"," "],2:[" _ "," _)","(_ "," "],3:[" _ "," _)"," _)"," "],4:[" ","|_|"," | "," "],5:[" _ ","|_ "," _)"," "],6:[" _ ","|_ ","|_)"," "],7:["__ "," / ","/ "," "],8:[" _ ","(_)","(_)"," "],9:[" _ ","(_|"," _|"," "],".":[" "," ",". "," "],"!":[" ","! ",". "," "],"-":[" "," ","--- "," "],":":[" ",": ",": "," "],_:[" "," "," ","___ "]}},v5={name:"Ogre",height:5,chars:{A:[" _ "," / \\ ","/ _ \\ ","| |_| |","|_| |_|"],B:[" ___ ","| _ ) ","| _ \\ ","|____/ "," "],C:[" ___ "," / __| ","| (__ "," \\___| "," "],D:[" ___ ","| _ \\ ","| | | ","|___/ "," "],E:[" ___ ","| __| ","| _| ","|___| "," "],F:[" ___ ","| __| ","| _| ","|_| "," "],G:[" ___ "," / __| ","| |___ "," \\____| "," "],H:[" _ _ ","| || | ","| __ | ","|_||_| "," "],I:[" ___ ","|_ _| "," | | ","|___| "," "],J:[" _ "," | | "," | | ","|__/ "," "],K:[" _ _ ","| |/ / ","| ' < ","|_|\\_\\ "," "],L:[" _ ","| | ","| |__ ","|____| "," "],M:[" __ __ ","| \\/ | ","| |\\/| | ","|_| |_| "," "],N:[" _ _ ","| \\ | | ","| .\\| | ","|_|\\_| "," "],O:[" ___ "," / _ \\ ","| |_| |"," \\___/ "," "],P:[" ___ ","| _ \\ ","| _/ ","|_| "," "],Q:[" ___ "," / _ \\ ","| |_| |"," \\__\\_\\"," "],R:[" ___ ","| _ \\ ","| / ","|_\\_\\ "," "],S:[" ___ ","/ __| ","\\__ \\ ","|___/ "," "],T:[" _____ ","|_ _| "," | | "," |_| "," "],U:[" _ _ ","| || | ","| \\/ | "," \\__/ "," "],V:["__ __ ","\\ \\ / / "," \\ V / "," \\_/ "," "],W:["__ __ ","\\ \\ / / "," \\ \\/\\/ / "," \\_/\\_/ "," "],X:["__ __ ","\\ \\/ / "," > < ","/_/\\_\\ "," "],Y:["__ __ ","\\ \\ / / "," \\_ / "," |_| "," "],Z:[" ____ ","|_ / "," / / ","/____| "," "]," ":[" "," "," "," "," "],0:[" __ "," / \\ ","| () |"," \\__/ "," "],1:[" _ ","/ | ","| | ","|_| "," "],2:[" ___ ","|_ ) "," / / ","/___| "," "],3:[" ___ ","|__ / "," |_ \\ ","|___/ "," "],4:[" _ _ ","| | | ","|_ | "," |_| "," "],5:[" ___ ","| __| ","|__ \\ ","|___/ "," "],6:[" __ "," / / ","| _ \\ "," \\__/ "," "],7:[" ____ ","|__ |"," / / "," /_/ "," "],8:[" __ "," / _ \\","| (_) |"," \\___/ "," "],9:[" __ "," / _ \\","| (_) |"," \\__, |"," /_/ "],".":[" "," "," _ ","(_)"," "],"!":[" _ ","| | ","|_| ","(_) "," "],"-":[" "," "," _____ ","|_____|"," "],":":[" "," _ ","(_) ","(_) "," "],_:[" "," "," "," ______ ","|______|"]}},B5={"ANSI Shadow":b5,Block:C5,Slant:w5,"Calvin S":y5,Small:x5,Ogre:v5,"DOS Rebel":q2,Ghost:K2,Bloody:J2,Electronic:Q2,"Sub-Zero":Z2,"Larry 3D":U2,Colossal:G2,Isometric1:V2},ju=B5,I5="ANSI Shadow";function M5(u,e){let t=u.split(`
|
|
4
|
+
`);if(t.length===0)throw new Error(`parseFLF: empty font data for "${e}"`);let n=t[0];if(!n.startsWith("flf2"))throw new Error(`parseFLF: invalid FLF header for "${e}": ${n}`);let o=n.charAt(5),r=n.slice(6).trim().split(/\s+/),s=parseInt(r[0],10),i=parseInt(r[4],10)||0;if(isNaN(s)||s<=0)throw new Error(`parseFLF: invalid height in header for "${e}"`);let a=1+i,c={},l=new Set;for(let p=65;p<=90;p++)l.add(p);for(let p=48;p<=57;p++)l.add(p);l.add(32);let f="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";for(let p of f)l.add(p.charCodeAt(0));let _=a;for(let p=32;p<=126&&!(_+s>t.length);p++){let m=[];for(let g=0;g<s;g++){let F=t[_+g]??"";F.endsWith("@@")?F=F.slice(0,-2):F.endsWith("@")&&(F=F.slice(0,-1)),o&&o!==" "&&(F=F.split(o).join(" ")),m.push(F)}if(_+=s,l.has(p)){let g=String.fromCharCode(p);c[g]=m}}return{name:e,height:s,chars:c}}function Cu(u){return u.toLowerCase().replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function A5(u){return!Array.isArray(u)&&Array.isArray(u.art)}function P5(u){if(Array.isArray(u))return!1;let e=u;return e.small!==void 0||e.medium!==void 0||e.large!==void 0||e.art!==void 0||e.author!==void 0||e.source!==void 0}var E5=class{fonts=new Map;scenes=new Map;icons=new Map;patterns=new Map;register(u,e,t,n="custom"){let o=Cu(e);switch(u){case"font":{this.fonts.has(o)&&process.stderr.write(`[art-registry] warning: font "${o}" overwritten (source: ${n})
|
|
5
|
+
`);let r;typeof t=="string"?r=M5(t,o):r=t,this.fonts.set(o,{font:r,source:n,author:void 0});break}case"scene":{this.scenes.has(o)&&process.stderr.write(`[art-registry] warning: scene "${o}" overwritten (source: ${n})
|
|
6
|
+
`);let r;if(Array.isArray(t))r={art:t,source:n};else if(A5(t))r={...t,source:t.source??n};else throw new Error(`Invalid scene data for "${e}"`);this.scenes.set(o,{scene:r,source:n});break}case"icon":{this.icons.has(o)&&process.stderr.write(`[art-registry] warning: icon "${o}" overwritten (source: ${n})
|
|
7
|
+
`);let r;if(Array.isArray(t))r=S5(t,n);else if(P5(t))r={...t,source:t.source??n};else throw new Error(`Invalid icon data for "${e}"`);this.icons.set(o,{icon:r,source:n});break}case"pattern":{this.patterns.has(o)&&process.stderr.write(`[art-registry] warning: pattern "${o}" overwritten (source: ${n})
|
|
8
|
+
`);let r=t;this.patterns.set(o,{pattern:{...r,source:r.source??n},source:n});break}}}get(u,e){let t=Cu(e),n=this.mapFor(u),o=n.get(t);if(o)return this.unwrapEntry(u,o);if(e.includes("/")){let r=Cu(e.replace("/","-")),s=n.get(r);if(s)return this.unwrapEntry(u,s)}for(let[r,s]of n)if(r.endsWith(`-${t}`)||r.endsWith(`/${t}`))return this.unwrapEntry(u,s);return null}has(u,e){return this.get(u,e)!==null}list(u){if(u)return Array.from(this.mapFor(u).keys()).sort();let e=new Set;for(let t of this.fonts.keys())e.add(t);for(let t of this.scenes.keys())e.add(t);for(let t of this.icons.keys())e.add(t);for(let t of this.patterns.keys())e.add(t);return Array.from(e).sort()}getInfo(u,e){let t=Cu(e),o=this.mapFor(u).get(t);if(!o)return null;let r={name:t,type:u,source:""};switch(u){case"font":{let s=o;r.source=s.source,r.author=s.author;break}case"scene":{let s=o;r.source=s.source,r.author=s.scene.author,r.description=s.scene.description;break}case"icon":{let s=o;r.source=s.source,r.author=s.icon.author;break}case"pattern":{let s=o;r.source=s.source,r.author=s.pattern.author;break}}return r}loadPack(u){let e=`pack:${u.name}`;if(u.fonts){for(let[t,n]of Object.entries(u.fonts))if(this.register("font",t,n,e),u.author){let o=Cu(t),r=this.fonts.get(o);r&&!r.author&&(r.author=u.author)}}if(u.scenes)for(let[t,n]of Object.entries(u.scenes))this.register("scene",t,n,e);if(u.icons)for(let[t,n]of Object.entries(u.icons))this.register("icon",t,n,e);if(u.patterns)for(let[t,n]of Object.entries(u.patterns))this.register("pattern",t,n,e)}clear(){this.fonts.clear(),this.scenes.clear(),this.icons.clear(),this.patterns.clear()}mapFor(u){switch(u){case"font":return this.fonts;case"scene":return this.scenes;case"icon":return this.icons;case"pattern":return this.patterns}}unwrapEntry(u,e){switch(u){case"font":return e.font;case"scene":return e.scene;case"icon":return e.icon;case"pattern":return e.pattern}}};function S5(u,e){let t=u.length,n={source:e};return t<=4?n.small=u:t<=6?n.medium=u:n.large=u,n}var Gu=new E5;var X2={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",teeLeft:"\u2563",teeRight:"\u2560",teeUp:"\u2569",teeDown:"\u2566",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",teeLeft:"\u252B",teeRight:"\u2523",teeUp:"\u253B",teeDown:"\u2533",cross:"\u254B"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2504",vertical:"\u2506",teeLeft:"\u2524",teeRight:"\u251C",teeUp:"\u2534",teeDown:"\u252C",cross:"\u253C"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",teeLeft:"+",teeRight:"+",teeUp:"+",teeDown:"+",cross:"+"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",horizontal:" ",vertical:" ",teeLeft:" ",teeRight:" ",teeUp:" ",teeDown:" ",cross:" "}};function lu(u){return X2[u??"rounded"]??X2.rounded}function Vu(u,e={},t){let n=e.font??"ANSI Shadow",r=Gu.get("font",n)??ju[n]??ju[I5];if(!r)return[u];let s=u.toUpperCase(),i=Array(r.height).fill("");for(let l of s){let f=r.chars[l]??r.chars[" "]??Array(r.height).fill(" "),_=Math.max(0,...f.map(p=>(p??"").length));for(let p=0;p<r.height;p++){let m=f[p]??"";i[p]+=m+" ".repeat(Math.max(0,_-m.length))}}for(i=i.map(l=>l.trimEnd());i.length>0&&i[i.length-1]==="";)i.pop();let a=Math.max(0,...i.map(l=>l.length));i=i.map(l=>l+" ".repeat(Math.max(0,a-l.length)));let c=e.width??t;return c!==void 0&&Math.max(0,...i.map(f=>y(f)))>c?[u]:(e.shadow&&(i=D5(i)),e.border&&e.border!=="none"&&(i=T5(i,e.border)),i)}function D5(u){let e=[];for(let n=0;n<u.length;n++)e.push(u[n]+" ");let t=Math.max(0,...u.map(n=>y(n)));return e.push(" "+"\u2591".repeat(t)),e}function T5(u,e){let t=lu(e),n=Math.max(0,...u.map(s=>y(s))),o=n+2,r=[];r.push(t.topLeft+t.horizontal.repeat(o)+t.topRight);for(let s of u){let i=s+" ".repeat(Math.max(0,n-y(s)));r.push(t.vertical+" "+i+" "+t.vertical)}return r.push(t.bottomLeft+t.horizontal.repeat(o)+t.bottomRight),r}function qu(u,e){if(u.length===0)return u;let t=Math.max(0,...u.map(r=>y(r))),n=Math.max(0,Math.floor((e-t)/2)),o=" ".repeat(n);return u.map(r=>{if(y(r)>e){let i=0,a="",c=!1;for(let l of r){if(l==="\x1B"){c=!0,a+=l;continue}if(c){a+=l,l==="m"&&(c=!1);continue}let f=cu(l.codePointAt(0)??0);if(i+f>e)break;a+=l,i+=f}return a+"\x1B[0m"}return o+r})}o8();Ku();Ju();Zu();import{readFileSync as W5,existsSync as j5}from"fs";import{resolve as N5}from"path";import{EventEmitter as U5}from"events";import{EventEmitter as q5}from"events";import{createServer as oe}from"http";import{exec as gt}from"child_process";var b8={};i8(b8,{defaultTheme:()=>Eu,themes:()=>Pu});var Pu,Eu,Yu=s8({"src/style/theme.ts"(){"use strict";Pu={cyberpunk:{accent:"#ff2a6d",accentDim:"#b91d4f",text:"#05d9e8",muted:"#0abdc6",subtle:"#01579b",success:"#05d9e8",warning:"#d1f7ff",error:"#ff2a6d",border:"#01579b",bg:"#01012b"},dracula:{accent:"#ff79c6",accentDim:"#bd93f9",text:"#f8f8f2",muted:"#6272a4",subtle:"#44475a",success:"#50fa7b",warning:"#f1fa8c",error:"#ff5555",border:"#6272a4",bg:"#282a36"},nord:{accent:"#88c0d0",accentDim:"#5e81ac",text:"#eceff4",muted:"#81a1c1",subtle:"#4c566a",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",border:"#4c566a",bg:"#2e3440"},monokai:{accent:"#f92672",accentDim:"#ae81ff",text:"#f8f8f2",muted:"#75715e",subtle:"#49483e",success:"#a6e22e",warning:"#e6db74",error:"#f92672",border:"#75715e",bg:"#272822"},solarized:{accent:"#268bd2",accentDim:"#2aa198",text:"#839496",muted:"#657b83",subtle:"#586e75",success:"#859900",warning:"#b58900",error:"#dc322f",border:"#586e75",bg:"#002b36"},gruvbox:{accent:"#fe8019",accentDim:"#d65d0e",text:"#ebdbb2",muted:"#a89984",subtle:"#504945",success:"#b8bb26",warning:"#fabd2f",error:"#fb4934",border:"#504945",bg:"#282828"},catppuccin:{accent:"#f5c2e7",accentDim:"#cba6f7",text:"#cdd6f4",muted:"#a6adc8",subtle:"#45475a",success:"#a6e3a1",warning:"#f9e2af",error:"#f38ba8",border:"#585b70",bg:"#1e1e2e"},tokyoNight:{accent:"#7aa2f7",accentDim:"#bb9af7",text:"#c0caf5",muted:"#565f89",subtle:"#3b4261",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",border:"#3b4261",bg:"#1a1b26"},rosePine:{accent:"#ebbcba",accentDim:"#c4a7e7",text:"#e0def4",muted:"#908caa",subtle:"#6e6a86",success:"#9ccfd8",warning:"#f6c177",error:"#eb6f92",border:"#6e6a86",bg:"#191724"},hacker:{accent:"#00ff41",accentDim:"#008f11",text:"#00ff41",muted:"#008f11",subtle:"#003b00",success:"#00ff41",warning:"#ccff00",error:"#ff0000",border:"#008f11",bg:"#0d0208"}},Eu=Pu.dracula}}),k5=null;function c8(u){k5=u}var l8=!1,f8=new Set,Ru=null,Xu=new Map,$5=new Map;function h8(u,e){Xu.has(u)||Xu.set(u,new Set),Xu.get(u).add(e)}var Y5=0,s2=null;function d8(u){s2=u}function d2(u){let e=`state-${Y5++}`,t={...u},n=new Map,o=new Set,r=!1,s=new Map;function i(l,f,_){if(r){s.set(l,{newVal:f,oldVal:_});return}let p=n.get(l);if(p)for(let m of p)m(f,_);for(let m of o)m(l,f);s2?.()}function a(){let l=new Map(s);s.clear();for(let[f,{newVal:_,oldVal:p}]of l){let m=n.get(f);if(m)for(let g of m)g(_,p);for(let g of o)g(f,_)}l.size>0&&s2?.()}let c={_id:e,get(l){if(l===void 0){if(l8&&(Ru===null||Ru===e))for(let f of Object.keys(t))f8.add(f),h8(e,f);return{...t}}return l8&&(Ru===null||Ru===e)&&(f8.add(l),h8(e,l)),t[l]},set(l,f){let _=t[l];_!==f&&(t[l]=f,i(l,f,_))},update(l,f){let _=t[l],p=f(_);_!==p&&(t[l]=p,i(l,p,_))},batch(l){r=!0;try{l()}finally{r=!1,a()}},on(l,f){return l==="*"?(o.add(f),()=>o.delete(f)):(n.has(l)||n.set(l,new Set),n.get(l).add(f),()=>n.get(l)?.delete(f))},keys(){return Object.keys(t)}};return $5.set(e,c),c}function H5(u){let e={};for(let t of u.split(`
|
|
9
|
+
`)){let n=t.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o<0)continue;let r=n.substring(0,o).trim(),s=n.substring(o+1).trim();if(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))s=s.slice(1,-1);else{let i=s.indexOf(" #");i>=0&&(s=s.substring(0,i).trim())}e[r]=s}return e}function _2(u){let e=u??process.cwd(),t=process.env.NODE_ENV??"",n=[".env",".env.local"];t==="production"?n.push(".env.production"):t==="development"&&n.push(".env.development");for(let o of n){let r=N5(e,o);if(j5(r))try{let s=W5(r,"utf-8"),i=H5(s);for(let[a,c]of Object.entries(i))process.env[a]===void 0&&(process.env[a]=c)}catch{}}}Yu();function z5(){let u=!!process.stdout.isTTY,e=process.env,t=e.TERM_PROGRAM??"",n=t==="Apple_Terminal",o=t||e.TERM||"unknown",r="none";e.NO_COLOR!==void 0?r="none":u&&(n?r="256":e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||t==="iTerm.app"||t==="Hyper"||t==="WezTerm"||t==="WarpTerminal"||e.WT_SESSION!==void 0||e.TERM?.includes("24bit")||e.TERM?.includes("truecolor")?r="truecolor":e.TERM?.includes("256color")?r="256":u&&(r="16"));let s=e.LANG?.includes("UTF-8")||e.LANG?.includes("utf8")||e.LC_ALL?.includes("UTF-8")||t==="iTerm.app"||t==="WezTerm"||e.WT_SESSION!==void 0||process.platform==="darwin";return{colorDepth:r,unicode:!!s,columns:process.stdout.columns||80,rows:process.stdout.rows||24,isTTY:u,terminalName:o,isAppleTerminal:n}}var G5=class extends U5{started=!1;rawModeWas;start(){this.started||(this.started=!0,process.stdin.isTTY&&(this.rawModeWas=process.stdin.isRaw,process.stdin.setRawMode(!0)),process.stdin.resume(),process.stdin.setEncoding("utf-8"),process.stdin.on("data",this.handleData))}stop(){this.started&&(this.started=!1,process.stdin.removeListener("data",this.handleData),process.stdin.isTTY&&this.rawModeWas!==void 0&&process.stdin.setRawMode(this.rawModeWas),process.stdin.pause())}handleData=u=>{for(let e of V5(u))this.emit("keypress",e)}};function V5(u){let e=[];if(u==="\x1B[A")e.push(H("up","",!1,!1,!1,u));else if(u==="\x1B[B")e.push(H("down","",!1,!1,!1,u));else if(u==="\x1B[C")e.push(H("right","",!1,!1,!1,u));else if(u==="\x1B[D")e.push(H("left","",!1,!1,!1,u));else if(u==="\r"||u===`
|
|
10
|
+
`)e.push(H("return","",!1,!1,!1,u));else if(u==="\x1B")e.push(H("escape","",!1,!1,!1,u));else if(u==="\x7F"||u==="\b")e.push(H("backspace","",!1,!1,!1,u));else if(u===" ")e.push(H("tab","",!1,!1,!1,u));else if(u==="\x1B[Z")e.push(H("tab","",!1,!1,!0,u));else if(u==="\x1B[3~")e.push(H("delete","",!1,!1,!1,u));else if(u==="\x1B[H"||u==="\x1B[1~"||u==="\x1BOH")e.push(H("home","",!1,!1,!1,u));else if(u==="\x1B[F"||u==="\x1B[4~"||u==="\x1BOF")e.push(H("end","",!1,!1,!1,u));else if(u===" ")e.push(H("space"," ",!1,!1,!1,u));else for(let t=0;t<u.length;t++){let n=u[t],o=n.charCodeAt(0);if(o<=26&&o>0){let r=String.fromCharCode(o+96);e.push(H(r,n,!0,!1,!1,n))}else e.push(H(n,n,!1,!1,!1,n))}return e}function H(u,e,t,n,o,r){return{name:u,char:e,ctrl:t,meta:n,shift:o,sequence:r}}var u2=new G5,e2="__terminaltui_screen__",K5=class extends q5{_size;constructor(){super(),this._size=this.measure()}get size(){return this._size}get columns(){return this._size.columns}get rows(){return this._size.rows}attachListeners(){let u=()=>{this._size=this.measure(),this.emit("resize",this._size)};process.stdout.on("resize",u),typeof process.on=="function"&&process.on("SIGWINCH",u)}measure(){return{columns:process.stdout.columns||80,rows:process.stdout.rows||24}}},vu;globalThis[e2]?vu=globalThis[e2]:(vu=new K5,vu.attachListeners(),globalThis[e2]=vu);var C8=vu;function eu(){return C8.size}var J5=class{listeners=new Map;on(u,e){return this.listeners.has(u)||this.listeners.set(u,new Set),this.listeners.get(u).add(e),()=>this.off(u,e)}off(u,e){this.listeners.get(u)?.delete(e)}emit(u,...e){this.listeners.get(u)?.forEach(t=>{try{t(...e)}catch{}})}once(u,e){let t=(...n)=>{this.off(u,t),e(...n)};return this.on(u,t)}removeAll(u){u?this.listeners.delete(u):this.listeners.clear()}},_8=new J5,Q5=class{pages=[];_currentPage="";history=[];get currentPage(){return this._currentPage}get currentIndex(){return this.pages.indexOf(this._currentPage)}get pageCount(){return this.pages.length}registerPages(u){this.pages=[...u]}navigate(u){return this.pages.includes(u)?(this.history.push(this._currentPage),this._currentPage=u,_8.emit("navigate",{from:this.history[this.history.length-1],to:u}),!0):!1}navigateByIndex(u){return u<0||u>=this.pages.length?!1:this._currentPage===this.pages[u]?!0:this.navigate(this.pages[u])}back(){if(this.history.length===0)return!1;let u=this.history.pop(),e=this._currentPage;return this._currentPage=u,_8.emit("navigate",{from:e,to:u}),!0}home(){return this._currentPage===""||(this.history=[],this._currentPage=""),!0}isHome(){return this._currentPage===""}getPageId(u){return this.pages[u]}getAllPages(){return[...this.pages]}},Z5=class{items=[];_focusIndex=0;get focusedId(){return this.items[this._focusIndex]}get focusIndex(){return this._focusIndex}set focusIndex(u){u>=0&&u<this.items.length&&(this._focusIndex=u)}setItems(u){this.items=[...u],this._focusIndex>=this.items.length&&(this._focusIndex=Math.max(0,this.items.length-1))}focusNext(){if(this.items.length!==0)return this._focusIndex=(this._focusIndex+1)%this.items.length,this.items[this._focusIndex]}focusPrev(){if(this.items.length!==0)return this._focusIndex=(this._focusIndex-1+this.items.length)%this.items.length,this.items[this._focusIndex]}focusFirst(){return this._focusIndex=0,this.items[0]}focusLast(){return this._focusIndex=Math.max(0,this.items.length-1),this.items[this._focusIndex]}isFocused(u){return this.items[this._focusIndex]===u}get count(){return this.items.length}},X5=class{animations=new Map;timer=null;fps=30;running=!1;start(){if(this.running)return;this.running=!0;let u=Math.floor(1e3/this.fps);this.timer=setInterval(()=>this.tick(),u)}stop(){this.running=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.animations.clear()}add(u,e,t,n){this.animations.set(u,{id:u,totalFrames:e,onFrame:t,onComplete:n,currentFrame:0}),this.running||this.start()}remove(u){this.animations.delete(u),this.animations.size===0&&this.stop()}tick(){let u=[];for(let[e,t]of this.animations)t.onFrame(t.currentFrame,t.totalFrames,t.currentFrame/this.fps),t.currentFrame++,t.currentFrame>=t.totalFrames&&(u.push(e),t.onComplete?.());for(let e of u)this.animations.delete(e);this.animations.size===0&&this.stop()}get isRunning(){return this.running}get activeCount(){return this.animations.size}},ue=new X5,ee=class{_mode="navigation";_editingId=null;get mode(){return this._mode}get editingId(){return this._editingId}get isEditing(){return this._mode==="editing"}get isNavigating(){return this._mode==="navigation"}enterEdit(u){this._mode="editing",this._editingId=u}exitEdit(){this._mode="navigation",this._editingId=null}reset(){this._mode="navigation",this._editingId=null}},te=class{_notifications=[];get current(){return this.prune(),this._notifications[0]??null}get all(){return this.prune(),[...this._notifications]}success(u,e=3e3){this._notifications.push({message:u,type:"success",createdAt:Date.now(),duration:e})}error(u,e=4e3){this._notifications.push({message:u,type:"error",createdAt:Date.now(),duration:e})}info(u,e=3e3){this._notifications.push({message:u,type:"info",createdAt:Date.now(),duration:e})}prune(){let u=Date.now(),e=this._notifications.length;return this._notifications=this._notifications.filter(t=>u-t.createdAt<t.duration),this._notifications.length!==e}clear(){this._notifications=[]}},ne=class{states=new Map;refreshTimers=new Map;getState(u){return this.states.get(u)}needsLoad(u){let e=this.states.get(u);return!e||e.status==="loading"}load(u,e,t){this.states.get(u)?.status!=="loading"&&(this.states.set(u,{status:"loading"}),e().then(o=>{this.states.set(u,{status:"loaded",content:o,lastLoadTime:Date.now()}),t()}).catch(o=>{this.states.set(u,{status:"error",error:o instanceof Error?o:new Error(String(o))}),t()}))}setupRefresh(u,e,t,n){this.clearRefresh(u);let o=setInterval(()=>{let r=this.states.get(u);t().then(s=>{this.states.set(u,{status:"loaded",content:s,lastLoadTime:Date.now()}),n()}).catch(s=>{r?.content?this.states.set(u,{...r,lastLoadTime:Date.now()}):this.states.set(u,{status:"error",error:s instanceof Error?s:new Error(String(s))}),n()})},e);this.refreshTimers.set(u,o)}clearRefresh(u){let e=this.refreshTimers.get(u);e&&(clearInterval(e),this.refreshTimers.delete(u))}reload(u,e,t){this.states.delete(u),this.load(u,e,t)}cleanup(){for(let u of this.refreshTimers.values())clearInterval(u);this.refreshTimers.clear()}reset(u){this.states.delete(u),this.clearRefresh(u)}};function re(u){let e=u.indexOf(" ");if(e===-1)throw new Error(`Invalid API route key: "${u}". Expected format: "METHOD /path"`);let t=u.slice(0,e).toUpperCase(),n=u.slice(e+1).trim();if(!n.startsWith("/"))throw new Error(`API route path must start with "/": "${u}"`);let o=[],r=n.replace(/:(\w+)/g,(i,a)=>(o.push(a),"([^/]+)")),s=new RegExp(`^${r}$`);return{method:t,pattern:s,paramNames:o}}function se(u){let e=[];for(let[t,n]of Object.entries(u)){let{method:o,pattern:r,paramNames:s}=re(t);e.push({method:o,pattern:r,paramNames:s,handler:n})}return e}function ie(u,e,t){for(let n of u){if(n.method!==e)continue;let o=t.match(n.pattern);if(!o)continue;let r={};return n.paramNames.forEach((s,i)=>{r[s]=decodeURIComponent(o[i+1])}),{route:n,params:r}}return null}var w8=class{routes=[];server=null;port=0;registerRoutes(u){this.routes=se(u)}async start(){return new Promise((u,e)=>{this.server=oe((t,n)=>{this.handleRequest(t,n)}),this.server.on("error",e),this.server.listen(0,"127.0.0.1",()=>{let t=this.server.address();this.port=typeof t=="object"&&t?t.port:0,u(this.port)})})}async stop(){if(this.server)return new Promise(u=>{this.server.close(()=>u())})}getPort(){return this.port}getBaseUrl(){return`http://127.0.0.1:${this.port}`}async handleRequest(u,e){let t=new URL(u.url||"/",`http://127.0.0.1:${this.port}`),n=(u.method||"GET").toUpperCase(),o=t.pathname;if(e.setHeader("Access-Control-Allow-Origin","*"),e.setHeader("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, PATCH, OPTIONS"),e.setHeader("Access-Control-Allow-Headers","Content-Type"),e.setHeader("Content-Type","application/json"),n==="OPTIONS"){e.writeHead(204),e.end();return}let r=ie(this.routes,n,o);if(!r){e.writeHead(404),e.end(JSON.stringify({error:"Not found"}));return}let s={};t.searchParams.forEach((c,l)=>{s[l]=c});let i;["POST","PUT","PATCH"].includes(n)&&(i=await this.parseBody(u));let a={method:n,path:o,params:r.params,query:s,body:i,headers:u.headers};try{let c=await r.route.handler(a),l=JSON.stringify(c);e.writeHead(200),e.end(l)}catch(c){let l=c?.message||"Internal server error";e.writeHead(500),e.end(JSON.stringify({error:l}))}}parseBody(u){return new Promise((e,t)=>{let n="";u.on("data",o=>{n+=o.toString()}),u.on("end",()=>{if(!n){e(void 0);return}try{e(JSON.parse(n))}catch{e(n)}}),u.on("error",t)})}},i2="__terminaltui_api_base_url__";function a2(u){u?globalThis[i2]=u:delete globalThis[i2]}function ae(){return globalThis[i2]??null}function y8(u){let e=ae();return u.startsWith("/")&&e?`${e}${u}`:u}var ce=class{entries=new Map;get(u){let e=this.entries.get(u);if(e){if(Date.now()-e.timestamp>e.ttl){this.entries.delete(u);return}return e.data}}set(u,e,t){this.entries.set(u,{data:e,timestamp:Date.now(),ttl:t})}has(u){return this.get(u)!==void 0}delete(u){this.entries.delete(u)}clear(){this.entries.clear()}},pn=new ce,le="__terminaltui_fetcher_registry__";function x8(){let u=globalThis[le];if(u){for(let e of u.values())e.destroy();u.clear()}}function fe(u){let e=u??"";return{value:e,cursorPos:typeof e=="string"?e.length:0,error:null,open:!1,highlightIndex:0,scrollOffset:0}}function he(u,e){return u.name==="q"&&!u.ctrl||u.name==="c"&&u.ctrl?"quit":u.name==="escape"?e?"quit":"back":u.name==="backspace"?e?null:"back":u.name==="up"||u.name==="k"?"up":u.name==="down"||u.name==="j"?"down":u.name==="left"||u.name==="h"?"left":u.name==="right"||u.name==="l"?"right":u.name==="return"?"select":u.char===":"||u.char==="/"?"command":u.name==="tab"?u.shift?"up":"down":u.char==="g"&&!u.shift&&!u.ctrl?"home":u.char==="G"||u.char==="g"&&u.shift?"pageDown":u.char>="1"&&u.char<="9"?`jump${u.char}`:null}function ku(u,e,t){let n=t.find(i=>i.focusIndex===u);if(!n)return null;let o=t.filter(i=>i.focusIndex===u?!1:de(n,i,e));if(o.length===0)return null;let r=o[0],s=p8(n,r,e);for(let i=1;i<o.length;i++){let a=p8(n,o[i],e);a<s&&(r=o[i],s=a)}return r.focusIndex}function de(u,e,t){switch(t){case"right":return e.x>u.x;case"left":return e.x+e.width<u.x+u.width;case"down":return e.y>u.y;case"up":return e.y+e.height<u.y+u.height}}function p8(u,e,t){let n=u.x+u.width/2,o=u.y+u.height/2,r=e.x+e.width/2,s=e.y+e.height/2,i,a;return t==="left"||t==="right"?(i=Math.abs(r-n),a=Math.abs(s-o)):(i=Math.abs(s-o),a=Math.abs(r-n)),i+a*2}function E(u,e){let t=e.margin??0,n=typeof e.border=="boolean"?e.border?1:0:e.border??0,o=e.padding??0,r=t*2+n*2+o*2,s=Math.max(0,u-r);return{allocated:u,margin:t,border:n,padding:o,content:s}}var D={card:{padding:1,border:!0,margin:0},text:{padding:0,border:!1,margin:0},hero:{padding:0,border:!1,margin:0},table:{padding:0,border:!0,margin:0},quote:{padding:1,border:!0,margin:1},badge:{padding:0,border:!1,margin:0},progressBar:{padding:0,border:!1,margin:0},link:{padding:0,border:!1,margin:0},list:{padding:0,border:!1,margin:0},section:{padding:0,border:!1,margin:0},divider:{padding:0,border:!1,margin:0},spacer:{padding:0,border:!1,margin:0},timeline:{padding:1,border:!0,margin:1},gallery:{padding:0,border:!1,margin:0},image:{padding:0,border:!0,margin:0},markdown:{padding:0,border:!1,margin:0},menu:{padding:0,border:!1,margin:0},accordion:{padding:2,border:!1,margin:0},tabs:{padding:2,border:!1,margin:0},scrollView:{padding:0,border:!1,margin:0},textInput:{padding:1,border:!0,margin:0},textArea:{padding:1,border:!0,margin:0},select:{padding:1,border:!0,margin:0},checkbox:{padding:0,border:!1,margin:0},toggle:{padding:0,border:!1,margin:0},radioGroup:{padding:0,border:!1,margin:0},numberInput:{padding:1,border:!0,margin:0},searchInput:{padding:1,border:!0,margin:0},button:{padding:2,border:!0,margin:1},form:{padding:1,border:!0,margin:0},box:{padding:0,border:!1,margin:0}};function iu(u,e){let t=u.border??e.borderStyle??"rounded",n=lu(t),o=u.width??e.width,r=u.padding??1,s=Math.max(0,Math.floor((o-2)/2)),i=Math.min(r,s),a=E(o,{border:!0,padding:i}),c=a.content,l=u.borderColor??e.theme.border,f=[],_=Math.max(0,a.allocated-a.border*2);if(u.title){let F=` ${u.title} `,b="";u.titleRight&&(b=` ${u.titleRight} `);let C=Math.max(0,_-y(F)-y(b)-1);f.push(h(l)+n.topLeft+n.horizontal+d+h(e.theme.accent)+F+d+h(l)+n.horizontal.repeat(C)+(b?d+h(e.theme.muted)+b+d+h(l):"")+n.topRight+d)}else f.push(h(l)+n.topLeft+n.horizontal.repeat(_)+n.topRight+d);let p=[];for(let F of u.content)p.push(F);let m=u.height?Math.max(0,u.height-2):p.length+(i>0,0),g=Math.max(m,p.length);for(let F=0;F<g;F++){let b=p[F]??"",C=" ".repeat(i);f.push(h(l)+n.vertical+d+C+q(b,c)+C+h(l)+n.vertical+d),u.midSeparatorAfter!==void 0&&F===u.midSeparatorAfter&&f.push(h(l)+n.teeRight+n.horizontal.repeat(_)+n.teeLeft+d)}return f.push(h(l)+n.bottomLeft+n.horizontal.repeat(_)+n.bottomRight+d),f}function v8(u,e){if(!u.resultMessage)return[];let t=e.theme,n=E(e.width,D.form),o,r;switch(u.resultType){case"success":o="\u2713",r=t.success;break;case"error":o="\u2717",r=t.error;break;default:o="\u2139",r=t.accent;break}let s=[h(r)+o+" "+u.resultMessage+d];return iu({content:s,width:e.width,border:e.borderStyle??"rounded",padding:1,borderColor:r},e)}function _e(u){let e=[];for(let t of u)"id"in t&&t.type!=="form"&&t.type!=="button"&&e.push(t.id);return e}function p2(u){switch(u.type){case"textInput":case"textArea":return u.defaultValue??"";case"select":case"radioGroup":return u.defaultValue??"";case"checkbox":case"toggle":return u.defaultValue??!1;case"numberInput":return u.defaultValue??0;case"searchInput":return"";default:return}}function m8(u,e){let t=u.toLowerCase(),n=e.toLowerCase(),o=0;for(let r=0;r<n.length&&o<t.length;r++)n[r]===t[o]&&o++;return o===t.length}function c2(u,e,t){if(!e)return u.slice(0,t);let n=[];for(let o of u){let r=m8(e,o.label),s=o.keywords?.some(a=>m8(e,a))??!1,i=o.label.toLowerCase().includes(e.toLowerCase());if(r||s){let a=i?2:r?1:0;n.push({label:o.label,value:o.value,score:a})}}return n.sort((o,r)=>r.score-o.score),n.slice(0,t).map(o=>({label:o.label,value:o.value}))}function pe(u,e,t){let n=t.theme,o=[],r=!!t.focused,s=e.editing,a=E(t.width,D.searchInput).content,c=u.label??"",l="\u{1F50D}";c&&o.push(h(r?n.accent:n.text)+v+" "+c+d);let f;if(e.query.length===0&&!s)f=h(n.subtle)+L+(u.placeholder??"Search...")+d;else if(s){let b=Math.min(e.cursorPos,e.query.length),C=e.query.substring(0,b),w=e.query.substring(b);f=h(n.text)+C+h(n.accent)+"\u2588"+d+h(n.text)+w+d}else f=h(n.text)+e.query+d;let _=[f],p=u.maxResults??5;if(s||e.query.length>0){let b=e.filteredItems;if(b.length===0)_.push(h(n.subtle)+L+"No results"+d);else for(let C=0;C<b.length;C++){let w=b[C],x=C===e.highlightIndex,B=x?"\u276F ":" ",I=x?n.accent:n.text,P=O(w.label,Math.max(1,a-2));_.push(h(I)+(x?v:"")+B+P+d)}}let m=r?n.accent:n.border,g=_.length>1,F=iu({content:_,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:m,midSeparatorAfter:g?0:void 0},t);return o.push(...F),o}function me(u,e,t){let n=u.getInputState(e.id,e.defaultValue??""),o=n.value,r=n.cursorPos;if(t.name==="escape"){u.validateInput(e),u.inputMode.exitEdit();return}if(t.name==="return"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusNext();return}if(t.name==="up"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusPrev();return}if(t.name==="down"){u.validateInput(e),u.inputMode.exitEdit(),u.pageFocusNext();return}t.name==="backspace"?r>0&&(o=o.substring(0,r-1)+o.substring(r),r--):t.name==="delete"?r<o.length&&(o=o.substring(0,r)+o.substring(r+1)):t.name==="left"?r>0&&r--:t.name==="right"?r<o.length&&r++:t.name==="home"?r=0:t.name==="end"?r=o.length:t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(!e.maxLength||o.length<e.maxLength)&&(o=o.substring(0,r)+t.char+o.substring(r),r++),e.transform&&(o=e.transform(o),r=Math.min(r,o.length));let s=n.value!==o;n.value=o,n.cursorPos=r,n.error=null,s&&e.onChange&&e.onChange(o)}function ge(u,e,t){let n=u.getInputState(e.id,e.defaultValue??""),o=n.value,r=n.cursorPos;if(t.name==="escape"){u.validateInput(e),u.inputMode.exitEdit();return}if(t.name==="return")(!e.maxLength||o.length<e.maxLength)&&(o=o.substring(0,r)+`
|
|
11
|
+
`+o.substring(r),r++);else if(t.name==="backspace")r>0&&(o=o.substring(0,r-1)+o.substring(r),r--);else if(t.name==="delete")r<o.length&&(o=o.substring(0,r)+o.substring(r+1));else if(t.name==="left")r>0&&r--;else if(t.name==="right")r<o.length&&r++;else if(t.name==="up"){let i=o.substring(0,r).split(`
|
|
12
|
+
`);if(i.length>1){let a=i[i.length-1].length,c=i[i.length-2],l=Math.min(a,c.length);r=i.slice(0,-1).join(`
|
|
13
|
+
`).length-c.length+l,r<0&&(r=0)}}else if(t.name==="down"){let i=o.substring(0,r),a=o.substring(r),c=i.lastIndexOf(`
|
|
14
|
+
`)+1,l=r-c,f=a.indexOf(`
|
|
15
|
+
`);if(f>=0){let _=a.substring(f+1),p=_.indexOf(`
|
|
16
|
+
`),m=p>=0?p:_.length,g=Math.min(l,m);r=r+f+1+g}}else if(t.name==="home")r=o.substring(0,r).lastIndexOf(`
|
|
17
|
+
`)+1;else if(t.name==="end"){let a=o.substring(r).indexOf(`
|
|
18
|
+
`);r=a>=0?r+a:o.length}else t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(!e.maxLength||o.length<e.maxLength)&&(o=o.substring(0,r)+t.char+o.substring(r),r++);let s=n.value!==o;n.value=o,n.cursorPos=r,n.error=null,s&&e.onChange&&e.onChange(o)}function Fe(u,e,t){let n=u.getInputState(e.id,e.defaultValue??"");if(t.name==="escape"){n.open=!1,u.inputMode.exitEdit();return}if(!n.open){if(t.name==="return"){n.open=!0;let o=e.options.findIndex(r=>r.value===n.value);n.highlightIndex=o>=0?o:0}return}if(t.name==="up")n.highlightIndex=Math.max(0,n.highlightIndex-1);else if(t.name==="down")n.highlightIndex=Math.min(e.options.length-1,n.highlightIndex+1);else if(t.name==="return"){let o=e.options[n.highlightIndex];o&&(n.value=o.value,e.onChange?.(o.value)),n.open=!1,u.inputMode.exitEdit()}}function be(u,e,t){let n=u.getInputState(e.id,e.defaultValue??0),o=e.step??1,r=e.min??-1/0,s=e.max??1/0;if(t.name==="escape"){u.inputMode.exitEdit();return}if(t.name==="return"||t.name==="up"||t.name==="down"){u.inputMode.exitEdit(),t.name==="up"&&u.pageFocusPrev(),t.name==="down"&&u.pageFocusNext();return}if(t.name==="left"||t.char==="-")n.value=Math.max(r,n.value-o);else if(t.name==="right"||t.char==="+")n.value=Math.min(s,n.value+o);else if(t.char&&/[0-9]/.test(t.char)){let i=String(n.value)==="0"?t.char:String(n.value)+t.char,a=parseInt(i,10);isNaN(a)||(n.value=Math.max(r,Math.min(s,a)))}else if(t.name==="backspace"){let i=String(n.value).slice(0,-1);n.value=i?Math.max(r,Math.min(s,parseInt(i,10)||0)):0}}function Ce(u,e,t){let n=u.getInputState(e.id,""),o=n.value,r=n.cursorPos;if(t.name==="escape")return u.inputMode.exitEdit(),{};if(t.name==="return"){let s=e.maxResults??10,a=c2(e.items,o,s)[n.highlightIndex];return u.inputMode.exitEdit(),a?{action:"search",selected:a}:{}}if(t.name==="up")return n.highlightIndex=Math.max(0,n.highlightIndex-1),{};if(t.name==="down"){let s=e.maxResults??10,i=c2(e.items,o,s);return n.highlightIndex=Math.min(i.length-1,n.highlightIndex+1),{}}return t.name==="backspace"?r>0&&(o=o.substring(0,r-1)+o.substring(r),r--):t.name==="left"?r>0&&r--:t.name==="right"?r<o.length&&r++:t.char&&t.char.length===1&&!t.ctrl&&t.name!=="tab"&&(o=o.substring(0,r)+t.char+o.substring(r),r++),n.value=o,n.cursorPos=r,n.highlightIndex=0,{}}function we(u,e,t){let n=u.getInputState(e.id,e.defaultValue??"");if(t.name==="escape"){u.inputMode.exitEdit();return}if(t.name==="up"){n.highlightIndex>0?n.highlightIndex--:(u.inputMode.exitEdit(),u.pageFocusPrev());return}if(t.name==="down"){n.highlightIndex<e.options.length-1?n.highlightIndex++:(u.inputMode.exitEdit(),u.pageFocusNext());return}if(t.name==="return"||t.name==="space"){let o=e.options[n.highlightIndex];o&&(n.value=o.value,e.onChange?.(o.value));return}}function ye(u,e){if(e.name==="escape"){u.commandMode=!1,u.commandBuffer="",u.render();return}if(e.name==="return"){u.executeCommand(u.commandBuffer),u.commandMode=!1,u.commandBuffer="",u.render();return}if(e.name==="backspace"){u.commandBuffer=u.commandBuffer.slice(0,-1),u.render();return}if(e.char&&e.char.length===1&&!e.ctrl){u.commandBuffer+=e.char,u.render();return}}function xe(u,e){let t=u.router.isHome();if(!t){let o=u.getFocusedInputBlock();if(o&&u.isTextEntryType(o.type)&&u.isAutoEditKey(e)){let r=o.id;u.inputMode.enterEdit(r),u.getInputState(r,p2(o)),u.handleEditMode(e),u.render();return}}let n=he(e,t);if(n)switch(n){case"quit":u.stop();break;case"back":u.router.back()&&(u.scrollOffset=0,u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset(),u.render());break;case"up":if(t)u.focus.focusPrev();else{let o=ku(u.pageFocusIndex,"up",u.focusRects);o!==null?u.pageFocusIndex=o:u.pageFocusPrev()}u.render();break;case"down":if(t)u.focus.focusNext();else{let o=ku(u.pageFocusIndex,"down",u.focusRects);o!==null?u.pageFocusIndex=o:u.pageFocusNext()}u.render();break;case"left":if(!t){let o=u.pageFocusItems[u.pageFocusIndex];if(o?.kind==="block"&&o.block.type==="tabs"){let r=o.block,s=r.items.map(a=>a.label).join(","),i=u.tabState.get(s)??0;u.tabState.set(s,i>0?i-1:r.items.length-1)}else{let r=ku(u.pageFocusIndex,"left",u.focusRects);r!==null?u.pageFocusIndex=r:u.router.back()&&(u.scrollOffset=0,u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset())}}u.render();break;case"right":if(t){let o=u.focus.focusedId;o&&u.navigateToPage(o)}else{let o=u.pageFocusItems[u.pageFocusIndex];if(o?.kind==="block"&&o.block.type==="tabs"){let r=o.block,s=r.items.map(a=>a.label).join(","),i=u.tabState.get(s)??0;u.tabState.set(s,(i+1)%r.items.length)}else{let r=ku(u.pageFocusIndex,"right",u.focusRects);r!==null&&(u.pageFocusIndex=r)}}u.render();break;case"select":if(t){let o=u.focus.focusedId;o&&u.navigateToPage(o)}else u.handlePageSelect();u.render();break;case"home":u.router.isHome()||(u.pageFocusIndex=0,u.pageScrollOffset=0),u.render();break;case"pageDown":!u.router.isHome()&&u.pageFocusItems.length>0&&(u.pageFocusIndex=u.pageFocusItems.length-1),u.render();break;case"command":u.commandMode=!0,u.commandBuffer="",u.render();break;default:if(n.startsWith("jump")){let o=parseInt(n.replace("jump",""));if(u.router.isHome()){let r=o-1;if(r<u.focus.count){u.focus.focusIndex=r;let s=u.router.getPageId(r);s&&u.navigateToPage(s)}}u.render()}break}}function ve(u,e){let t=u.getFocusedInputBlock();if(!t){u.inputMode.exitEdit(),u.render();return}switch(t.type){case"textInput":me(u,t,e);break;case"textArea":ge(u,t,e);break;case"select":Fe(u,t,e);break;case"numberInput":be(u,t,e);break;case"searchInput":{let n=Ce(u,t,e);n.action==="search"&&n.selected&&Be(u,t,n.selected);break}case"radioGroup":we(u,t,e);break;default:e.name==="escape"&&u.inputMode.exitEdit();break}u.render()}function au(u){return u.toLowerCase().replace(/[^a-z0-9]/g,"")}function Be(u,e,t){if((e.action??(e.onSelect?"callback":"navigate"))==="callback"&&e.onSelect){e.onSelect(t.value);return}let o=t.value,r=u.site.pages.find(c=>c.id===o);if(r){u.router.navigate(o),u.enterPage(),u.showFeedback(`\u2192 ${r.title}`),u.render();return}if(t2(u,o,t.label)){u.showFeedback(t.label),u.render();return}let i=u.getCurrentPage(),a=i?typeof i.content=="function"?u.resolvedPageContent.get(i.id):i.content:null;if(a&&Bu(u,a,o,t.label)){u.render(),setTimeout(()=>{t2(u,o,t.label),u.showFeedback(t.label),u.render()},50);return}for(let c of u.site.pages){if(c.id===u.router.currentPage)continue;let l=typeof c.content=="function"?u.resolvedPageContent.get(c.id):c.content;if(l&&J(o,t.label,l)){u.router.navigate(c.id),u.enterPage(),t2(u,o,t.label),u.showFeedback(`\u2192 ${c.title} \u203A ${t.label}`),u.render();return}}e.onSelect&&e.onSelect(o),u.showFeedback(t.label)}function uu(u,e,t){if(!u)return!1;let n=au(u);return u.toLowerCase().includes(e)||n.includes(t)||t.includes(n)}function t2(u,e,t){let n=e.toLowerCase(),o=au(e),r=t.toLowerCase(),s=au(t);for(let a=0;a<u.pageFocusItems.length;a++){let c=u.pageFocusItems[a];if(c.kind==="block"){let l=c.block;if("id"in l&&l.id===e||l.type==="card"&&(uu(l.title,n,o)||uu(l.subtitle,n,o)||uu(l.title,s,s)||uu(l.subtitle,s,s))||l.type==="link"&&uu(l.label,n,o)||l.type==="hero"&&uu(l.title,n,o))return u.pageFocusIndex=a,!0}if(c.kind==="accordion-item"){let l=c.accordion.items[c.itemIndex].label,f=l.toLowerCase().replace(/[^a-z0-9]/g,""),_=n.replace(/[^a-z0-9]/g,"");if(l.toLowerCase().includes(n)||f.includes(_)||_.includes(f)||l.toLowerCase().startsWith(r.split(" \u2014 ")[0]?.trim().toLowerCase()??"\0")){u.pageFocusIndex=a;let p=c.accordion.items.map(m=>m.label).join(",");return u.accordionState.set(p,c.itemIndex),!0}}if(c.kind==="timeline-item"&&c.timeline.items[c.itemIndex].title.toLowerCase().includes(n))return u.pageFocusIndex=a,!0}let i=u.getCurrentPage();if(i){let a=typeof i.content=="function"?u.resolvedPageContent.get(i.id):i.content;if(a){let c=Ie(a,e,t,u);if(c>=0)return u.pageFocusIndex=c,!0}}return!1}function Bu(u,e,t,n){let o=t.toLowerCase(),r=au(t);for(let s of e){if(s.type==="tabs"){let i=s;for(let a=0;a<i.items.length;a++){let c=i.items[a].content;if(J(t,n,c)){let l=i.items.map(f=>f.label).join(",");return u.tabState.set(l,a),!0}}}if(s.type==="section"&&s.content&&Bu(u,s.content,t,n))return!0;if(s.type==="columns"){for(let i of s.panels)if(Bu(u,i.content,t,n))return!0}if(s.type==="split"){let i=s;if(Bu(u,i.config.first,t,n)||Bu(u,i.config.second,t,n))return!0}}return!1}function Ie(u,e,t,n){let o=e.toLowerCase(),r=au(e),s=au(t),i=0;for(let a of u)if(a.type==="grid"){let c=a;for(let l of c.config.items){let f=W(l.content);if(l.title&&(uu(l.title,o,r)||uu(l.title,s,s)))return i;i+=f}}else if(a.type==="columns")for(let c of a.panels){let l=W(c.content);if(c.title&&(uu(c.title,o,r)||uu(c.title,s,s)))return i;i+=l}else if(a.type==="split"){let c=a;i+=W(c.config.first),i+=W(c.config.second)}else if(a.type==="rows")for(let c of a.panels)i+=W(c.content);else i+=W([a]);return-1}function W(u){let e=0;for(let t of u)if(["card","link","hero","textInput","textArea","select","checkbox","toggle","radioGroup","numberInput","searchInput","button"].includes(t.type))e++;else if(t.type==="accordion")e+=t.items.length;else if(t.type==="timeline")e+=t.items.length;else if(t.type==="tabs")e++;else if(t.type==="section")e+=W(t.content);else if(t.type==="form")e+=W(t.fields);else if(t.type==="columns")for(let n of t.panels)e+=W(n.content);else if(t.type==="rows")for(let n of t.panels)e+=W(n.content);else if(t.type==="split")e+=W(t.config.first),e+=W(t.config.second);else if(t.type==="grid")for(let n of t.config.items)e+=W(n.content);else if(t.type==="panel")e+=W(t.config.content);else if(t.type==="box")e+=W(t.config.children);else if(t.type==="row")for(let n of t.cols)e+=W(n.content);else t.type==="container"&&(e+=W(t.content));return e}function J(u,e,t){let n=u.toLowerCase(),o=au(u);for(let r of t){if("id"in r&&r.id===u||r.type==="card"&&(uu(r.title,n,o)||uu(r.subtitle,n,o)))return!0;if(r.type==="link"){let s=au(r.label);if(r.label.toLowerCase().includes(n)||s.includes(o)||o.includes(s))return!0}if(r.type==="accordion")for(let s of r.items){let i=s.label.toLowerCase().replace(/[^a-z0-9]/g,"");if(s.label.toLowerCase().includes(n)||i.includes(o)||o.includes(i))return!0}if(r.type==="timeline"){for(let s of r.items)if(s.title.toLowerCase().includes(n))return!0}if(r.type==="section"&&J(u,e,r.content)||r.type==="form"&&J(u,e,r.fields))return!0;if(r.type==="columns"){for(let s of r.panels)if(J(u,e,s.content))return!0}if(r.type==="rows"){for(let s of r.panels)if(J(u,e,s.content))return!0}if(r.type==="split"){let s=r;if(J(u,e,s.config.first)||J(u,e,s.config.second))return!0}if(r.type==="grid"){for(let s of r.config.items)if(J(u,e,s.content))return!0}if(r.type==="panel"&&J(u,e,r.config.content)||r.type==="box"&&J(u,e,r.config.children))return!0;if(r.type==="row"){for(let s of r.cols)if(J(u,e,s.content))return!0}if(r.type==="container"&&J(u,e,r.content))return!0}return!1}function Me(u,e){if(e.length===0)return u;if(e.length===1)return u.map(o=>h(e[0])+o+d);let t=Math.max(...u.map(o=>o.length),2),n=zu(e,t);return u.map(o=>{let r="",s=!1;for(let i=0;i<o.length;i++)o[i]===" "?(s&&(r+=d,s=!1),r+=" "):(r+=h(n[i])+o[i],s=!0);return r+d})}var Ae={dots:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],bars:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E","\u258F"],braille:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"],circle:["\u25D0","\u25D3","\u25D1","\u25D2"],bounce:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"],line:["-","\\","|","/"]};function l2(u,e){let t=Ae[u];return t[e%t.length]}function f2(u,e,t){let n=[],o=t.theme,r=E(t.width,D.menu);for(let s=0;s<u.length;s++){let i=u[s],a=s===e,c=i.icon??"\u25C6",f=` [${`${s+1}`}]`;if(a){let p=Math.max(1,r.content-7-y(f)),m=O(i.label,p),g=h(o.accent)+"\u276F"+d,F=h(o.accent)+v+` ${c} `+d,b=h(o.accent)+v+m+d,C=h(o.muted)+L+f+d;n.push(` ${g}${F}${b}${C}`)}else{let p=Math.max(1,r.content-7-y(f)),m=O(i.label,p),g=h(o.muted)+` ${c} `+d,F=h(o.text)+m+d,b=h(o.subtle)+L+f+d;n.push(` ${g}${F}${b}`)}}return n}function B8(u,e){if(u===void 0||u==="auto")return"auto";if(typeof u=="number")return u;if(typeof u=="string"&&u.endsWith("%")){let n=parseFloat(u);if(!isNaN(n))return Math.floor(n/100*e)}let t=parseInt(u,10);return isNaN(t)?"auto":t}function I8(u,e,t){let n=Math.max(0,e-t),o=0,r=0;for(let a of u)a==="auto"?r++:o+=a;if(o>n&&o>0&&r===0){let a=n/o;return u.map(c=>Math.max(0,c==="auto"?0:Math.floor(c*a)))}let s=Math.max(0,n-o),i=r>0?Math.floor(s/r):0;return u.map(a=>Math.max(0,a==="auto"?i:a))}var Pe=10,Ee=3,$u=3;function Au(u,e,t){if(u.length===0)return[];if(u.length===1)return[{x:0,y:0,width:e,height:t,panel:u[0]}];let o=(u.length-1)*$u,r=Math.max(0,e-o),s=u.map(l=>B8(l.width,r)),i=I8(s,e,o),a=[],c=0;for(let l=0;l<u.length;l++)a.push({x:c,y:0,width:i[l],height:t,panel:u[l]}),c+=i[l],l<u.length-1&&(c+=$u);return a}function m2(u,e,t){if(u.length===0)return[];if(u.length===1)return[{x:0,y:0,width:e,height:t,panel:u[0]}];let n=u.length-1,o=u.map(a=>B8(a.height,t)),r=I8(o,t,n),s=[],i=0;for(let a=0;a<u.length;a++)s.push({x:0,y:i,width:e,height:r[a],panel:u[a]}),i+=r[a],a<u.length-1&&(i+=1);return s}function h2(u,e,t){let n=u.ratio??50,r=u.border!==!1?$u:0;if(u.direction==="horizontal"){let s=Math.floor((e-r)*n/100),i=e-s-r;return[{x:0,y:0,width:s,height:t,panel:{content:u.first}},{x:s+r,y:0,width:i,height:t,panel:{content:u.second}}]}else{let s=Math.floor((t-r)*n/100),i=t-s-r;return[{x:0,y:0,width:e,height:s,panel:{content:u.first}},{x:0,y:s+r,width:e,height:i,panel:{content:u.second}}]}}function M8(u,e,t){let{cols:n,items:o,gap:r=1}=u;if(o.length===0||n<=0)return[];let s=u.rows??Math.ceil(o.length/n),i=Math.max(Pe,Math.floor((e-r*(n-1))/n)),a=Math.max(Ee,Math.floor((t-r*(s-1))/s)),c=[];for(let l=0;l<o.length;l++){let f=l%n,_=Math.floor(l/n);if(_>=s)break;c.push({x:f*(i+r),y:_*(a+r),width:i,height:a,panel:o[l]})}return c}function _u(u,e){let n=u*20+(u-1);return e<n}function A8(u,e,t){let o=u;for(;o>1&&!(Math.floor((e-t*(o-1))/o)>=20);)o--;return Math.max(1,o)}var Se=12;function g2(u){return u<60?"xs":u<90?"sm":u<120?"md":"lg"}function F2(u,e,t){let n=e;return n==="xs"&&u.xs!==void 0?u.xs:(n==="xs"||n==="sm")&&u.sm!==void 0?u.sm:(n==="xs"||n==="sm"||n==="md")&&u.md!==void 0?u.md:u.lg!==void 0&&n==="lg"?u.lg:u.span??t}function P8(u,e,t=1,n=e){if(u.length===0)return[];let o=g2(n),r=Math.max(1,Math.floor(Se/u.length)),s=u.map(_=>F2(_,o,r)),i=s.reduce((_,p)=>_+p,0),a=u.length>1?(u.length-1)*$u:0,c=Math.max(0,e-a),l=u.map((_,p)=>Math.max(1,Math.floor(s[p]/i*c))),f=c-l.reduce((_,p)=>_+p,0);for(let _=0;_<l.length&&f>0;_++)l[_]++,f--;return u.map((_,p)=>({content:_.content,width:l[p],padding:_.padding}))}function E8(u,e,t,n){let o=[];return N(u,0,0,e,t,o,{value:0},n),o}function N(u,e,t,n,o,r,s,i){let a=t;for(let c of u)switch(c.type){case"columns":{let l=c;if(_u(l.panels.length,n))for(let f of l.panels){let _=xu(f);a=N(f.content,e+_.dx,a+_.dy,n-_.dw,o-_.dh,r,s,i),a+=2}else{let f=Au(l.panels,n,o);for(let p=0;p<f.length;p++){let m=f[p],g=xu(l.panels[p]);N(l.panels[p].content,e+m.x+g.dx,a+g.dy,m.width-g.dw,m.height-g.dh,r,s,i)}let _=f.length>0?Math.max(...f.map(p=>p.height)):0;a+=_+1}break}case"rows":{let l=c,f=m2(l.panels,n,o);for(let p=0;p<f.length;p++){let m=f[p],g=xu(l.panels[p]);N(l.panels[p].content,e+m.x+g.dx,a+m.y+g.dy,m.width-g.dw,m.height-g.dh,r,s,i)}let _=f.length>0?f[f.length-1].y+f[f.length-1].height:0;a+=_+1;break}case"split":{let f=c.config,m=f.direction==="horizontal"&&_u(2,n)?{...f,direction:"vertical"}:f,g=h2(m,n,o),F=[f.first,f.second];for(let C=0;C<g.length;C++){let w=g[C];N(F[C],e+w.x,a+w.y,w.width,w.height,r,s,i)}let b=g.length>0?Math.max(...g.map(C=>C.y+C.height)):0;a+=b+1;break}case"grid":{let l=c,f=l.config.gap??1,_=A8(l.config.cols,n,f),p={...l.config,cols:_},m=M8(p,n,o);for(let F=0;F<m.length;F++){let b=m[F],C=l.config.items[F];if(!C)continue;let w=xu(C);N(C.content,e+b.x+w.dx,a+b.y+w.dy,b.width-w.dw,b.height-w.dh,r,s,i)}let g=m.length>0?Math.max(...m.map(F=>F.y+F.height)):0;a+=g+1;break}case"panel":{let l=c,f=xu(l.config);a=N(l.config.content,e+f.dx,a+f.dy,n-f.dw,o-f.dh,r,s,i),a+=1;break}case"box":{let l=c.config,f=l.direction??"column",_=l.gap??0,p=l.children??[];if(f==="row"){let m=p.map(g=>g.type==="box"?{content:[g],width:g.config?.width,height:g.config?.height,padding:g.config?.padding}:{content:[g]});if(_u(m.length,n))for(let g of m)a=N(g.content,e,a,n,o,r,s,i),a+=_||1;else{let g=Au(m,n,o);for(let b=0;b<g.length;b++){let C=g[b];N(m[b].content,e+C.x,a,C.width,C.height,r,s,i)}let F=g.length>0?Math.max(...g.map(b=>b.height)):0;a+=F+1}}else{for(let m=0;m<p.length;m++)m>0&&_>0&&(a+=_),a=N([p[m]],e,a,n,o,r,s,i);a+=1}break}case"row":{let l=c,f=l.gap??1,_=l.cols,p=g2(n),m=Math.max(1,Math.floor(12/_.length)),g=_.map(C=>F2(C,p,m)),F=[[]],b=0;for(let C=0;C<_.length;C++){let w=_[C].offset??0,x=g[C]+w;b+x>12&&F[F.length-1].length>0&&(F.push([]),b=0),F[F.length-1].push(_[C]),b+=x}for(let C of F){let w=P8(C,n,f,n);if(_u(w.length,n))for(let x of w)a=N(x.content,e,a,n,o,r,s,i),a+=2;else{let x=Au(w,n,o);for(let I=0;I<x.length;I++){let P=x[I];N(w[I].content,e+P.x,a,P.width,P.height,r,s,i)}let B=x.length>0?Math.max(...x.map(I=>I.height)):0;a+=B+1}}break}case"container":{let l=c,f=l.padding??0,_=l.maxWidth??n,p=Math.max(1,Math.min(n,_)-f*2),m=n-p,g=l.center!==!1?Math.floor(m/2):f;a=N(l.content,e+g,a,p,o,r,s,i),a+=1;break}case"section":a+=3,a=N(c.content,e,a,n,o,r,s,i);break;case"form":a=N(c.fields,e,a,n,o,r,s,i);break;case"dynamic":{let l=i(c);a=N(l,e,a,n,o,r,s,i);break}case"accordion":{for(let l=0;l<c.items.length;l++)r.push({focusIndex:s.value,x:e,y:a,width:n,height:2}),s.value++,a+=2;a+=1;break}case"timeline":{for(let l=0;l<c.items.length;l++)r.push({focusIndex:s.value,x:e,y:a,width:n,height:3}),s.value++,a+=3;a+=1;break}case"tabs":{r.push({focusIndex:s.value,x:e,y:a,width:n,height:3}),s.value++,a+=4;break}default:{let l=A.isFocusable(c.type),f=De(c,n);l&&(r.push({focusIndex:s.value,x:e,y:a,width:n,height:f}),s.value++),a+=f+1}}return a}function De(u,e){switch(u.type){case"card":{let t=3;return u.subtitle&&t++,u.body&&(t+=Math.ceil(u.body.length/Math.max(1,e-6))+1),u.tags&&u.tags.length>0&&t++,Math.max(3,t)}case"link":return 1;case"hero":return 5;case"textInput":return 3;case"textArea":return(u.rows??3)+2;case"select":return 2;case"checkbox":return 1;case"toggle":return 1;case"radioGroup":return(u.options?.length??2)+1;case"numberInput":return 2;case"searchInput":return 3;case"button":return 1;case"text":return Math.max(1,Math.ceil((u.content?.length??0)/Math.max(1,e))+1);case"table":return(u.rows?.length??0)+3;case"list":return(u.items?.length??0)+1;case"divider":return 1;case"spacer":return u.lines??1;case"quote":return 3;case"badge":return 1;case"image":return 10;case"progressBar":return 2;case"gallery":return 8;default:return 3}}function xu(u){let e=u.border===!0||typeof u.border=="string"&&u.border!=="none"&&u.border!=="left"&&u.border!=="right"&&u.border!=="top"&&u.border!=="bottom",t=u.padding??0,n=!!u.title&&!e,o=e?1:0,r=n?1:0;return{dx:o+t,dy:o+t+r,dw:(o+t)*2,dh:(o+t)*2+r}}function Te(u,e,t){let o=E(t.width,{padding:1,border:!0}).content,r=[];if(e.messages.length===0&&!e.loading){if(u.suggestedQuestions&&u.suggestedQuestions.length>0){r.push(h(t.theme.muted)+L+" Try asking:"+d);for(let c of u.suggestedQuestions)r.push(h(t.theme.subtle)+" "+c+d);r.push("")}}else for(let c of e.messages){if(c.role==="user")r.push(h(t.theme.accent)+v+" You: "+d+h(t.theme.text)+c.content+d);else{let l=K(c.content,Math.max(1,o-6));r.push(h(t.theme.muted)+v+" AI: "+d+h(t.theme.text)+l[0]+d);for(let f=1;f<l.length;f++)r.push(" "+h(t.theme.text)+l[f]+d)}r.push("")}e.loading&&(r.push(h(t.theme.accent)+" ..."+d),r.push("")),e.error&&(r.push(h(t.theme.error)+" "+e.error+d),r.push(""));let s=u.placeholder??"Type a message...",i=e.input||(t.editing?"":h(t.theme.subtle)+s+d),a=t.editing?h(t.theme.accent)+v+" > "+d:h(t.theme.muted)+" > "+d;return r.push(a+i),r}function S8(u,e,t){let o=E(e.width,D.text).content,r=e.theme;return t==="markdown"?Le(u,o,r):K(u,o).map(s=>n8(s,r.text))}function Le(u,e,t){let n=[],o=u.split(/\n\n+/);for(let r of o){let s=r.trim();if(!s)continue;let i=s.split(`
|
|
19
|
+
`);for(let a of i){let c=a.trim();if(!c)continue;if(c.startsWith("#")){let _=c.match(/^(#+)\s+(.*)/);if(_){let p=_[2];n.push(v+h(t.accent)+p+d);continue}}if(c.match(/^[-*]\s/)){let _=c.replace(/^[-*]\s+/,""),p=n2(_,t),m=g8(_),g=K(m,e-2);for(let F=0;F<g.length;F++){let b=F===0?"\u2022 ":" ",C=F===0?n2(g[F],t):h(t.text)+g[F]+d;n.push(h(t.text)+b+C+d)}continue}let l=g8(c),f=K(l,e);for(let _ of f)n.push(h(t.text)+n2(_,t)+d)}n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function n2(u,e){let t=u;return t=t.replace(/\*\*(.+?)\*\*/g,(n,o)=>v+h(e.accent)+o+d+h(e.text)),t=t.replace(/\*(.+?)\*/g,(n,o)=>du+o+d+h(e.text)),t=t.replace(/`(.+?)`/g,(n,o)=>h(e.warning)+o+d+h(e.text)),t}function g8(u){return u.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/`(.+?)`/g,"$1")}function b2(u,e){let t=e.theme,o=E(e.width,D.card).content,r=[],s=e.focused?"\u25C6":"\u25C7",i=u.title??"";if(u.subtitle){let a=s+" ",c=u.subtitle,l=y(a)+y(i)+1+y(c);if(l>o){let f=Math.max(1,o-y(a)),_=Math.min(y(c),Math.max(4,Math.floor(f/2))),p=O(c,_),m=yu(p),g=Math.max(1,f-1-y(m)),F=O(i,g),b=yu(F),C=y(a)+y(b)+y(m),w=Math.max(1,o-C);r.push(h(t.accent)+s+" "+v+F+d+" ".repeat(w)+h(t.muted)+p+d)}else{let f=Math.max(1,o-l);r.push(h(t.accent)+s+" "+v+i+d+" ".repeat(f)+h(t.muted)+u.subtitle+d)}}else{let a=s+" ";if(y(a)+y(i)>o){let c=Math.max(1,o-y(a)),l=O(i,c);r.push(h(t.accent)+s+" "+v+l+d)}else r.push(h(t.accent)+s+" "+v+i+d)}if(u.body){let a=K(u.body,o);for(let c of a)r.push(h(t.text)+c+d)}if(u.tags&&u.tags.length>0){r.push("");let a="",c="";for(let l=0;l<u.tags.length;l++){let _="["+u.tags[l]+"]",p=h(t.warning)+_+d;y(a)===0?(a=_,c=p):y(a)+1+y(_)<=o?(a+=" "+_,c+=" "+p):(r.push(c),a=_,c=p)}c&&r.push(c)}return iu({content:r,width:e.width,border:u.border??e.borderStyle??"rounded",padding:1,borderColor:e.focused?e.theme.accent:void 0},e)}function D8(u,e,t){let n=[],o=e.theme,r=E(e.width,D.timeline),s=e.width,i=r.content;for(let a=0;a<u.length;a++){let c=u[a],l=a===0,f=a===u.length-1,_=l?"\u25CF":"\u25CB",p=h(o.accent)+" "+_+" "+d,m=r.content,g;if(c.subtitle)if((c.title+" \xB7 "+c.subtitle).length>m){let b=m-c.title.length-3;b>0?g=p+h(o.accent)+v+c.title+d+h(o.muted)+" \xB7 "+O(c.subtitle,b)+d:g=p+h(o.accent)+v+O(c.title,m)+d}else g=p+h(o.accent)+v+c.title+d+h(o.muted)+" \xB7 "+c.subtitle+d;else g=p+h(o.accent)+v+O(c.title,m)+d;if(n.push(g),c.period&&n.push(h(o.border)+" \u2502 "+d+h(o.muted)+L+c.period+d),c.description){let F=K(c.description,i);for(let b of F)n.push(h(o.border)+" \u2502 "+d+h(o.text)+b+d)}f||n.push(h(o.border)+" \u2502"+d)}return n}function T8(u,e,t,n){let o=t.theme,r=E(t.width,D.progressBar),s=n?.max??100,i=n?.showPercent??!0,a=Number.isFinite(e)?e:0,c=Math.min(100,Math.max(0,a/s*100)),l=i?5:0,f=Math.max(4,Math.floor(r.content*.4)),_=Math.min(y(u)+2,f),p=Math.max(5,r.content-_-l-2),m=Math.round(c/100*p),g=p-m,F;c>=70?F=o.success:c>=40?F=o.warning:F=o.error;let b=y(u)>_-2?O(u,_-2):u,C=h(o.text)+q(b,_)+d,w=h(F)+"\u2588".repeat(m)+d,x=h(o.subtle)+"\u2591".repeat(g)+d,B=i?h(o.muted)+` ${Math.round(c)}%`+d:"";return[C+w+x+B]}function L8(u,e,t){let n=t.theme,o=[],r=u.length,s=E(t.width,D.table),i=u.map((p,m)=>Math.max(y(p),...e.map(F=>y(F[m]??"")))+2),a=Math.max(r,s.content-(r-1)),c=i.reduce((p,m)=>p+m,0);if(c>a){for(let m=0;m<i.length;m++)i[m]=Math.max(2,Math.floor(i[m]/c*a));let p=i.reduce((m,g)=>m+g,0);for(;p>a;){let m=0;for(let g=1;g<i.length;g++)i[g]>i[m]&&(m=g);if(i[m]<=2)break;i[m]--,p--}}let l=t.borderStyle??"single",f=lu(l);o.push(h(n.border)+f.topLeft+i.map(p=>f.horizontal.repeat(p)).join(f.teeDown)+f.topRight+d);let _=u.map((p,m)=>{let g=" "+p,F=i[m]-1,b=y(g)>F?O(g,F)+" ":q(g,i[m]);return h(n.accent)+v+b+d});o.push(h(n.border)+f.vertical+d+_.join(h(n.border)+f.vertical+d)+h(n.border)+f.vertical+d),o.push(h(n.border)+f.teeRight+i.map(p=>f.horizontal.repeat(p)).join(f.cross)+f.teeLeft+d);for(let p of e){let m=p.map((g,F)=>{let b=" "+(g??""),C=i[F]-1,w=y(b)>C?O(b,C)+" ":q(b,i[F]);return h(n.text)+w+d});o.push(h(n.border)+f.vertical+d+m.join(h(n.border)+f.vertical+d)+h(n.border)+f.vertical+d)}return o.push(h(n.border)+f.bottomLeft+i.map(p=>f.horizontal.repeat(p)).join(f.teeUp)+f.bottomRight+d),o}function O8(u,e,t,n){let o=t.theme,r=n?.icon??"\u2192",s=n?.focused??t.focused??!1,a=E(t.width,D.link).content;if(s){let F=" \u276F "+r+" ",b=" ",C=y(F),w=a-C;if(w<=0)return[h(o.accent)+v+O(F,a)+d];let x=y(u)+y(b)+y(e);if(C+x<=a)return[h(o.accent)+v+F+wu+u+d+h(o.muted)+L+b+e+d];let B=a-C-y(u)-y(b);if(B>=4){let P=O(e,B);return[h(o.accent)+v+F+wu+u+d+h(o.muted)+L+b+P+d]}let I=O(u,w);return[h(o.accent)+v+F+wu+I+d]}let c=" "+r+" ",l=" ",f=y(c),_=a-f;if(_<=0)return[h(o.text)+O(c,a)+d];let p=y(u)+y(l)+y(e);if(f+p<=a)return[h(o.text)+c+u+d+h(o.subtle)+L+l+e+d];let m=a-f-y(u)-y(l);if(m>=4){let F=O(e,m);return[h(o.text)+c+u+d+h(o.subtle)+L+l+F+d]}let g=O(u,_);return[h(o.text)+c+g+d]}function R8(u,e){let t=u.theme,n=e?.color??t.border,r=E(u.width,D.divider).content;if(e?.style==="label"&&e.label){let i=Math.max(0,r-8),a=e.label;a.length>i&&(a=a.slice(0,Math.max(0,i-1))+"\u2026");let c=` ${a} `,l=Math.max(0,r-c.length-4),f=Math.floor(l/2),_=l-f;return[h(n)+"\u2500\u2500"+"\u2500".repeat(f)+d+h(t.muted)+c+d+h(n)+"\u2500".repeat(_)+"\u2500\u2500"+d]}let s="\u2500";return e?.style==="dashed"?s="\u2504":e?.style==="dotted"?s="\xB7":e?.style==="double"&&(s="\u2550"),[h(n)+s.repeat(r)+d]}function k8(u=1){return Array(Math.max(0,u)).fill("")}function $8(u,e,t){let n=e.theme,o=t?.style??"border",s=E(e.width,D.quote).content,i=[],a=K(`"${u}"`,s);if(o==="border"){for(let c of a)i.push(h(n.accent)+" \u2502 "+d+du+h(n.text)+c+d);if(t?.attribution){let c="\u2014 "+t.attribution;y(c)>s&&(c=c.substring(0,s-1)+"\u2026");let l=Math.max(0,s-y(c));i.push(h(n.accent)+" \u2502 "+d+h(n.muted)+L+" ".repeat(l)+c+d)}}else if(o==="fancy"){i.push(h(n.accent)+" \u250C"+"\u2500".repeat(s+2)+"\u2510"+d);for(let c of a)i.push(h(n.accent)+" \u2502 "+d+du+h(n.text)+c+" ".repeat(Math.max(0,s-y(c)))+d+h(n.accent)+" \u2502"+d);if(t?.attribution){let c="\u2014 "+t.attribution,l=Math.max(0,s-y(c));i.push(h(n.accent)+" \u2502 "+d+" ".repeat(l)+h(n.muted)+c+d+h(n.accent)+" \u2502"+d)}i.push(h(n.accent)+" \u2514"+"\u2500".repeat(s+2)+"\u2518"+d)}else{for(let c of a)i.push(" "+du+h(n.text)+c+d);t?.attribution&&i.push(" "+h(n.muted)+L+"\u2014 "+t.attribution+d)}return i}function Y8(u,e,t){let n=E(e.width,D.badge),o=t?.color??e.theme.warning;return(t?.style??"outline")==="filled"?Uu+h(o)+` ${u} `+d:h(o)+`[${u}]`+d}function W8(u,e){let t=e.theme,n=[],r=E(e.width,D.hero).content;n.push("");let s=K(u.title,r);for(let i of s){let a=h(t.accent)+v+i+d;n.push(q(a,r,"center"))}if(n.push(""),u.subtitle){let i=K(u.subtitle,r);for(let a of i){let c=h(t.text)+a+d;n.push(q(c,r,"center"))}n.push("")}if(u.cta){let i=h(t.accent)+v+wu+u.cta.label+d;n.push(q(i,r,"center")),n.push("")}if(u.art){let i=u.art.split(`
|
|
20
|
+
`);for(let a of i)n.push(q(h(t.muted)+a+d,r,"center"))}return n.push(""),n}function j8(u,e,t){let n=E(e.width,D.list),o=e.theme,r=t??"bullet",s={bullet:()=>"\u2022",number:c=>`${c+1}.`,dash:()=>"\u2500",check:()=>"\u2713",arrow:()=>"\u2192"},i=s[r]??s.bullet,a=[];for(let c=0;c<u.length;c++){let f=` ${i(c)} `,_=" ".repeat(f.length),p=Math.max(1,n.content-f.length),m=K(u[c],p);for(let g=0;g<m.length;g++)g===0?a.push(h(o.accent)+f+d+h(o.text)+m[g]+d):a.push(_+h(o.text)+m[g]+d)}return a}function N8(u,e,t){let n=E(e.width,D.image),o=Math.min(t?.width??Math.min(40,n.content),n.content),r=Math.floor(o/3),s=e.theme,i=[];i.push(h(s.border)+"\u250C"+"\u2500".repeat(o)+"\u2510"+d);for(let a=0;a<r;a++)if(a===Math.floor(r/2)){let c=`[Image: ${u}]`,l=Math.max(0,o-y(c)),f=Math.floor(l/2),_=l-f;i.push(h(s.border)+"\u2502"+d+" ".repeat(f)+h(s.muted)+c+d+" ".repeat(_)+h(s.border)+"\u2502"+d)}else i.push(h(s.border)+"\u2502"+" ".repeat(o)+"\u2502"+d);return i.push(h(s.border)+"\u2514"+"\u2500".repeat(o)+"\u2518"+d),i}function H8(u,e,t){let n=E(e.width,D.gallery),o=t?.columns??Math.min(3,Math.max(1,Math.floor(n.content/30))),r=t?.scrollIndex??0,s=e.theme,i=Math.floor((n.content-(o-1)*2)/o);for(;i<20&&o>1;)o--,i=Math.floor((n.content-(o-1)*2)/o);let c=u.slice(r,r+o).map(_=>b2(_,{...e,width:i})),l=Math.max(0,...c.map(_=>_.length)),f=[];for(let _=0;_<l;_++){let p=c.map(m=>{let g=m[_]??"";return q(g,i)});f.push(p.join(" "))}if(u.length>o){let _=h(s.muted)+L+` \u25C2 ${r+1}-${Math.min(r+o,u.length)} of ${u.length} \u25B8`+d;f.push(q(_,n.content,"center"))}return f}A.register("text",(u,e)=>S8(u.content,e,u.style));A.register("list",(u,e)=>j8(u.items,e,u.style));A.register("quote",(u,e)=>$8(u.text,e,{attribution:u.attribution,style:u.style}));A.register("table",(u,e)=>L8(u.headers,u.rows,e));A.register("progressBar",(u,e)=>T8(u.label,u.value,e,{max:u.max,showPercent:u.showPercent}));A.register("badge",(u,e)=>[Y8(u.text,e,{color:u.color,style:u.style})]);A.register("image",(u,e)=>N8(u.path,e,{width:u.width,mode:u.mode}));A.register("divider",(u,e)=>R8(e,{style:u.style,label:u.label,color:u.color}));A.register("spacer",u=>k8(u.lines));A.register("custom",(u,e)=>u.render(e.width,e.theme));A.register("card",(u,e)=>b2(u,e),!0);A.register("link",(u,e)=>O8(u.label,u.url,e,{icon:u.icon}),!0);A.register("hero",(u,e)=>W8(u,e),!0);A.register("tabs",(u,e)=>[],!0);A.register("accordion",(u,e)=>[],!0);A.register("timeline",(u,e)=>D8(u.items,e,u.style));A.register("gallery",(u,e)=>H8(u.items,e,{columns:u.columns}));A.register("textInput",(u,e)=>[],!0);A.register("textArea",(u,e)=>[],!0);A.register("select",(u,e)=>[],!0);A.register("checkbox",(u,e)=>[],!0);A.register("toggle",(u,e)=>[],!0);A.register("radioGroup",(u,e)=>[],!0);A.register("numberInput",(u,e)=>[],!0);A.register("searchInput",(u,e)=>[],!0);A.register("button",(u,e)=>[],!0);A.register("columns",(u,e)=>[]);A.register("rows",(u,e)=>[]);A.register("split",(u,e)=>[]);A.register("grid",(u,e)=>[]);A.register("panel",(u,e)=>[]);A.register("box",(u,e)=>[]);A.register("row",(u,e)=>[]);A.register("container",(u,e)=>[]);function Oe(u,e,t,n){let o=t.theme,r=t.focused??!1,s=[],i=E(t.width,D.accordion);for(let a=0;a<u.length;a++){let c=u[a],l=a===e,f=l?"\u25BE":"\u25B8",_=r&&(l||e<0&&a===0),p=Math.max(0,i.content-2),m=O(c.label,p),g=l||_?o.accent:o.text,F=_?"\u276F ":" ";if(s.push(h(g)+v+`${F}${f} ${m}`+d),l){let b=n(c.content,{...t,width:i.content,focused:!1});for(let C of b)s.push(" "+C);s.push("")}}return s}function Re(u,e,t,n){let o=t.theme,r=[],s=E(t.width,D.tabs),i=" ";for(let c=0;c<u.length;c++){let l=u[c];c===e?i+=Uu+h(o.accent)+` ${l.label} `+d+" ":i+=h(o.muted)+`[${l.label}]`+d+" "}r.push(i),r.push(h(o.border)+" "+"\u2500".repeat(Math.max(0,s.content))+d);let a=u[e];if(a){let c=n(a.content,{...t,width:s.content});for(let l of c)r.push(" "+l)}return r}function ke(u,e,t){let n=t.theme,o=[],r=!!t.focused,s=e.editing;o.push(h(r?n.accent:n.text)+v+" "+u.label+d);let a=E(t.width,D.textInput).content,c,l=e.value;if(l.length===0&&!s?c=h(n.subtle)+L+(u.placeholder??"")+d:u.mask&&l.length>0?c=h(n.text)+"\u25CF".repeat(l.length)+d:c=h(n.text)+l+d,s){let p=Math.min(e.cursorPos,l.length),m;u.mask?m="\u25CF".repeat(l.length):m=l;let g=Math.max(1,a-1),F=0;p>g&&(F=p-g);let b=F+g,C=m.substring(F,b),w=p-F,x=C.substring(0,w),B=w<C.length?C[w]:" ",I=C.substring(w+1);c=h(n.text)+x+h(n.accent)+v+"\u2588"+d+h(n.text)+I+d,w>=C.length&&(c=h(n.text)+C+h(n.accent)+"\u2588"+d)}let f=r?n.accent:n.border,_=iu({content:[c],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:f},t);return o.push(..._),e.error&&o.push(h(n.error)+" \u2717 "+e.error+d),o}function $e(u,e,t){let n=t.theme,o=[],r=!!t.focused,s=e.editing,i=u.rows??4,c=E(t.width,D.textArea).content;o.push(h(r?n.accent:n.text)+v+" "+u.label+d);let l=e.value,f=l.split(`
|
|
21
|
+
`),_=[],p=[];for(let x=0;x<f.length;x++)if(f[x].length===0)_.push(""),p.push({origLine:x,origCol:0});else{let B=K(f[x],c);for(let I of B)_.push(I),p.push({origLine:x,origCol:0})}let m=0,g=0;if(s){let x=e.cursorPos;for(let B=0;B<f.length;B++){if(x<=f[B].length){let I=0;for(let P=0;P<_.length;P++)if(p[P].origLine===B){if(x<=_[P].length){m=P,g=x;break}if(x-=_[P].length,x>0&&P+1<_.length&&p[P+1]?.origLine===B)continue;m=P,g=_[P].length;break}break}x-=f[B].length+1}}let F=e.scrollOffset;s&&(m<F?F=m:m>=F+i&&(F=m-i+1)),F=Math.max(0,Math.min(F,Math.max(0,_.length-i)));let b=[];for(let x=0;x<i;x++){let B=F+x;if(B<_.length){let I=_[B];if(s&&B===m){let P=I.substring(0,g),R=I.substring(g);I=h(n.text)+P+h(n.accent)+"\u2588"+d+h(n.text)+R+d}else I=h(n.text)+I+d;if(_.length>i){let P=Math.max(1,Math.floor(i*i/_.length)),R=Math.floor(F*i/_.length);x>=R&&x<R+P}b.push(I)}else b.push("")}l.length===0&&!s&&u.placeholder&&(b[0]=h(n.subtle)+L+u.placeholder+d);let C=r?n.accent:n.border,w=iu({content:b,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:C},t);return o.push(...w),e.error&&o.push(h(n.error)+" \u2717 "+e.error+d),o}function Ye(u,e,t){let n=t.theme,o=[],r=!!t.focused,i=E(t.width,D.select).content;o.push(h(r?n.accent:n.text)+v+" "+u.label+d);let a=u.options.find(C=>C.value===e.value),c=a?.label??u.placeholder??"Choose an option...",l=a?n.text:n.subtle,f=e.open?"\u25B4":"\u25BE",_=h(n.muted)+f+d,p=Math.max(1,i-2),m=O(c,p),g=y(m),F=Math.max(1,i-g-1),b=h(l)+m+d+" ".repeat(F)+_;if(e.open){let C=[b],w=0;for(let I=0;I<u.options.length;I++){let P=u.options[I],R=I===e.highlightIndex,Y=R?"\u276F ":" ",T=R?n.accent:n.text,k=O(P.label,Math.max(1,i-2));C.push(h(T)+(R?v:"")+Y+k+d)}let x=r?n.accent:n.border,B=iu({content:C,width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:x,midSeparatorAfter:w},t);o.push(...B)}else{let C=r?n.accent:n.border,w=iu({content:[b],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:C},t);o.push(...w)}return o}function We(u,e,t){let n=t.theme,o=!!t.focused,r=E(t.width,D.checkbox),s=e?"\u2611":"\u2610",i=e||o?n.accent:n.muted,a=o?n.accent:n.text;return[h(i)+(o?v:"")+" "+s+d+h(a)+" "+u.label+d]}function je(u,e,t){let n=t.theme,o=!!t.focused,r=E(t.width,D.toggle),s=u.onLabel??"On",i=u.offLabel??"Off",a=o?n.accent:n.text,c,l;return e?(c=h(n.accent)+"\u25CB\u2500\u2500\u2500\u2500\u25CF"+d,l=h(n.accent)+v+" "+s+d):(c=h(n.muted)+"\u25CF\u2500\u2500\u2500\u2500\u25CB"+d,l=h(n.muted)+L+" "+i+d),[h(a)+(o?v:"")+" "+u.label+d+" "+c+l]}function Ne(u,e,t){let n=t.theme,o=[],r=!!t.focused,s=E(t.width,D.radioGroup);o.push(h(r?n.accent:n.text)+v+" "+u.label+d);for(let i=0;i<u.options.length;i++){let a=u.options[i],c=a.value===e.value,l=r&&i===e.highlightIndex,f=c?"\u25C9":"\u25CB",_=c||l?n.accent:n.muted,p=l?n.accent:n.text;o.push(h(_)+(l?v:"")+" "+f+d+h(p)+" "+a.label+d)}return o}function He(u,e,t){let n=t.theme,o=[],r=!!t.focused,s=e.editing,a=E(t.width,D.numberInput).content;o.push(h(r?n.accent:n.text)+v+" "+u.label+d);let c=h(r?n.accent:n.muted)+"\u25C2"+d,l=h(r?n.accent:n.muted)+"\u25B8"+d,f;s&&e.textBuffer.length>0?f=h(n.text)+e.textBuffer+h(n.accent)+"\u2588"+d:f=h(n.text)+v+String(e.value)+d;let _=c+" "+f+" "+l,p=r?n.accent:n.border,m=iu({content:[_],width:t.width,border:t.borderStyle??"rounded",padding:1,borderColor:p},t);return o.push(...m),o}function ze(u,e,t){let n=e.theme,o=!!e.focused,r=t||u.loading,s=u.style??"secondary",i,a;switch(s){case"primary":i=n.accent,a="\u25C6";break;case"danger":i=n.error,a="\u25C6";break;default:i=n.border,a="";break}let c;if(r){let C=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];c=C[Math.floor(Date.now()/100)%C.length]+" "+u.label}else a?c=a+" "+u.label:c=u.label;let l=E(e.width,D.button),f=2,_=Math.max(1,l.content);y(c)>_&&(c=O(c,_));let m=y(c)+f*2,g=lu(e.borderStyle??"rounded"),F=[],b=" ";if(o&&s==="primary")F.push(b+h(i)+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(b+h(i)+g.vertical+d+Hu(i)+h("#000000")+v+" ".repeat(f)+c+" ".repeat(f)+d+h(i)+g.vertical+d),F.push(b+h(i)+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d);else if(o)F.push(b+h(i)+v+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(b+h(i)+v+g.vertical+d+h(i)+v+" ".repeat(f)+c+" ".repeat(f)+d+h(i)+v+g.vertical+d),F.push(b+h(i)+v+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d);else{let C=s==="danger"?i:n.border,w=s==="primary"?i:n.text;F.push(b+h(C)+g.topLeft+g.horizontal.repeat(m)+g.topRight+d),F.push(b+h(C)+g.vertical+d+h(w)+" ".repeat(f)+c+" ".repeat(f)+d+h(C)+g.vertical+d),F.push(b+h(C)+g.bottomLeft+g.horizontal.repeat(m)+g.bottomRight+d)}return F}function gu(u,e,t){let{width:n,height:o,active:r=!1,renderContent:s}=t;if(n<=0||o<=0)return[];let i=u.border===!0||typeof u.border=="string"&&u.border!=="none",a=typeof u.border=="string"&&["single","double","rounded","heavy","dashed","ascii","none"].includes(u.border)?u.border:"rounded",c=lu(i?a:"none"),l=u.padding??0,f=!!u.title&&!i,_=f?1:0,p=i?2:0,m=i?2:0,g=Math.max(0,n-p-l*2),F=Math.max(0,o-m-l*2-_);if(g<=0||F<=0){let T=[];for(let k=0;k<o;k++)T.push(" ".repeat(n));return T}let b={...e,width:g,panelHeight:F},w=s(u.content,b).slice(0,F),x=[],B=" ".repeat(l);for(let T=0;T<F;T++){let k=T<w.length?w[T]:"",U=y(k),S=Math.max(0,g-U);x.push(B+k+" ".repeat(S)+B)}let I=r?e.theme.accent:e.theme.border,P=r?e.theme.accent:e.theme.muted,R=T=>h(I)+T+d,Y=[];if(i){let T=n-2;if(u.title){let k=` ${u.title} `,U=y(k),S=Math.max(0,T-U-1);Y.push(R(c.topLeft+c.horizontal)+h(P)+v+k+d+R(c.horizontal.repeat(S)+c.topRight))}else Y.push(R(c.topLeft+c.horizontal.repeat(T)+c.topRight));for(let k of x)Y.push(R(c.vertical)+k+R(c.vertical));Y.push(R(c.bottomLeft+c.horizontal.repeat(T)+c.bottomRight))}else{if(f){let T=u.title,k=y(T),U="\u2500".repeat(Math.min(k+2,g));Y.push(h(P)+v+T+d+" ".repeat(Math.max(0,n-k)))}for(let T of x)Y.push(T)}for(;Y.length<o;)Y.push(" ".repeat(n));return Y.length>o&&(Y.length=o),Y.map(T=>{let k=y(T);return k>n?O(T,n):k<n?T+" ".repeat(n-k):T})}function z8(u,e,t){let{panels:n}=u;if(n.length===0)return[];let{availableHeight:o,activePanelIndex:r=-1,renderContent:s}=t,i=e.width;if(_u(n.length,i))return Ue(n,e,t);let a=Au(n,i,o);return C2(a,e,i,o,r,s)}function Ue(u,e,t){let{availableHeight:n,activePanelIndex:o=-1,renderContent:r}=t,s=m2(u,e.width,n),i=[];for(let a=0;a<s.length;a++){let c=s[a],l=gu(c.panel,e,{width:c.width,height:c.height,active:a===o,renderContent:r});i.push(...l),a<s.length-1&&i.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return i}function C2(u,e,t,n,o,r){let s=[];for(let a=0;a<u.length;a++){let c=u[a],l={...e,width:c.width},f=gu(c.panel,l,{width:c.width,height:c.height,active:a===o,renderContent:r});s.push(f)}if(u.length>1&&u[0].y===u[1].y){let a=Math.max(...s.map(l=>l.length)),c=[];for(let l=0;l<a;l++){let f="";for(let _=0;_<u.length;_++){let p=s[_][l]??" ".repeat(u[_].width);if(_>0){let m=" "+h(e.theme.border)+"\u2502"+d+" ";f+=m}f+=p}c.push(f)}return c}else{let a=[];for(let c=0;c<s.length;c++)a.push(...s[c]),c<s.length-1&&a.push(h(e.theme.border)+"\u2500".repeat(t)+d);return a}}function Ge(u,e,t){let{panels:n}=u;if(n.length===0)return[];let{availableHeight:o,activePanelIndex:r=-1,renderContent:s}=t,i=m2(n,e.width,o),a=[];for(let c=0;c<i.length;c++){let l=i[c],f=gu(l.panel,e,{width:l.width,height:l.height,active:c===r,renderContent:s});a.push(...f),c<i.length-1&&a.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return a}function Ve(u,e,t){let{config:n}=u,{availableHeight:o,activePanelIndex:r=-1,renderContent:s}=t;if(n.direction==="horizontal"&&_u(2,e.width)){let a=h2({...n,direction:"vertical"},e.width,o),c=[];for(let l=0;l<a.length;l++){let f=a[l],_=gu(f.panel,e,{width:f.width,height:f.height,active:l===r,renderContent:s});c.push(..._),l===0&&n.border!==!1&&c.push(h(e.theme.border)+"\u2500".repeat(e.width)+d)}return c}let i=h2(n,e.width,o);return C2(i,e,e.width,o,r,s)}function qe(u,e,t){let{config:n}=u,{availableHeight:o,activePanelIndex:r=-1,renderContent:s}=t;if(n.items.length===0)return[];let i=n.gap??1,a=A8(n.cols,e.width,i),c={...n,cols:a},l=M8(c,e.width,o);if(l.length===0)return[];let f=[];for(let F=0;F<l.length;F++){let b=l[F],C={...e,width:b.width},w=gu(b.panel,C,{width:b.width,height:b.height,active:F===r,renderContent:s});f.push(w)}let _=c.rows??Math.ceil(n.items.length/a),p=l[0]?.height??0,m=l[0]?.width??0,g=[];for(let F=0;F<_;F++){if(F>0)for(let b=0;b<i;b++)g.push("");for(let b=0;b<p;b++){let C="";for(let w=0;w<a;w++){let x=F*a+w;if(w>0&&(C+=" ".repeat(i)),x<f.length){let B=f[x][b]??" ".repeat(m);C+=B}else C+=" ".repeat(m)}g.push(C)}}return g}function Su(u,e){let t=e._dynamicId??"",n=u.dynamicCache.get(t);if(n)return n;try{let o=e.render(),r=Array.isArray(o)?o:[o];return t&&u.dynamicCache.set(t,r),r}catch{return[]}}function Ke(u){u.dynamicCache.clear()}function U8(u){return A.isFocusable(u.type)}function Q(u,e,t){let n=[];for(let o of e){let r=t;u.currentFocusedBlock&&o===u.currentFocusedBlock&&(r={...t,focused:!0});let s=fu(u,o,r);n.push(...s),n.push("")}return n.length>0&&n[n.length-1]===""&&n.pop(),n}function fu(u,e,t){switch(e.type){case"text":return S8(e.content,t,e.style);case"card":return b2(e,t);case"timeline":return D8(e.items,t,e.style);case"table":return L8(e.headers,e.rows,t);case"list":return j8(e.items,t,e.style);case"quote":return $8(e.text,t,{attribution:e.attribution,style:e.style});case"hero":return W8(e,t);case"gallery":{let n=JSON.stringify(e.items.map(r=>r.title)),o=u.galleryState.get(n)??0;return H8(e.items,t,{columns:e.columns,scrollIndex:o})}case"tabs":{let n=e.items.map(r=>r.label).join(","),o=u.tabState.get(n)??0;return Re(e.items,o,t,(r,s)=>Q(u,r,s))}case"accordion":{let n=e.items.map(r=>r.label).join(","),o=u.accordionState.get(n)??-1;return Oe(e.items,o,t,(r,s)=>Q(u,r,s))}case"link":return O8(e.label,e.url,t,{icon:e.icon});case"progressBar":return T8(e.label,e.value,t,{max:e.max,showPercent:e.showPercent});case"badge":return[Y8(e.text,t,{color:e.color,style:e.style})];case"image":return N8(e.path,t,{width:e.width,mode:e.mode});case"divider":return R8(t,{style:e.style,label:e.label,color:e.color});case"spacer":return k8(e.lines);case"section":{let n=E(t.width,D.section),o=[];return o.push(h(t.theme.accent)+v+" "+e.title+d),o.push(h(t.theme.border)+" "+"\u2500".repeat(Math.max(0,n.content-4))+d),o.push(""),o.push(...Q(u,e.content,t)),o}case"custom":return e.render(t.width,t.theme);case"textInput":{let n=u.getInputState(e.id,e.defaultValue??"");return ke(e,{value:n.value,cursorPos:n.cursorPos,editing:!!t.editing,error:n.error},t)}case"textArea":{let n=u.getInputState(e.id,e.defaultValue??"");return $e(e,{value:n.value,cursorPos:n.cursorPos,editing:!!t.editing,error:n.error,scrollOffset:n.scrollOffset},t)}case"select":{let n=u.getInputState(e.id,e.defaultValue??"");return Ye(e,{value:n.value,open:n.open,highlightIndex:n.highlightIndex},t)}case"checkbox":{let n=u.getInputState(e.id,e.defaultValue??!1);return We(e,n.value,t)}case"toggle":{let n=u.getInputState(e.id,e.defaultValue??!1);return je(e,n.value,t)}case"radioGroup":{let n=u.getInputState(e.id,e.defaultValue??"");return Ne(e,{value:n.value,highlightIndex:n.highlightIndex},t)}case"numberInput":{let n=u.getInputState(e.id,e.defaultValue??0);return He(e,{value:n.value,editing:!!t.editing,textBuffer:""},t)}case"searchInput":{let n=u.getInputState(e.id,""),o=e.maxResults??10,r=c2(e.items,n.value,o);return pe(e,{query:n.value,cursorPos:n.cursorPos,editing:!!t.editing,highlightIndex:n.highlightIndex,filteredItems:r},t)}case"button":{let n=u.buttonLoading.get(e.label)??!1;return ze(e,t,n)}case"form":{let n=Q(u,e.fields,t),o=u.formResults.get(e.id);return o&&(n.push(""),n.push(...v8({resultMessage:o.message,resultType:o.type},t))),n}case"asyncContent":return[];case"dynamic":{let n=Su(u,e);return Q(u,n,t)}case"columns":{let{rows:n}=eu(),o=Math.max(10,n-8),r=e,s=pu(r.panels.map(i=>i.content),u.currentFocusedBlock);return z8(r,t,{availableHeight:o,activePanelIndex:s,renderContent:(i,a)=>Q(u,i,a)})}case"rows":{let{rows:n}=eu(),o=Math.max(10,n-8),r=e,s=pu(r.panels.map(i=>i.content),u.currentFocusedBlock);return Ge(r,t,{availableHeight:o,activePanelIndex:s,renderContent:(i,a)=>Q(u,i,a)})}case"split":{let{rows:n}=eu(),o=Math.max(10,n-8),r=e,s=pu([r.config.first,r.config.second],u.currentFocusedBlock);return Ve(r,t,{availableHeight:o,activePanelIndex:s,renderContent:(i,a)=>Q(u,i,a)})}case"grid":{let{rows:n}=eu(),o=Math.max(10,n-8),r=e,s=pu(r.config.items.map(i=>i.content),u.currentFocusedBlock);return qe(r,t,{availableHeight:o,activePanelIndex:s,renderContent:(i,a)=>Q(u,i,a)})}case"panel":{let{rows:n}=eu(),o=Math.max(10,n-8);return gu(e.config,t,{width:t.width,height:o,renderContent:(r,s)=>Q(u,r,s)})}case"box":return Je(u,e,t);case"row":return Qe(u,e,t);case"container":return Xe(u,e,t);case"menu":return Ze(u,e,t);case"chat":{let n=e,o=u.getInputState(n.id,{messages:[],input:"",cursorPos:0,loading:!1,error:null}),r={messages:o.value?.messages??[],input:o.value?.input??o.value??"",cursorPos:o.cursorPos??0,loading:o.value?.loading??!1,error:o.value?.error??null};return Te(n,r,t)}default:return[]}}function pu(u,e){if(!e)return-1;for(let t=0;t<u.length;t++)if(X(u[t],e))return t;return-1}function X(u,e){for(let t of u){if(t===e)return!0;if(t.type==="columns"){for(let n of t.panels)if(X(n.content,e))return!0}else if(t.type==="rows"){for(let n of t.panels)if(X(n.content,e))return!0}else if(t.type==="split"){let n=t.config;if(X(n.first,e)||X(n.second,e))return!0}else if(t.type==="grid"){for(let n of t.config.items)if(X(n.content,e))return!0}else if(t.type==="panel"){if(X(t.config.content,e))return!0}else if(t.type==="section"){if(X(t.content,e))return!0}else if(t.type==="form"){if(X(t.fields,e))return!0}else if(t.type==="box"){if(X(t.config.children,e))return!0}else if(t.type==="row"){for(let n of t.cols)if(X(n.content,e))return!0}else if(t.type==="container"&&X(t.content,e))return!0}return!1}function Je(u,e,t){let{config:n}=e,o=n.direction??"column",r=n.gap??0,{rows:s}=eu(),i=Math.max(10,s-8);if(o==="row"){let a=n.children.map(l=>l.type==="box"?{content:[l],width:l.config.width,height:l.config.height,padding:l.config.padding}:{content:[l]}),c=pu(a.map(l=>l.content),u.currentFocusedBlock);return z8({type:"columns",panels:a},t,{availableHeight:i,activePanelIndex:c,renderContent:(l,f)=>Q(u,l,f)})}else{let a=[];for(let c=0;c<n.children.length;c++){if(c>0&&r>0)for(let _=0;_<r;_++)a.push("");let l=n.children[c],f=t;u.currentFocusedBlock&&l===u.currentFocusedBlock&&(f={...t,focused:!0}),a.push(...fu(u,l,f))}return a}}function Qe(u,e,t){let{cols:n,gap:o=1}=e;if(n.length===0)return[];let{rows:r,columns:s}=eu(),i=Math.max(10,r-8),a=g2(s),c=Math.max(1,Math.floor(12/n.length)),l=n.map(m=>F2(m,a,c)),f=[[]],_=0;for(let m=0;m<n.length;m++){let g=n[m].offset??0,F=l[m]+g;_+F>12&&f[f.length-1].length>0&&(f.push([]),_=0),f[f.length-1].push({col:n[m],span:l[m]}),_+=F}let p=[];for(let m of f){let g=m.map(x=>x.col),F=P8(g,t.width,o,s),b=pu(F.map(x=>x.content),u.currentFocusedBlock),C=Au(F,t.width,i),w=C2(C,t,t.width,i,b,(x,B)=>Q(u,x,B));for(;w.length>0;){let B=w[w.length-1].replace(/\x1b\[[0-9;]*m/g,"");if(/^[\s\u2502\u2506\u250a\u2503]*$/.test(B))w.pop();else break}p.length>0&&p.push(""),p.push(...w)}return p}function Ze(u,e,t){let n=[];if(e.items&&e.items.length>0)n=e.items.map(o=>({label:o.label,icon:o.icon,id:o.page}));else if(e.source==="auto"){let o=u._fileRouter;if(o)n=o.getMenuItems().map(s=>({label:s.label,icon:s.icon,id:s.page}));else{let r=u.site;r?.pages&&(n=r.pages.filter(s=>typeof s.title=="string").map(s=>({label:s.title,icon:s.icon,id:s.id})))}}return f2(n,0,t)}function Xe(u,e,t){let n=e.padding??0,o=e.maxWidth??t.width,r=Math.max(1,Math.min(t.width,o)-n*2),s={...t,width:r},i=[];for(let a of e.content){let c=s;u.currentFocusedBlock&&a===u.currentFocusedBlock&&(c={...s,focused:!0});let l=fu(u,a,c),f=e.center!==!1,_=t.width-r,p=f?Math.floor(_/2):n,m=" ".repeat(p);for(let g of l)i.push(m+g);i.push("")}return i.length>0&&i[i.length-1]===""&&i.pop(),i}function ut(u,e,t){let n=t.theme;return[h(n.accent)+v+u+d+h(n.text)+e+d+h(n.muted)+"\u2588"+d]}function et(u,e){let t=0,n="",o=!1;for(let r of u){if(r==="\x1B"){o=!0,n+=r;continue}if(o){n+=r,r==="m"&&(o=!1);continue}let s=cu(r.codePointAt(0)??0);if(t+s>e)break;n+=r,t+=s}return n+"\x1B[0m"}function G8(u,e){return{width:Math.min(e,100),theme:u.theme,borderStyle:u.borderStyle}}function tt(u,e,t,n){let o="\x1B[H";for(let r=0;r<n;r++){if(o+="\x1B[2K",r<e.length){let s=e[r];y(s)>t?o+=et(s,t):o+=s}r<n-1&&(o+=`
|
|
22
|
+
`)}if(u.commandMode)o+=`\x1B[${n};1H\x1B[2K`,o+=ut(":",u.commandBuffer,G8(u,t)).join("");else{let r=u.notifications.current;if(r){o+=`\x1B[${n};1H\x1B[2K`;let s,i;switch(r.type){case"success":s=u.theme.success,i="\u2713";break;case"error":s=u.theme.error,i="\u2717";break;default:s=u.theme.accent,i="\u2139";break}o+=h(s)+" "+i+" "+r.message+d}else u.feedbackMessage&&(o+=`\x1B[${n};1H\x1B[2K`,o+=h(u.theme.success)+" "+u.feedbackMessage+d)}o+=u.inputMode.isEditing?"\x1B[?25h":"\x1B[?25l",process.stdout.write(o)}function nt(u){Ke(u);let e=u.getCurrentPage();if(e&&!u.router.isHome()){let s=u.getPageContent(e);if(s){let i=u.pageFocusIndex;u.pageFocusItems=u.collectFocusItems(s),u.pageFocusIndex=Math.min(i,Math.max(0,u.pageFocusItems.length-1)),u.registerForms(s);let a=eu(),c=Math.min(120,a.columns-2),l=Math.max(10,a.rows-8);u.focusRects=E8(s,c,l,f=>Su(u,f))}}let{columns:t,rows:n}=eu(),o=[],r=G8(u,t);u.router.isHome()?ot(u,o,r,t,n):rt(u,o,r,t,n),tt(u,o,t,n)}function ot(u,e,t,n,o){let r=t.width,s=Math.max(0,Math.floor((n-r)/2)),i=" ".repeat(s);if(u.site.banner){let f=Vu(u.site.banner.text,{font:u.site.banner.font});if(f=qu(f,r),u.site.banner.gradient?f=Me(f,u.site.banner.gradient):f=f.map(_=>h(u.theme.accent)+_+d),!u.bootComplete&&u.site.animations?.boot){let _=Math.floor(u.bootFrame/30*f.length);f=f.slice(0,_)}e.push("");for(let _ of f)e.push(i+_)}else{e.push("");let f=h(u.theme.accent)+v+u.site.name+d;e.push(i+q(f,r,"center"))}if(e.push(""),u.site.tagline){let f=h(u.theme.muted)+du+u.site.tagline+d;e.push(i+q(f,r,"center")),e.push("")}e.push(i+h(u.theme.border)+"\u2500".repeat(r)+d),e.push("");let a=u.site.pages.find(f=>f.id==="home"),c=a?u.getPageContent(a):null;if(c?Iu(c):!1){if(c){let f=Math.max(1,r-1),_={...t,width:f};for(let p of c){let m=fu(u,p,_);for(let g of m)e.push(i+" "+g);e.push("")}}}else{let f;u.site.menu?.items&&u.site.menu.items.length>0?f=u.site.menu.items.map(p=>({label:p.label,icon:p.icon,id:p.page})):u._fileRouter?f=u._fileRouter.getMenuItems().map(m=>({label:m.label,icon:m.icon,id:m.page})):f=u.site.pages.filter(p=>typeof p.title=="string"&&!p._hidden).map(p=>({label:p.title,icon:p.icon,id:p.id}));let _;if(!u.bootComplete&&u.site.animations?.boot){let p=Math.max(0,Math.floor((u.bootFrame-15)/3));_=f2(f.slice(0,p),u.focus.focusIndex,t)}else _=f2(f,u.focus.focusIndex,t);for(let p of _)e.push(i+p)}e.push(""),e.push(i+h(u.theme.border)+"\u2500".repeat(r)+d),e.push(""),e.push(i+h(u.theme.subtle)+L+" \u2191\u2193 navigate \u23CE select q quit : command"+d),u.site.handle&&(e.push(""),e.push(i+h(u.theme.subtle)+L+" "+u.site.handle+d))}function Iu(u){for(let e of u){if(e.type==="menu"||e.type==="section"&&Iu(e.content))return!0;if(e.type==="columns"){for(let t of e.panels)if(Iu(t.content))return!0}if(e.type==="split"){let t=e.config;if(Iu(t.first)||Iu(t.second))return!0}}return!1}function ru(u,e){if(u===e)return!0;if(u.type==="columns"){for(let t of u.panels)for(let n of t.content)if(ru(n,e))return!0}else if(u.type==="rows"){for(let t of u.panels)for(let n of t.content)if(ru(n,e))return!0}else if(u.type==="split"){let t=u.config;for(let n of t.first)if(ru(n,e))return!0;for(let n of t.second)if(ru(n,e))return!0}else if(u.type==="grid"){for(let t of u.config.items)for(let n of t.content)if(ru(n,e))return!0}else if(u.type==="box"){for(let t of u.config.children)if(ru(t,e))return!0}else if(u.type==="row"){for(let t of u.cols)for(let n of t.content)if(ru(n,e))return!0}else if(u.type==="container"){for(let t of u.content)if(ru(t,e))return!0}return!1}function rt(u,e,t,n,o){let r=u.getCurrentPage();if(!r)return;let s=u.getPageContent(r),i=t.width,a=Math.max(0,Math.floor((n-i)/2)),c=" ".repeat(a);if(s===null){let U=r.loading??"Loading...";e.push("");let S=h(u.theme.subtle)+L+"\u2190 back"+d,$=h(u.theme.accent)+v+(r.icon?r.icon+" ":"")+u.resolvePageTitle(r)+d;e.push(c+S+" "+$),e.push(c+h(u.theme.border)+"\u2500".repeat(i)+d),e.push("");let su=l2("dots",Math.floor(Date.now()/80));e.push(c+" "+h(u.theme.accent)+su+d+h(u.theme.muted)+" "+U+d);return}u.pageFocusItems.length===0&&s.length>0&&u.initializePageContent(s);let l=u.pageFocusItems[u.pageFocusIndex],f=[],_=-1,p=-1;u.currentFocusedBlock=l?.kind==="block"?l.block:void 0;let m=U=>!!l&&l.kind==="block"&&l.block===U,g=U=>!l||l.kind!=="accordion-item"||l.accordion!==U?-1:l.itemIndex,F=h(u.theme.accent)+"\u258C"+d,b=Math.max(1,i-1),C={...t,width:b},w=U=>{for(let S of U){if(S.type==="section"){let $=E(b,D.section);f.push(h(C.theme.accent)+v+" "+S.title+d),f.push(h(C.theme.border)+" "+"\u2500".repeat(Math.max(0,$.content-4))+d),f.push(""),w(S.content)}else if(S.type==="form"){w(S.fields);let $=u.formResults.get(S.id);if($){for(let su of v8({resultMessage:$.message,resultType:$.type},C))f.push(" "+su);f.push("")}}else if(S.type==="dynamic"){w(Su(u,S));continue}else if(S.type==="asyncContent")at(u,S,f,C,w);else if(S.type==="accordion")st(u,S,f,C,b,g,F,_,p,($,su)=>{_=$,p=su});else if(S.type==="timeline")it(u,S,f,C,b,l,F,_,p,($,su)=>{_=$,p=su});else{let $=m(S),H2=(S.type==="columns"||S.type==="rows"||S.type==="split"||S.type==="grid"||S.type==="box"||S.type==="row"||S.type==="container")&&!$&&!!u.currentFocusedBlock&&ru(S,u.currentFocusedBlock);($||H2)&&(_=f.length);let h5=U8(S),d5=$&&u.inputMode.isEditing,_5=$?{...C,focused:!0,editing:d5}:C,z2=fu(u,S,_5);if(h5&&$)for(let Wu of z2)f.push(F+Wu);else for(let Wu of z2)f.push(" "+Wu);($||H2)&&(p=f.length)}f.push("")}};w(s),f.length>0&&f[f.length-1]===""&&f.pop();let x=4,B=3,I=Math.max(1,o-x-B);_>=0&&(_<u.pageScrollOffset?u.pageScrollOffset=Math.max(0,_):p>u.pageScrollOffset+I&&(u.pageScrollOffset=Math.max(0,p-I))),u.pageScrollOffset=Math.min(u.pageScrollOffset,Math.max(0,f.length-I));let P=0,R=0;u.pageFocusItems.length>0&&(P=u.pageFocusIndex,R=u.pageFocusItems.length-1-u.pageFocusIndex),e.push(""),e.push(c+h(u.theme.subtle)+L+"\u2190 back"+d+" "+h(u.theme.accent)+v+(r.icon?r.icon+" ":"")+u.resolvePageTitle(r)+d),e.push(c+h(u.theme.border)+"\u2500".repeat(i)+d),u.pageScrollOffset>0&&P>0?e.push(c+h(u.theme.subtle)+L+" \u2191 "+P+" item"+(P>1?"s":"")+" above"+d):u.pageScrollOffset>0?e.push(c+h(u.theme.subtle)+L+" \u2191 more above"+d):e.push("");for(let U of f.slice(u.pageScrollOffset,u.pageScrollOffset+I))e.push(c+U);for(;e.length<o-B;)e.push("");let Y=u.pageScrollOffset+I<f.length;R>0?e.push(c+h(u.theme.subtle)+L+" \u2193 "+R+" item"+(R>1?"s":"")+" below"+d):Y?e.push(c+h(u.theme.subtle)+L+" \u2193 more below"+d):e.push(""),e.push(c+h(u.theme.border)+"\u2500".repeat(i)+d);let T=u.router.currentIndex+1,k=u.router.pageCount;u.inputMode.isEditing?e.push(c+h(u.theme.accent)+v+" \u2500\u2500 Editing \u2500\u2500"+d+h(u.theme.subtle)+L+" Type to input Esc done ["+T+"/"+k+"]"+d):e.push(c+h(u.theme.subtle)+L+" \u2191\u2193 navigate \u23CE select \u2190 back q quit ["+T+"/"+k+"]"+d)}function st(u,e,t,n,o,r,s,i,a,c){let l=r(e),f=e.items.map(p=>p.label).join(","),_=u.accordionState.get(f)??-1;for(let p=0;p<e.items.length;p++){let m=e.items[p],g=l===p,F=p===_,b=-1,C=-1;g&&(b=t.length);let w=F?"\u25BE":"\u25B8",x=F||g?n.theme.accent:n.theme.text,B=E(o,D.accordion),I=Math.max(0,B.content-2),P=h(x)+v+` ${w} ${m.label.length>I?m.label.substring(0,I-1)+"\u2026":m.label}`+d;if(t.push(g?s+P:" "+P),F){let R={...n,width:B.content,focused:!1};for(let Y of m.content)for(let T of fu(u,Y,R))t.push(" "+T);t.push("")}g&&(C=t.length,c(b,C))}}function it(u,e,t,n,o,r,s,i,a,c){let l=r?.kind==="timeline-item"&&r.timeline===e?r.itemIndex:-1;for(let f=0;f<e.items.length;f++){let _=e.items[f],p=l===f,m=f===e.items.length-1,g=-1,F=-1;p&&(g=t.length);let b=p?"\u25CF":"\u25CB",C=_.title;_.subtitle&&(C+=" \xB7 "+_.subtitle);let w=p?n.theme.accent:n.theme.border,x=p?n.theme.accent:n.theme.text;if(t.push(" "+h(w)+" "+b+" "+d+h(x)+v+C+d),(_.period||_.date)&&t.push(" "+h(n.theme.border)+" \u2502 "+d+h(n.theme.muted)+L+(_.period??_.date)+d),_.description){let B=E(o,D.timeline);for(let I of K(_.description,B.content))t.push(" "+h(n.theme.border)+" \u2502 "+d+h(n.theme.text)+I+d)}m||t.push(" "+h(n.theme.border)+" \u2502"+d),p&&(F=t.length,c(g,F))}}function at(u,e,t,n,o){let r=e._asyncId??"async-anon",s=u.asyncManager.getState(r);if(!s){u.asyncManager.load(r,e.load,()=>u.render());let i=l2("dots",Math.floor(Date.now()/80));t.push(" "+h(n.theme.accent)+i+d+h(n.theme.muted)+" "+(e.loading??"Loading...")+d);return}if(s.status==="loading"){let i=l2("dots",Math.floor(Date.now()/80));t.push(" "+h(n.theme.accent)+i+d+h(n.theme.muted)+" "+(e.loading??"Loading...")+d),setTimeout(()=>u.render(),100);return}if(s.status==="error"){e.fallback?o(e.fallback):t.push(" "+h(n.theme.error)+"\u26A0 "+(s.error?.message??"Failed to load content")+d);return}s.content&&o(s.content)}async function ct(u,e){for(let t of u){let n=await t(e);if(n&&"redirect"in n)return n}}function V8(u,e,t){let n=u.site.pages.find(r=>r.id===e);if(n||(n=u.site.pages.find(r=>{if(!r.id.includes("["))return!1;let s=r.id.replace(/\/\[.*?\].*$/,"");return e===s||e.startsWith(s+"/")})),!n){typeof process<"u"&&process.stderr&&process.stderr.write(`[terminaltui] navigate: page '${e}' not found. Available: ${u.site.pages.map(r=>r.id).join(", ")}
|
|
23
|
+
`);return}let o=[...u.site.middleware??[],...n.middleware??[]];o.length>0?ct(o,{page:e,params:t??{},state:null}).then(r=>{if(r&&"redirect"in r){V8(u,r.redirect,r.params);return}o2(u,e,t)}).catch(()=>{o2(u,e,t)}):o2(u,e,t)}function o2(u,e,t){let n=u.router.currentPage;u.router.navigate(e),u.currentParams=t??{},u.scrollOffset=0,q8(u),u.site.onNavigate&&u.site.onNavigate(n,e,t),u.render()}function q8(u){u.pageFocusIndex=0,u.pageScrollOffset=0,u.pageFocusItems=[],u.focusRects=[],u.inputMode.reset(),u.formRegistry.clear();let e=J8(u);if(!e)return;let t=u.site.pages.find(o=>o.id===e.id);if(t&&typeof t.title=="function"){lt(u,t);return}let n=e.content;if(typeof n=="function"){ft(u,e);return}mu(u,n)}function lt(u,e){let t=u.currentParams,n=`route-${e.id}-${JSON.stringify(t)}`,o=async()=>{let r=e.content(t);return r instanceof Promise?await r:r};u.asyncManager.load(n,o,()=>{let r=u.asyncManager.getState(n);if(r?.status==="loaded"&&r.content)u.resolvedPageContent.set(e.id,r.content),mu(u,r.content);else if(r?.status==="error"&&e.onError){let s=e.onError(r.error,t);u.resolvedPageContent.set(e.id,s),mu(u,s)}u.render()})}function ft(u,e){let t=`page-${e.id}`,n=e.content;u.asyncManager.load(t,n,()=>{let o=u.asyncManager.getState(t);if(o?.status==="loaded"&&o.content)u.resolvedPageContent.set(e.id,o.content),mu(u,o.content);else if(o?.status==="error"&&e.onError){let r=e.onError(o.error);u.resolvedPageContent.set(e.id,r),mu(u,r)}u.render()}),e.refreshInterval&&u.asyncManager.setupRefresh(t,e.refreshInterval,n,()=>{let o=u.asyncManager.getState(t);if(o?.status==="loaded"&&o.content){u.resolvedPageContent.set(e.id,o.content);let r=u.pageFocusIndex;u.pageFocusItems=z(u,o.content),u.pageFocusIndex=Math.min(r,Math.max(0,u.pageFocusItems.length-1)),G(u,o.content),K8(u,o.content)}u.render()})}function mu(u,e){u.pageFocusItems=z(u,e),G(u,e),K8(u,e)}function K8(u,e){let{columns:t}=eu(),n=Math.min(120,t-2),{rows:o}=eu(),r=Math.max(10,o-8);u.focusRects=E8(e,n,r,s=>Su(u,s))}function G(u,e){for(let t of e)if(t.type==="form")u.formRegistry.set(t.id,t),G(u,t.fields);else if(t.type==="section")G(u,t.content);else if(t.type==="columns")for(let n of t.panels)G(u,n.content);else if(t.type==="rows")for(let n of t.panels)G(u,n.content);else if(t.type==="split"){let n=t;G(u,n.config.first),G(u,n.config.second)}else if(t.type==="grid")for(let n of t.config.items)G(u,n.content);else if(t.type==="panel")G(u,t.config.content);else if(t.type==="box")G(u,t.config.children);else if(t.type==="row")for(let n of t.cols)G(u,n.content);else t.type==="container"&&G(u,t.content)}function ht(u,e){let t=u.site.pages.find(n=>n.id===e.id);return t&&typeof t.title=="function"?t.title(u.currentParams):e.title}function dt(u,e){return typeof e.content=="function"?u.resolvedPageContent.get(e.id)??null:e.content}function z(u,e){let t=[];for(let n of e)switch(n.type){case"card":case"link":case"hero":t.push({kind:"block",block:n});break;case"textInput":case"textArea":case"select":case"checkbox":case"toggle":case"radioGroup":case"numberInput":case"searchInput":case"button":case"chat":t.push({kind:"block",block:n});break;case"accordion":for(let o=0;o<n.items.length;o++)t.push({kind:"accordion-item",accordion:n,itemIndex:o});break;case"timeline":for(let o=0;o<n.items.length;o++)t.push({kind:"timeline-item",timeline:n,itemIndex:o});break;case"tabs":t.push({kind:"block",block:n});break;case"section":t.push(...z(u,n.content));break;case"form":t.push(...z(u,n.fields));break;case"dynamic":{let o=Su(u,n);t.push(...z(u,o));break}case"columns":{let o=n;for(let r of o.panels)t.push(...z(u,r.content));break}case"rows":{let o=n;for(let r of o.panels)t.push(...z(u,r.content));break}case"split":{let o=n;t.push(...z(u,o.config.first)),t.push(...z(u,o.config.second));break}case"grid":{let o=n;for(let r of o.config.items)t.push(...z(u,r.content));break}case"panel":{let o=n;t.push(...z(u,o.config.content));break}case"box":{let o=n;t.push(...z(u,o.config.children));break}case"row":{let o=n;for(let r of o.cols)t.push(...z(u,r.content));break}case"container":{let o=n;t.push(...z(u,o.content));break}default:break}return t}function _t(u){if(u.pageFocusItems.length===0){u.pageScrollOffset++;return}u.pageFocusIndex<u.pageFocusItems.length-1?u.pageFocusIndex++:u.pageScrollOffset++}function pt(u){if(u.pageFocusItems.length===0){u.pageScrollOffset>0&&u.pageScrollOffset--;return}u.pageFocusIndex>0?u.pageFocusIndex--:u.pageScrollOffset>0&&u.pageScrollOffset--}function J8(u){let e=u.site.pages.find(t=>t.id===u.router.currentPage);if(e)return e}function Mu(u,e){u.feedbackMessage=e,u.feedbackTimer&&clearTimeout(u.feedbackTimer),u.feedbackTimer=setTimeout(()=>{u.feedbackMessage="",u.render()},2e3),u.render()}function mt(u,e){let t=e.trim().toLowerCase();if(t==="q"||t==="quit"){u.stop();return}if(t.startsWith("theme ")){let n=t.slice(6).trim(),{themes:o}=(Yu(),a8(b8));o[n]?(u.theme=o[n],Mu(u,`Theme: ${n}`)):Mu(u,`Unknown theme: ${n}`);return}if(u.site.easterEggs?.commands?.[t]){let n=u.site.easterEggs.commands[t];typeof n=="string"?Mu(u,n):n();return}Mu(u,`Unknown command: ${e}`)}function r2(u){return new Promise((e,t)=>{let n=process.platform,o;n==="darwin"?o=`open "${u}"`:n==="win32"?o=`start "" "${u}"`:o=`xdg-open "${u}"`,gt(o,r=>{r?t(r):e()})})}function Ft(u){let e=u.pageFocusItems[u.pageFocusIndex];if(!e)return;if(e.kind==="accordion-item"){let o=e.accordion.items.map(s=>s.label).join(","),r=u.accordionState.get(o)??-1;u.accordionState.set(o,r===e.itemIndex?-1:e.itemIndex);return}if(e.kind==="timeline-item")return;let t=e.block;if(t.type==="textInput"||t.type==="textArea"||t.type==="numberInput"||t.type==="searchInput"){let n=t.id;u.inputMode.enterEdit(n),u.getInputState(n,p2(t));return}if(t.type==="select"){let n=t.id,o=u.getInputState(n,t.defaultValue??"");u.inputMode.enterEdit(n),o.open=!0;let r=t.options.findIndex(s=>s.value===o.value);o.highlightIndex=r>=0?r:0;return}if(t.type==="radioGroup"){let n=t.id,o=u.getInputState(n,t.defaultValue??"");u.inputMode.enterEdit(n);let r=t.options.findIndex(s=>s.value===o.value);o.highlightIndex=r>=0?r:0;return}if(t.type==="checkbox"||t.type==="toggle"){let n=t.id,o=u.getInputState(n,t.defaultValue??!1);o.value=!o.value,t.onChange?.(o.value);return}if(t.type==="button"){bt(u,t);return}if(t.type==="link"){u.showFeedback(`Opening ${t.url}...`),r2(t.url).catch(()=>{});return}if(t.type==="card"&&t.url){u.showFeedback(`Opening ${t.url}...`),r2(t.url).catch(()=>{});return}if(t.type==="card"&&t.action){Ct(u,t);return}if(t.type==="tabs"){let n=t.items.map(r=>r.label).join(","),o=u.tabState.get(n)??0;u.tabState.set(n,(o+1)%t.items.length);return}if(t.type==="hero"&&t.cta?.url){u.showFeedback(`Opening ${t.cta.url}...`),r2(t.cta.url).catch(()=>{});return}}function bt(u,e){if(e._formId){wt(u,e._formId);return}if(e.onPress){let t=e.onPress();if(t&&typeof t.then=="function"){let n=e.label;u.buttonLoading.set(n,!0),u.render(),t.then(o=>{u.buttonLoading.delete(n),F8(u,o),u.render()}).catch(o=>{u.buttonLoading.delete(n),u.notifications.error(o instanceof Error?o.message:String(o)),u.render()})}else t&&F8(u,t),u.render()}}function Ct(u,e){if(!e.action)return;if(e.action.navigate){u.navigateToPage(e.action.navigate,e.action.params);return}if(e.action.confirm&&u.showFeedback("Action triggered"),!e.action.onPress)return;let t=e.action.onPress();t&&typeof t.then=="function"&&t.then(()=>u.render()).catch(()=>u.render())}function F8(u,e){!e||typeof e!="object"||("success"in e?u.notifications.success(e.success):"error"in e?u.notifications.error(e.error):"info"in e&&u.notifications.info(e.info))}function Q8(u,e){if(e.type==="textInput"){let t=e;if(t.validate){let n=u.getInputState(t.id,t.defaultValue??""),o=t.validate(n.value);return n.error=o,o===null}}else if(e.type==="textArea"){let t=e;if(t.validate){let n=u.getInputState(t.id,t.defaultValue??""),o=t.validate(n.value);return n.error=o,o===null}}return!0}async function wt(u,e){let t=u.formRegistry.get(e);if(!t)return;let n=_e(t.fields),o=-1;for(let a=0;a<t.fields.length;a++){let c=t.fields[a];Q8(u,c)||o<0&&(o=a)}if(o>=0){let c=t.fields[o].id;if(c)for(let l=0;l<u.pageFocusItems.length;l++){let f=u.pageFocusItems[l];if(f.kind==="block"&&"id"in f.block&&f.block.id===c){u.pageFocusIndex=l;break}}u.render();return}let r={};for(let a of n){let c=u.inputStates.get(a);r[a]=c?.value??void 0}let s=t.fields.find(a=>a.type==="button"),i=s?s.label:"";i&&u.buttonLoading.set(i,!0),u.render();try{let a=await t.onSubmit(r);i&&u.buttonLoading.delete(i),"success"in a?(u.formResults.set(e,{message:a.success,type:"success"}),u.notifications.success(a.success),t.resetOnSubmit&&Z8(u,t)):"error"in a?(u.formResults.set(e,{message:a.error,type:"error"}),u.notifications.error(a.error)):"info"in a&&(u.formResults.set(e,{message:a.info,type:"info"}),u.notifications.info(a.info))}catch(a){i&&u.buttonLoading.delete(i);let c=a instanceof Error?a.message:"An error occurred";u.formResults.set(e,{message:c,type:"error"}),u.notifications.error(c)}u.render(),setTimeout(()=>{u.formResults.delete(e),u.render()},5e3)}function Z8(u,e){for(let t of e.fields)if("id"in t&&t.type!=="button"){let n=t.id,o=p2(t),r=u.inputStates.get(n);r&&(r.value=o,r.cursorPos=typeof o=="string"?o.length:0,r.error=null,r.open=!1,r.highlightIndex=0,r.scrollOffset=0)}}var X8=class{site;theme;router;focus;borderStyle;scrollOffset=0;commandMode=!1;commandBuffer="";feedbackMessage="";feedbackTimer=null;accordionState=new Map;tabState=new Map;galleryState=new Map;pageFocusIndex=0;pageFocusItems=[];pageScrollOffset=0;bootComplete=!1;bootFrame=0;bootTimer=null;inputMode=new ee;inputStates=new Map;formResults=new Map;buttonLoading=new Map;notifications=new te;notificationTimer=null;asyncManager=new ne;resolvedPageContent=new Map;formRegistry=new Map;currentParams={};dynamicCache=new Map;apiServer=null;focusRects=[];constructor(u){this.site=u.config,this.theme=this.resolveTheme(u.config.theme),this.borderStyle=u.config.borders??"rounded",this.router=new Q5,this.focus=new Z5;let e=u.config.pages.map(n=>n.id);this.router.registerPages(e);let t=u.config.pages.filter(n=>typeof n.title=="string"&&!n._hidden).map(n=>n.id);this.focus.setItems(t)}resolveTheme(u){return u?typeof u=="string"?Pu[u]??Eu:u:Eu}async start(){_2(),this.site.api&&Object.keys(this.site.api).length>0&&(this.apiServer=new w8,this.apiServer.registerRoutes(this.site.api),await this.apiServer.start(),a2(this.apiServer.getBaseUrl()));let u=z5();Nu(u.colorDepth),d8(()=>this.render());let e=null;if(globalThis.__terminaltui_render_callback__=()=>{e||(e=setTimeout(()=>{e=null,this.render()},0))},c8((t,n)=>this.navigateToPage(t,n)),this.site.onInit)try{await this.site.onInit({state:null,navigate:(t,n)=>this.navigateToPage(t,n)})}catch(t){console.error("[terminaltui] onInit error:",t)}this.setupTerminal(),C8.on("resize",()=>this.render()),u2.on("keypress",t=>this.handleKey(t)),u2.start(),this.notificationTimer=setInterval(()=>{this.notifications.prune()&&this.render()},500),this.site.animations?.boot?this.runBootAnimation():(this.bootComplete=!0,this.render())}setupTerminal(){process.stdout.write("\x1B[?1049h"),process.stdout.write("\x1B[?25l"),process.stdout.write("\x1B[2J"),process.stdout.write("\x1B[H");let u=()=>this.cleanup();process.on("SIGINT",u),process.on("SIGTERM",u),process.on("uncaughtException",e=>{this.cleanup(),console.error(e),process.exit(1)})}cleanup(){u2.stop(),ue.stop(),this.asyncManager.cleanup(),this.bootTimer&&clearInterval(this.bootTimer),this.feedbackTimer&&clearTimeout(this.feedbackTimer),this.notificationTimer&&clearInterval(this.notificationTimer),x8(),this.apiServer&&(this.apiServer.stop(),a2(null)),delete globalThis.__terminaltui_render_callback__,process.stdout.write("\x1B[?25h"),process.stdout.write("\x1B[?1049l"),process.stdout.write("\x1B[0m")}async stop(){if(this.site.onExit)try{await this.site.onExit({state:null,navigate:()=>{}})}catch{}if(d8(null),c8(null),this.site.animations?.exitMessage){let{columns:u,rows:e}=eu();process.stdout.write("\x1B[2J\x1B[H");let t=this.site.animations.exitMessage,n=Math.floor(e/2),o=Math.max(0,Math.floor((u-y(t))/2));process.stdout.write(`\x1B[${n};${o}H`),process.stdout.write(h(this.theme.accent)+v+t+d),await new Promise(r=>setTimeout(r,800))}this.cleanup(),process.exit(0)}runBootAnimation(){this.bootComplete=!1,this.bootFrame=0;let u=30;this.bootTimer=setInterval(()=>{this.bootFrame++,this.render(),this.bootFrame>=u&&(this.bootTimer&&clearInterval(this.bootTimer),this.bootTimer=null,this.bootComplete=!0,this.render())},33)}handleKey(u){if(this.commandMode){ye(this,u);return}if(this.inputMode.isEditing){this.handleEditMode(u);return}xe(this,u)}handleEditMode(u){ve(this,u)}render(){nt(this)}navigateToPage(u,e){V8(this,u,e)}enterPage(){q8(this)}getCurrentPage(){return J8(this)}getPageContent(u){return dt(this,u)}resolvePageTitle(u){return ht(this,u)}collectFocusItems(u){return z(this,u)}initializePageContent(u){mu(this,u)}registerForms(u){G(this,u)}pageFocusNext(){_t(this)}pageFocusPrev(){pt(this)}handlePageSelect(){Ft(this)}showFeedback(u){Mu(this,u)}executeCommand(u){mt(this,u)}validateInput(u){return Q8(this,u)}renderBlock(u,e){return fu(this,u,e)}isBlockFocusable(u){return U8(u)}renderContentBlocks(u,e){return Q(this,u,e)}getInputState(u,e){let t=this.inputStates.get(u);return t||(t=fe(e),this.inputStates.set(u,t)),t}getFocusedInputBlock(){let u=this.pageFocusItems[this.pageFocusIndex];if(!u||u.kind!=="block")return null;let e=u.block;return["textInput","textArea","select","checkbox","toggle","radioGroup","numberInput","searchInput","button"].includes(e.type)?e:null}getFocusedInputId(){let u=this.getFocusedInputBlock();return u?u.id??null:null}isTextEntryType(u){return u==="textInput"||u==="textArea"||u==="searchInput"||u==="numberInput"}isAutoEditKey(u){return!!(u.char&&u.char.length===1&&!u.ctrl&&!["up","down","left","right","escape","return","delete","home","end","tab"].includes(u.name)||u.name==="space"||u.name==="backspace")}resetForm(u){let e=this.formRegistry.get(u);e&&(Z8(this,e),this.render())}clearField(u){let e=this.inputStates.get(u);e&&(e.value="",e.cursorPos=0,e.error=null,this.render())}};async function w2(u){await new X8(u).start()}Zu();function t5(u){if(!u.name)throw new Error("Site config must have a name");if(!u.pages||u.pages.length===0)throw new Error("Site must have at least one page");for(let e of u.pages)if(!e.id)throw new Error(`Page must have an id: ${JSON.stringify(e)}`);return{config:u}}function ou(u,e){return{id:u,...e}}function M(u){return{type:"card",...u}}function n5(u,e){return{type:"list",items:u,style:e}}function o5(u){return{type:"hero",...u}}function Du(u,e,t){return{type:"link",label:u,url:e,icon:t?.icon}}function r5(u){return{type:"text",content:u,style:"plain"}}function tu(u){return{type:"text",content:u.replace(/\n\s+/g,`
|
|
24
|
+
`),style:"markdown"}}function j(u,e){return typeof u=="string"&&u!=="solid"&&u!=="dashed"&&u!=="dotted"&&u!=="double"&&u!=="label"?{type:"divider",style:"label",label:u}:{type:"divider",style:u,label:e}}function s5(u){return{type:"textInput",...u}}function i5(u){return{type:"button",...u}}function a5(u){let e={type:"form",...u};for(let t of e.fields)t.type==="button"&&(t._formId=e.id);return e}Yu();var u5=0;function c5(u,e){return typeof u=="function"?{type:"dynamic",render:u,_dynamicId:`dynamic-${u5++}`}:{type:"dynamic",deps:u,render:e,_dynamicId:`dynamic-${u5++}`}}async function Fu(u){try{let e=new AbortController,t=u.timeout?setTimeout(()=>e.abort(),u.timeout):null,n={method:u.method??"GET",headers:{"Content-Type":"application/json",...u.headers},signal:e.signal};u.body&&u.method!=="GET"&&(n.body=typeof u.body=="string"?u.body:JSON.stringify(u.body));let o=await fetch(y8(u.url),n);t&&clearTimeout(t);let r=null;return(o.headers.get("content-type")??"").includes("application/json")?r=await o.json():r=await o.text(),o.ok?{data:r,error:null,status:o.status,ok:!0}:{data:r,error:new Error(`HTTP ${o.status}: ${o.statusText}`),status:o.status,ok:!1}}catch(e){return{data:null,error:e instanceof Error?e:new Error(String(e)),status:0,ok:!1}}}async function hu(u){return Fu(u)}hu.get=(u,e)=>Fu({url:u,method:"GET",headers:e});hu.post=(u,e,t)=>Fu({url:u,method:"POST",body:e,headers:t});hu.put=(u,e,t)=>Fu({url:u,method:"PUT",body:e,headers:t});hu.delete=(u,e)=>Fu({url:u,method:"DELETE",headers:e});hu.patch=(u,e,t)=>Fu({url:u,method:"PATCH",body:e,headers:t});var e5=!1;function yt(){if(!e5){e5=!0;try{_2()}catch{}}}function l5(u){if("name"in u&&typeof u.name=="string"){let o=u;if(!o.name)throw new Error("defineConfig() config must have a name");return o}let e=u;yt();let t={},n=[];for(let[o,r]of Object.entries(e)){let s=process.env[r.env];s!==void 0?t[o]=r.transform?r.transform(s):s:r.default!==void 0?t[o]=r.default:r.required?n.push(`Missing required environment variable: ${r.env} (config key: ${o})`):t[o]=void 0}if(n.length>0)throw new Error(`[terminaltui] Configuration errors:
|
|
93
25
|
${n.join(`
|
|
94
|
-
`)}`);return{get(
|
|
26
|
+
`)}`);return{get(o){return t[o]},getAll(){return{...t}}}}var f5=l5({name:"Omar Musayev",tagline:"AI Engineer & Full Stack Developer",banner:{text:"OMAR",font:"ANSI Shadow",gradient:["#ff6b00","#ff9500"]},theme:"cyberpunk",borders:"rounded",animations:{boot:!0,transitions:"fade",exitMessage:"// Session terminated. See you later!"}});var y2={hidden:!0};function x2(){return[tu(`# OmarAi Dev Log 1
|
|
27
|
+
*September 8, 2024*
|
|
28
|
+
|
|
29
|
+
Hello Everybody,
|
|
30
|
+
|
|
31
|
+
Today I started working on a project that I have been meaning to do for a long time, creating an AI version of me. Well at least something similar, we all know that AI can't replace me but I need someone who I can rely on to answer questions about me to other people.
|
|
32
|
+
|
|
33
|
+
**Initial Plan:** My initial plan for this project is to fine-tune one of OpenAI's LLMs to get an idea of what the final product could look like. My idea was to download my message data from Instagram, which you can easily do through Instagram settings. However, the data that Instagram gives you needs to be heavily re-organized and scrubbed to be put into OpenAI's fine-tuning.
|
|
34
|
+
|
|
35
|
+
**The file structure it gives us is similar to this:**
|
|
36
|
+
|
|
37
|
+
\`\`\`
|
|
38
|
+
messages/inbox/Xpersonsname/mychatlogswiththatperson
|
|
39
|
+
\`\`\`
|
|
40
|
+
|
|
41
|
+
And inside, you'll find a file called \`message_1.json\` (sometimes more, depending on the length of the chat) and possibly folders for photos, videos, and other media shared in the chat.
|
|
42
|
+
|
|
43
|
+
The \`message_1.json\` files contain a series of messages exchanged between me and the other person, formatted as a JSON object. Here's a simplified example of what these messages look like inside the JSON:
|
|
44
|
+
|
|
45
|
+
\`\`\`json
|
|
46
|
+
{
|
|
47
|
+
"participants": [
|
|
48
|
+
{ "name": "Omar Musayev" },
|
|
49
|
+
{ "name": "Abdul-Aziz Mammadli" }
|
|
50
|
+
],
|
|
51
|
+
"messages": [
|
|
52
|
+
{
|
|
53
|
+
"sender_name": "Abdul-Aziz Mammadli",
|
|
54
|
+
"timestamp_ms": 1712667823182,
|
|
55
|
+
"content": "Hey Omar, how's it going?"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"sender_name": "Omar Musayev",
|
|
59
|
+
"timestamp_ms": 1712667805807,
|
|
60
|
+
"content": "Not bad, just working on this cool AI project!"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
\`\`\`
|
|
65
|
+
|
|
66
|
+
There are a few ways I tried to organize this data into a way the fine-tuning can understand.
|
|
67
|
+
|
|
68
|
+
First, I tried to pair up every consecutive message that contained me at least once in the structure: **Prompt : answer**
|
|
69
|
+
|
|
70
|
+
But then I realized that when texting, I often double text, leading to the AI thinking I'm talking to myself.
|
|
71
|
+
|
|
72
|
+
I then fixed this problem and wrote a program to detect when I and another person send consecutive messages. I didn't realize it at the time, but this hadn't solved the problem either.
|
|
73
|
+
|
|
74
|
+
At the time, I was satisfied with the results and moved on to the fine-tuning. I tried fine-tuning 2 models:
|
|
75
|
+
|
|
76
|
+
- **Babbage-002**
|
|
77
|
+
- **GPT-4o-mini-2024-07-18**
|
|
78
|
+
|
|
79
|
+
However, they didn't give me the best of results. While GPT-4o-mini-2024-07-18 could give me actual responses, they were usually very short or just irrelevant. One thing it did pick up on was my vocabulary, and it would use words like "I mean", "Kinda", and "fr".
|
|
80
|
+
|
|
81
|
+
This is when I realized that the reason it was giving short outputs was because I was giving it short inputs in the training data. You see, my data only took 2 messages at a time, but we teenagers rarely fit our sentences into a single message. Instead, we send multiple messages that make up a complete sentence. So I decided on a new way to sort the data:
|
|
82
|
+
|
|
83
|
+
1. Merge all consecutive messages from the other person into one complete prompt.
|
|
84
|
+
2. Merge all consecutive responses from me into one complete reply.
|
|
85
|
+
3. Use this merged conversation to form a better prompt-response pair for training.
|
|
86
|
+
|
|
87
|
+
After doing this, I put my new data into the GPT-4o-2024-08-06 model fine-tuning, and as I am writing this, I am waiting for the model to train.
|
|
88
|
+
|
|
89
|
+
I will update you guys on the results in the next dev log.
|
|
90
|
+
|
|
91
|
+
See you guys later!!`)]}var v2={hidden:!0};function B2(){return[tu(`# OmarAi Dev Log 2
|
|
92
|
+
*September 12, 2024*
|
|
93
|
+
|
|
94
|
+
Hello Everybody,
|
|
95
|
+
|
|
96
|
+
So, over the course of the past few days I have found some mistakes in my old codes for OmarAi and I have experimented with new things.
|
|
97
|
+
|
|
98
|
+
First thing first remember how I was waiting for my "GPT-4o-2024-08-06" model to fine tune? Well, that failed due to the huge number of data points I had which was around 20k+ message pairs. The model couldn't tokenize all this and train on it because I had set a limit on it to not use too many resources.
|
|
99
|
+
|
|
100
|
+
This was a good thing though because it prompted me to look over my data to see if there was anything I could cut out. This is when I realized that my data was heavily flawed. The algorithm I had used to convert my messages from just messages to conversation pairs looked at messages from the most recent to the oldest which caused a problem. The conversation pairs would take the last message sent as the first message sent and vice versa.
|
|
101
|
+
|
|
102
|
+
The fix for this was quite easy. I just had to reverse the order of messages before using the same algorithm to form conversation pairs.
|
|
103
|
+
|
|
104
|
+
Now, coming back to my original problem of having too many messages that took too many resources without contributing anything to the model, I first had to make sure that my conversations were in English. While looking at the data, I noticed that most of the conversations included Azerbaijani or even random languages that me and my friends had developed to talk to each other. This would negatively affect the future model as its language understanding would be confused so I had to find a way of cutting it.
|
|
105
|
+
|
|
106
|
+
The solution I came up with? **Use AI!**
|
|
107
|
+
|
|
108
|
+
I used the open-ai gpt-3.5 api to go over each of my message pairs and convert them into data that was more useful to the model that I wanted to train. I made an algorithm to feed it 50 conversations at a time and for it to choose the best 4-5 each time which was in English.
|
|
109
|
+
|
|
110
|
+
This was a huge success and allowed me to downsize my dataset of 20 thousand conversations to around 2 thousand high quality conversations that could all contribute to fine tuning "OmarAI".
|
|
111
|
+
|
|
112
|
+
The next step was using an algorithm to comb over the new data and make sure all of it was in the format that was appropriate to fine-tune open-ai models. The algorithm fixed all the inconsistencies gpt-3.5 had created in the syntax.
|
|
113
|
+
|
|
114
|
+
After the data was ready, I put it into gpt-o4 api for fine tuning and went to sleep to see the results the next day.
|
|
115
|
+
|
|
116
|
+
I will keep you guys updated on how it turns out.`)]}var I2={hidden:!0};function M2(){return[tu(`# OmarAi Dev Log 3
|
|
117
|
+
*September 14, 2024*
|
|
118
|
+
|
|
119
|
+
Hello Everybody,
|
|
120
|
+
|
|
121
|
+
Yesterday I was able to use the new model trained on the ai-picked data for the first time. It was a weird experience.
|
|
122
|
+
|
|
123
|
+
Since I hadn't made a UI for the model yet I just experimented around with it from a command prompt after writing a simple python code to communicate with my model.
|
|
124
|
+
|
|
125
|
+
The results were definitely interesting. It felt like the model had captured my conversation style and was able to sound similar to how I would text but it didn't have any memories. It would try to make up random information for the stuff it didn't know and this was a huge flaw as the REAL Omar would know about them all.
|
|
126
|
+
|
|
127
|
+
To fix this problem I explored a few things:
|
|
128
|
+
|
|
129
|
+
1. **Text Embeddings** \u2014 I tried to turn my past conversations, resumes, essays, etc into text embeddings that I could use as a "memory" for the model. However this approach was too slow due to the large amount of information that the model had to go through each time.
|
|
130
|
+
|
|
131
|
+
2. **Multi-Agent System** \u2014 I made a json file with all the information needed about me and tried to use OpenAI's new threads and multi agent systems to have one agent do a file search while the other would use the information from the file search in its responses. This approach also had its issues as having 2 agents instead of one used up lots of tokens as well as being extremely slow.
|
|
132
|
+
|
|
133
|
+
3. **System Prompt with JSON Context** \u2014 Finally opting for simplicity, I used the JSON file from the previous approach and passed it through OpenAI's system messages to give my model context so it can quickly search through it and pick the right data to answer questions. I also passed on a protocol for it to not reveal any personal information.
|
|
134
|
+
|
|
135
|
+
Here was the system prompt for Omar-AI:
|
|
136
|
+
|
|
137
|
+
> "You are a friendly assistant who always maintains a fun and casual tone while ensuring sensitive information remains confidential. When discussing personal or delicate topics, gently steer the conversation in a light and engaging direction without disclosing private details."
|
|
138
|
+
|
|
139
|
+
This prompt seemed to work and for now training the model was finished. Up next is building a UI for the model.
|
|
140
|
+
|
|
141
|
+
See You guys later!`)]}var A2={hidden:!0};function P2(){return[tu(`# OmarAi Dev Log 4
|
|
142
|
+
*September 18, 2024*
|
|
143
|
+
|
|
144
|
+
Creating the UI for OmarAI was definitely a journey and I am going to explain it here.
|
|
145
|
+
|
|
146
|
+
First I had to think about whether I wanted to build a separate website for Omar AI or if I wanted to use my current blog site for it. In the end I decided on using my own blog site as this website already has everything about me in one place so adding an actual Omar into the mix would be a pretty fun feature.
|
|
147
|
+
|
|
148
|
+
I first started looking for next js templates that could help me implement this and I came across a template that subframe made for ai chat bots. However, when I tried to use it within my website, I ran into compatibility issues. There were multiple libraries and dependencies in the template that were a different version to the dependencies and libraries that I had used for my own website. This clash of dependencies caused the website to not function.
|
|
149
|
+
|
|
150
|
+
My thought process next was to create a chatbot frame on my own but there were problems with that too. Creating the front-end of the chatbot was quite easy but I couldn't get it to connect directly to the OpenAI api. I tried to do the back end within the next js app using the api routes inside the project but I soon realized how much more difficult it was to code an API in javascript rather than python which I am much more experienced in.
|
|
151
|
+
|
|
152
|
+
For this reason, I ended up opening a new backend project in python where I put my ai model into and gave some instructions. After hosting that api on the cloud I made a call to it within the front end code of my website so that the frontend and back end were connected.
|
|
153
|
+
|
|
154
|
+
This way I had finally made a functional chatbot within my website.
|
|
155
|
+
|
|
156
|
+
Omar Musayev`)]}var E2={hidden:!0};function S2(){return[tu(`# OmarAi Dev Log 5
|
|
157
|
+
*October 2, 2024*
|
|
158
|
+
|
|
159
|
+
Hello everyone!
|
|
160
|
+
|
|
161
|
+
I was finally able to launch my model to the public and was able to gather tons of feedback from my peers on how I should improve the model and make it more like me. This blog will explore the changes I've made on the program since the launch and my reasons for making these changes. Some changes were quite simple, like including some more information about me within the memory, but some were more complicated\u2014such as tweaking the personality of the model through additional fine-tuning to allow it to give bigger and more comprehensive responses. Additionally, I have also tried to create new models based on other large language models like Llama, MPT, and Falcon.
|
|
162
|
+
|
|
163
|
+
One of the first things I noticed after launching OmarAI was that users enjoyed its conversational tone but wanted more depth. While my initial training data gave it a strong sense of my casual style\u2014complete with slang and emojis\u2014the AI often kept its answers too short or simplistic, especially when asked more elaborate questions. To fix this, I tweaked the fine-tuning to encourage lengthier, more detailed responses. I included examples of real conversations where I wrote lengthy paragraphs, or provided more involved stories and insights. This taught the AI to deliver fuller, richer answers rather than short, surface-level replies.
|
|
164
|
+
|
|
165
|
+
Another piece of feedback I consistently received was that the AI sometimes lacked continuity when referring to personal information. For example, it would occasionally mention random facts about me that I might have briefly referenced in older messages, but it wouldn't always remember important details I'd shared in the more recent data. To address this, I expanded the "memory" section of my system prompt. This memory now includes a curated list of facts about me\u2014covering my interests, hobbies, close relationships, and notable personal anecdotes\u2014so OmarAI has a more reliable context to draw upon. However, I also updated the protocols to ensure that truly sensitive or private information remains confidential. In other words, if someone asks for something personal that isn't meant to be shared, the AI knows to politely but firmly redirect the conversation without revealing anything I'd consider private.
|
|
166
|
+
|
|
167
|
+
Speaking of protocols, I made sure to refine them for both security and personality reasons. Originally, the model's system prompt included a friendly, casual directive, but some users tried to push boundaries by asking for deeply personal details. Now, OmarAI not only refuses to reveal such information, but it does so in a playful, lighthearted way\u2014staying true to my personality while maintaining respect for personal boundaries. I also introduced a "playful fallback" mechanism, so when repeatedly pressed, OmarAI can politely deflect the conversation with a bit of humor, such as sharing a random fun fact or changing the subject in a friendly manner.
|
|
168
|
+
|
|
169
|
+
Finally, I experimented with building models based on Llama, MPT, and Falcon. While each has its strengths\u2014like Llama's efficient performance or Falcon's open-source flexibility\u2014I discovered that GPT-based models still deliver the best overall user experience in terms of coherence, creativity, and ease of deployment for my specific needs. In the future, I may consider a hybrid approach that leverages the benefits of multiple architectures, but for now, I'm happy with where OmarAI stands.
|
|
170
|
+
|
|
171
|
+
As I continue to refine and improve OmarAI, I'm grateful for everyone's feedback and support. Seeing people interact with an AI version of me has been both surreal and enlightening. There's still room to grow, but for now, I'm proud of the progress we've made and excited for what's next. Stay tuned for more updates, and feel free to keep sending feedback my way!`)]}var D2={label:"Blogs",order:3,icon:"\u2726"};function T2(){return[j("Dev Logs"),M({title:"OmarAi Dev Log 1",subtitle:"September 8, 2024",body:"Starting on the journey to making an AI Large Language Model (LLM) that can replicate my speech",action:{navigate:"blog-1"}}),M({title:"OmarAi Dev Log 2",subtitle:"September 12, 2024",body:"Tinkering around with Omar AI to get better results",action:{navigate:"blog-2"}}),M({title:"OmarAi Dev Log 3",subtitle:"September 14, 2024",body:"Testing out the model",action:{navigate:"blog-3"}}),M({title:"OmarAi Dev Log 4",subtitle:"September 18, 2024",body:"Creating the UI",action:{navigate:"blog-4"}}),M({title:"OmarAi Dev Log 5",subtitle:"October 2, 2024",body:"The Launch",action:{navigate:"blog-5"}})]}var L2={order:0};function O2(){return[o5({title:"Omar Musayev",subtitle:"AI Engineer & Full Stack Developer | Purdue University | 4.0 GPA"}),j("About"),M({title:"About Me",body:"I'm a double major in Artificial Intelligence and Mathematics at Purdue University with a 4.0 GPA. Passionate about starting new projects, finishing what I can, and learning along the way. I love building things\u2014especially with AI\u2014and exploring how tech can solve real-world problems."}),j("Skills"),n5(["Multi-Agentic Systems","LLM Fine-Tuning","RAG Pipelines","Prompt Engineering","Computer Vision","NLP","TensorFlow","PyTorch","LangChain","Neural Networks","Reinforcement Learning","Time Series Forecasting","Python","JavaScript","React","Next.js","Node.js","SQL","Git","Java","C++"],"check"),j("Contact"),Du("Website","https://theomar.me",{icon:"\u25C6"}),Du("Email","mailto:omar.musayev.v.2@gmail.com",{icon:"\u2709"}),Du("LinkedIn","https://linkedin.com/in/omar-musayev-267195286/",{icon:"\u25C9"}),Du("Instagram","https://instagram.com/omar.musayev/",{icon:"\u2605"})]}var R2={label:"OmarAi",order:4,icon:">"},nu=d2({conversation:"",loading:!1,history:[]});async function Tu(u){let e=u["ai-prompt"];if(!e||!e.trim())return{error:"Type a message first"};let t=nu.get("history");nu.set("loading",!0),nu.set("conversation",nu.get("conversation")+`
|
|
172
|
+
**You:** ${e}
|
|
173
|
+
|
|
174
|
+
*thinking...*
|
|
175
|
+
`);try{let n=await hu.post("https://theomar.me/api/chat",{messages:[...t,{role:"user",content:e}]});if(n.ok&&n.data?.message?.content){let o=n.data.message.content,r=[...t,{role:"user",content:e},{role:"assistant",content:o}];nu.set("history",r);let s="";for(let i of r)i.role==="user"?s+=`
|
|
176
|
+
**You:** ${i.content}
|
|
177
|
+
`:s+=`
|
|
178
|
+
**Omar:** ${i.content}
|
|
179
|
+
`;nu.set("conversation",s)}else nu.set("conversation",nu.get("conversation").replace(`*thinking...*
|
|
180
|
+
`,`**Omar:** sorry, something went wrong. try again?
|
|
181
|
+
`))}catch{nu.set("conversation",nu.get("conversation").replace(`*thinking...*
|
|
182
|
+
`,`**Omar:** couldn't reach the server right now. try again in a bit?
|
|
183
|
+
`))}return nu.set("loading",!1),{success:"Message sent"}}function k2(){return[M({title:"OmarAi",body:"AI version of Omar Musayev. Ask me anything about Omar's projects, education, skills, or experience."}),j("Suggested Questions"),M({title:"What projects has Omar worked on?",action:{onPress:()=>Tu({"ai-prompt":"What projects has Omar worked on?"})}}),M({title:"Tell me about Omar's education",action:{onPress:()=>Tu({"ai-prompt":"Tell me about Omar's education"})}}),M({title:"What are Omar's AI skills?",action:{onPress:()=>Tu({"ai-prompt":"What are Omar's AI skills?"})}}),M({title:"What is Omar's work experience?",action:{onPress:()=>Tu({"ai-prompt":"What is Omar's work experience?"})}}),j("Conversation"),c5(()=>{let u=nu.get("conversation");return u?tu(u):r5("Press Enter on a question above, or type your own below.")}),j("Ask a Question"),a5({id:"omar-ai-form",onSubmit:Tu,fields:[s5({id:"ai-prompt",label:"Your Message",placeholder:"Ask Omar anything..."}),i5({label:"Send",style:"primary"})]})]}var $2={label:"Projects",order:2,icon:"\u25A3"};function Y2(){return[j("Projects"),M({title:"TerminalTUI",subtitle:"Creator & Lead Developer \u2014 Developer Tool \u2014 2025",body:"A TypeScript framework for building interactive terminal user interfaces with 1,500+ downloads on npm. Converts declarative TypeScript into fully interactive TUI applications runnable via a single npx command. Features 30+ pre-built UI components, a 12-column responsive grid system, spatial arrow-key navigation, 10 color themes, an ASCII art engine, file-based routing, reactive state management, and form handling. Includes 2,185+ tests.",url:"https://www.npmjs.com/package/terminaltui",tags:["TypeScript","CLI","Framework"]}),M({title:"Adneural",subtitle:"Creator & Lead Developer \u2014 AI Project \u2014 2025",body:"A platform connecting computational neuroscience with social simulation for pre-launch advertising analysis. Predicts how ads will perform neurologically and socially before launch by combining Meta TRIBE v2 brain encoding (trained on 450 hours of fMRI data) with MiroFish/OASIS multi-agent social simulation (200 personality-diverse agents). Features Neo4j GraphRAG integrating 22 neuroscience papers, LangGraph diagnostic analysis, and Three.js brain visualization. Built with Next.js 15, React 19, FastAPI, and OpenRouter.",url:"https://github.com/OmarMusayev/Adneural",tags:["AI","Neuroscience","Next.js"]}),M({title:"Ushaqlarimiza Oyredek Website",subtitle:"Lead Developer \u2014 Web Development \u2014 2024",body:"Served as the Lead Developer for a youth-led NGO focused on providing education to underprivileged children and fostering a passion for learning among youth.",url:"https://ushaqlarimizaoyredek.com",tags:["Web Development"]}),M({title:"World Temperature Forecasting",subtitle:"Researcher & Developer \u2014 AI Project \u2014 2024",body:"Designed a time series model using LSTMs to predict global temperatures, aiding planning and combating climate change.",tags:["AI","LSTM","Time Series"]}),M({title:"AI Handwriting Generator",subtitle:"Developer \u2014 AI Project \u2014 May 2023",body:"A web application that generates realistic handwritten text using deep learning. Features two neural network approaches: a 3-layer LSTM with Gaussian attention for style transfer, and a 6-layer Transformer decoder that tokenizes strokes into polar coordinates. Users can draw on a canvas to capture their own handwriting style and generate personalized text. Built with PyTorch, FastAPI, and JavaScript.",url:"https://hand-magic.com",tags:["AI","Deep Learning","PyTorch"]}),M({title:"AI Jigsaw Puzzle Solver",subtitle:"Lead Developer \u2014 AI Project \u2014 Apr 2023",body:"Created an AI-driven jigsaw puzzle solver that automatically assembles pieces using computer vision techniques.",url:"https://tinyurl.com/PuzzleSolvers",tags:["AI","Computer Vision"]})]}var W2={label:"Resume",order:1,icon:"\u25C6"};function j2(){return[j("Experience"),M({title:"Purdue LaunchPad",subtitle:"Website Chair & Organizer \u2014 West Lafayette, IN | 2025 \u2013 Present",body:"Website Chair and Organizer for Purdue's largest CS/DS mentorship community. LaunchPad is a one-on-one, semester-long mentorship program that pairs incoming students with upperclassmen, guiding them in building technical projects and fostering community through events and skill-building workshops."}),M({title:"COP-29 (UNFCCC)",subtitle:"ICT Technician \u2014 Baku, Azerbaijan | November 2024",body:"Selected as one of 50 technicians from ~15,000 applicants for a 55,000-attendee conference. Tracked and maintained 1,000+ laptops, set up presentation equipment, assisted broadcasters/guests with technical issues, and coordinated daily patches and team memos."}),M({title:"Payriff",subtitle:"AI Intern \u2014 Baku, Azerbaijan | June 2024 \u2013 September 2024",body:"Developed an AI-driven credit-scoring solution integrating data from banks and mobile providers. Built an AI chatbot to explain Payriff service APIs, streamlining developer onboarding."}),M({title:"U\u015Faqlar\u0131m\u0131za \xD6yr\u0259d\u0259k",subtitle:"Lead Developer \u2014 Baku, Azerbaijan | January 2024 \u2013 Present",body:"Led development of a comprehensive website for a youth-led NGO supporting underprivileged children; published resources and promoted educational initiatives across Azerbaijan."}),j("Volunteering"),M({title:"F1 Baku City Circuit",subtitle:"Workforce Team Member \u2014 Baku, Azerbaijan | June 2022",body:"Oversaw volunteer check-in/out and punctuality for ~1,500 volunteers; resolved operational issues throughout race weekend."}),M({title:"European Azerbaijan School",subtitle:"CAS Team Member \u2014 Baku, Azerbaijan | September 2024 \u2013 Ongoing",body:"Participated in environmental cleanup of beaches, mountains, and lakes in Azerbaijan."}),j("Honors & Awards"),M({title:"Purdue Dean's List",subtitle:"2025",body:"Named to the Purdue University Dean's List for academic excellence."}),M({title:"Purdue Semester Honors",subtitle:"2025",body:"Awarded Semester Honors at Purdue University for outstanding academic performance."}),M({title:"Azerbaijan Olympiad in Informatics",subtitle:"Silver Medal \u2014 2022",body:"Recognized among top participants for outstanding performance in computer algorithms."}),M({title:"IELTS",subtitle:"Score: 8.5 \u2014 2024",body:"Achieved an 8.5 overall, with perfect scores in reading and listening."}),M({title:"SAT Superscore",subtitle:"Score: 1520 \u2014 2024",body:"Achieved a 1520 SAT superscore (780 Math, 740 Reading/Writing)."}),j("Education"),M({title:"B.S. in Artificial Intelligence & Mathematics",subtitle:"Purdue University, College of Science \u2014 August 2025 \u2013 Ongoing",body:"Double major in Artificial Intelligence and Mathematics. 4.0 GPA. Dean's List and Semester Honors recipient."}),M({title:"International Baccalaureate",subtitle:"European Azerbaijan School \u2014 2022 \u2013 2024",body:"IBDP Subjects: Math AA HL, Business Management HL, Computer Science HL, English A SL, Physics SL, Spanish AB Initio. MYP: 7/7 from M23 Personal Project."}),M({title:"Pre-College: Introduction to Machine Learning for Astronomy",subtitle:"Harvard University \u2014 June \u2013 July 2024, Boston, MA",body:"Applied machine learning algorithms to contemporary astronomical problems."}),M({title:"Pre-College: Data Science and Machine Learning 2",subtitle:"Columbia University \u2014 July \u2013 August 2024, New York, NY",body:"Advanced course on data science and machine learning using Python and statistical methods."}),M({title:"Physics for Scientists and Engineers: Mechanics",subtitle:"University of California, Los Angeles (UCLA) \u2014 August \u2013 September 2024, Online",body:"5-unit credit course covering fundamental mechanics for scientists and engineers."}),M({title:"Artificial Intelligence and Machine Learning",subtitle:"Stanford University \u2014 July \u2013 August 2023, Palo Alto, CA",body:"NVIDIA DLI program using the Jetson Nano; hands-on AI/ML projects."}),M({title:"AI Scholars Program",subtitle:"Inspirit AI \u2014 August 2023, Online",body:"Certificate program covering modern AI concepts and practical applications."})]}async function N2(u){let{message:e,history:t}=u.body,n=[];if(t&&Array.isArray(t))for(let o of t)n.push({role:o.role,content:o.content});n.push({role:"user",content:e});try{let o=await fetch("https://theomar.me/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:n})});return o.ok?{response:(await o.json()).message?.content??"hmm, didn't get a response. try again?"}:{response:"sorry, something went wrong on my end. try again?"}}catch{return{response:"couldn't reach the server right now. try again in a bit?"}}}var bu={};typeof void 0=="function"&&(bu["GET /api/chat"]=void 0);typeof N2=="function"&&(bu["POST /api/chat"]=N2);typeof void 0=="function"&&(bu["PUT /api/chat"]=void 0);typeof void 0=="function"&&(bu["DELETE /api/chat"]=void 0);typeof void 0=="function"&&(bu["PATCH /api/chat"]=void 0);var xt=[ou("blog-1",{title:(y2||{}).label||"Blog 1",icon:(y2||{}).icon,_hidden:!0,content:async()=>x2()}),ou("blog-2",{title:(v2||{}).label||"Blog 2",icon:(v2||{}).icon,_hidden:!0,content:async()=>B2()}),ou("blog-3",{title:(I2||{}).label||"Blog 3",icon:(I2||{}).icon,_hidden:!0,content:async()=>M2()}),ou("blog-4",{title:(A2||{}).label||"Blog 4",icon:(A2||{}).icon,_hidden:!0,content:async()=>P2()}),ou("blog-5",{title:(E2||{}).label||"Blog 5",icon:(E2||{}).icon,_hidden:!0,content:async()=>S2()}),ou("blogs",{title:(D2||{}).label||"Blogs",icon:(D2||{}).icon,_hidden:!1,content:async()=>T2()}),ou("home",{title:(L2||{}).label||"Home",icon:(L2||{}).icon,_hidden:!1,content:async()=>O2()}),ou("omar-ai",{title:(R2||{}).label||"Omar Ai",icon:(R2||{}).icon,_hidden:!1,content:async()=>k2()}),ou("projects",{title:($2||{}).label||"Projects",icon:($2||{}).icon,_hidden:!1,content:async()=>Y2()}),ou("resume",{title:(W2||{}).label||"Resume",icon:(W2||{}).icon,_hidden:!1,content:async()=>j2()})],vt=t5({...f5,pages:xt,api:bu});await w2(vt);
|