diff --git a/.gitignore b/.gitignore index c77c78f..165fa27 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,9 @@ node_modules *.ttf frontend/vite.config.ts +frontend/dist/fonts.json frontend/public/fonts.json +miniprogram/assets/fonts.json # secrets .env diff --git a/__pycache__/pic2svg.cpython-312.pyc b/__pycache__/pic2svg.cpython-312.pyc deleted file mode 100644 index 1f2da46..0000000 Binary files a/__pycache__/pic2svg.cpython-312.pyc and /dev/null differ diff --git a/apiserver/__pycache__/png_renderer.cpython-314.pyc b/apiserver/__pycache__/png_renderer.cpython-314.pyc deleted file mode 100644 index 3c3b156..0000000 Binary files a/apiserver/__pycache__/png_renderer.cpython-314.pyc and /dev/null differ diff --git a/apiserver/__pycache__/renderer.cpython-312.pyc b/apiserver/__pycache__/renderer.cpython-312.pyc deleted file mode 100644 index cf8a5cc..0000000 Binary files a/apiserver/__pycache__/renderer.cpython-312.pyc and /dev/null differ diff --git a/apiserver/__pycache__/renderer.cpython-314.pyc b/apiserver/__pycache__/renderer.cpython-314.pyc deleted file mode 100644 index 697e73b..0000000 Binary files a/apiserver/__pycache__/renderer.cpython-314.pyc and /dev/null differ diff --git a/frontend/dist/assets/_commonjsHelpers-DsqdWQfm.js b/frontend/dist/assets/_commonjsHelpers-DsqdWQfm.js deleted file mode 100644 index b5b420d..0000000 --- a/frontend/dist/assets/_commonjsHelpers-DsqdWQfm.js +++ /dev/null @@ -1 +0,0 @@ -var u=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function a(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function f(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var n=e.default;if(typeof n=="function"){var t=function r(){var o=!1;try{o=this instanceof r}catch{}return o?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};t.prototype=n.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),t}export{a,u as c,f as g}; diff --git a/frontend/dist/assets/download-T9wchiI1.js b/frontend/dist/assets/download-T9wchiI1.js deleted file mode 100644 index d6554cb..0000000 --- a/frontend/dist/assets/download-T9wchiI1.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jszip.min-CRv3yS3R.js","assets/_commonjsHelpers-DsqdWQfm.js"])))=>i.map(i=>d[i]); -import{_ as v}from"./index-CKp66E8b.js";function p(t,e,n="text/plain"){const o=new Blob([t],{type:n});s(o,e)}function s(t,e){const n=URL.createObjectURL(t),o=document.createElement("a");o.href=n,o.download=e,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(n)}function P(t,e){p(t,e,"image/svg+xml")}async function F(t,e="font2svg-export.zip"){const n=(await v(async()=>{const{default:r}=await import("./jszip.min-CRv3yS3R.js").then(i=>i.j);return{default:r}},__vite__mapDeps([0,1]))).default,o=new n;for(const r of t)o.file(r.name,r.content);const a=await o.generateAsync({type:"blob"});s(a,e)}function d(t){if(!t)return null;const e=t.match(/-?\d+(\.\d+)?/);if(!e)return null;const n=Number(e[0]);return Number.isFinite(n)?n:null}function x(t){const n=new DOMParser().parseFromString(t,"image/svg+xml").documentElement,o=d(n.getAttribute("width")),a=d(n.getAttribute("height"));if(o&&a)return{width:o,height:a};const r=n.getAttribute("viewBox");if(r){const i=r.trim().split(/[\s,]+/).map(Number);if(i.length===4&&Number.isFinite(i[2])&&Number.isFinite(i[3]))return{width:Math.max(1,i[2]),height:Math.max(1,i[3])}}return{width:1024,height:1024}}async function _(t,e){const n=x(t),o=e?.scale??1,a=Math.max(1,Math.round((e?.width??n.width)*o)),r=Math.max(1,Math.round((e?.height??n.height)*o)),i=document.createElement("canvas");i.width=a,i.height=r;const l=i.getContext("2d");if(!l)throw new Error("无法创建 PNG 画布");e?.backgroundColor?(l.fillStyle=e.backgroundColor,l.fillRect(0,0,a,r)):l.clearRect(0,0,a,r);const f=new Blob([t],{type:"image/svg+xml;charset=utf-8"}),u=URL.createObjectURL(f);try{const c=new Image;await new Promise((w,b)=>{c.onload=()=>w(),c.onerror=()=>b(new Error("SVG 转 PNG 失败")),c.src=u}),l.drawImage(c,0,0,a,r)}finally{URL.revokeObjectURL(u)}const g=await new Promise(c=>{i.toBlob(c,"image/png")});if(!g)throw new Error("PNG 编码失败");return g}async function R(t,e,n){const o=await _(t,n);s(o,e)}function m(t){return t.replace(/[<>:"/\\|?*\x00-\x1F]/g,"_").replace(/\s+/g,"_").substring(0,200)}function h(t,e){const n=m(Array.from(t).slice(0,8).join(""));return`${m(e.substring(0,20))}_${n}`}function B(t,e){return`${h(t,e)}.svg`}function L(t,e){return`${h(t,e)}.png`}export{_ as convertSvgToPngBlob,s as downloadBlob,F as downloadMultipleFiles,R as downloadPngFromSvg,P as downloadSvg,p as downloadText,L as generatePngFilename,B as generateSvgFilename,m as sanitizeFilename}; diff --git a/frontend/dist/assets/hb-C3piUv6a.js b/frontend/dist/assets/hb-C3piUv6a.js deleted file mode 100644 index b1a54a9..0000000 --- a/frontend/dist/assets/hb-C3piUv6a.js +++ /dev/null @@ -1 +0,0 @@ -import{g as Ze,a as we}from"./_commonjsHelpers-DsqdWQfm.js";function xe(b,k){for(var l=0;li[o]})}}}return Object.freeze(Object.defineProperty(b,Symbol.toStringTag,{value:"Module"}))}var H={exports:{}};const Ee={},e_=Object.freeze(Object.defineProperty({__proto__:null,default:Ee},Symbol.toStringTag,{value:"Module"})),__=Ze(e_);var ie;function t_(){return ie||(ie=1,(function(b,k){var l=(()=>{var i=typeof document<"u"?document.currentScript?.src:void 0;return async function(o={}){var c,_=o,oe=typeof window=="object",P=typeof WorkerGlobalScope<"u",$=typeof process=="object"&&process.versions?.node&&process.type!="renderer",M=(e,t)=>{throw t};typeof __filename<"u"?i=__filename:P&&(i=self.location.href);var R="";function ce(e){return _.locateFile?_.locateFile(e,R):R+e}var W,A;if($){var z=__;R=__dirname+"/",A=e=>{e=S(e)?new URL(e):e;var t=z.readFileSync(e);return t},W=async(e,t=!0)=>{e=S(e)?new URL(e):e;var n=z.readFileSync(e,t?void 0:"utf8");return n},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),M=(e,t)=>{throw process.exitCode=e,t}}else if(oe||P){try{R=new URL(".",i).href}catch{}P&&(A=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),W=async e=>{if(S(e))return new Promise((n,a)=>{var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=()=>{if(r.status==200||r.status==0&&r.response){n(r.response);return}a(r.status)},r.onerror=a,r.send(null)});var t=await fetch(e,{credentials:"same-origin"});if(t.ok)return t.arrayBuffer();throw new Error(t.status+" : "+t.url)}}console.log.bind(console);var y=console.error.bind(console),v,T=!1,I,S=e=>e.startsWith("file://"),D,L,g,C,q=!1;function V(){var e=g.buffer;_.HEAP8=new Int8Array(e),_.HEAPU8=C=new Uint8Array(e),_.HEAPU16=new Uint16Array(e),_.HEAP32=new Int32Array(e),_.HEAPU32=new Uint32Array(e),_.HEAPF32=new Float32Array(e),new BigInt64Array(e),new BigUint64Array(e)}function se(){if(_.preRun)for(typeof _.preRun=="function"&&(_.preRun=[_.preRun]);_.preRun.length;)Ie(_.preRun.shift());K(Q)}function he(){q=!0,u.__wasm_call_ctors()}function be(){if(_.postRun)for(typeof _.postRun=="function"&&(_.postRun=[_.postRun]);_.postRun.length;)Te(_.postRun.shift());K(G)}var s=0,d=null;function le(e){s++,_.monitorRunDependencies?.(s)}function ge(e){if(s--,_.monitorRunDependencies?.(s),s==0&&d){var t=d;d=null,t()}}function X(e){_.onAbort?.(e),e="Aborted("+e+")",y(e),T=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw L?.(t),t}var B;function ye(){return ce("hb.wasm")}function ve(e){if(e==B&&v)return new Uint8Array(v);if(A)return A(e);throw"both async and sync fetching of the wasm failed"}async function de(e){if(!v)try{var t=await W(e);return new Uint8Array(t)}catch{}return ve(e)}async function pe(e,t){try{var n=await de(e),a=await WebAssembly.instantiate(n,t);return a}catch(r){y(`failed to asynchronously prepare wasm: ${r}`),X(r)}}async function me(e,t,n){if(!e&&!S(t)&&!$)try{var a=fetch(t,{credentials:"same-origin"}),r=await WebAssembly.instantiateStreaming(a,n);return r}catch(f){y(`wasm streaming compile failed: ${f}`),y("falling back to ArrayBuffer instantiation")}return pe(t,n)}function Re(){return{env:fe,wasi_snapshot_preview1:fe}}async function Ae(){function e(f,N){return u=f.exports,_.wasmExports=u,g=u.memory,_.wasmMemory=g,V(),m=u.__indirect_function_table,Ge(u),ge(),u}le();function t(f){return e(f.instance)}var n=Re();if(_.instantiateWasm)return new Promise((f,N)=>{_.instantiateWasm(n,(Ye,r_)=>{f(e(Ye))})});B??=ye();var a=await me(v,B,n),r=t(a);return r}class J{name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`,this.status=t}}var K=e=>{for(;e.length>0;)e.shift()(_)},G=[],Te=e=>G.push(e),Q=[],Ie=e=>Q.push(e),U=!0,Se=e=>ne(e),ke=()=>ae(),Pe=()=>X(""),Y=0,Me=()=>{U=!1,Y=0},p={},Z=e=>{if(e instanceof J||e=="unwind")return I;M(1,e)},w=()=>U||Y>0,x=e=>{I=e,w()||(_.onExit?.(e),T=!0),M(e,new J(e))},We=(e,t)=>{I=e,x(e)},Be=We,Ue=()=>{if(!w())try{Be(I)}catch(e){Z(e)}},Oe=e=>{if(!T)try{e(),Ue()}catch(t){Z(t)}},je=()=>performance.now(),Fe=(e,t)=>{if(p[e]&&(clearTimeout(p[e].id),delete p[e]),!t)return 0;var n=setTimeout(()=>{delete p[e],Oe(()=>te(e,je()))},t);return p[e]={id:n,timeout_ms:t},0},Ne=()=>2147483648,He=(e,t)=>Math.ceil(e/t)*t,$e=e=>{var t=g.buffer.byteLength,n=(e-t+65535)/65536|0;try{return g.grow(n),V(),1}catch{}},ze=e=>{var t=C.length;e>>>=0;var n=Ne();if(e>n)return!1;for(var a=1;a<=4;a*=2){var r=t*(1+.2/a);r=Math.min(r,e+100663296);var f=Math.min(n,He(Math.max(e,r),65536)),N=$e(f);if(N)return!0}return!1},E=e=>{const t=e.length;return[t%128|128,t>>7,...e]},De={i:127,p:127,j:126,f:125,d:124,e:111},ee=e=>E(Array.from(e,t=>{var n=De[t];return n})),Le=(e,t)=>{var n=Uint8Array.of(0,97,115,109,1,0,0,0,1,...E([1,96,...ee(t.slice(1)),...ee(t[0]==="v"?"":t[0])]),2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0),a=new WebAssembly.Module(n),r=new WebAssembly.Instance(a,{e:{f:e}}),f=r.exports.f;return f},m,_e=e=>m.get(e),Ce=(e,t)=>{if(h)for(var n=e;n(h||(h=new WeakMap,Ce(0,m.length)),h.get(e)||0),O=[],Ve=()=>O.length?O.pop():m.grow(1),j=(e,t)=>m.set(e,t),Xe=(e,t)=>{var n=qe(e);if(n)return n;var a=Ve();try{j(a,e)}catch(f){if(!(f instanceof TypeError))throw f;var r=Le(e,t);j(a,r)}return h.set(e,a),a},Je=e=>{h.delete(_e(e)),j(e,null),O.push(e)},Ke=e=>re(e);_.noExitRuntime&&(U=_.noExitRuntime),_.print&&_.print,_.printErr&&(y=_.printErr),_.wasmBinary&&(v=_.wasmBinary),_.arguments&&_.arguments,_.thisProgram&&_.thisProgram,_.wasmMemory=g,_.wasmExports=u,_.stackSave=ke,_.stackRestore=Se,_.stackAlloc=Ke,_.addFunction=Xe,_.removeFunction=Je;var te,ne,re,ae;function Ge(e){_._hb_blob_create=e.hb_blob_create,_._hb_blob_destroy=e.hb_blob_destroy,_._hb_blob_get_length=e.hb_blob_get_length,_._hb_blob_get_data=e.hb_blob_get_data,_._hb_buffer_serialize=e.hb_buffer_serialize,_._hb_buffer_create=e.hb_buffer_create,_._hb_buffer_reset=e.hb_buffer_reset,_._hb_buffer_reference=e.hb_buffer_reference,_._hb_buffer_destroy=e.hb_buffer_destroy,_._hb_buffer_get_content_type=e.hb_buffer_get_content_type,_._hb_buffer_set_direction=e.hb_buffer_set_direction,_._hb_buffer_set_script=e.hb_buffer_set_script,_._hb_buffer_set_language=e.hb_buffer_set_language,_._hb_buffer_set_flags=e.hb_buffer_set_flags,_._hb_buffer_set_cluster_level=e.hb_buffer_set_cluster_level,_._hb_buffer_clear_contents=e.hb_buffer_clear_contents,_._hb_buffer_get_length=e.hb_buffer_get_length,_._hb_buffer_get_glyph_infos=e.hb_buffer_get_glyph_infos,_._hb_buffer_get_glyph_positions=e.hb_buffer_get_glyph_positions,_._hb_glyph_info_get_glyph_flags=e.hb_glyph_info_get_glyph_flags,_._hb_buffer_guess_segment_properties=e.hb_buffer_guess_segment_properties,_._hb_buffer_add_utf8=e.hb_buffer_add_utf8,_._hb_buffer_add_utf16=e.hb_buffer_add_utf16,_._hb_buffer_add_codepoints=e.hb_buffer_add_codepoints,_._hb_buffer_set_message_func=e.hb_buffer_set_message_func,_._hb_language_from_string=e.hb_language_from_string,_._hb_language_to_string=e.hb_language_to_string,_._hb_script_from_string=e.hb_script_from_string,_._hb_version=e.hb_version,_._hb_version_string=e.hb_version_string,_._hb_feature_from_string=e.hb_feature_from_string,_._malloc=e.malloc,_._free=e.free,_._hb_draw_funcs_set_move_to_func=e.hb_draw_funcs_set_move_to_func,_._hb_draw_funcs_set_line_to_func=e.hb_draw_funcs_set_line_to_func,_._hb_draw_funcs_set_quadratic_to_func=e.hb_draw_funcs_set_quadratic_to_func,_._hb_draw_funcs_set_cubic_to_func=e.hb_draw_funcs_set_cubic_to_func,_._hb_draw_funcs_set_close_path_func=e.hb_draw_funcs_set_close_path_func,_._hb_draw_funcs_create=e.hb_draw_funcs_create,_._hb_draw_funcs_destroy=e.hb_draw_funcs_destroy,_._hb_face_create=e.hb_face_create,_._hb_face_destroy=e.hb_face_destroy,_._hb_face_reference_table=e.hb_face_reference_table,_._hb_face_get_upem=e.hb_face_get_upem,_._hb_face_collect_unicodes=e.hb_face_collect_unicodes,_._hb_font_funcs_create=e.hb_font_funcs_create,_._hb_font_funcs_destroy=e.hb_font_funcs_destroy,_._hb_font_funcs_set_font_h_extents_func=e.hb_font_funcs_set_font_h_extents_func,_._hb_font_funcs_set_font_v_extents_func=e.hb_font_funcs_set_font_v_extents_func,_._hb_font_funcs_set_nominal_glyph_func=e.hb_font_funcs_set_nominal_glyph_func,_._hb_font_funcs_set_nominal_glyphs_func=e.hb_font_funcs_set_nominal_glyphs_func,_._hb_font_funcs_set_variation_glyph_func=e.hb_font_funcs_set_variation_glyph_func,_._hb_font_funcs_set_glyph_h_advance_func=e.hb_font_funcs_set_glyph_h_advance_func,_._hb_font_funcs_set_glyph_v_advance_func=e.hb_font_funcs_set_glyph_v_advance_func,_._hb_font_funcs_set_glyph_h_advances_func=e.hb_font_funcs_set_glyph_h_advances_func,_._hb_font_funcs_set_glyph_v_advances_func=e.hb_font_funcs_set_glyph_v_advances_func,_._hb_font_funcs_set_glyph_h_origin_func=e.hb_font_funcs_set_glyph_h_origin_func,_._hb_font_funcs_set_glyph_v_origin_func=e.hb_font_funcs_set_glyph_v_origin_func,_._hb_font_funcs_set_glyph_h_kerning_func=e.hb_font_funcs_set_glyph_h_kerning_func,_._hb_font_funcs_set_glyph_extents_func=e.hb_font_funcs_set_glyph_extents_func,_._hb_font_funcs_set_glyph_name_func=e.hb_font_funcs_set_glyph_name_func,_._hb_font_funcs_set_glyph_from_name_func=e.hb_font_funcs_set_glyph_from_name_func,_._hb_font_get_h_extents=e.hb_font_get_h_extents,_._hb_font_get_v_extents=e.hb_font_get_v_extents,_._hb_font_get_glyph_h_advance=e.hb_font_get_glyph_h_advance,_._hb_font_get_glyph_v_advance=e.hb_font_get_glyph_v_advance,_._hb_font_get_glyph_h_origin=e.hb_font_get_glyph_h_origin,_._hb_font_get_glyph_v_origin=e.hb_font_get_glyph_v_origin,_._hb_font_get_glyph_extents=e.hb_font_get_glyph_extents,_._hb_font_get_glyph_from_name=e.hb_font_get_glyph_from_name,_._hb_font_draw_glyph=e.hb_font_draw_glyph,_._hb_font_glyph_to_string=e.hb_font_glyph_to_string,_._hb_font_create=e.hb_font_create,_._hb_font_set_variations=e.hb_font_set_variations,_._hb_font_create_sub_font=e.hb_font_create_sub_font,_._hb_font_reference=e.hb_font_reference,_._hb_font_destroy=e.hb_font_destroy,_._hb_font_set_funcs=e.hb_font_set_funcs,_._hb_font_set_scale=e.hb_font_set_scale,_._hb_ot_layout_table_get_script_tags=e.hb_ot_layout_table_get_script_tags,_._hb_ot_layout_table_get_feature_tags=e.hb_ot_layout_table_get_feature_tags,_._hb_ot_layout_script_get_language_tags=e.hb_ot_layout_script_get_language_tags,_._hb_ot_layout_language_get_feature_tags=e.hb_ot_layout_language_get_feature_tags,_._hb_ot_layout_feature_get_name_ids=e.hb_ot_layout_feature_get_name_ids,_._hb_ot_name_list_names=e.hb_ot_name_list_names,_._hb_ot_name_get_utf16=e.hb_ot_name_get_utf16,_._hb_set_create=e.hb_set_create,_._hb_set_destroy=e.hb_set_destroy,_._hb_ot_tag_to_script=e.hb_ot_tag_to_script,_._hb_ot_tag_to_language=e.hb_ot_tag_to_language,_._hb_ot_var_get_axis_infos=e.hb_ot_var_get_axis_infos,_._hb_set_get_population=e.hb_set_get_population,_._hb_set_next_many=e.hb_set_next_many,_._hb_shape=e.hb_shape,te=e._emscripten_timeout,ne=e._emscripten_stack_restore,re=e._emscripten_stack_alloc,ae=e.emscripten_stack_get_current}var fe={_abort_js:Pe,_emscripten_runtime_keepalive_clear:Me,_setitimer_js:Fe,emscripten_resize_heap:ze,proc_exit:x},u=await Ae();function F(){if(s>0){d=F;return}if(se(),s>0){d=F;return}function e(){_.calledRun=!0,!T&&(he(),D?.(_),_.onRuntimeInitialized?.(),be())}_.setStatus?(_.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>_.setStatus(""),1),e()},1)):e()}function Qe(){if(_.preInit)for(typeof _.preInit=="function"&&(_.preInit=[_.preInit]);_.preInit.length>0;)_.preInit.shift()()}return Qe(),F(),q?c=_:c=new Promise((e,t)=>{D=e,L=t}),c}})();b.exports=l,b.exports.default=l})(H)),H.exports}var ue=t_();const n_=we(ue),f_=xe({__proto__:null,default:n_},[ue]);export{f_ as h}; diff --git a/frontend/dist/assets/hbjs-B2Ncxvef.js b/frontend/dist/assets/hbjs-B2Ncxvef.js deleted file mode 100644 index ba5753a..0000000 --- a/frontend/dist/assets/hbjs-B2Ncxvef.js +++ /dev/null @@ -1 +0,0 @@ -import{a as Pt}from"./_commonjsHelpers-DsqdWQfm.js";function Et(G,_){for(var r=0;r<_.length;r++){const U=_[r];if(typeof U!="string"&&!Array.isArray(U)){for(const F in U)if(F!=="default"&&!(F in G)){const P=Object.getOwnPropertyDescriptor(U,F);P&&Object.defineProperty(G,F,P.get?P:{enumerable:!0,get:()=>U[F]})}}}return Object.freeze(Object.defineProperty(G,Symbol.toStringTag,{value:"Module"}))}var V={exports:{}},q;function At(){if(q)return V.exports;q=1;function G(_){var r=_.wasmExports,U=new TextDecoder("utf8"),F=new TextEncoder("utf8");let P=_.addFunction,D=_.removeFunction,A=_.stackSave,y=_.stackRestore,b=_.stackAlloc;var Q=P(function(s){r.free(s)},"vi");const k=0,X=1,K=2,d=128,M=2,tt=-1,$=65535,rt={0:"INVALID",1:"UNICODE",2:"GLYPHS"},nt={DEFAULT:0,NO_CLUSTERS:1,NO_POSITIONS:2,NO_GLYPH_NAMES:4,GLYPH_EXTENTS:8,GLYPH_FLAGS:16,NO_ADVANCES:32},et={DEFAULT:0,BOT:1,EOT:2,PRESERVE_DEFAULT_IGNORABLES:4,REMOVE_DEFAULT_IGNORABLES:8,DO_NOT_INSERT_DOTTED_CIRCLE:16,VERIFY:32,PRODUCE_UNSAFE_TO_CONCAT:64,PRODUCE_SAFE_TO_INSERT_TATWEEL:128};function H(s){return(s.charCodeAt(0)&255)<<24|(s.charCodeAt(1)&255)<<16|(s.charCodeAt(2)&255)<<8|(s.charCodeAt(3)&255)<<0}function C(s){return[String.fromCharCode(s>>24&255),String.fromCharCode(s>>16&255),String.fromCharCode(s>>8&255),String.fromCharCode(s>>0&255)].join("")}function L(s,n){let t;return n===void 0?t=_.HEAPU8.indexOf(0,s):t=s+n,U.decode(_.HEAPU8.subarray(s,t))}function at(s,n){let t=s/2+n;return String.fromCharCode.apply(null,_.HEAPU16.subarray(s/2,t))}function R(s){const n=r.malloc(s.length+1);for(let t=0;t127)throw new Error("Expected ASCII text");_.HEAPU8[n+t]=e}return _.HEAPU8[n+s.length]=0,{ptr:n,length:s.length,free:function(){r.free(n)}}}function _t(s){const n=r.malloc(s.length);return F.encodeInto(s,_.HEAPU8.subarray(n,n+s.length)),{ptr:n,length:s.length,free:function(){r.free(n)}}}function ft(s){const n=r.malloc(s.length*2),t=new Uint16Array(_.wasmMemory.buffer,n,s.length);for(let e=0;e>2,f=_.HEAPU32.subarray(e,e+n);return _.HEAPU32.set(f,e),r.hb_set_next_many(s,tt,t,n),f}function it(s,n){var t=r.hb_face_create(s.ptr,n);const e=r.hb_face_get_upem(t);return{ptr:t,upem:e,reference_table:function(f){var a=r.hb_face_reference_table(t,H(f)),u=r.hb_blob_get_length(a);if(u){var c=r.hb_blob_get_data(a,null),i=_.HEAPU8.subarray(c,c+u);return i}},getAxisInfos:function(){var f=A(),a=b(2048),u=b(4);_.HEAPU32[u/4]=64,r.hb_ot_var_get_axis_infos(t,0,u,a);var c={};return Array.from({length:_.HEAPU32[u/4]}).forEach(function(i,o){c[C(_.HEAPU32[a/4+o*8+1])]={min:_.HEAPF32[a/4+o*8+4],default:_.HEAPF32[a/4+o*8+5],max:_.HEAPF32[a/4+o*8+6]}}),y(f),c},collectUnicodes:function(){var f=r.hb_set_create();r.hb_face_collect_unicodes(t,f);var a=ot(f);return r.hb_set_destroy(f),a},getTableScriptTags:function(f){for(var a=A(),u=H(f),c=0,i=d,o=b(4),h=b(d*4),l=[];i==d;){_.HEAPU32[o/4]=i,r.hb_ot_layout_table_get_script_tags(t,u,c,o,h),i=_.HEAPU32[o/4];var g=_.HEAPU32.subarray(h/4,h/4+i);l.push(...Array.from(g).map(C)),c+=i}return y(a),l},getTableFeatureTags:function(f){for(var a=A(),u=H(f),c=0,i=d,o=b(4),h=b(d*4),l=[];i==d;){_.HEAPU32[o/4]=i,r.hb_ot_layout_table_get_feature_tags(t,u,c,o,h),i=_.HEAPU32[o/4];var g=_.HEAPU32.subarray(h/4,h/4+i);l.push(...Array.from(g).map(C)),c+=i}return y(a),l},getScriptLanguageTags:function(f,a){for(var u=A(),c=H(f),i=0,o=d,h=b(4),l=b(d*4),g=[];o==d;){_.HEAPU32[h/4]=o,r.hb_ot_layout_script_get_language_tags(t,c,a,i,h,l),o=_.HEAPU32[h/4];var p=_.HEAPU32.subarray(l/4,l/4+o);g.push(...Array.from(p).map(C)),i+=o}return y(u),g},getLanguageFeatureTags:function(f,a,u){for(var c=A(),i=H(f),o=0,h=d,l=b(4),g=b(d*4),p=[];h==d;){_.HEAPU32[l/4]=h,r.hb_ot_layout_language_get_feature_tags(t,i,a,u,o,l,g),h=_.HEAPU32[l/4];var v=_.HEAPU32.subarray(g/4,g/4+h);p.push(...Array.from(v).map(C)),o+=h}return y(c),p},listNames:function(){for(var f=A(),a=b(4),u=r.hb_ot_name_list_names(t,a),c=_.HEAPU32[a/4],i=[],o=0;ow+O);v={uiLabelNameId:E==$?null:E,uiTooltipTextNameId:B==$?null:B,sampleTextNameId:N==$?null:N,paramUiLabelNameIds:T}}return y(u),v},destroy:function(){r.hb_face_destroy(t)}}}var S="";function m(s,t){var t=t?r.hb_font_reference(t):r.hb_font_create(s.ptr),e=null,f=null,a=null,u=null,c=null,i=null;function o(l){if(!e){var g=function(N,I,w,T,x,O){S+=`M${T},${x}`},p=function(N,I,w,T,x,O){S+=`L${T},${x}`},v=function(N,I,w,T,x,O,j,J,bt,mt){S+=`C${T},${x} ${O},${j} ${J},${bt}`},E=function(N,I,w,T,x,O,j,J){S+=`Q${T},${x} ${O},${j}`},B=function(N,I,w,T){S+="Z"};f=P(g,"viiiffi"),a=P(p,"viiiffi"),u=P(v,"viiiffffffi"),c=P(E,"viiiffffi"),i=P(B,"viiii"),e=r.hb_draw_funcs_create(),r.hb_draw_funcs_set_move_to_func(e,f,0,0),r.hb_draw_funcs_set_line_to_func(e,a,0,0),r.hb_draw_funcs_set_cubic_to_func(e,u,0,0),r.hb_draw_funcs_set_quadratic_to_func(e,c,0,0),r.hb_draw_funcs_set_close_path_func(e,i,0,0)}return S="",r.hb_font_draw_glyph(t,l,e,0),S}function h(l){var g=A(),p=256,v=b(p);r.hb_font_glyph_to_string(t,l,v,p);var E=L(v);return y(g),E}return{ptr:t,subFont:function(){return m(null,r.hb_font_create_sub_font(t))},hExtents:function(){var l=A(),g=b(12);r.hb_font_get_h_extents(t,g);var p={ascender:_.HEAP32[g/4],descender:_.HEAP32[g/4+1],lineGap:_.HEAP32[g/4+2]};return y(l),p},vExtents:function(){var l=A(),g=b(12);r.hb_font_get_v_extents(t,g);var p={ascender:_.HEAP32[g/4],descender:_.HEAP32[g/4+1],lineGap:_.HEAP32[g/4+2]};return y(l),p},glyphName:h,glyphToPath:o,glyphHAdvance:function(l){return r.hb_font_get_glyph_h_advance(t,l)},glyphVAdvance:function(l){return r.hb_font_get_glyph_v_advance(t,l)},glyphHOrigin:function(l){var g=A();let p=b(4),v=b(4),E=null;return r.hb_font_get_glyph_h_origin(t,l,p,v)&&(E=[_.HEAP32[p/4],_.HEAP32[v/4]]),y(g),E},glyphVOrigin:function(l){var g=A();let p=b(4),v=b(4),E=null;return r.hb_font_get_glyph_v_origin(t,l,p,v)&&(E=[_.HEAP32[p/4],_.HEAP32[v/4]]),y(g),E},glyphExtents:function(l){var g=A(),p=b(16),v=null;return r.hb_font_get_glyph_extents(t,l,p)&&(v={xBearing:_.HEAP32[p/4],yBearing:_.HEAP32[p/4+1],width:_.HEAP32[p/4+2],height:_.HEAP32[p/4+3]}),y(g),v},glyphFromName:function(l){var g=A(),p=b(4),v=_t(l),E=null;return r.hb_font_get_glyph_from_name(t,v.ptr,v.length,p)&&(E=_.HEAPU32[p/4]),v.free(),y(g),E},glyphToJson:function(l){var g=o(l);return g.replace(/([MLQCZ])/g,"|$1 ").split("|").filter(function(p){return p.length}).map(function(p){var v=p.split(/[ ,]/g);return{type:v[0],values:v.slice(1).filter(function(E){return E.length}).map(function(E){return+E})}})},setScale:function(l,g){r.hb_font_set_scale(t,l,g)},setVariations:function(l){var g=Object.entries(l),p=r.malloc(8*g.length);g.forEach(function(v,E){_.HEAPU32[p/4+E*2+0]=H(v[0]),_.HEAPF32[p/4+E*2+1]=v[1]}),r.hb_font_set_variations(t,p,g.length),r.free(p)},setFuncs:function(l){r.hb_font_set_funcs(t,l.ptr)},destroy:function(){r.hb_font_destroy(t),e&&(r.hb_draw_funcs_destroy(e),e=null,D(f),D(a),D(u),D(c),D(i))}}}function ct(){var s=r.hb_font_funcs_create();return{ptr:s,setGlyphExtentsFunc:function(n){let t=P(function(e,f,a,u,c){let i=m(null,e),o=n(i,a);return i.destroy(),o?(_.HEAP32[u/4]=o.xBearing,_.HEAP32[u/4+1]=o.yBearing,_.HEAP32[u/4+2]=o.width,_.HEAP32[u/4+3]=o.height,1):0},"ippipp");r.hb_font_funcs_set_glyph_extents_func(s,t,0,0)},setGlyphFromNameFunc:function(n){let t=P(function(e,f,a,u,c,i){let o=m(null,e),h=L(a,u),l=n(o,h);return o.destroy(),l?(_.HEAPU32[c/4]=l,1):0},"ipppipp");r.hb_font_funcs_set_glyph_from_name_func(s,t,0,0)},setGlyphHAdvanceFunc:function(n){let t=P(function(e,f,a,u){let c=m(null,e),i=n(c,a);return c.destroy(),i},"ippip");r.hb_font_funcs_set_glyph_h_advance_func(s,t,0,0)},setGlyphVAdvanceFunc:function(n){let t=P(function(e,f,a,u){let c=m(null,e),i=n(c,a);return c.destroy(),i},"ippip");r.hb_font_funcs_set_glyph_v_advance_func(s,t,0,0)},setGlyphHOriginFunc:function(n){let t=P(function(e,f,a,u,c,i){let o=m(null,e),h=n(o,a);return o.destroy(),h?(_.HEAP32[u/4]=h[0],_.HEAP32[c/4]=h[1],1):0},"ippippp");r.hb_font_funcs_set_glyph_h_origin_func(s,t,0,0)},setGlyphVOriginFunc:function(n){let t=P(function(e,f,a,u,c,i){let o=m(null,e),h=n(o,a);return o.destroy(),h?(_.HEAP32[u/4]=h[0],_.HEAP32[c/4]=h[1],1):0},"ippippp");r.hb_font_funcs_set_glyph_v_origin_func(s,t,0,0)},setGlyphHKerningFunc:function(n){let t=P(function(e,f,a,u,c){let i=m(null,e),o=n(i,a,u);return i.destroy(),o},"ippiip");r.hb_font_funcs_set_glyph_h_kerning_func(s,t,0,0)},setGlyphNameFunc:function(n){let t=P(function(e,f,a,u,c,i){let o=m(null,e),h=n(o,a);return o.destroy(),h?(F.encodeInto(h,_.HEAPU8.subarray(u,u+c)),1):0},"ippipip");r.hb_font_funcs_set_glyph_name_func(s,t,0,0)},setNominalGlyphFunc:function(n){let t=P(function(e,f,a,u,c){let i=m(null,e),o=n(i,a);return i.destroy(),o?(_.HEAPU32[u/4]=o,1):0},"ippipp");r.hb_font_funcs_set_nominal_glyph_func(s,t,0,0)},setVariationGlyphFunc:function(n){let t=P(function(e,f,a,u,c,i){let o=m(null,e),h=n(o,a,u);return o.destroy(),h?(_.HEAPU32[c/4]=h,1):0},"ippiipp");r.hb_font_funcs_set_variation_glyph_func(s,t,0,0)},setFontHExtentsFunc:function(n){let t=P(function(e,f,a,u){let c=m(null,e),i=n(c);return c.destroy(),i?(_.HEAP32[a/4]=i.ascender,_.HEAP32[a/4+1]=i.descender,_.HEAP32[a/4+2]=i.lineGap,1):0},"ipppp");r.hb_font_funcs_set_font_h_extents_func(s,t,0,0)},setFontVExtentsFunc:function(n){let t=P(function(e,f,a,u){let c=m(null,e),i=n(c);return c.destroy(),i?(_.HEAP32[a/4]=i.ascender,_.HEAP32[a/4+1]=i.descender,_.HEAP32[a/4+2]=i.lineGap,1):0},"ipppp");r.hb_font_funcs_set_font_v_extents_func(s,t,0,0)},destroy:function(){r.hb_font_funcs_destroy(s)}}}function z(n){var n=n?r.hb_buffer_reference(n):r.hb_buffer_create();return{ptr:n,addText:function(t,e=0,f=null){const a=ft(t);f==null&&(f=a.length),r.hb_buffer_add_utf16(n,a.ptr,a.length,e,f),a.free()},addCodePoints:function(t,e=0,f=null){let a=r.malloc(t.length*4);new Uint32Array(_.wasmMemory.buffer,a,t.length).set(t),f==null&&(f=t.length),r.hb_buffer_add_codepoints(n,a,t.length,e,f),r.free(a)},guessSegmentProperties:function(){return r.hb_buffer_guess_segment_properties(n)},setDirection:function(t){r.hb_buffer_set_direction(n,{ltr:4,rtl:5,ttb:6,btt:7}[t]||0)},setFlags:function(t){var e=0;t.forEach(f=>e|=et[f]||0),r.hb_buffer_set_flags(n,e)},setLanguage:function(t){var e=R(t);r.hb_buffer_set_language(n,r.hb_language_from_string(e.ptr,-1)),e.free()},setScript:function(t){var e=R(t);r.hb_buffer_set_script(n,r.hb_script_from_string(e.ptr,-1)),e.free()},setClusterLevel:function(t){r.hb_buffer_set_cluster_level(n,t)},reset:function(){r.hb_buffer_reset(n)},clearContents:function(){r.hb_buffer_clear_contents(n)},setMessageFunc:function(t){var e=function(a,u,c,i){var o=L(c),h=z(a),l=m(null,u),g=t(h,l,o);return h.destroy(),l.destroy(),g?1:0},f=P(e,"iiiii");r.hb_buffer_set_message_func(n,f,0,0)},getLength:function(){return r.hb_buffer_get_length(n)},getGlyphInfos:function(){for(var t=r.hb_buffer_get_glyph_infos(n,0)/4,e=_.HEAPU32.subarray(t,t+this.getLength()*5),f=[],a=0;al|=nt[v]||0);for(var g="";e{if(h.startsWith("start table GSUB")?u=X:h.startsWith("start table GPOS")&&(u=K),u!=f&&(c=!1),f!=k&&u==f&&h.startsWith("end lookup "+e)&&(c=!0),c)return!1;var l=i.serialize(o,0,null,"JSON",["NO_GLYPH_NAMES"]);return a.push({m:h,t:JSON.parse(l),glyphs:i.getContentType()=="GLYPHS"}),!0}),W(s,n,t),a}function ht(){var s=A(),n=b(12);r.hb_version(n,n+4,n+8);var t={major:_.HEAPU32[n/4],minor:_.HEAPU32[(n+4)/4],micro:_.HEAPU32[(n+8)/4]};return y(s),t}function gt(){var s=r.hb_version_string();return L(s)}function pt(s){var n=H(s),t=r.hb_ot_tag_to_script(n);return C(t)}function vt(s){var n=H(s),t=r.hb_ot_tag_to_language(n);return Y(t)}return{createBlob:ut,createFace:it,createFont:m,createFontFuncs:ct,createBuffer:z,shape:W,shapeWithTrace:lt,version:ht,version_string:gt,otTagToScript:pt,otTagToLanguage:vt}}try{V.exports=G}catch{}return V.exports}var Z=At();const yt=Pt(Z),Ht=Et({__proto__:null,default:yt},[Z]);export{Ht as h}; diff --git a/frontend/dist/assets/index-CKp66E8b.js b/frontend/dist/assets/index-CKp66E8b.js deleted file mode 100644 index 7e38624..0000000 --- a/frontend/dist/assets/index-CKp66E8b.js +++ /dev/null @@ -1,18 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/hb-C3piUv6a.js","assets/_commonjsHelpers-DsqdWQfm.js","assets/hbjs-B2Ncxvef.js"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function n(s){if(s.ep)return;s.ep=!0;const a=r(s);fetch(s.href,a)}})();function Zs(e){const t=Object.create(null);for(const r of e.split(","))t[r]=1;return r=>r in t}const Se={},fr=[],mt=()=>{},qo=()=>!1,Rn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),$s=e=>e.startsWith("onUpdate:"),Ae=Object.assign,js=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},l0=Object.prototype.hasOwnProperty,ve=(e,t)=>l0.call(e,t),ne=Array.isArray,hr=e=>An(e)==="[object Map]",Xo=e=>An(e)==="[object Set]",ae=e=>typeof e=="function",Le=e=>typeof e=="string",$t=e=>typeof e=="symbol",ke=e=>e!==null&&typeof e=="object",Yo=e=>(ke(e)||ae(e))&&ae(e.then)&&ae(e.catch),Ko=Object.prototype.toString,An=e=>Ko.call(e),u0=e=>An(e).slice(8,-1),Jo=e=>An(e)==="[object Object]",Mn=e=>Le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Er=Zs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),In=e=>{const t=Object.create(null);return(r=>t[r]||(t[r]=e(r)))},c0=/-\w/g,yt=In(e=>e.replace(c0,t=>t.slice(1).toUpperCase())),f0=/\B([A-Z])/g,ar=In(e=>e.replace(f0,"-$1").toLowerCase()),qs=In(e=>e.charAt(0).toUpperCase()+e.slice(1)),Kn=In(e=>e?`on${qs(e)}`:""),Vt=(e,t)=>!Object.is(e,t),fn=(e,...t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:r})},Xs=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Fa;const Pn=()=>Fa||(Fa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Dr(e){if(ne(e)){const t={};for(let r=0;r{if(r){const n=r.split(p0);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function vt(e){let t="";if(Le(e))t=e;else if(ne(e))for(let r=0;r!!(e&&e.__v_isRef===!0),Qe=e=>Le(e)?e:e==null?"":ne(e)||ke(e)&&(e.toString===Ko||!ae(e.toString))?ti(e)?Qe(e.value):JSON.stringify(e,ri,2):String(e),ri=(e,t)=>ti(t)?ri(e,t.value):hr(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[n,s],a)=>(r[Jn(n,a)+" =>"]=s,r),{})}:Xo(t)?{[`Set(${t.size})`]:[...t.values()].map(r=>Jn(r))}:$t(t)?Jn(t):ke(t)&&!ne(t)&&!Jo(t)?String(t):t,Jn=(e,t="")=>{var r;return $t(e)?`Symbol(${(r=e.description)!=null?r:t})`:e};let Ie;class ni{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ie,!t&&Ie&&(this.index=(Ie.scopes||(Ie.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,r;if(this.scopes)for(t=0,r=this.scopes.length;t0&&--this._on===0&&(Ie=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let r,n;for(r=0,n=this.effects.length;r0)return;if(Ur){let t=Ur;for(Ur=void 0;t;){const r=t.next;t.next=void 0,t.flags&=-9,t=r}}let e;for(;Or;){let t=Or;for(Or=void 0;t;){const r=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=r}}if(e)throw e}function ui(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ci(e){let t,r=e.depsTail,n=r;for(;n;){const s=n.prevDep;n.version===-1?(n===r&&(r=s),Js(n),y0(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}e.deps=t,e.depsTail=r}function bs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(fi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function fi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Br)||(e.globalVersion=Br,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!bs(e))))return;e.flags|=2;const t=e.dep,r=Fe,n=et;Fe=e,et=!0;try{ui(e);const s=e.fn(e._value);(t.version===0||Vt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Fe=r,et=n,ci(e),e.flags&=-3}}function Js(e,t=!1){const{dep:r,prevSub:n,nextSub:s}=e;if(n&&(n.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=n,e.nextSub=void 0),r.subs===e&&(r.subs=n,!n&&r.computed)){r.computed.flags&=-5;for(let a=r.computed.deps;a;a=a.nextDep)Js(a,!0)}!t&&!--r.sc&&r.map&&r.map.delete(r.key)}function y0(e){const{prevDep:t,nextDep:r}=e;t&&(t.nextDep=r,e.prevDep=void 0),r&&(r.prevDep=t,e.nextDep=void 0)}let et=!0;const hi=[];function Ot(){hi.push(et),et=!1}function Ut(){const e=hi.pop();et=e===void 0?!0:e}function Ca(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const r=Fe;Fe=void 0;try{t()}finally{Fe=r}}}let Br=0;class b0{constructor(t,r){this.sub=t,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Qs{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Fe||!et||Fe===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==Fe)r=this.activeLink=new b0(Fe,this),Fe.deps?(r.prevDep=Fe.depsTail,Fe.depsTail.nextDep=r,Fe.depsTail=r):Fe.deps=Fe.depsTail=r,pi(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const n=r.nextDep;n.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=n),r.prevDep=Fe.depsTail,r.nextDep=void 0,Fe.depsTail.nextDep=r,Fe.depsTail=r,Fe.deps===r&&(Fe.deps=n)}return r}trigger(t){this.version++,Br++,this.notify(t)}notify(t){Ys();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{Ks()}}}function pi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)pi(n)}const r=e.dep.subs;r!==e&&(e.prevSub=r,r&&(r.nextSub=e)),e.dep.subs=e}}const mn=new WeakMap,rr=Symbol(""),Ss=Symbol(""),Nr=Symbol("");function Pe(e,t,r){if(et&&Fe){let n=mn.get(e);n||mn.set(e,n=new Map);let s=n.get(r);s||(n.set(r,s=new Qs),s.map=n,s.key=r),s.track()}}function Tt(e,t,r,n,s,a){const o=mn.get(e);if(!o){Br++;return}const i=l=>{l&&l.trigger()};if(Ys(),t==="clear")o.forEach(i);else{const l=ne(e),c=l&&Mn(r);if(l&&r==="length"){const u=Number(n);o.forEach((h,f)=>{(f==="length"||f===Nr||!$t(f)&&f>=u)&&i(h)})}else switch((r!==void 0||o.has(void 0))&&i(o.get(r)),c&&i(o.get(Nr)),t){case"add":l?c&&i(o.get("length")):(i(o.get(rr)),hr(e)&&i(o.get(Ss)));break;case"delete":l||(i(o.get(rr)),hr(e)&&i(o.get(Ss)));break;case"set":hr(e)&&i(o.get(rr));break}}Ks()}function S0(e,t){const r=mn.get(e);return r&&r.get(t)}function or(e){const t=he(e);return t===e?t:(Pe(t,"iterate",Nr),qe(e)?t:t.map(tt))}function Dn(e){return Pe(e=he(e),"iterate",Nr),e}function Bt(e,t){return Lt(e)?gr(kt(e)?tt(t):t):tt(t)}const w0={__proto__:null,[Symbol.iterator](){return es(this,Symbol.iterator,e=>Bt(this,e))},concat(...e){return or(this).concat(...e.map(t=>ne(t)?or(t):t))},entries(){return es(this,"entries",e=>(e[1]=Bt(this,e[1]),e))},every(e,t){return St(this,"every",e,t,void 0,arguments)},filter(e,t){return St(this,"filter",e,t,r=>r.map(n=>Bt(this,n)),arguments)},find(e,t){return St(this,"find",e,t,r=>Bt(this,r),arguments)},findIndex(e,t){return St(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return St(this,"findLast",e,t,r=>Bt(this,r),arguments)},findLastIndex(e,t){return St(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return St(this,"forEach",e,t,void 0,arguments)},includes(...e){return ts(this,"includes",e)},indexOf(...e){return ts(this,"indexOf",e)},join(e){return or(this).join(e)},lastIndexOf(...e){return ts(this,"lastIndexOf",e)},map(e,t){return St(this,"map",e,t,void 0,arguments)},pop(){return Tr(this,"pop")},push(...e){return Tr(this,"push",e)},reduce(e,...t){return ka(this,"reduce",e,t)},reduceRight(e,...t){return ka(this,"reduceRight",e,t)},shift(){return Tr(this,"shift")},some(e,t){return St(this,"some",e,t,void 0,arguments)},splice(...e){return Tr(this,"splice",e)},toReversed(){return or(this).toReversed()},toSorted(e){return or(this).toSorted(e)},toSpliced(...e){return or(this).toSpliced(...e)},unshift(...e){return Tr(this,"unshift",e)},values(){return es(this,"values",e=>Bt(this,e))}};function es(e,t,r){const n=Dn(e),s=n[t]();return n!==e&&!qe(e)&&(s._next=s.next,s.next=()=>{const a=s._next();return a.done||(a.value=r(a.value)),a}),s}const T0=Array.prototype;function St(e,t,r,n,s,a){const o=Dn(e),i=o!==e&&!qe(e),l=o[t];if(l!==T0[t]){const h=l.apply(e,a);return i?tt(h):h}let c=r;o!==e&&(i?c=function(h,f){return r.call(this,Bt(e,h),f,e)}:r.length>2&&(c=function(h,f){return r.call(this,h,f,e)}));const u=l.call(o,c,n);return i&&s?s(u):u}function ka(e,t,r,n){const s=Dn(e);let a=r;return s!==e&&(qe(e)?r.length>3&&(a=function(o,i,l){return r.call(this,o,i,l,e)}):a=function(o,i,l){return r.call(this,o,Bt(e,i),l,e)}),s[t](a,...n)}function ts(e,t,r){const n=he(e);Pe(n,"iterate",Nr);const s=n[t](...r);return(s===-1||s===!1)&&Nn(r[0])?(r[0]=he(r[0]),n[t](...r)):s}function Tr(e,t,r=[]){Ot(),Ys();const n=he(e)[t].apply(e,r);return Ks(),Ut(),n}const F0=Zs("__proto__,__v_isRef,__isVue"),di=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter($t));function C0(e){$t(e)||(e=String(e));const t=he(this);return Pe(t,"has",e),t.hasOwnProperty(e)}class vi{constructor(t=!1,r=!1){this._isReadonly=t,this._isShallow=r}get(t,r,n){if(r==="__v_skip")return t.__v_skip;const s=this._isReadonly,a=this._isShallow;if(r==="__v_isReactive")return!s;if(r==="__v_isReadonly")return s;if(r==="__v_isShallow")return a;if(r==="__v_raw")return n===(s?a?I0:yi:a?xi:mi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const o=ne(t);if(!s){let l;if(o&&(l=w0[r]))return l;if(r==="hasOwnProperty")return C0}const i=Reflect.get(t,r,Ee(t)?t:n);if(($t(r)?di.has(r):F0(r))||(s||Pe(t,"get",r),a))return i;if(Ee(i)){const l=o&&Mn(r)?i:i.value;return s&&ke(l)?Ts(l):l}return ke(i)?s?Ts(i):Bn(i):i}}class gi extends vi{constructor(t=!1){super(!1,t)}set(t,r,n,s){let a=t[r];const o=ne(t)&&Mn(r);if(!this._isShallow){const c=Lt(a);if(!qe(n)&&!Lt(n)&&(a=he(a),n=he(n)),!o&&Ee(a)&&!Ee(n))return c||(a.value=n),!0}const i=o?Number(r)e,tn=e=>Reflect.getPrototypeOf(e);function L0(e,t,r){return function(...n){const s=this.__v_raw,a=he(s),o=hr(a),i=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,c=s[e](...n),u=r?ws:t?gr:tt;return!t&&Pe(a,"iterate",l?Ss:rr),Ae(Object.create(c),{next(){const{value:h,done:f}=c.next();return f?{value:h,done:f}:{value:i?[u(h[0]),u(h[1])]:u(h),done:f}}})}}function rn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function _0(e,t){const r={get(s){const a=this.__v_raw,o=he(a),i=he(s);e||(Vt(s,i)&&Pe(o,"get",s),Pe(o,"get",i));const{has:l}=tn(o),c=t?ws:e?gr:tt;if(l.call(o,s))return c(a.get(s));if(l.call(o,i))return c(a.get(i));a!==o&&a.get(s)},get size(){const s=this.__v_raw;return!e&&Pe(he(s),"iterate",rr),s.size},has(s){const a=this.__v_raw,o=he(a),i=he(s);return e||(Vt(s,i)&&Pe(o,"has",s),Pe(o,"has",i)),s===i?a.has(s):a.has(s)||a.has(i)},forEach(s,a){const o=this,i=o.__v_raw,l=he(i),c=t?ws:e?gr:tt;return!e&&Pe(l,"iterate",rr),i.forEach((u,h)=>s.call(a,c(u),c(h),o))}};return Ae(r,e?{add:rn("add"),set:rn("set"),delete:rn("delete"),clear:rn("clear")}:{add(s){!t&&!qe(s)&&!Lt(s)&&(s=he(s));const a=he(this);return tn(a).has.call(a,s)||(a.add(s),Tt(a,"add",s,s)),this},set(s,a){!t&&!qe(a)&&!Lt(a)&&(a=he(a));const o=he(this),{has:i,get:l}=tn(o);let c=i.call(o,s);c||(s=he(s),c=i.call(o,s));const u=l.call(o,s);return o.set(s,a),c?Vt(a,u)&&Tt(o,"set",s,a):Tt(o,"add",s,a),this},delete(s){const a=he(this),{has:o,get:i}=tn(a);let l=o.call(a,s);l||(s=he(s),l=o.call(a,s)),i&&i.call(a,s);const c=a.delete(s);return l&&Tt(a,"delete",s,void 0),c},clear(){const s=he(this),a=s.size!==0,o=s.clear();return a&&Tt(s,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(s=>{r[s]=L0(s,e,t)}),r}function ea(e,t){const r=_0(e,t);return(n,s,a)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?n:Reflect.get(ve(r,s)&&s in n?r:n,s,a)}const R0={get:ea(!1,!1)},A0={get:ea(!1,!0)},M0={get:ea(!0,!1)};const mi=new WeakMap,xi=new WeakMap,yi=new WeakMap,I0=new WeakMap;function P0(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function D0(e){return e.__v_skip||!Object.isExtensible(e)?0:P0(u0(e))}function Bn(e){return Lt(e)?e:ta(e,!1,E0,R0,mi)}function B0(e){return ta(e,!1,U0,A0,xi)}function Ts(e){return ta(e,!0,O0,M0,yi)}function ta(e,t,r,n,s){if(!ke(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=D0(e);if(a===0)return e;const o=s.get(e);if(o)return o;const i=new Proxy(e,a===2?n:r);return s.set(e,i),i}function kt(e){return Lt(e)?kt(e.__v_raw):!!(e&&e.__v_isReactive)}function Lt(e){return!!(e&&e.__v_isReadonly)}function qe(e){return!!(e&&e.__v_isShallow)}function Nn(e){return e?!!e.__v_raw:!1}function he(e){const t=e&&e.__v_raw;return t?he(t):e}function ra(e){return!ve(e,"__v_skip")&&Object.isExtensible(e)&&Qo(e,"__v_skip",!0),e}const tt=e=>ke(e)?Bn(e):e,gr=e=>ke(e)?Ts(e):e;function Ee(e){return e?e.__v_isRef===!0:!1}function Ce(e){return N0(e,!1)}function N0(e,t){return Ee(e)?e:new G0(e,t)}class G0{constructor(t,r){this.dep=new Qs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?t:he(t),this._value=r?t:tt(t),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(t){const r=this._rawValue,n=this.__v_isShallow||qe(t)||Lt(t);t=n?t:he(t),Vt(t,r)&&(this._rawValue=t,this._value=n?t:tt(t),this.dep.trigger())}}function Me(e){return Ee(e)?e.value:e}const H0={get:(e,t,r)=>t==="__v_raw"?e:Me(Reflect.get(e,t,r)),set:(e,t,r,n)=>{const s=e[t];return Ee(s)&&!Ee(r)?(s.value=r,!0):Reflect.set(e,t,r,n)}};function bi(e){return kt(e)?e:new Proxy(e,H0)}function V0(e){const t=ne(e)?new Array(e.length):{};for(const r in e)t[r]=W0(e,r);return t}class z0{constructor(t,r,n){this._object=t,this._key=r,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._raw=he(t);let s=!0,a=t;if(!ne(t)||!Mn(String(r)))do s=!Nn(a)||qe(a);while(s&&(a=a.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=Me(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ee(this._raw[this._key])){const r=this._object[this._key];if(Ee(r)){r.value=t;return}}this._object[this._key]=t}get dep(){return S0(this._raw,this._key)}}function W0(e,t,r){return new z0(e,t,r)}class Z0{constructor(t,r,n){this.fn=t,this.setter=r,this._value=void 0,this.dep=new Qs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Br-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Fe!==this)return li(this,!0),!0}get value(){const t=this.dep.track();return fi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function $0(e,t,r=!1){let n,s;return ae(e)?n=e:(n=e.get,s=e.set),new Z0(n,s,r)}const nn={},xn=new WeakMap;let Jt;function j0(e,t=!1,r=Jt){if(r){let n=xn.get(r);n||xn.set(r,n=[]),n.push(e)}}function q0(e,t,r=Se){const{immediate:n,deep:s,once:a,scheduler:o,augmentJob:i,call:l}=r,c=F=>s?F:qe(F)||s===!1||s===0?Ft(F,1):Ft(F);let u,h,f,p,m=!1,x=!1;if(Ee(e)?(h=()=>e.value,m=qe(e)):kt(e)?(h=()=>c(e),m=!0):ne(e)?(x=!0,m=e.some(F=>kt(F)||qe(F)),h=()=>e.map(F=>{if(Ee(F))return F.value;if(kt(F))return c(F);if(ae(F))return l?l(F,2):F()})):ae(e)?t?h=l?()=>l(e,2):e:h=()=>{if(f){Ot();try{f()}finally{Ut()}}const F=Jt;Jt=u;try{return l?l(e,3,[p]):e(p)}finally{Jt=F}}:h=mt,t&&s){const F=h,C=s===!0?1/0:s;h=()=>Ft(F(),C)}const g=ai(),y=()=>{u.stop(),g&&g.active&&js(g.effects,u)};if(a&&t){const F=t;t=(...C)=>{F(...C),y()}}let b=x?new Array(e.length).fill(nn):nn;const S=F=>{if(!(!(u.flags&1)||!u.dirty&&!F))if(t){const C=u.run();if(s||m||(x?C.some((q,D)=>Vt(q,b[D])):Vt(C,b))){f&&f();const q=Jt;Jt=u;try{const D=[C,b===nn?void 0:x&&b[0]===nn?[]:b,p];b=C,l?l(t,3,D):t(...D)}finally{Jt=q}}}else u.run()};return i&&i(S),u=new oi(h),u.scheduler=o?()=>o(S,!1):S,p=F=>j0(F,!1,u),f=u.onStop=()=>{const F=xn.get(u);if(F){if(l)l(F,4);else for(const C of F)C();xn.delete(u)}},t?n?S(!0):b=u.run():o?o(S.bind(null,!0),!0):u.run(),y.pause=u.pause.bind(u),y.resume=u.resume.bind(u),y.stop=y,y}function Ft(e,t=1/0,r){if(t<=0||!ke(e)||e.__v_skip||(r=r||new Map,(r.get(e)||0)>=t))return e;if(r.set(e,t),t--,Ee(e))Ft(e.value,t,r);else if(ne(e))for(let n=0;n{Ft(n,t,r)});else if(Jo(e)){for(const n in e)Ft(e[n],t,r);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Ft(e[n],t,r)}return e}function jr(e,t,r,n){try{return n?e(...n):e()}catch(s){Gn(s,t,r)}}function bt(e,t,r,n){if(ae(e)){const s=jr(e,t,r,n);return s&&Yo(s)&&s.catch(a=>{Gn(a,t,r)}),s}if(ne(e)){const s=[];for(let a=0;a>>1,s=Ne[n],a=Gr(s);a=Gr(r)?Ne.push(e):Ne.splice(Y0(t),0,e),e.flags|=1,wi()}}function wi(){yn||(yn=Si.then(Fi))}function K0(e){ne(e)?pr.push(...e):Nt&&e.id===-1?Nt.splice(ur+1,0,e):e.flags&1||(pr.push(e),e.flags|=1),wi()}function Ea(e,t,r=ht+1){for(;rGr(r)-Gr(n));if(pr.length=0,Nt){Nt.push(...t);return}for(Nt=t,ur=0;ure.id==null?e.flags&2?-1:1/0:e.id;function Fi(e){try{for(ht=0;ht{n._d&&Ba(-1);const a=bn(t);let o;try{o=e(...s)}finally{bn(a),n._d&&Ba(1)}return o};return n._n=!0,n._c=!0,n._d=!0,n}function hn(e,t){if($e===null)return e;const r=Wn($e),n=e.dirs||(e.dirs=[]);for(let s=0;s1)return r&&ae(t)?t.call(n&&n.proxy):t}}function eu(){return!!(el()||nr)}const tu=Symbol.for("v-scx"),ru=()=>Lr(tu);function dr(e,t,r){return ki(e,t,r)}function ki(e,t,r=Se){const{immediate:n,deep:s,flush:a,once:o}=r,i=Ae({},r),l=t&&n||!t&&a!=="post";let c;if(Vr){if(a==="sync"){const p=ru();c=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=mt,p.resume=mt,p.pause=mt,p}}const u=De;i.call=(p,m,x)=>bt(p,u,m,x);let h=!1;a==="post"?i.scheduler=p=>{Ze(p,u&&u.suspense)}:a!=="sync"&&(h=!0,i.scheduler=(p,m)=>{m?p():sa(p)}),i.augmentJob=p=>{t&&(p.flags|=4),h&&(p.flags|=2,u&&(p.id=u.uid,p.i=u))};const f=q0(e,t,i);return Vr&&(c?c.push(f):l&&f()),f}function nu(e,t,r){const n=this.proxy,s=Le(e)?e.includes(".")?Ei(n,e):()=>n[e]:e.bind(n,n);let a;ae(t)?a=t:(a=t.handler,r=t);const o=Xr(this),i=ki(s,a.bind(n),r);return o(),i}function Ei(e,t){const r=t.split(".");return()=>{let n=e;for(let s=0;se.__isTeleport,ou=Symbol("_leaveCb");function aa(e,t){e.shapeFlag&6&&e.component?(e.transition=t,aa(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function qr(e,t){return ae(e)?Ae({name:e.name},t,{setup:e}):e}function Oi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Sn=new WeakMap;function _r(e,t,r,n,s=!1){if(ne(e)){e.forEach((m,x)=>_r(m,t&&(ne(t)?t[x]:t),r,n,s));return}if(Rr(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&_r(e,t,r,n.component.subTree);return}const a=n.shapeFlag&4?Wn(n.component):n.el,o=s?null:a,{i,r:l}=e,c=t&&t.r,u=i.refs===Se?i.refs={}:i.refs,h=i.setupState,f=he(h),p=h===Se?qo:m=>ve(f,m);if(c!=null&&c!==l){if(Oa(t),Le(c))u[c]=null,p(c)&&(h[c]=null);else if(Ee(c)){c.value=null;const m=t;m.k&&(u[m.k]=null)}}if(ae(l))jr(l,i,12,[o,u]);else{const m=Le(l),x=Ee(l);if(m||x){const g=()=>{if(e.f){const y=m?p(l)?h[l]:u[l]:l.value;if(s)ne(y)&&js(y,a);else if(ne(y))y.includes(a)||y.push(a);else if(m)u[l]=[a],p(l)&&(h[l]=u[l]);else{const b=[a];l.value=b,e.k&&(u[e.k]=b)}}else m?(u[l]=o,p(l)&&(h[l]=o)):x&&(l.value=o,e.k&&(u[e.k]=o))};if(o){const y=()=>{g(),Sn.delete(e)};y.id=-1,Sn.set(e,y),Ze(y,r)}else Oa(e),g()}}}function Oa(e){const t=Sn.get(e);t&&(t.flags|=8,Sn.delete(e))}Pn().requestIdleCallback;Pn().cancelIdleCallback;const Rr=e=>!!e.type.__asyncLoader,Ui=e=>e.type.__isKeepAlive;function iu(e,t){Li(e,"a",t)}function lu(e,t){Li(e,"da",t)}function Li(e,t,r=De){const n=e.__wdc||(e.__wdc=()=>{let s=r;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Hn(t,n,r),r){let s=r.parent;for(;s&&s.parent;)Ui(s.parent.vnode)&&uu(n,t,r,s),s=s.parent}}function uu(e,t,r,n){const s=Hn(t,e,n,!0);Ai(()=>{js(n[t],s)},r)}function Hn(e,t,r=De,n=!1){if(r){const s=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...o)=>{Ot();const i=Xr(r),l=bt(t,r,e,o);return i(),Ut(),l});return n?s.unshift(a):s.push(a),a}}const _t=e=>(t,r=De)=>{(!Vr||e==="sp")&&Hn(e,(...n)=>t(...n),r)},cu=_t("bm"),_i=_t("m"),fu=_t("bu"),hu=_t("u"),Ri=_t("bum"),Ai=_t("um"),pu=_t("sp"),du=_t("rtg"),vu=_t("rtc");function gu(e,t=De){Hn("ec",e,t)}const mu="directives",xu=Symbol.for("v-ndc");function yu(e){return bu(mu,e)}function bu(e,t,r=!0,n=!1){const s=$e||De;if(s){const a=s.type,o=Ua(s[e]||a[e],t)||Ua(s.appContext[e],t);return!o&&n?a:o}}function Ua(e,t){return e&&(e[t]||e[yt(t)]||e[qs(yt(t))])}function wn(e,t,r,n){let s;const a=r,o=ne(e);if(o||Le(e)){const i=o&&kt(e);let l=!1,c=!1;i&&(l=!qe(e),c=Lt(e),e=Dn(e)),s=new Array(e.length);for(let u=0,h=e.length;ut(i,l,void 0,a));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;le?tl(e)?Wn(e):Fs(e.parent):null,Ar=Ae(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Fs(e.parent),$root:e=>Fs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ii(e),$forceUpdate:e=>e.f||(e.f=()=>{sa(e.update)}),$nextTick:e=>e.n||(e.n=na.bind(e.proxy)),$watch:e=>nu.bind(e)}),rs=(e,t)=>e!==Se&&!e.__isScriptSetup&&ve(e,t),Su={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:r,setupState:n,data:s,props:a,accessCache:o,type:i,appContext:l}=e;if(t[0]!=="$"){const f=o[t];if(f!==void 0)switch(f){case 1:return n[t];case 2:return s[t];case 4:return r[t];case 3:return a[t]}else{if(rs(n,t))return o[t]=1,n[t];if(s!==Se&&ve(s,t))return o[t]=2,s[t];if(ve(a,t))return o[t]=3,a[t];if(r!==Se&&ve(r,t))return o[t]=4,r[t];Cs&&(o[t]=0)}}const c=Ar[t];let u,h;if(c)return t==="$attrs"&&Pe(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(r!==Se&&ve(r,t))return o[t]=4,r[t];if(h=l.config.globalProperties,ve(h,t))return h[t]},set({_:e},t,r){const{data:n,setupState:s,ctx:a}=e;return rs(s,t)?(s[t]=r,!0):n!==Se&&ve(n,t)?(n[t]=r,!0):ve(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:n,appContext:s,props:a,type:o}},i){let l;return!!(r[i]||e!==Se&&i[0]!=="$"&&ve(e,i)||rs(t,i)||ve(a,i)||ve(n,i)||ve(Ar,i)||ve(s.config.globalProperties,i)||(l=o.__cssModules)&&l[i])},defineProperty(e,t,r){return r.get!=null?e._.accessCache[t]=0:ve(r,"value")&&this.set(e,t,r.value,null),Reflect.defineProperty(e,t,r)}};function La(e){return ne(e)?e.reduce((t,r)=>(t[r]=null,t),{}):e}let Cs=!0;function wu(e){const t=Ii(e),r=e.proxy,n=e.ctx;Cs=!1,t.beforeCreate&&_a(t.beforeCreate,e,"bc");const{data:s,computed:a,methods:o,watch:i,provide:l,inject:c,created:u,beforeMount:h,mounted:f,beforeUpdate:p,updated:m,activated:x,deactivated:g,beforeDestroy:y,beforeUnmount:b,destroyed:S,unmounted:F,render:C,renderTracked:q,renderTriggered:D,errorCaptured:k,serverPrefetch:L,expose:V,inheritAttrs:N,components:X,directives:se,filters:oe}=t;if(c&&Tu(c,n,null),o)for(const A in o){const z=o[A];ae(z)&&(n[A]=z.bind(r))}if(s){const A=s.call(r,r);ke(A)&&(e.data=Bn(A))}if(Cs=!0,a)for(const A in a){const z=a[A],ee=ae(z)?z.bind(r,r):ae(z.get)?z.get.bind(r,r):mt,fe=!ae(z)&&ae(z.set)?z.set.bind(r):mt,ue=be({get:ee,set:fe});Object.defineProperty(n,A,{enumerable:!0,configurable:!0,get:()=>ue.value,set:de=>ue.value=de})}if(i)for(const A in i)Mi(i[A],n,r,A);if(l){const A=ae(l)?l.call(r):l;Reflect.ownKeys(A).forEach(z=>{Q0(z,A[z])})}u&&_a(u,e,"c");function G(A,z){ne(z)?z.forEach(ee=>A(ee.bind(r))):z&&A(z.bind(r))}if(G(cu,h),G(_i,f),G(fu,p),G(hu,m),G(iu,x),G(lu,g),G(gu,k),G(vu,q),G(du,D),G(Ri,b),G(Ai,F),G(pu,L),ne(V))if(V.length){const A=e.exposed||(e.exposed={});V.forEach(z=>{Object.defineProperty(A,z,{get:()=>r[z],set:ee=>r[z]=ee,enumerable:!0})})}else e.exposed||(e.exposed={});C&&e.render===mt&&(e.render=C),N!=null&&(e.inheritAttrs=N),X&&(e.components=X),se&&(e.directives=se),L&&Oi(e)}function Tu(e,t,r=mt){ne(e)&&(e=ks(e));for(const n in e){const s=e[n];let a;ke(s)?"default"in s?a=Lr(s.from||n,s.default,!0):a=Lr(s.from||n):a=Lr(s),Ee(a)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>a.value,set:o=>a.value=o}):t[n]=a}}function _a(e,t,r){bt(ne(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,r)}function Mi(e,t,r,n){let s=n.includes(".")?Ei(r,n):()=>r[n];if(Le(e)){const a=t[e];ae(a)&&dr(s,a)}else if(ae(e))dr(s,e.bind(r));else if(ke(e))if(ne(e))e.forEach(a=>Mi(a,t,r,n));else{const a=ae(e.handler)?e.handler.bind(r):t[e.handler];ae(a)&&dr(s,a,e)}}function Ii(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:s,optionsCache:a,config:{optionMergeStrategies:o}}=e.appContext,i=a.get(t);let l;return i?l=i:!s.length&&!r&&!n?l=t:(l={},s.length&&s.forEach(c=>Tn(l,c,o,!0)),Tn(l,t,o)),ke(t)&&a.set(t,l),l}function Tn(e,t,r,n=!1){const{mixins:s,extends:a}=t;a&&Tn(e,a,r,!0),s&&s.forEach(o=>Tn(e,o,r,!0));for(const o in t)if(!(n&&o==="expose")){const i=Fu[o]||r&&r[o];e[o]=i?i(e[o],t[o]):t[o]}return e}const Fu={data:Ra,props:Aa,emits:Aa,methods:kr,computed:kr,beforeCreate:Be,created:Be,beforeMount:Be,mounted:Be,beforeUpdate:Be,updated:Be,beforeDestroy:Be,beforeUnmount:Be,destroyed:Be,unmounted:Be,activated:Be,deactivated:Be,errorCaptured:Be,serverPrefetch:Be,components:kr,directives:kr,watch:ku,provide:Ra,inject:Cu};function Ra(e,t){return t?e?function(){return Ae(ae(e)?e.call(this,this):e,ae(t)?t.call(this,this):t)}:t:e}function Cu(e,t){return kr(ks(e),ks(t))}function ks(e){if(ne(e)){const t={};for(let r=0;rt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${yt(t)}Modifiers`]||e[`${ar(t)}Modifiers`];function Lu(e,t,...r){if(e.isUnmounted)return;const n=e.vnode.props||Se;let s=r;const a=t.startsWith("update:"),o=a&&Uu(n,t.slice(7));o&&(o.trim&&(s=r.map(u=>Le(u)?u.trim():u)),o.number&&(s=r.map(Xs)));let i,l=n[i=Kn(t)]||n[i=Kn(yt(t))];!l&&a&&(l=n[i=Kn(ar(t))]),l&&bt(l,e,6,s);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,bt(c,e,6,s)}}const _u=new WeakMap;function Di(e,t,r=!1){const n=r?_u:t.emitsCache,s=n.get(e);if(s!==void 0)return s;const a=e.emits;let o={},i=!1;if(!ae(e)){const l=c=>{const u=Di(c,t,!0);u&&(i=!0,Ae(o,u))};!r&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!i?(ke(e)&&n.set(e,null),null):(ne(a)?a.forEach(l=>o[l]=null):Ae(o,a),ke(e)&&n.set(e,o),o)}function Vn(e,t){return!e||!Rn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ve(e,t[0].toLowerCase()+t.slice(1))||ve(e,ar(t))||ve(e,t))}function Ma(e){const{type:t,vnode:r,proxy:n,withProxy:s,propsOptions:[a],slots:o,attrs:i,emit:l,render:c,renderCache:u,props:h,data:f,setupState:p,ctx:m,inheritAttrs:x}=e,g=bn(e);let y,b;try{if(r.shapeFlag&4){const F=s||n,C=F;y=dt(c.call(C,F,u,h,p,f,m)),b=i}else{const F=t;y=dt(F.length>1?F(h,{attrs:i,slots:o,emit:l}):F(h,null)),b=t.props?i:Ru(i)}}catch(F){Mr.length=0,Gn(F,e,1),y=Ke(Wt)}let S=y;if(b&&x!==!1){const F=Object.keys(b),{shapeFlag:C}=S;F.length&&C&7&&(a&&F.some($s)&&(b=Au(b,a)),S=mr(S,b,!1,!0))}return r.dirs&&(S=mr(S,null,!1,!0),S.dirs=S.dirs?S.dirs.concat(r.dirs):r.dirs),r.transition&&aa(S,r.transition),y=S,bn(g),y}const Ru=e=>{let t;for(const r in e)(r==="class"||r==="style"||Rn(r))&&((t||(t={}))[r]=e[r]);return t},Au=(e,t)=>{const r={};for(const n in e)(!$s(n)||!(n.slice(9)in t))&&(r[n]=e[n]);return r};function Mu(e,t,r){const{props:n,children:s,component:a}=e,{props:o,children:i,patchFlag:l}=t,c=a.emitsOptions;if(t.dirs||t.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?Ia(n,o,c):!!o;if(l&8){const u=t.dynamicProps;for(let h=0;hObject.create(Bi),Gi=e=>Object.getPrototypeOf(e)===Bi;function Pu(e,t,r,n=!1){const s={},a=Ni();e.propsDefaults=Object.create(null),Hi(e,t,s,a);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);r?e.props=n?s:B0(s):e.type.props?e.props=s:e.props=a,e.attrs=a}function Du(e,t,r,n){const{props:s,attrs:a,vnode:{patchFlag:o}}=e,i=he(s),[l]=e.propsOptions;let c=!1;if((n||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let h=0;h{l=!0;const[f,p]=Vi(h,t,!0);Ae(o,f),p&&i.push(...p)};!r&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!a&&!l)return ke(e)&&n.set(e,fr),fr;if(ne(a))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ia=e=>ne(e)?e.map(dt):[dt(e)],Nu=(e,t,r)=>{if(t._n)return t;const n=J0((...s)=>ia(t(...s)),r);return n._c=!1,n},zi=(e,t,r)=>{const n=e._ctx;for(const s in e){if(oa(s))continue;const a=e[s];if(ae(a))t[s]=Nu(s,a,n);else if(a!=null){const o=ia(a);t[s]=()=>o}}},Wi=(e,t)=>{const r=ia(t);e.slots.default=()=>r},Zi=(e,t,r)=>{for(const n in t)(r||!oa(n))&&(e[n]=t[n])},Gu=(e,t,r)=>{const n=e.slots=Ni();if(e.vnode.shapeFlag&32){const s=t._;s?(Zi(n,t,r),r&&Qo(n,"_",s,!0)):zi(t,n)}else t&&Wi(e,t)},Hu=(e,t,r)=>{const{vnode:n,slots:s}=e;let a=!0,o=Se;if(n.shapeFlag&32){const i=t._;i?r&&i===1?a=!1:Zi(s,t,r):(a=!t.$stable,zi(t,s)),o=t}else t&&(Wi(e,t),o={default:1});if(a)for(const i in s)!oa(i)&&o[i]==null&&delete s[i]},Ze=$u;function Vu(e){return zu(e)}function zu(e,t){const r=Pn();r.__VUE__=!0;const{insert:n,remove:s,patchProp:a,createElement:o,createText:i,createComment:l,setText:c,setElementText:u,parentNode:h,nextSibling:f,setScopeId:p=mt,insertStaticContent:m}=e,x=(d,v,T,U=null,E=null,O=null,H=void 0,P=null,M=!!v.dynamicChildren)=>{if(d===v)return;d&&!Fr(d,v)&&(U=xe(d),de(d,E,O,!0),d=null),v.patchFlag===-2&&(M=!1,v.dynamicChildren=null);const{type:_,ref:J,shapeFlag:W}=v;switch(_){case zn:g(d,v,T,U);break;case Wt:y(d,v,T,U);break;case ss:d==null&&b(v,T,U,H);break;case ze:X(d,v,T,U,E,O,H,P,M);break;default:W&1?C(d,v,T,U,E,O,H,P,M):W&6?se(d,v,T,U,E,O,H,P,M):(W&64||W&128)&&_.process(d,v,T,U,E,O,H,P,M,qt)}J!=null&&E?_r(J,d&&d.ref,O,v||d,!v):J==null&&d&&d.ref!=null&&_r(d.ref,null,O,d,!0)},g=(d,v,T,U)=>{if(d==null)n(v.el=i(v.children),T,U);else{const E=v.el=d.el;v.children!==d.children&&c(E,v.children)}},y=(d,v,T,U)=>{d==null?n(v.el=l(v.children||""),T,U):v.el=d.el},b=(d,v,T,U)=>{[d.el,d.anchor]=m(d.children,v,T,U,d.el,d.anchor)},S=({el:d,anchor:v},T,U)=>{let E;for(;d&&d!==v;)E=f(d),n(d,T,U),d=E;n(v,T,U)},F=({el:d,anchor:v})=>{let T;for(;d&&d!==v;)T=f(d),s(d),d=T;s(v)},C=(d,v,T,U,E,O,H,P,M)=>{if(v.type==="svg"?H="svg":v.type==="math"&&(H="mathml"),d==null)q(v,T,U,E,O,H,P,M);else{const _=d.el&&d.el._isVueCE?d.el:null;try{_&&_._beginPatch(),L(d,v,E,O,H,P,M)}finally{_&&_._endPatch()}}},q=(d,v,T,U,E,O,H,P)=>{let M,_;const{props:J,shapeFlag:W,transition:K,dirs:re}=d;if(M=d.el=o(d.type,O,J&&J.is,J),W&8?u(M,d.children):W&16&&k(d.children,M,null,U,E,ns(d,O),H,P),re&&Xt(d,null,U,"created"),D(M,d,d.scopeId,H,U),J){for(const Te in J)Te!=="value"&&!Er(Te)&&a(M,Te,null,J[Te],O,U);"value"in J&&a(M,"value",null,J.value,O),(_=J.onVnodeBeforeMount)&&ct(_,U,d)}re&&Xt(d,null,U,"beforeMount");const ce=Wu(E,K);ce&&K.beforeEnter(M),n(M,v,T),((_=J&&J.onVnodeMounted)||ce||re)&&Ze(()=>{_&&ct(_,U,d),ce&&K.enter(M),re&&Xt(d,null,U,"mounted")},E)},D=(d,v,T,U,E)=>{if(T&&p(d,T),U)for(let O=0;O{for(let _=M;_{const P=v.el=d.el;let{patchFlag:M,dynamicChildren:_,dirs:J}=v;M|=d.patchFlag&16;const W=d.props||Se,K=v.props||Se;let re;if(T&&Yt(T,!1),(re=K.onVnodeBeforeUpdate)&&ct(re,T,v,d),J&&Xt(v,d,T,"beforeUpdate"),T&&Yt(T,!0),(W.innerHTML&&K.innerHTML==null||W.textContent&&K.textContent==null)&&u(P,""),_?V(d.dynamicChildren,_,P,T,U,ns(v,E),O):H||z(d,v,P,null,T,U,ns(v,E),O,!1),M>0){if(M&16)N(P,W,K,T,E);else if(M&2&&W.class!==K.class&&a(P,"class",null,K.class,E),M&4&&a(P,"style",W.style,K.style,E),M&8){const ce=v.dynamicProps;for(let Te=0;Te{re&&ct(re,T,v,d),J&&Xt(v,d,T,"updated")},U)},V=(d,v,T,U,E,O,H)=>{for(let P=0;P{if(v!==T){if(v!==Se)for(const O in v)!Er(O)&&!(O in T)&&a(d,O,v[O],null,E,U);for(const O in T){if(Er(O))continue;const H=T[O],P=v[O];H!==P&&O!=="value"&&a(d,O,P,H,E,U)}"value"in T&&a(d,"value",v.value,T.value,E)}},X=(d,v,T,U,E,O,H,P,M)=>{const _=v.el=d?d.el:i(""),J=v.anchor=d?d.anchor:i("");let{patchFlag:W,dynamicChildren:K,slotScopeIds:re}=v;re&&(P=P?P.concat(re):re),d==null?(n(_,T,U),n(J,T,U),k(v.children||[],T,J,E,O,H,P,M)):W>0&&W&64&&K&&d.dynamicChildren&&d.dynamicChildren.length===K.length?(V(d.dynamicChildren,K,T,E,O,H,P),(v.key!=null||E&&v===E.subTree)&&$i(d,v,!0)):z(d,v,T,J,E,O,H,P,M)},se=(d,v,T,U,E,O,H,P,M)=>{v.slotScopeIds=P,d==null?v.shapeFlag&512?E.ctx.activate(v,T,U,H,M):oe(v,T,U,E,O,H,M):R(d,v,M)},oe=(d,v,T,U,E,O,H)=>{const P=d.component=ec(d,U,E);if(Ui(d)&&(P.ctx.renderer=qt),tc(P,!1,H),P.asyncDep){if(E&&E.registerDep(P,G,H),!d.el){const M=P.subTree=Ke(Wt);y(null,M,v,T),d.placeholder=M.el}}else G(P,d,v,T,E,O,H)},R=(d,v,T)=>{const U=v.component=d.component;if(Mu(d,v,T))if(U.asyncDep&&!U.asyncResolved){A(U,v,T);return}else U.next=v,U.update();else v.el=d.el,U.vnode=v},G=(d,v,T,U,E,O,H)=>{const P=()=>{if(d.isMounted){let{next:W,bu:K,u:re,parent:ce,vnode:Te}=d;{const lt=ji(d);if(lt){W&&(W.el=Te.el,A(d,W,H)),lt.asyncDep.then(()=>{d.isUnmounted||P()});return}}let me=W,He;Yt(d,!1),W?(W.el=Te.el,A(d,W,H)):W=Te,K&&fn(K),(He=W.props&&W.props.onVnodeBeforeUpdate)&&ct(He,ce,W,Te),Yt(d,!0);const Ve=Ma(d),it=d.subTree;d.subTree=Ve,x(it,Ve,h(it.el),xe(it),d,E,O),W.el=Ve.el,me===null&&Iu(d,Ve.el),re&&Ze(re,E),(He=W.props&&W.props.onVnodeUpdated)&&Ze(()=>ct(He,ce,W,Te),E)}else{let W;const{el:K,props:re}=v,{bm:ce,m:Te,parent:me,root:He,type:Ve}=d,it=Rr(v);Yt(d,!1),ce&&fn(ce),!it&&(W=re&&re.onVnodeBeforeMount)&&ct(W,me,v),Yt(d,!0);{He.ce&&He.ce._def.shadowRoot!==!1&&He.ce._injectChildStyle(Ve);const lt=d.subTree=Ma(d);x(null,lt,T,U,d,E,O),v.el=lt.el}if(Te&&Ze(Te,E),!it&&(W=re&&re.onVnodeMounted)){const lt=v;Ze(()=>ct(W,me,lt),E)}(v.shapeFlag&256||me&&Rr(me.vnode)&&me.vnode.shapeFlag&256)&&d.a&&Ze(d.a,E),d.isMounted=!0,v=T=U=null}};d.scope.on();const M=d.effect=new oi(P);d.scope.off();const _=d.update=M.run.bind(M),J=d.job=M.runIfDirty.bind(M);J.i=d,J.id=d.uid,M.scheduler=()=>sa(J),Yt(d,!0),_()},A=(d,v,T)=>{v.component=d;const U=d.vnode.props;d.vnode=v,d.next=null,Du(d,v.props,U,T),Hu(d,v.children,T),Ot(),Ea(d),Ut()},z=(d,v,T,U,E,O,H,P,M=!1)=>{const _=d&&d.children,J=d?d.shapeFlag:0,W=v.children,{patchFlag:K,shapeFlag:re}=v;if(K>0){if(K&128){fe(_,W,T,U,E,O,H,P,M);return}else if(K&256){ee(_,W,T,U,E,O,H,P,M);return}}re&8?(J&16&&le(_,E,O),W!==_&&u(T,W)):J&16?re&16?fe(_,W,T,U,E,O,H,P,M):le(_,E,O,!0):(J&8&&u(T,""),re&16&&k(W,T,U,E,O,H,P,M))},ee=(d,v,T,U,E,O,H,P,M)=>{d=d||fr,v=v||fr;const _=d.length,J=v.length,W=Math.min(_,J);let K;for(K=0;KJ?le(d,E,O,!0,!1,W):k(v,T,U,E,O,H,P,M,W)},fe=(d,v,T,U,E,O,H,P,M)=>{let _=0;const J=v.length;let W=d.length-1,K=J-1;for(;_<=W&&_<=K;){const re=d[_],ce=v[_]=M?Gt(v[_]):dt(v[_]);if(Fr(re,ce))x(re,ce,T,null,E,O,H,P,M);else break;_++}for(;_<=W&&_<=K;){const re=d[W],ce=v[K]=M?Gt(v[K]):dt(v[K]);if(Fr(re,ce))x(re,ce,T,null,E,O,H,P,M);else break;W--,K--}if(_>W){if(_<=K){const re=K+1,ce=reK)for(;_<=W;)de(d[_],E,O,!0),_++;else{const re=_,ce=_,Te=new Map;for(_=ce;_<=K;_++){const We=v[_]=M?Gt(v[_]):dt(v[_]);We.key!=null&&Te.set(We.key,_)}let me,He=0;const Ve=K-ce+1;let it=!1,lt=0;const wr=new Array(Ve);for(_=0;_=Ve){de(We,E,O,!0);continue}let ut;if(We.key!=null)ut=Te.get(We.key);else for(me=ce;me<=K;me++)if(wr[me-ce]===0&&Fr(We,v[me])){ut=me;break}ut===void 0?de(We,E,O,!0):(wr[ut-ce]=_+1,ut>=lt?lt=ut:it=!0,x(We,v[ut],T,null,E,O,H,P,M),He++)}const Sa=it?Zu(wr):fr;for(me=Sa.length-1,_=Ve-1;_>=0;_--){const We=ce+_,ut=v[We],wa=v[We+1],Ta=We+1{const{el:O,type:H,transition:P,children:M,shapeFlag:_}=d;if(_&6){ue(d.component.subTree,v,T,U);return}if(_&128){d.suspense.move(v,T,U);return}if(_&64){H.move(d,v,T,qt);return}if(H===ze){n(O,v,T);for(let W=0;WP.enter(O),E);else{const{leave:W,delayLeave:K,afterLeave:re}=P,ce=()=>{d.ctx.isUnmounted?s(O):n(O,v,T)},Te=()=>{O._isLeaving&&O[ou](!0),W(O,()=>{ce(),re&&re()})};K?K(O,ce,Te):Te()}else n(O,v,T)},de=(d,v,T,U=!1,E=!1)=>{const{type:O,props:H,ref:P,children:M,dynamicChildren:_,shapeFlag:J,patchFlag:W,dirs:K,cacheIndex:re}=d;if(W===-2&&(E=!1),P!=null&&(Ot(),_r(P,null,T,d,!0),Ut()),re!=null&&(v.renderCache[re]=void 0),J&256){v.ctx.deactivate(d);return}const ce=J&1&&K,Te=!Rr(d);let me;if(Te&&(me=H&&H.onVnodeBeforeUnmount)&&ct(me,v,d),J&6)ie(d.component,T,U);else{if(J&128){d.suspense.unmount(T,U);return}ce&&Xt(d,null,v,"beforeUnmount"),J&64?d.type.remove(d,v,T,qt,U):_&&!_.hasOnce&&(O!==ze||W>0&&W&64)?le(_,v,T,!1,!0):(O===ze&&W&384||!E&&J&16)&&le(M,v,T),U&&Rt(d)}(Te&&(me=H&&H.onVnodeUnmounted)||ce)&&Ze(()=>{me&&ct(me,v,d),ce&&Xt(d,null,v,"unmounted")},T)},Rt=d=>{const{type:v,el:T,anchor:U,transition:E}=d;if(v===ze){Y(T,U);return}if(v===ss){F(d);return}const O=()=>{s(T),E&&!E.persisted&&E.afterLeave&&E.afterLeave()};if(d.shapeFlag&1&&E&&!E.persisted){const{leave:H,delayLeave:P}=E,M=()=>H(T,O);P?P(d.el,O,M):M()}else O()},Y=(d,v)=>{let T;for(;d!==v;)T=f(d),s(d),d=T;s(v)},ie=(d,v,T)=>{const{bum:U,scope:E,job:O,subTree:H,um:P,m:M,a:_}=d;Da(M),Da(_),U&&fn(U),E.stop(),O&&(O.flags|=8,de(H,d,v,T)),P&&Ze(P,v),Ze(()=>{d.isUnmounted=!0},v)},le=(d,v,T,U=!1,E=!1,O=0)=>{for(let H=O;H{if(d.shapeFlag&6)return xe(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const v=f(d.anchor||d.el),T=v&&v[su];return T?f(T):v};let Ge=!1;const At=(d,v,T)=>{let U;d==null?v._vnode&&(de(v._vnode,null,null,!0),U=v._vnode.component):x(v._vnode||null,d,v,null,null,null,T),v._vnode=d,Ge||(Ge=!0,Ea(U),Ti(),Ge=!1)},qt={p:x,um:de,m:ue,r:Rt,mt:oe,mc:k,pc:z,pbc:V,n:xe,o:e};return{render:At,hydrate:void 0,createApp:Ou(At)}}function ns({type:e,props:t},r){return r==="svg"&&e==="foreignObject"||r==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:r}function Yt({effect:e,job:t},r){r?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Wu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function $i(e,t,r=!1){const n=e.children,s=t.children;if(ne(n)&&ne(s))for(let a=0;a>1,e[r[i]]0&&(t[n]=r[a-1]),r[a]=n)}}for(a=r.length,o=r[a-1];a-- >0;)r[a]=o,o=t[o];return r}function ji(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ji(t)}function Da(e){if(e)for(let t=0;te.__isSuspense;function $u(e,t){t&&t.pendingBranch?ne(e)?t.effects.push(...e):t.effects.push(e):K0(e)}const ze=Symbol.for("v-fgt"),zn=Symbol.for("v-txt"),Wt=Symbol.for("v-cmt"),ss=Symbol.for("v-stc"),Mr=[];let je=null;function pe(e=!1){Mr.push(je=e?null:[])}function ju(){Mr.pop(),je=Mr[Mr.length-1]||null}let Hr=1;function Ba(e,t=!1){Hr+=e,e<0&&je&&t&&(je.hasOnce=!0)}function Yi(e){return e.dynamicChildren=Hr>0?je||fr:null,ju(),Hr>0&&je&&je.push(e),e}function ge(e,t,r,n,s,a){return Yi(I(e,t,r,n,s,a,!0))}function Ki(e,t,r,n,s){return Yi(Ke(e,t,r,n,s,!0))}function Ji(e){return e?e.__v_isVNode===!0:!1}function Fr(e,t){return e.type===t.type&&e.key===t.key}const Qi=({key:e})=>e??null,pn=({ref:e,ref_key:t,ref_for:r})=>(typeof e=="number"&&(e=""+e),e!=null?Le(e)||Ee(e)||ae(e)?{i:$e,r:e,k:t,f:!!r}:e:null);function I(e,t=null,r=null,n=0,s=null,a=e===ze?0:1,o=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Qi(t),ref:t&&pn(t),scopeId:Ci,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:$e};return i?(la(l,r),a&128&&e.normalize(l)):r&&(l.shapeFlag|=Le(r)?8:16),Hr>0&&!o&&je&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&je.push(l),l}const Ke=qu;function qu(e,t=null,r=null,n=0,s=null,a=!1){if((!e||e===xu)&&(e=Wt),Ji(e)){const i=mr(e,t,!0);return r&&la(i,r),Hr>0&&!a&&je&&(i.shapeFlag&6?je[je.indexOf(e)]=i:je.push(i)),i.patchFlag=-2,i}if(ac(e)&&(e=e.__vccOpts),t){t=Xu(t);let{class:i,style:l}=t;i&&!Le(i)&&(t.class=vt(i)),ke(l)&&(Nn(l)&&!ne(l)&&(l=Ae({},l)),t.style=Dr(l))}const o=Le(e)?1:Xi(e)?128:au(e)?64:ke(e)?4:ae(e)?2:0;return I(e,t,r,n,s,o,a,!0)}function Xu(e){return e?Nn(e)||Gi(e)?Ae({},e):e:null}function mr(e,t,r=!1,n=!1){const{props:s,ref:a,patchFlag:o,children:i,transition:l}=e,c=t?Ku(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Qi(c),ref:t&&t.ref?r&&a?ne(a)?a.concat(pn(t)):[a,pn(t)]:pn(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ze?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mr(e.ssContent),ssFallback:e.ssFallback&&mr(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&aa(u,l.clone(u)),u}function Yu(e=" ",t=0){return Ke(zn,null,e,t)}function tr(e="",t=!1){return t?(pe(),Ki(Wt,null,e)):Ke(Wt,null,e)}function dt(e){return e==null||typeof e=="boolean"?Ke(Wt):ne(e)?Ke(ze,null,e.slice()):Ji(e)?Gt(e):Ke(zn,null,String(e))}function Gt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mr(e)}function la(e,t){let r=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(ne(t))r=16;else if(typeof t=="object")if(n&65){const s=t.default;s&&(s._c&&(s._d=!1),la(e,s()),s._c&&(s._d=!0));return}else{r=32;const s=t._;!s&&!Gi(t)?t._ctx=$e:s===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ae(t)?(t={default:t,_ctx:$e},r=32):(t=String(t),n&64?(r=16,t=[Yu(t)]):r=8);e.children=t,e.shapeFlag|=r}function Ku(...e){const t={};for(let r=0;rDe||$e;let Fn,Os;{const e=Pn(),t=(r,n)=>{let s;return(s=e[r])||(s=e[r]=[]),s.push(n),a=>{s.length>1?s.forEach(o=>o(a)):s[0](a)}};Fn=t("__VUE_INSTANCE_SETTERS__",r=>De=r),Os=t("__VUE_SSR_SETTERS__",r=>Vr=r)}const Xr=e=>{const t=De;return Fn(e),e.scope.on(),()=>{e.scope.off(),Fn(t)}},Na=()=>{De&&De.scope.off(),Fn(null)};function tl(e){return e.vnode.shapeFlag&4}let Vr=!1;function tc(e,t=!1,r=!1){t&&Os(t);const{props:n,children:s}=e.vnode,a=tl(e);Pu(e,n,a,t),Gu(e,s,r||t);const o=a?rc(e,t):void 0;return t&&Os(!1),o}function rc(e,t){const r=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Su);const{setup:n}=r;if(n){Ot();const s=e.setupContext=n.length>1?sc(e):null,a=Xr(e),o=jr(n,e,0,[e.props,s]),i=Yo(o);if(Ut(),a(),(i||e.sp)&&!Rr(e)&&Oi(e),i){if(o.then(Na,Na),t)return o.then(l=>{Ga(e,l)}).catch(l=>{Gn(l,e,0)});e.asyncDep=o}else Ga(e,o)}else rl(e)}function Ga(e,t,r){ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ke(t)&&(e.setupState=bi(t)),rl(e)}function rl(e,t,r){const n=e.type;e.render||(e.render=n.render||mt);{const s=Xr(e);Ot();try{wu(e)}finally{Ut(),s()}}}const nc={get(e,t){return Pe(e,"get",""),e[t]}};function sc(e){const t=r=>{e.exposed=r||{}};return{attrs:new Proxy(e.attrs,nc),slots:e.slots,emit:e.emit,expose:t}}function Wn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(bi(ra(e.exposed)),{get(t,r){if(r in t)return t[r];if(r in Ar)return Ar[r](e)},has(t,r){return r in t||r in Ar}})):e.proxy}function ac(e){return ae(e)&&"__vccOpts"in e}const be=(e,t)=>$0(e,t,Vr),oc="3.5.27";let Us;const Ha=typeof window<"u"&&window.trustedTypes;if(Ha)try{Us=Ha.createPolicy("vue",{createHTML:e=>e})}catch{}const nl=Us?e=>Us.createHTML(e):e=>e,ic="http://www.w3.org/2000/svg",lc="http://www.w3.org/1998/Math/MathML",wt=typeof document<"u"?document:null,Va=wt&&wt.createElement("template"),uc={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const s=t==="svg"?wt.createElementNS(ic,e):t==="mathml"?wt.createElementNS(lc,e):r?wt.createElement(e,{is:r}):wt.createElement(e);return e==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:e=>wt.createTextNode(e),createComment:e=>wt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>wt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,s,a){const o=r?r.previousSibling:t.lastChild;if(s&&(s===a||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),r),!(s===a||!(s=s.nextSibling)););else{Va.innerHTML=nl(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Va.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}},cc=Symbol("_vtc");function fc(e,t,r){const n=e[cc];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}const za=Symbol("_vod"),hc=Symbol("_vsh"),pc=Symbol(""),dc=/(?:^|;)\s*display\s*:/;function vc(e,t,r){const n=e.style,s=Le(r);let a=!1;if(r&&!s){if(t)if(Le(t))for(const o of t.split(";")){const i=o.slice(0,o.indexOf(":")).trim();r[i]==null&&dn(n,i,"")}else for(const o in t)r[o]==null&&dn(n,o,"");for(const o in r)o==="display"&&(a=!0),dn(n,o,r[o])}else if(s){if(t!==r){const o=n[pc];o&&(r+=";"+o),n.cssText=r,a=dc.test(r)}}else t&&e.removeAttribute("style");za in e&&(e[za]=a?n.display:"",e[hc]&&(n.display="none"))}const Wa=/\s*!important$/;function dn(e,t,r){if(ne(r))r.forEach(n=>dn(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=gc(e,t);Wa.test(r)?e.setProperty(ar(n),r.replace(Wa,""),"important"):e[n]=r}}const Za=["Webkit","Moz","ms"],as={};function gc(e,t){const r=as[t];if(r)return r;let n=yt(t);if(n!=="filter"&&n in e)return as[t]=n;n=qs(n);for(let s=0;sos||(bc.then(()=>os=0),os=Date.now());function wc(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;bt(Tc(n,r.value),t,5,[n])};return r.value=e,r.attached=Sc(),r}function Tc(e,t){if(ne(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>s=>!s._stopped&&n&&n(s))}else return t}const Ka=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Fc=(e,t,r,n,s,a)=>{const o=s==="svg";t==="class"?fc(e,n,o):t==="style"?vc(e,r,n):Rn(t)?$s(t)||xc(e,t,r,n,a):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Cc(e,t,n,o))?(qa(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ja(e,t,n,o,a,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Le(n))?qa(e,yt(t),n,a,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),ja(e,t,n,o))};function Cc(e,t,r,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ka(t)&&ae(r));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Ka(t)&&Le(r)?!1:t in e}const Ja=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ne(t)?r=>fn(t,r):t};function kc(e){e.target.composing=!0}function Qa(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const is=Symbol("_assign");function eo(e,t,r){return t&&(e=e.trim()),r&&(e=Xs(e)),e}const Ec={created(e,{modifiers:{lazy:t,trim:r,number:n}},s){e[is]=Ja(s);const a=n||s.props&&s.props.type==="number";cr(e,t?"change":"input",o=>{o.target.composing||e[is](eo(e.value,r,a))}),(r||a)&&cr(e,"change",()=>{e.value=eo(e.value,r,a)}),t||(cr(e,"compositionstart",kc),cr(e,"compositionend",Qa),cr(e,"change",Qa))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:r,modifiers:{lazy:n,trim:s,number:a}},o){if(e[is]=Ja(o),e.composing)return;const i=(a||e.type==="number")&&!/^0\d/.test(e.value)?Xs(e.value):e.value,l=t??"";i!==l&&(document.activeElement===e&&e.type!=="range"&&(n&&t===r||s&&e.value.trim()===l)||(e.value=l))}},Oc=Ae({patchProp:Fc},uc);let to;function Uc(){return to||(to=Vu(Oc))}const Lc=((...e)=>{const t=Uc().createApp(...e),{mount:r}=t;return t.mount=n=>{const s=Rc(n);if(!s)return;const a=t._component;!ae(a)&&!a.render&&!a.template&&(a.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=r(s,!1,_c(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t});function _c(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Rc(e){return Le(e)?document.querySelector(e):e}let sl;const Zn=e=>sl=e,al=Symbol();function Ls(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Ir;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Ir||(Ir={}));function Ac(){const e=si(!0),t=e.run(()=>Ce({}));let r=[],n=[];const s=ra({install(a){Zn(s),s._a=a,a.provide(al,s),a.config.globalProperties.$pinia=s,n.forEach(o=>r.push(o)),n=[]},use(a){return this._a?r.push(a):n.push(a),this},_p:r,_a:null,_e:e,_s:new Map,state:t});return s}const ol=()=>{};function ro(e,t,r,n=ol){e.add(t);const s=()=>{e.delete(t)&&n()};return!r&&ai()&&x0(s),s}function ir(e,...t){e.forEach(r=>{r(...t)})}const Mc=e=>e(),no=Symbol(),ls=Symbol();function _s(e,t){e instanceof Map&&t instanceof Map?t.forEach((r,n)=>e.set(n,r)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const r in t){if(!t.hasOwnProperty(r))continue;const n=t[r],s=e[r];Ls(s)&&Ls(n)&&e.hasOwnProperty(r)&&!Ee(n)&&!kt(n)?e[r]=_s(s,n):e[r]=n}return e}const Ic=Symbol();function Pc(e){return!Ls(e)||!Object.prototype.hasOwnProperty.call(e,Ic)}const{assign:Pt}=Object;function Dc(e){return!!(Ee(e)&&e.effect)}function Bc(e,t,r,n){const{state:s,actions:a,getters:o}=t,i=r.state.value[e];let l;function c(){i||(r.state.value[e]=s?s():{});const u=V0(r.state.value[e]);return Pt(u,a,Object.keys(o||{}).reduce((h,f)=>(h[f]=ra(be(()=>{Zn(r);const p=r._s.get(e);return o[f].call(p,p)})),h),{}))}return l=il(e,c,t,r,n,!0),l}function il(e,t,r={},n,s,a){let o;const i=Pt({actions:{}},r),l={deep:!0};let c,u,h=new Set,f=new Set,p;const m=n.state.value[e];!a&&!m&&(n.state.value[e]={});let x;function g(k){let L;c=u=!1,typeof k=="function"?(k(n.state.value[e]),L={type:Ir.patchFunction,storeId:e,events:p}):(_s(n.state.value[e],k),L={type:Ir.patchObject,payload:k,storeId:e,events:p});const V=x=Symbol();na().then(()=>{x===V&&(c=!0)}),u=!0,ir(h,L,n.state.value[e])}const y=a?function(){const{state:L}=r,V=L?L():{};this.$patch(N=>{Pt(N,V)})}:ol;function b(){o.stop(),h.clear(),f.clear(),n._s.delete(e)}const S=(k,L="")=>{if(no in k)return k[ls]=L,k;const V=function(){Zn(n);const N=Array.from(arguments),X=new Set,se=new Set;function oe(A){X.add(A)}function R(A){se.add(A)}ir(f,{args:N,name:V[ls],store:C,after:oe,onError:R});let G;try{G=k.apply(this&&this.$id===e?this:C,N)}catch(A){throw ir(se,A),A}return G instanceof Promise?G.then(A=>(ir(X,A),A)).catch(A=>(ir(se,A),Promise.reject(A))):(ir(X,G),G)};return V[no]=!0,V[ls]=L,V},F={_p:n,$id:e,$onAction:ro.bind(null,f),$patch:g,$reset:y,$subscribe(k,L={}){const V=ro(h,k,L.detached,()=>N()),N=o.run(()=>dr(()=>n.state.value[e],X=>{(L.flush==="sync"?u:c)&&k({storeId:e,type:Ir.direct,events:p},X)},Pt({},l,L)));return V},$dispose:b},C=Bn(F);n._s.set(e,C);const D=(n._a&&n._a.runWithContext||Mc)(()=>n._e.run(()=>(o=si()).run(()=>t({action:S}))));for(const k in D){const L=D[k];if(Ee(L)&&!Dc(L)||kt(L))a||(m&&Pc(L)&&(Ee(L)?L.value=m[k]:_s(L,m[k])),n.state.value[e][k]=L);else if(typeof L=="function"){const V=S(L,k);D[k]=V,i.actions[k]=L}}return Pt(C,D),Pt(he(C),D),Object.defineProperty(C,"$state",{get:()=>n.state.value[e],set:k=>{g(L=>{Pt(L,k)})}}),n._p.forEach(k=>{Pt(C,o.run(()=>k({store:C,app:n._a,pinia:n,options:i})))}),m&&a&&r.hydrate&&r.hydrate(C.$state,m),c=!0,u=!0,C}function ll(e,t,r){let n;const s=typeof t=="function";n=s?r:t;function a(o,i){const l=eu();return o=o||(l?Lr(al,null):null),o&&Zn(o),o=sl,o._s.has(e)||(s?il(e,t,n,o):Bc(e,n,o)),o._s.get(e)}return a.$id=e,a}const Nc="modulepreload",Gc=function(e){return"/"+e},so={},Cn=function(t,r,n){let s=Promise.resolve();if(r&&r.length>0){let l=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=o?.nonce||o?.getAttribute("nonce");s=l(r.map(c=>{if(c=Gc(c),c in so)return;so[c]=!0;const u=c.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":Nc,u||(f.as="script"),f.crossOrigin="",f.href=c,i&&f.setAttribute("nonce",i),document.head.appendChild(f),u)return new Promise((p,m)=>{f.addEventListener("load",p),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(o){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o}return s.then(o=>{for(const i of o||[])i.status==="rejected"&&a(i.reason);return t().catch(a)})},Hc="/assets/webicon-K25S575h.svg",Vc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='360'%20height='33'%20fill='none'%20viewBox='0%200%20360%2033'%3e%3cg%20clip-path='url(%23a)'%3e%3cpath%20fill='%238552A1'%20d='M7.305%2015.333h7.898l-.856%201.51h8.49l.593-2.883H5.594L7.832%202.7%205.857.87h50.874L54.1%2013.96H36.724l-.592%202.883h17.572l-.856%204.12H35.276l-.395%201.968h17.507l-.79%203.936H34.09l-.263%201.373h20.468l-.79%203.89H0l.79-3.89h19.744l.263-1.373H4.87l.79-3.936h15.927l.395-1.968h-9.938l-.724%201.373H3.16l4.145-7.003ZM20.007%205.63H43.24l.33-1.373H20.336l-.329%201.373Zm22.311%204.668.263-1.327H19.35l-.263%201.327h23.232Zm51.795%2010.894.527-2.793h-9.872l.79-3.982h31.327l-.79%203.982h-10.004l-.526%202.793h8.753l-.855%204.165h-8.754l-.724%203.432h10.465l-.856%204.028H81.477l.856-4.028h10.2l.725-3.433H84.57l.856-4.165h8.687ZM85.36%204.622l-4.804.321-.856%204.303h5.66l-.855%204.21H78.12l-3.95%2019.498h-8.687l3.95-19.498H62.72l.856-4.21h5.989l.79-3.662-5.66.366.855-4.21L86.216.411l-.856%204.21ZM89.572.87h29.09l-2.369%2011.762h-29.09L89.573.87ZM59.101%2031.307l4.212-16.111h5.594l-4.212%2016.11H59.1Zm16.65%200%202.37-16.111h5.594l-2.37%2016.11h-5.594ZM107.21%208.65l.724-3.8h-9.345l-.724%203.8h9.345Zm35.276%2011.031.395-1.785%2014.545-3.112h-28.958l.921-4.44h43.766l-1.053%205.31-17.111%204.027h21.258l-.856%204.44h-21.324l-1.118%205.72c-.176.886-.757%201.626-1.744%202.22-.988.596-2.117.893-3.39.893h-12.965l5.857-4.302.922-4.531h-21.258l.856-4.44h21.257ZM163.81%206.957h-25.009l-.461%202.472h-13.755l1.382-6.82h19.942l.197-.915L144.066%200h15.927l-.593%202.61h19.086l-1.382%206.82h-13.755l.461-2.472Zm48.044%202.197-4.41%2013.044h2.962l2.896-14.371h-11.847l.856-4.348h11.846l.395-1.74L212.446%200h14.413l-.724%203.479h11.847l-.856%204.348H225.28l-2.962%2014.371h3.028l.855-13.044h8.161l-1.58%2023.022h-8.095l.329-5.63h-3.553l-1.317%206.408h-11.912l1.25-6.407h-3.488l-1.908%205.63h-8.161l7.766-23.023h8.161Zm-12.176-4.806-.197.961-5.594%2027.645h-11.913l5.266-25.951-3.818.503%201.053-5.217L200.534.092l-.856%204.256Zm79.503%2019.361%201.514%201.053%205.396-3.021H268.98l3.554-6.088h-4.081l.856-4.302h5.726l1.974-3.387h-4.607l.856-4.21h6.186l1.514-2.61L279.313%200h12.504l-2.04%203.753h9.872l-.856%204.211h-11.32l-1.776%203.387h14.018l-.856%204.302h-15.532l-1.119%202.106h14.216l-1.185%205.446-9.148%205.264%206.516%204.44h-11.846l-12.702-9.2h11.122Zm-33.565-9.566%203.751-6.545h-3.356l.856-4.257h4.936l1.118-1.922-1.316-1.373h9.346l-1.909%203.295h11.846l-.855%204.257h-13.426l-3.883%206.82h2.962l1.118-5.31h8.161l-1.053%205.31h3.686l-.79%204.073h-3.751l-.724%203.524%204.936-.457-.922%204.577-4.936.457-1.25%206.27h-9.872l1.053-5.309-9.938.916.921-4.577%209.938-.915.922-4.486h-8.424l.855-4.348Zm78.252%205.127%202.041-9.933h16.914l3.422-3.25h-6.581l-2.304%201.831h-11.122l8.687-6.82-1.25-1.052h13.623l-2.633%202.06h13.69l-.79%204.119-3.357%203.112h5.66l-2.04%209.932H360l-.856%204.12h-12.702L356.907%2033h-10.596l-6.845-6.957-9.016%206.774h-11.715l13.097-9.429h-10.991l.856-4.119h2.171ZM311.956%205.446l.856-4.165L311.232%200h12.505l-1.119%205.447h2.567l-.856%204.348h-2.632l-.856%204.394%202.698-.55-.987%204.76-2.698.55-2.172%2010.847c-.176.855-.735%201.572-1.678%202.151-.944.58-2.052.87-3.324.87h-10.53l5.133-4.12%201.514-7.46-4.278.87.987-4.806%204.212-.87%201.383-6.636h-4.147l.856-4.348h4.146Zm34.75%207.231-1.317%206.5h4.081l1.316-6.5h-4.08Zm-13.097.138-1.316%206.453h4.014l1.316-6.453h-4.014Z'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='a'%3e%3cpath%20fill='%23fff'%20d='M0%200h360v33H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",zc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='15'%20height='13'%20fill='none'%20viewBox='0%200%2015%2013'%3e%3cpath%20fill='%235C5C66'%20d='M9.668%2012.667a.333.333%200%200%201-.31-.213L7.885%208.667H2.119L.646%2012.454a.333.333%200%201%201-.622-.242l4.667-12a.333.333%200%200%201%20.621%200l4.667%2012a.333.333%200%200%201-.31.455ZM2.378%208h5.248L5.002%201.253%202.378%208Zm11.957-6h-4a.333.333%200%201%201%200-.667h4a.333.333%200%200%201%200%20.667Z'/%3e%3c/svg%3e",Wc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='22'%20height='20'%20fill='none'%20viewBox='0%200%2022%2020'%3e%3cpath%20fill='%235C5C66'%20d='M14.503%2020a.5.5%200%200%201-.466-.319L11.826%2014h-8.65L.97%2019.681a.501.501%200%200%201-.928.024.5.5%200%200%201-.004-.386l7-18a.5.5%200%200%201%20.932%200l7%2018a.5.5%200%200%201-.466.681ZM3.567%2013h7.871L7.503%202.88%203.567%2013Zm14.936-6a.5.5%200%200%201-.5-.5V4h-2.5a.5.5%200%200%201%200-1h2.5V.5a.5.5%200%200%201%201%200V3h2.5a.5.5%200%201%201%200%201h-2.5v2.5a.5.5%200%200%201-.5.5Z'/%3e%3c/svg%3e",Zc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='36'%20height='36'%20fill='none'%20viewBox='0%200%2036%2036'%3e%3cpath%20fill='%23FCFCFC'%20d='M22.774%2013.238a6.734%206.734%200%201%201-4.77-1.98%206.702%206.702%200%200%201%204.77%201.98Z'/%3e%3cpath%20fill='%2300E8CF'%20d='M18.005%206.76v4.498a6.703%206.703%200%200%200-4.769%201.98L10.05%2010.05a11.238%2011.238%200%200%201%207.955-3.292Z'/%3e%3cpath%20fill='%2370FFEF'%20d='M18.005.761V6.76a11.239%2011.239%200%200%200-7.955%203.292L5.813%205.815A17.162%2017.162%200%200%201%2018.005.76Z'/%3e%3cpath%20fill='%230064B5'%20d='m10.05%2010.051%203.186%203.187a6.702%206.702%200%200%200-1.98%204.768H6.759a11.239%2011.239%200%200%201%203.292-7.955Z'/%3e%3cpath%20fill='%230091FF'%20d='M10.05%2010.051a11.238%2011.238%200%200%200-3.292%207.955H.76A17.162%2017.162%200%200%201%205.813%205.815l4.237%204.236Z'/%3e%3cpath%20fill='%2331C4FF'%20d='M11.257%2018.006a6.7%206.7%200%200%200%201.98%204.769l-3.187%203.187a11.24%2011.24%200%200%201-3.292-7.956h4.499Z'/%3e%3cpath%20fill='%239EEBFF'%20d='M6.758%2018.006a11.24%2011.24%200%200%200%203.292%207.956l-4.237%204.236A17.162%2017.162%200%200%201%20.76%2018.006h5.998Z'/%3e%3cpath%20fill='%235F4A9E'%20d='M18.005%2024.754v4.5a11.239%2011.239%200%200%201-7.955-3.292l3.186-3.187a6.702%206.702%200%200%200%204.769%201.98Z'/%3e%3cpath%20fill='%239D87E0'%20d='M10.05%2025.962a11.24%2011.24%200%200%200%207.955%203.291v5.998a17.16%2017.16%200%200%201-12.192-5.053l4.237-4.236Z'/%3e%3cpath%20fill='%23FF468C'%20d='M25.96%2025.962a11.241%2011.241%200%200%201-7.955%203.291v-4.499a6.7%206.7%200%200%200%204.769-1.98l3.186%203.188Z'/%3e%3cpath%20fill='%23FFA1C8'%20d='m25.96%2025.962%204.236%204.236a17.162%2017.162%200%200%201-12.191%205.053v-5.998a11.239%2011.239%200%200%200%207.955-3.291Z'/%3e%3cpath%20fill='%23F03049'%20d='M24.753%2018.006h4.499a11.241%2011.241%200%200%201-3.292%207.956l-3.186-3.187a6.7%206.7%200%200%200%201.979-4.769Z'/%3e%3cpath%20fill='%23FF636E'%20d='M29.252%2018.006h5.998a17.163%2017.163%200%200%201-5.053%2012.192l-4.237-4.236a11.241%2011.241%200%200%200%203.292-7.956Z'/%3e%3cpath%20fill='%23FE8205'%20d='M25.96%2010.051a11.24%2011.24%200%200%201%203.292%207.955h-4.499a6.701%206.701%200%200%200-1.98-4.768l3.187-3.187Z'/%3e%3cpath%20fill='%23FFA426'%20d='M35.25%2018.006h-5.998a11.24%2011.24%200%200%200-3.292-7.955l4.236-4.236a17.163%2017.163%200%200%201%205.054%2012.191Z'/%3e%3cpath%20fill='%23FFC247'%20d='m25.96%2010.051-3.186%203.187a6.702%206.702%200%200%200-4.77-1.98V6.76a11.24%2011.24%200%200%201%207.956%203.292Z'/%3e%3cpath%20fill='%23FFFD78'%20d='M30.197%205.815%2025.96%2010.05a11.24%2011.24%200%200%200-7.955-3.292V.761a17.162%2017.162%200%200%201%2012.192%205.054Z'/%3e%3cpath%20fill='%23000'%20d='m32.863%2010.832%201.35-.653a19.376%2019.376%200%200%200-.854-1.56L32.08%209.4c.286.467.546.948.783%201.432Z'/%3e%3cpath%20fill='%23000'%20d='m34.88%2011.743-1.406.525c.589%201.601.924%203.284.993%204.988H29.97a11.883%2011.883%200%200%200-2.967-7.186l3.186-3.185c.317.347.62.707.905%201.08l1.19-.914a17.995%2017.995%200%200%200-29.629%2020.35l1.277-.786a16.459%2016.459%200%200%201-2.405-7.859H6.03a11.882%2011.882%200%200%200%202.985%207.18l-3.188%203.187a16.61%2016.61%200%200%201-.91-1.075l-1.19.914A18%2018%200%200%200%2034.88%2011.744ZM5.822%206.883l3.185%203.187a11.883%2011.883%200%200%200-2.965%207.186H1.543a16.345%2016.345%200%200%201%204.28-10.372Zm16.424%2015.365a5.998%205.998%200%201%201%201.757-4.242%205.96%205.96%200%200%201-1.757%204.242ZM12.2%2013.26a7.424%207.424%200%200%200-1.652%203.995H7.545a10.39%2010.39%200%200%201%202.533-6.116l2.121%202.12Zm10.55-1.06a7.423%207.423%200%200%200-3.995-1.651V7.546a10.39%2010.39%200%200%201%206.117%202.533L22.75%2012.2Zm-5.495-1.655a7.422%207.422%200%200%200-3.993%201.658l-2.124-2.123a10.39%2010.39%200%200%201%206.117-2.534v3Zm-6.711%208.211A7.423%207.423%200%200%200%2012.2%2022.75l-2.123%202.124a10.39%2010.39%200%200%201-2.533-6.117h2.999Zm2.715%205.057a7.423%207.423%200%200%200%203.996%201.65v3.004a10.39%2010.39%200%200%201-6.117-2.534l2.121-2.12Zm5.496%201.654a7.423%207.423%200%200%200%203.993-1.657l2.123%202.123a10.39%2010.39%200%200%201-6.116%202.534v-3Zm7.177-.594-2.121-2.121a7.423%207.423%200%200%200%201.651-3.996h3.003a10.39%2010.39%200%200%201-2.533%206.117Zm2.533-7.617h-2.999a7.423%207.423%200%200%200-1.658-3.993l2.124-2.123a10.39%2010.39%200%200%201%202.533%206.116Zm-9.71-15.729a16.358%2016.358%200%200%201%2010.36%204.31l-3.181%203.18a11.89%2011.89%200%200%200-7.18-2.985V1.527Zm-1.5.018v4.5a11.89%2011.89%200%200%200-7.187%202.964L6.882%205.824a16.345%2016.345%200%200%201%2010.373-4.279Zm-7.187%2025.459a11.89%2011.89%200%200%200%207.187%202.965v4.499a16.354%2016.354%200%200%201-10.373-4.28l3.186-3.184Zm8.687%207.481V29.98a11.898%2011.898%200%200%200%207.186-2.976l3.186%203.186a16.37%2016.37%200%200%201-10.372%204.295Zm11.42-5.37-3.18-3.18a11.882%2011.882%200%200%200%202.983-7.179h4.506a16.352%2016.352%200%200%201-4.31%2010.36Z'/%3e%3c/svg%3e",$c="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='18'%20height='42'%20fill='none'%20viewBox='0%200%2018%2042'%3e%3cpath%20fill='%2300E8CF'%20d='M12.723%205.08H3.775v.442c0%20.513.14.917.42%201.212.263.28.652.42%201.164.42h7.2c.56%200%20.987-.125%201.282-.373.264-.233.42-.59.466-1.072l.07-.955a.771.771%200%200%201%20.268-.56.882.882%200%200%201%20.594-.21.794.794%200%200%201%20.571.28.81.81%200%200%201%20.198.606l-.07.955c-.078.948-.42%201.678-1.025%202.19-.606.529-1.39.793-2.354.793h-7.2c-.947%200-1.732-.303-2.353-.909-.606-.606-.909-1.398-.909-2.377V.816c0-.218.082-.408.245-.571A.809.809%200%200%201%202.936%200h9.787c.217%200%20.411.082.582.245a.764.764%200%200%201%20.256.57v3.45a.754.754%200%200%201-.256.582.842.842%200%200%201-.582.233ZM.839%2011.068h10.043v-.979a.78.78%200%200%201%20.244-.57.809.809%200%200%201%20.595-.245c.217%200%20.407.082.57.245a.782.782%200%200%201%20.245.57v.98h3.659c.217%200%20.407.08.57.244a.782.782%200%200%201%20.245.57.808.808%200%200%201-.245.595.782.782%200%200%201-.57.245h-3.659v7.572a.809.809%200%200%201-.245.595.782.782%200%200%201-.57.244.81.81%200%200%201-.595-.244.809.809%200%200%201-.244-.595v-7.572H.839a.809.809%200%200%201-.594-.245.809.809%200%200%201-.245-.594c0-.218.082-.408.245-.571a.809.809%200%200%201%20.594-.245Zm11.045-9.414h-8.11V3.45h8.11V1.654ZM6.198%2014.866v2.866a.809.809%200%200%201-.245.595.782.782%200%200%201-.57.244.809.809%200%200%201-.595-.244.809.809%200%200%201-.244-.595v-2.866a.81.81%200%200%201%20.244-.594.809.809%200%200%201%20.595-.245c.217%200%20.407.082.57.245a.81.81%200%200%201%20.245.594ZM1.266%2041.161v-7.456c0-.233.081-.431.244-.594a.809.809%200%200%201%20.595-.245c.233%200%20.427.081.582.245a.83.83%200%200%201%20.233.594v6.64h4.66v-9.6H2.99a.83.83%200%200%201-.594-.233.771.771%200%200%201-.245-.582v-6.268c0-.218.082-.408.245-.571a.809.809%200%200%201%20.594-.245c.218%200%20.408.082.571.245a.782.782%200%200%201%20.245.57v5.453H7.58v-7.2a.81.81%200%200%201%20.245-.594.809.809%200%200%201%20.594-.245c.218%200%20.408.082.571.245a.809.809%200%200%201%20.245.594v7.2h3.775v-5.569a.78.78%200%200%201%20.244-.57.809.809%200%200%201%20.595-.245.78.78%200%200%201%20.57.244.782.782%200%200%201%20.245.571v6.385a.771.771%200%200%201-.245.582.801.801%200%200%201-.57.233H9.235v9.6h4.66v-6.757a.81.81%200%200%201%20.245-.594.782.782%200%200%201%20.57-.245.81.81%200%200%201%20.595.245.81.81%200%200%201%20.245.594v7.573a.809.809%200%200%201-.245.594.81.81%200%200%201-.594.245H2.105a.809.809%200%200%201-.595-.245.809.809%200%200%201-.244-.594Z'/%3e%3c/svg%3e",jc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='48'%20height='48'%20fill='none'%20viewBox='0%200%2048%2048'%3e%3ccircle%20cx='24'%20cy='24'%20r='24'%20fill='%238552A1'%20opacity='.2'/%3e%3ccircle%20cx='24'%20cy='24'%20r='18'%20fill='%238552A1'/%3e%3cpath%20fill='%23F3EDF7'%20d='M12.062%2018.99H17.4v1.942h-4.425c-.51%200-.834.025-.97.074-.287.1-.43.343-.43.728%200%20.324.137.573.41.747.15.1.555.15%201.214.15h1.475c.946%200%201.692.199%202.24.597.61.448.915%201.107.915%201.979%200%20.66-.187%201.263-.56%201.81-.274.436-.607.722-.999.86-.392.136-1.048.204-1.97.204H9.13V26.14h4.461c.548%200%20.921-.006%201.12-.019.448-.05.672-.305.672-.765%200-.373-.149-.629-.448-.765-.149-.075-.51-.112-1.082-.112h-1.512c-.598%200-1.055-.038-1.373-.112a2.451%202.451%200%200%201-.886-.411%202.399%202.399%200%200%201-.794-.98A3.14%203.14%200%200%201%209%2021.64c0-.908.33-1.63.99-2.165.398-.324%201.088-.486%202.072-.486Zm9.325%200%202.314%206.254%202.54-6.254h2.65l-3.92%209.091h-2.688l-3.622-9.09h2.726Zm12.946%200H39v9.036c0%20.51-.06.964-.177%201.362-.118.398-.29.734-.514%201.008a2.196%202.196%200%200%201-1.036.719c-.404.13-.992.196-1.764.196h-4.984V29.37h4.648c.548%200%20.905-.084%201.073-.252.168-.168.252-.514.252-1.037h-2.296c-.734%200-1.34-.077-1.82-.233a3.438%203.438%200%200%201-1.297-.774c-.909-.86-1.363-2.042-1.363-3.547%200-1.718.554-2.969%201.662-3.753a3.86%203.86%200%200%201%201.26-.606c.442-.119%201.005-.178%201.69-.178Zm2.166%207.15v-5.208h-2.073c-1.443%200-2.165.871-2.165%202.613%200%20.847.196%201.49.588%201.932.392.442.961.663%201.708.663h1.941Z'/%3e%3c/svg%3e",qc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='48'%20height='48'%20fill='none'%20viewBox='0%200%2048%2048'%3e%3ccircle%20cx='24'%20cy='24'%20r='24'%20fill='%232420A8'%20opacity='.2'/%3e%3ccircle%20cx='24'%20cy='24'%20r='18'%20fill='%232420A8'/%3e%3cpath%20fill='%23F3EDF7'%20d='M9%2031.301v-12.3h4.296c.833%200%201.463.051%201.891.155.429.104.839.31%201.23.615%201.065.832%201.598%202.112%201.598%203.837%200%201.31-.392%202.369-1.175%203.177a3.537%203.537%200%200%201-1.35.88c-.508.184-1.129.276-1.863.276H11.46v3.36H9Zm4.131-10.391h-1.67v5.122h1.505c.795%200%201.377-.172%201.744-.514.514-.453.771-1.15.771-2.093%200-.808-.202-1.43-.606-1.864-.404-.434-.985-.651-1.744-.651Zm6.683%207.031v-8.94h4.737c.71%200%201.251.051%201.625.155.373.104.713.29%201.019.56.624.575.936%201.481.936%202.717v5.508h-2.46v-5.783c0-.44-.098-.759-.294-.955-.196-.196-.52-.293-.973-.293h-2.13v7.031h-2.46ZM34.41%2019H39v8.886c0%20.502-.058.949-.174%201.34a2.807%202.807%200%200%201-.505.992%202.161%202.161%200%200%201-1.02.707c-.397.128-.975.193-1.734.193h-4.902v-1.91h4.571c.539%200%20.89-.082%201.056-.248.165-.165.248-.505.248-1.019h-2.258c-.723%200-1.32-.076-1.79-.23a3.381%203.381%200%200%201-1.277-.761c-.893-.845-1.34-2.008-1.34-3.488%200-1.69.545-2.92%201.634-3.69a3.806%203.806%200%200%201%201.24-.598c.434-.116.988-.174%201.661-.174Zm2.13%207.032V20.91h-2.038c-1.42%200-2.13.856-2.13%202.57%200%20.832.193%201.466.578%201.9.386.435.946.652%201.68.652h1.91Z'/%3e%3c/svg%3e";String.prototype.codePointAt||(function(){var e=(function(){try{var r={},n=Object.defineProperty,s=n(r,r,r)&&n}catch{}return s})(),t=function(r){if(this==null)throw TypeError();var n=String(this),s=n.length,a=r?Number(r):0;if(a!=a&&(a=0),!(a<0||a>=s)){var o=n.charCodeAt(a),i;return o>=55296&&o<=56319&&s>a+1&&(i=n.charCodeAt(a+1),i>=56320&&i<=57343)?(o-55296)*1024+i-56320+65536:o}};e?e(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t})();var ua=0,ul=-3;function zr(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function Xc(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new zr,this.dtree=new zr}var cl=new zr,fl=new zr,ca=new Uint8Array(30),fa=new Uint16Array(30),hl=new Uint8Array(30),pl=new Uint16Array(30),Yc=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ao=new zr,ft=new Uint8Array(320);function dl(e,t,r,n){var s,a;for(s=0;s>>=1,t}function pt(e,t,r){if(!t)return r;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,n+r}function Rs(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>=1,++s,r+=t.table[s],n-=t.table[s];while(n>=0);return e.tag=a,e.bitcount-=s,t.trans[r+n]}function Qc(e,t,r){var n,s,a,o,i,l;for(n=pt(e,5,257),s=pt(e,5,1),a=pt(e,4,4),o=0;o<19;++o)ft[o]=0;for(o=0;o8;)e.sourceIndex--,e.bitcount-=8;if(t=e.source[e.sourceIndex+1],t=256*t+e.source[e.sourceIndex],r=e.source[e.sourceIndex+3],r=256*r+e.source[e.sourceIndex+2],t!==(~r&65535))return ul;for(e.sourceIndex+=4,n=t;n;--n)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,ua}function tf(e,t){var r=new Xc(e,t),n,s,a;do{switch(n=Jc(r),s=pt(r,2,0),s){case 0:a=ef(r);break;case 1:a=io(r,cl,fl);break;case 2:Qc(r,r.ltree,r.dtree),a=io(r,r.ltree,r.dtree);break;default:a=ul}if(a!==ua)throw new Error("Data error")}while(!n);return r.destLenthis.x2&&(this.x2=e)),typeof t=="number"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))};jt.prototype.addX=function(e){this.addPoint(e,null)};jt.prototype.addY=function(e){this.addPoint(null,e)};jt.prototype.addBezier=function(e,t,r,n,s,a,o,i){var l=[e,t],c=[r,n],u=[s,a],h=[o,i];this.addPoint(e,t),this.addPoint(o,i);for(var f=0;f<=1;f++){var p=6*l[f]-12*c[f]+6*u[f],m=-3*l[f]+9*c[f]-9*u[f]+3*h[f],x=3*c[f]-3*l[f];if(m===0){if(p===0)continue;var g=-x/p;0=0&&l>0&&(i+=" "),i+=t(c)}return i}for(var n="",s=0;s=0&&e<=255,"Byte value should be between 0 and 255."),[e]};te.BYTE=at(1);B.CHAR=function(e){return[e.charCodeAt(0)]};te.CHAR=at(1);B.CHARARRAY=function(e){typeof e>"u"&&(e="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],r=0;r"u"?0:e.length};B.USHORT=function(e){return[e>>8&255,e&255]};te.USHORT=at(2);B.SHORT=function(e){return e>=uo&&(e=-(2*uo-e)),[e>>8&255,e&255]};te.SHORT=at(2);B.UINT24=function(e){return[e>>16&255,e>>8&255,e&255]};te.UINT24=at(3);B.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]};te.ULONG=at(4);B.LONG=function(e){return e>=co&&(e=-(2*co-e)),[e>>24&255,e>>16&255,e>>8&255,e&255]};te.LONG=at(4);B.FIXED=B.ULONG;te.FIXED=te.ULONG;B.FWORD=B.SHORT;te.FWORD=te.SHORT;B.UFWORD=B.USHORT;te.UFWORD=te.USHORT;B.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,e&255]};te.LONGDATETIME=at(8);B.TAG=function(e){return Q.argument(e.length===4,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]};te.TAG=at(4);B.Card8=B.BYTE;te.Card8=te.BYTE;B.Card16=B.USHORT;te.Card16=te.USHORT;B.OffSize=B.BYTE;te.OffSize=te.BYTE;B.SID=B.USHORT;te.SID=te.USHORT;B.NUMBER=function(e){return e>=-107&&e<=107?[e+139]:e>=108&&e<=1131?(e=e-108,[(e>>8)+247,e&255]):e>=-1131&&e<=-108?(e=-e-108,[(e>>8)+251,e&255]):e>=-32768&&e<=32767?B.NUMBER16(e):B.NUMBER32(e)};te.NUMBER=function(e){return B.NUMBER(e).length};B.NUMBER16=function(e){return[28,e>>8&255,e&255]};te.NUMBER16=at(3);B.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,e&255]};te.NUMBER32=at(5);B.REAL=function(e){var t=e.toString(),r=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(r){var n=parseFloat("1e"+((r[2]?+r[2]:0)+r[1].length));t=(Math.round(e*n)/n).toString()}for(var s="",a=0,o=t.length;a>8&255,t[t.length]=n&255}return t};te.UTF16=function(e){return e.length*2};var As={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-cyrillic":"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ­","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",macintosh:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"};xr.MACSTRING=function(e,t,r,n){var s=As[n];if(s!==void 0){for(var a="",o=0;o=128&&(a=r[a],a===void 0))return;n[s]=a}return n}};te.MACSTRING=function(e,t){var r=B.MACSTRING(e,t);return r!==void 0?r.length:0};function Ms(e){return e>=-128&&e<=127}function sf(e,t,r){for(var n=0,s=e.length;t>8&255,l+256&255)}return a}B.VARDELTAS=function(e){for(var t=0,r=[];t=-128&&n<=127?t=af(e,t,r):t=of(e,t,r)}return r};B.INDEX=function(e){for(var t=1,r=[t],n=[],s=0;s>8,t[h+1]=f&255,t=t.concat(n[u])}return t};te.TABLE=function(e){for(var t=0,r=e.fields.length,n=0;n0)return new w(this.data,this.offset+t).parseStruct(e)};w.prototype.parsePointer32=function(e){var t=this.parseOffset32();if(t>0)return new w(this.data,this.offset+t).parseStruct(e)};w.prototype.parseListOfLists=function(e){for(var t=this.parseOffset16List(),r=t.length,n=this.relativeOffset,s=new Array(r),a=0;a>1,t.skip("uShort",3),e.glyphIndexMap={};for(var o=new j.Parser(r,n+s+14),i=new j.Parser(r,n+s+16+a*2),l=new j.Parser(r,n+s+16+a*4),c=new j.Parser(r,n+s+16+a*6),u=n+s+16+a*8,h=0;h=0;s-=1){var a=j.getUShort(e,t+4+s*8),o=j.getUShort(e,t+4+s*8+2);if(a===3&&(o===0||o===1||o===10)||a===0&&(o===0||o===1||o===2||o===3||o===4)){n=j.getULong(e,t+4+s*8+4);break}}if(n===-1)throw new Error("No valid cmap sub-tables found.");var i=new j.Parser(e,t+n);if(r.format=i.parseUShort(),r.format===12)df(r,i);else if(r.format===4)vf(r,i,e,t,n);else throw new Error("Only format 4 and 12 cmap tables are supported (found format "+r.format+").");return r}function mf(e,t,r){e.segments.push({end:t,start:t,delta:-(t-r),offset:0,glyphIndex:r})}function xf(e){e.segments.push({end:65535,start:65535,delta:1,offset:0})}function yf(e){var t=!0,r;for(r=e.length-1;r>0;r-=1){var n=e.get(r);if(n.unicode>65535){console.log("Adding CMAP format 12 (needed!)"),t=!1;break}}var s=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:t?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:t?12:20}];t||(s=s.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),s=s.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var a=new Z.Table("cmap",s);for(a.segments=[],r=0;r>4,o=s&15;if(a===r||(t+=n[a],o===r))break;t+=n[o]}return parseFloat(t)}function Af(e,t){var r,n,s,a;if(t===28)return r=e.parseByte(),n=e.parseByte(),r<<8|n;if(t===29)return r=e.parseByte(),n=e.parseByte(),s=e.parseByte(),a=e.parseByte(),r<<24|n<<16|s<<8|a;if(t===30)return Rf(e);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return r=e.parseByte(),(t-247)*256+r+108;if(t>=251&&t<=254)return r=e.parseByte(),-(t-251)*256-r-108;throw new Error("Invalid b0 "+t)}function Mf(e){for(var t={},r=0;r>1,l.length=0,u=!0}function D(k){for(var L,V,N,X,se,oe,R,G,A,z,ee,fe,ue=0;ue1&&!u&&(F=l.shift()+y,u=!0),p+=l.pop(),C(f,p);break;case 5:for(;l.length>0;)f+=l.shift(),p+=l.shift(),i.lineTo(f,p);break;case 6:for(;l.length>0&&(f+=l.shift(),i.lineTo(f,p),l.length!==0);)p+=l.shift(),i.lineTo(f,p);break;case 7:for(;l.length>0&&(p+=l.shift(),i.lineTo(f,p),l.length!==0);)f+=l.shift(),i.lineTo(f,p);break;case 8:for(;l.length>0;)n=f+l.shift(),s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),f=a+l.shift(),p=o+l.shift(),i.curveTo(n,s,a,o,f,p);break;case 10:se=l.pop()+x,oe=m[se],oe&&D(oe);break;case 11:return;case 12:switch(de=k[ue],ue+=1,de){case 35:n=f+l.shift(),s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),R=a+l.shift(),G=o+l.shift(),A=R+l.shift(),z=G+l.shift(),ee=A+l.shift(),fe=z+l.shift(),f=ee+l.shift(),p=fe+l.shift(),l.shift(),i.curveTo(n,s,a,o,R,G),i.curveTo(A,z,ee,fe,f,p);break;case 34:n=f+l.shift(),s=p,a=n+l.shift(),o=s+l.shift(),R=a+l.shift(),G=o,A=R+l.shift(),z=o,ee=A+l.shift(),fe=p,f=ee+l.shift(),i.curveTo(n,s,a,o,R,G),i.curveTo(A,z,ee,fe,f,p);break;case 36:n=f+l.shift(),s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),R=a+l.shift(),G=o,A=R+l.shift(),z=o,ee=A+l.shift(),fe=z+l.shift(),f=ee+l.shift(),i.curveTo(n,s,a,o,R,G),i.curveTo(A,z,ee,fe,f,p);break;case 37:n=f+l.shift(),s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),R=a+l.shift(),G=o+l.shift(),A=R+l.shift(),z=G+l.shift(),ee=A+l.shift(),fe=z+l.shift(),Math.abs(ee-f)>Math.abs(fe-p)?f=ee+l.shift():p=fe+l.shift(),i.curveTo(n,s,a,o,R,G),i.curveTo(A,z,ee,fe,f,p);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+de),l.length=0}break;case 14:l.length>0&&!u&&(F=l.shift()+y,u=!0),h&&(i.closePath(),h=!1);break;case 18:q();break;case 19:case 20:q(),ue+=c+7>>3;break;case 21:l.length>2&&!u&&(F=l.shift()+y,u=!0),p+=l.pop(),f+=l.pop(),C(f,p);break;case 22:l.length>1&&!u&&(F=l.shift()+y,u=!0),f+=l.pop(),C(f,p);break;case 23:q();break;case 24:for(;l.length>2;)n=f+l.shift(),s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),f=a+l.shift(),p=o+l.shift(),i.curveTo(n,s,a,o,f,p);f+=l.shift(),p+=l.shift(),i.lineTo(f,p);break;case 25:for(;l.length>6;)f+=l.shift(),p+=l.shift(),i.lineTo(f,p);n=f+l.shift(),s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),f=a+l.shift(),p=o+l.shift(),i.curveTo(n,s,a,o,f,p);break;case 26:for(l.length%2&&(f+=l.shift());l.length>0;)n=f,s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),f=a,p=o+l.shift(),i.curveTo(n,s,a,o,f,p);break;case 27:for(l.length%2&&(p+=l.shift());l.length>0;)n=f+l.shift(),s=p,a=n+l.shift(),o=s+l.shift(),f=a+l.shift(),p=o,i.curveTo(n,s,a,o,f,p);break;case 28:L=k[ue],V=k[ue+1],l.push((L<<24|V<<16)>>16),ue+=2;break;case 29:se=l.pop()+e.gsubrsBias,oe=e.gsubrs[se],oe&&D(oe);break;case 30:for(;l.length>0&&(n=f,s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),f=a+l.shift(),p=o+(l.length===1?l.shift():0),i.curveTo(n,s,a,o,f,p),l.length!==0);)n=f+l.shift(),s=p,a=n+l.shift(),o=s+l.shift(),p=o+l.shift(),f=a+(l.length===1?l.shift():0),i.curveTo(n,s,a,o,f,p);break;case 31:for(;l.length>0&&(n=f+l.shift(),s=p,a=n+l.shift(),o=s+l.shift(),p=o+l.shift(),f=a+(l.length===1?l.shift():0),i.curveTo(n,s,a,o,f,p),l.length!==0);)n=f,s=p+l.shift(),a=n+l.shift(),o=s+l.shift(),f=a+l.shift(),p=o+(l.length===1?l.shift():0),i.curveTo(n,s,a,o,f,p);break;default:de<32?console.log("Glyph "+t.index+": unknown operator "+de):de<247?l.push(de-139):de<251?(L=k[ue],ue+=1,l.push((de-247)*256+L+108)):de<255?(L=k[ue],ue+=1,l.push(-(de-251)*256-L-108)):(L=k[ue],V=k[ue+1],N=k[ue+2],X=k[ue+3],ue+=4,l.push((L<<24|V<<16|N<<8|X)/65536))}}}return D(r),t.advanceWidth=F,i}function Nf(e,t,r,n){var s=[],a,o=new j.Parser(e,t),i=o.parseCard8();if(i===0)for(var l=0;l=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+a+" (FD count "+n+")");s.push(a)}else if(i===3){var c=o.parseCard16(),u=o.parseCard16();if(u!==0)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+u);for(var h,f=0;f=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+a+" (FD count "+n+")");if(h>r)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+h);for(;u=0&&(r=n),n=t.indexOf(e),n>=0?r=n+vn.length:(r=vn.length+t.length,t.push(e)),r}function Hf(){return new Z.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function Vf(e){var t=new Z.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var r=0;r=r.begin&&e=1&&(r.ulCodePageRange1=n.parseULong(),r.ulCodePageRange2=n.parseULong()),r.version>=2&&(r.sxHeight=n.parseShort(),r.sCapHeight=n.parseShort(),r.usDefaultChar=n.parseUShort(),r.usBreakChar=n.parseUShort(),r.usMaxContent=n.parseUShort()),r}function mh(e){return new Z.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],e)}var Ns={parse:gh,make:mh,unicodeRanges:Bs,getUnicodeRange:vh};function xh(e,t){var r={},n=new j.Parser(e,t);switch(r.version=n.parseVersion(),r.italicAngle=n.parseFixed(),r.underlinePosition=n.parseShort(),r.underlineThickness=n.parseShort(),r.isFixedPitch=n.parseULong(),r.minMemType42=n.parseULong(),r.maxMemType42=n.parseULong(),r.minMemType1=n.parseULong(),r.maxMemType1=n.parseULong(),r.version){case 1:r.names=Qt.slice();break;case 2:r.numberOfGlyphs=n.parseUShort(),r.glyphNameIndex=new Array(r.numberOfGlyphs);for(var s=0;s=Qt.length){var o=n.parseChar();r.names.push(n.parseString(o))}break;case 2.5:r.numberOfGlyphs=n.parseUShort(),r.offset=new Array(r.numberOfGlyphs);for(var i=0;ih.value.tag?1:-1}),t.fields=t.fields.concat(n),t.fields=t.fields.concat(s),t}function wo(e,t,r){for(var n=0;n0){var a=e.glyphs.get(s);return a.getMetrics()}}return r}function Fh(e){for(var t=0,r=0;rg||l===void 0)&&g>0&&(l=g),c 123 are reserved for internal usage");if(x.name!==".notdef"){var b=x.getMetrics();t.push(b.xMin),r.push(b.yMin),n.push(b.xMax),s.push(b.yMax),o.push(b.leftSideBearing),i.push(b.rightSideBearing),a.push(x.advanceWidth)}}var S={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,r),xMax:Math.max.apply(null,n),yMax:Math.max.apply(null,s),advanceWidthMax:Math.max.apply(null,a),advanceWidthAvg:Fh(a),minLeftSideBearing:Math.min.apply(null,o),maxLeftSideBearing:Math.max.apply(null,o),minRightSideBearing:Math.min.apply(null,i)};S.ascender=e.ascender,S.descender=e.descender;var F=Ul.make({flags:3,unitsPerEm:e.unitsPerEm,xMin:S.xMin,yMin:S.yMin,xMax:S.xMax,yMax:S.yMax,lowestRecPPEM:3,createdTimestamp:e.createdTimestamp}),C=Ll.make({ascender:S.ascender,descender:S.descender,advanceWidthMax:S.advanceWidthMax,minLeftSideBearing:S.minLeftSideBearing,minRightSideBearing:S.minRightSideBearing,xMaxExtent:S.maxLeftSideBearing+(S.xMax-S.xMin),numberOfHMetrics:e.glyphs.length}),q=Al.make(e.glyphs.length),D=Ns.make(Object.assign({xAvgCharWidth:Math.round(S.advanceWidthAvg),usFirstCharIndex:l,usLastCharIndex:c,ulUnicodeRange1:u,ulUnicodeRange2:h,ulUnicodeRange3:f,ulUnicodeRange4:p,sTypoAscender:S.ascender,sTypoDescender:S.descender,sTypoLineGap:0,usWinAscent:S.yMax,usWinDescent:Math.abs(S.yMin),ulCodePageRange1:1,sxHeight:wo(e,"xyvw",{yMax:Math.round(S.ascender/2)}).yMax,sCapHeight:wo(e,"HIKLEFJMNTZBDPRAGOQSUVWXY",S).yMax,usDefaultChar:e.hasChar(" ")?32:0,usBreakChar:e.hasChar(" ")?32:0},e.tables.os2)),k=_l.make(e.glyphs),L=ml.make(e.glyphs),V=e.getEnglishName("fontFamily"),N=e.getEnglishName("fontSubfamily"),X=V+" "+N,se=e.getEnglishName("postScriptName");se||(se=V.replace(/\s/g,"")+"-"+N);var oe={};for(var R in e.names)oe[R]=e.names[R];oe.uniqueID||(oe.uniqueID={en:e.getEnglishName("manufacturer")+":"+X}),oe.postScriptName||(oe.postScriptName={en:se}),oe.preferredFamily||(oe.preferredFamily=e.names.fontFamily),oe.preferredSubfamily||(oe.preferredSubfamily=e.names.fontSubfamily);var G=[],A=Bl.make(oe,G),z=G.length>0?Rl.make(G):void 0,ee=Nl.make(),fe=Ol.make(e.glyphs,{version:e.getEnglishName("version"),fullName:X,familyName:V,weightName:N,postScriptName:se,unitsPerEm:e.unitsPerEm,fontBBox:[0,S.yMin,S.ascender,S.advanceWidthMax]}),ue=e.metas&&Object.keys(e.metas).length>0?Hl.make(e.metas):void 0,de=[F,C,q,D,A,L,ee,fe,k];z&&de.push(z),e.tables.gsub&&de.push(Gl.make(e.tables.gsub)),ue&&de.push(ue);for(var Rt=Vl(de),Y=Rt.encode(),ie=va(Y),le=Rt.fields,xe=!1,Ge=0;Ge>>1,a=e[s].tag;if(a===t)return s;a>>1,a=e[s];if(a===t)return s;a>>1;r=e[a];var o=r.start;if(o===t)return r;o0)return r=e[n-1],t>r.end?0:r}function Yr(e,t){this.font=e,this.tableName=t}Yr.prototype={searchTag:fs,binSearch:To,getTable:function(e){var t=this.font.tables[this.tableName];return!t&&e&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){var e=this.getTable();return e?e.scripts.map(function(t){return t.tag}):[]},getDefaultScriptName:function(){var e=this.getTable();if(e){for(var t=!1,r=0;r=0)return n[s].script;if(t){var a={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return n.splice(-1-s,0,a),a.script}}},getLangSysTable:function(e,t,r){var n=this.getScriptTable(e,r);if(n){if(!t||t==="dflt"||t==="DFLT")return n.defaultLangSys;var s=fs(n.langSysRecords,t);if(s>=0)return n.langSysRecords[s].langSys;if(r){var a={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return n.langSysRecords.splice(-1-s,0,a),a.langSys}}},getFeatureTable:function(e,t,r,n){var s=this.getLangSysTable(e,t,n);if(s){for(var a,o=s.featureIndexes,i=this.font.tables[this.tableName].features,l=0;l=i[c-1].tag,"Features must be added in alphabetical order."),a={tag:r,feature:{params:0,lookupListIndexes:[]}},i.push(a),o.push(c),a.feature}}},getLookupTables:function(e,t,r,n,s){var a=this.getFeatureTable(e,t,r,s),o=[];if(a){for(var i,l=a.lookupListIndexes,c=this.font.tables[this.tableName].lookups,u=0;u=0?r:-1;case 2:var n=Fo(e.ranges,t);return n?n.index+t-n.start:-1}},expandCoverage:function(e){if(e.format===1)return e.glyphs;for(var t=[],r=e.ranges,n=0;n1,'Multiple: "by" must be an array of two or more ids');var s=this.getLookupTables(r,n,e,2,!0)[0],a=ga(s,1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});Q.assert(a.coverage.format===1,"Multiple: unable to modify coverage table format "+a.coverage.format);var o=t.sub,i=this.binSearch(a.coverage.glyphs,o);i<0&&(i=-1-i,a.coverage.glyphs.splice(i,0,o),a.sequences.splice(i,0,0)),a.sequences[i]=t.by};Xe.prototype.addAlternate=function(e,t,r,n){var s=this.getLookupTables(r,n,e,3,!0)[0],a=ga(s,1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});Q.assert(a.coverage.format===1,"Alternate: unable to modify coverage table format "+a.coverage.format);var o=t.sub,i=this.binSearch(a.coverage.glyphs,o);i<0&&(i=-1-i,a.coverage.glyphs.splice(i,0,o),a.alternateSets.splice(i,0,0)),a.alternateSets[i]=t.by};Xe.prototype.addLigature=function(e,t,r,n){var s=this.getLookupTables(r,n,e,4,!0)[0],a=s.subtables[0];a||(a={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},s.subtables[0]=a),Q.assert(a.coverage.format===1,"Ligature: unable to modify coverage table format "+a.coverage.format);var o=t.sub[0],i=t.sub.slice(1),l={ligGlyph:t.by,components:i},c=this.binSearch(a.coverage.glyphs,o);if(c>=0){for(var u=a.ligatureSets[c],h=0;h0?(a=e.parseByte(),(t&s)===0&&(a=-a),a=r+a):(t&s)>0?a=r:a=r+e.parseShort(),a}function zl(e,t,r){var n=new j.Parser(t,r);e.numberOfContours=n.parseShort(),e._xMin=n.parseShort(),e._yMin=n.parseShort(),e._xMax=n.parseShort(),e._yMax=n.parseShort();var s,a;if(e.numberOfContours>0){for(var o=e.endPointIndices=[],i=0;i0)for(var h=n.parseByte(),f=0;f0){var p=[],m;if(c>0){for(var x=0;x=0,p.push(m);for(var g=0,y=0;y0?(s&2)>0?(C.dx=n.parseShort(),C.dy=n.parseShort()):C.matchedPoints=[n.parseUShort(),n.parseUShort()]:(s&2)>0?(C.dx=n.parseChar(),C.dy=n.parseChar()):C.matchedPoints=[n.parseByte(),n.parseByte()],(s&8)>0?C.xScale=C.yScale=n.parseF2Dot14():(s&64)>0?(C.xScale=n.parseF2Dot14(),C.yScale=n.parseF2Dot14()):(s&128)>0&&(C.xScale=n.parseF2Dot14(),C.scale01=n.parseF2Dot14(),C.scale10=n.parseF2Dot14(),C.yScale=n.parseF2Dot14()),e.components.push(C),F=!!(s&32)}if(s&256){e.instructionLength=n.parseUShort(),e.instructions=[];for(var q=0;qt.points.length-1||n.matchedPoints[1]>s.points.length-1)throw Error("Matched points out of range in "+t.name);var o=t.points[n.matchedPoints[0]],i=s.points[n.matchedPoints[1]],l={xScale:n.xScale,scale01:n.scale01,scale10:n.scale10,yScale:n.yScale,dx:0,dy:0};i=hs([i],l)[0],l.dx=o.x-i.x,l.dy=o.y-i.y,a=hs(s.points,l)}t.points=t.points.concat(a)}}return Wl(t.points)}function _h(e,t,r,n){for(var s=new xt.GlyphSet(n),a=0;a2)){var r=this.font,n=this._prepState;if(!n||n.ppem!==t){var s=this._fpgmState;if(!s){Ht.prototype=Nh,s=this._fpgmState=new Ht("fpgm",r.tables.fpgm),s.funcs=[],s.font=r,exports.DEBUG&&(console.log("---EXEC FPGM---"),s.step=-1);try{sr(s)}catch(c){console.log("Hinting error in FPGM:"+c),this._errorState=3;return}}Ht.prototype=s,n=this._prepState=new Ht("prep",r.tables.prep),n.ppem=t;var a=r.tables.cvt;if(a)for(var o=n.cvt=new Array(a.length),i=t/r.unitsPerEm,l=0;l1))try{return ql(e,n)}catch(c){this._errorState<1&&(console.log("Hinting error:"+c),console.log("Note: further hinting errors are silenced")),this._errorState=1;return}}};ql=function(e,t){var r=t.ppem/t.font.unitsPerEm,n=r,s=e.components,a,o,i;if(Ht.prototype=t,!s)i=new Ht("glyf",e.instructions),exports.DEBUG&&(console.log("---EXEC GLYPH---"),i.step=-1),Gs(e,i,r,n),o=i.gZone;else{var l=t.font;o=[],a=[];for(var c=0;c=176&&a<=183)n+=a-176+1;else if(a>=184&&a<=191)n+=(a-184+1)*2;else if(t&&s===1&&a===27)break;while(s>0);e.ip=n}function ko(e,t){exports.DEBUG&&console.log(t.step,"SVTCA["+e.axis+"]"),t.fv=t.pv=t.dpv=e}function Eo(e,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+e.axis+"]"),t.pv=t.dpv=e}function Oo(e,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+e.axis+"]"),t.fv=e}function Uo(e,t){var r=t.stack,n=r.pop(),s=r.pop(),a=t.z2[n],o=t.z1[s];exports.DEBUG&&console.log("SPVTL["+e+"]",n,s);var i,l;e?(i=a.y-o.y,l=o.x-a.x):(i=o.x-a.x,l=o.y-a.y),t.pv=t.dpv=Qr(i,l)}function Lo(e,t){var r=t.stack,n=r.pop(),s=r.pop(),a=t.z2[n],o=t.z1[s];exports.DEBUG&&console.log("SFVTL["+e+"]",n,s);var i,l;e?(i=a.y-o.y,l=o.x-a.x):(i=o.x-a.x,l=o.y-a.y),t.fv=Qr(i,l)}function Gh(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",r,n),e.pv=e.dpv=Qr(n,r)}function Hh(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",r,n),e.fv=Qr(n,r)}function Vh(e){var t=e.stack,r=e.pv;exports.DEBUG&&console.log(e.step,"GPV[]"),t.push(r.x*16384),t.push(r.y*16384)}function zh(e){var t=e.stack,r=e.fv;exports.DEBUG&&console.log(e.step,"GFV[]"),t.push(r.x*16384),t.push(r.y*16384)}function Wh(e){e.fv=e.pv,exports.DEBUG&&console.log(e.step,"SFVTPV[]")}function Zh(e){var t=e.stack,r=t.pop(),n=t.pop(),s=t.pop(),a=t.pop(),o=t.pop(),i=e.z0,l=e.z1,c=i[r],u=i[n],h=l[s],f=l[a],p=e.z2[o];exports.DEBUG&&console.log("ISECT[], ",r,n,s,a,o);var m=c.x,x=c.y,g=u.x,y=u.y,b=h.x,S=h.y,F=f.x,C=f.y,q=(m-g)*(S-C)-(x-y)*(b-F),D=m*y-x*g,k=b*C-S*F;p.x=(D*(b-F)-k*(m-g))/q,p.y=(D*(S-C)-k*(x-y))/q}function $h(e){e.rp0=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP0[]",e.rp0)}function jh(e){e.rp1=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP1[]",e.rp1)}function qh(e){e.rp2=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP2[]",e.rp2)}function Xh(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP0[]",t),e.zp0=t,t){case 0:e.tZone||$n(e),e.z0=e.tZone;break;case 1:e.z0=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Yh(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP1[]",t),e.zp1=t,t){case 0:e.tZone||$n(e),e.z1=e.tZone;break;case 1:e.z1=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Kh(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP2[]",t),e.zp2=t,t){case 0:e.tZone||$n(e),e.z2=e.tZone;break;case 1:e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Jh(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZPS[]",t),e.zp0=e.zp1=e.zp2=t,t){case 0:e.tZone||$n(e),e.z0=e.z1=e.z2=e.tZone;break;case 1:e.z0=e.z1=e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Qh(e){e.loop=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SLOOP[]",e.loop)}function ep(e){exports.DEBUG&&console.log(e.step,"RTG[]"),e.round=Yl}function tp(e){exports.DEBUG&&console.log(e.step,"RTHG[]"),e.round=Ph}function rp(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SMD[]",t),e.minDis=t/64}function np(e){exports.DEBUG&&console.log(e.step,"ELSE[]"),Jl(e,!1)}function sp(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"JMPR[]",t),e.ip+=t-1}function ap(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCVTCI[]",t),e.cvCutIn=t/64}function op(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DUP[]"),t.push(t[t.length-1])}function ps(e){exports.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function ip(e){exports.DEBUG&&console.log(e.step,"CLEAR[]"),e.stack.length=0}function lp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SWAP[]"),t.push(r),t.push(n)}function up(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DEPTH[]"),t.push(t.length)}function cp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"LOOPCALL[]",r,n);var s=e.ip,a=e.prog;e.prog=e.funcs[r];for(var o=0;o1?"loop "+(t.loop-i)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",c)}t.loop=1}function Mo(e,t){var r=t.stack,n=e?t.rp1:t.rp2,s=(e?t.z0:t.z1)[n],a=t.fv,o=t.pv,i=r.pop(),l=t.z2[t.contours[i]],c=l;exports.DEBUG&&console.log(t.step,"SHC["+e+"]",i);var u=o.distance(s,s,!1,!0);do c!==s&&a.setRelative(c,c,u,o),c=c.nextPointOnContour;while(c!==l)}function Io(e,t){var r=t.stack,n=e?t.rp1:t.rp2,s=(e?t.z0:t.z1)[n],a=t.fv,o=t.pv,i=r.pop();exports.DEBUG&&console.log(t.step,"SHZ["+e+"]",i);var l;switch(i){case 0:l=t.tZone;break;case 1:l=t.gZone;break;default:throw new Error("Invalid zone")}for(var c,u=o.distance(s,s,!1,!0),h=l.length-2,f=0;f1?"loop "+(e.loop-r)+": ":"")+"SHPIX[]",o,s),n.setRelative(i,i,s),n.touch(i)}e.loop=1}function gp(e){for(var t=e.stack,r=e.rp1,n=e.rp2,s=e.loop,a=e.z0[r],o=e.z1[n],i=e.fv,l=e.dpv,c=e.z2;s--;){var u=t.pop(),h=c[u];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-s)+": ":"")+"IP[]",u,r,"<->",n),i.interpolate(h,a,o,l),i.touch(h)}e.loop=1}function Po(e,t){var r=t.stack,n=r.pop()/64,s=r.pop(),a=t.z1[s],o=t.z0[t.rp0],i=t.fv,l=t.pv;i.setRelative(a,o,n,l),i.touch(a),exports.DEBUG&&console.log(t.step,"MSIRP["+e+"]",n,s),t.rp1=t.rp0,t.rp2=s,e&&(t.rp0=s)}function mp(e){for(var t=e.stack,r=e.rp0,n=e.z0[r],s=e.loop,a=e.fv,o=e.pv,i=e.z1;s--;){var l=t.pop(),c=i[l];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-s)+": ":"")+"ALIGNRP[]",l),a.setRelative(c,n,0,o),a.touch(c)}e.loop=1}function xp(e){exports.DEBUG&&console.log(e.step,"RTDG[]"),e.round=Ih}function Do(e,t){var r=t.stack,n=r.pop(),s=r.pop(),a=t.z0[s],o=t.fv,i=t.pv,l=t.cvt[n];exports.DEBUG&&console.log(t.step,"MIAP["+e+"]",n,"(",l,")",s);var c=i.distance(a,$r);e&&(Math.abs(c-l)",i),t.stack.push(Math.round(i*64))}function Cp(e){exports.DEBUG&&console.log(e.step,"MPPEM[]"),e.stack.push(e.ppem)}function kp(e){exports.DEBUG&&console.log(e.step,"FLIPON[]"),e.autoFlip=!0}function Ep(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"LT[]",r,n),t.push(nr?1:0)}function Lp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"GTEQ[]",r,n),t.push(n>=r?1:0)}function _p(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"EQ[]",r,n),t.push(r===n?1:0)}function Rp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"NEQ[]",r,n),t.push(r!==n?1:0)}function Ap(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"ODD[]",r),t.push(Math.trunc(r)%2?1:0)}function Mp(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"EVEN[]",r),t.push(Math.trunc(r)%2?0:1)}function Ip(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"IF[]",t),t||(Jl(e,!0),exports.DEBUG&&console.log(e.step,"EIF[]"))}function Pp(e){exports.DEBUG&&console.log(e.step,"EIF[]")}function Dp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"AND[]",r,n),t.push(r&&n?1:0)}function Bp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"OR[]",r,n),t.push(r||n?1:0)}function Np(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"NOT[]",r),t.push(r?0:1)}function ds(e,t){var r=t.stack,n=r.pop(),s=t.fv,a=t.pv,o=t.ppem,i=t.deltaBase+(e-1)*16,l=t.deltaShift,c=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+e+"]",n,r);for(var u=0;u>4);if(p===o){var m=(f&15)-8;m>=0&&m++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",h,"by",m*l);var x=c[h];s.setRelative(x,x,m*l,a)}}}function Gp(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"SDB[]",r),e.deltaBase=r}function Hp(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"SDS[]",r),e.deltaShift=Math.pow(.5,r)}function Vp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"ADD[]",r,n),t.push(n+r)}function zp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SUB[]",r,n),t.push(n-r)}function Wp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"DIV[]",r,n),t.push(n*64/r)}function Zp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MUL[]",r,n),t.push(n*r/64)}function $p(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"ABS[]",r),t.push(Math.abs(r))}function jp(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"NEG[]",r),t.push(-r)}function qp(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"FLOOR[]",r),t.push(Math.floor(r/64)*64)}function Xp(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"CEILING[]",r),t.push(Math.ceil(r/64)*64)}function un(e,t){var r=t.stack,n=r.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),r.push(t.round(n/64)*64)}function Yp(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"WCVTF[]",r,n),e.cvt[n]=r*e.ppem/e.font.unitsPerEm}function vs(e,t){var r=t.stack,n=r.pop(),s=t.ppem,a=t.deltaBase+(e-1)*16,o=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+e+"]",n,r);for(var i=0;i>4);if(u===s){var h=(c&15)-8;h>=0&&h++;var f=h*o;exports.DEBUG&&console.log(t.step,"DELTACFIX",l,"by",f),t.cvt[l]+=f}}}function Kp(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SROUND[]",t),e.round=Kl;var r;switch(t&192){case 0:r=.5;break;case 64:r=1;break;case 128:r=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=r,t&48){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*r;break;case 32:e.srPhase=.5*r;break;case 48:e.srPhase=.75*r;break;default:throw new Error("invalid SROUND value")}t&=15,t===0?e.srThreshold=0:e.srThreshold=(t/8-.5)*r}function Jp(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"S45ROUND[]",t),e.round=Kl;var r;switch(t&192){case 0:r=Math.sqrt(2)/2;break;case 64:r=Math.sqrt(2);break;case 128:r=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=r,t&48){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*r;break;case 32:e.srPhase=.5*r;break;case 48:e.srPhase=.75*r;break;default:throw new Error("invalid S45ROUND value")}t&=15,t===0?e.srThreshold=0:e.srThreshold=(t/8-.5)*r}function Qp(e){exports.DEBUG&&console.log(e.step,"ROFF[]"),e.round=Mh}function e2(e){exports.DEBUG&&console.log(e.step,"RUTG[]"),e.round=Dh}function t2(e){exports.DEBUG&&console.log(e.step,"RDTG[]"),e.round=Bh}function r2(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANCTRL[]",t)}function Go(e,t){var r=t.stack,n=r.pop(),s=r.pop(),a=t.z2[n],o=t.z1[s];exports.DEBUG&&console.log(t.step,"SDPVTL["+e+"]",n,s);var i,l;e?(i=a.y-o.y,l=o.x-a.x):(i=o.x-a.x,l=o.y-a.y),t.dpv=Qr(i,l)}function n2(e){var t=e.stack,r=t.pop(),n=0;exports.DEBUG&&console.log(e.step,"GETINFO[]",r),r&1&&(n=35),r&32&&(n|=4096),t.push(n)}function s2(e){var t=e.stack,r=t.pop(),n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"ROLL[]"),t.push(n),t.push(r),t.push(s)}function a2(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MAX[]",r,n),t.push(Math.max(n,r))}function o2(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MIN[]",r,n),t.push(Math.min(n,r))}function i2(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANTYPE[]",t)}function l2(e){var t=e.stack.pop(),r=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"INSTCTRL[]",t,r),t){case 1:e.inhibitGridFit=!!r;return;case 2:e.ignoreCvt=!!r;return;default:throw new Error("invalid INSTCTRL[] selector")}}function Mt(e,t){var r=t.stack,n=t.prog,s=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+e+"]");for(var a=0;a=0?1:-1,g=Math.abs(g),e&&(b=a.cvt[i],n&&Math.abs(g-b)":"_")+(n?"R":"_")+(s===0?"Gr":s===1?"Bl":s===2?"Wh":"")+"]",e?i+"("+a.cvt[i]+","+b+")":"",l,"(d =",x,"->",y*g,")"),a.rp1=a.rp0,a.rp2=l,t&&(a.rp0=l)}jl=[ko.bind(void 0,Ct),ko.bind(void 0,gt),Eo.bind(void 0,Ct),Eo.bind(void 0,gt),Oo.bind(void 0,Ct),Oo.bind(void 0,gt),Uo.bind(void 0,0),Uo.bind(void 0,1),Lo.bind(void 0,0),Lo.bind(void 0,1),Gh,Hh,Vh,zh,Wh,Zh,$h,jh,qh,Xh,Yh,Kh,Jh,Qh,ep,tp,rp,np,sp,ap,void 0,void 0,op,ps,ip,lp,up,hp,pp,void 0,void 0,void 0,cp,fp,dp,void 0,_o.bind(void 0,0),_o.bind(void 0,1),Ro.bind(void 0,Ct),Ro.bind(void 0,gt),Ao.bind(void 0,0),Ao.bind(void 0,1),Mo.bind(void 0,0),Mo.bind(void 0,1),Io.bind(void 0,0),Io.bind(void 0,1),vp,gp,Po.bind(void 0,0),Po.bind(void 0,1),mp,xp,Do.bind(void 0,0),Do.bind(void 0,1),yp,bp,Sp,wp,Tp,Fp,Bo.bind(void 0,0),Bo.bind(void 0,1),void 0,No.bind(void 0,0),No.bind(void 0,1),Cp,void 0,kp,void 0,void 0,Ep,Op,Up,Lp,_p,Rp,Ap,Mp,Ip,Pp,Dp,Bp,Np,ds.bind(void 0,1),Gp,Hp,Vp,zp,Wp,Zp,$p,jp,qp,Xp,un.bind(void 0,0),un.bind(void 0,1),un.bind(void 0,2),un.bind(void 0,3),void 0,void 0,void 0,void 0,Yp,ds.bind(void 0,2),ds.bind(void 0,3),vs.bind(void 0,1),vs.bind(void 0,2),vs.bind(void 0,3),Kp,Jp,void 0,void 0,Qp,void 0,e2,t2,ps,ps,void 0,void 0,void 0,void 0,void 0,r2,Go.bind(void 0,0),Go.bind(void 0,1),n2,void 0,s2,a2,o2,i2,l2,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Mt.bind(void 0,1),Mt.bind(void 0,2),Mt.bind(void 0,3),Mt.bind(void 0,4),Mt.bind(void 0,5),Mt.bind(void 0,6),Mt.bind(void 0,7),Mt.bind(void 0,8),It.bind(void 0,1),It.bind(void 0,2),It.bind(void 0,3),It.bind(void 0,4),It.bind(void 0,5),It.bind(void 0,6),It.bind(void 0,7),It.bind(void 0,8),$.bind(void 0,0,0,0,0,0),$.bind(void 0,0,0,0,0,1),$.bind(void 0,0,0,0,0,2),$.bind(void 0,0,0,0,0,3),$.bind(void 0,0,0,0,1,0),$.bind(void 0,0,0,0,1,1),$.bind(void 0,0,0,0,1,2),$.bind(void 0,0,0,0,1,3),$.bind(void 0,0,0,1,0,0),$.bind(void 0,0,0,1,0,1),$.bind(void 0,0,0,1,0,2),$.bind(void 0,0,0,1,0,3),$.bind(void 0,0,0,1,1,0),$.bind(void 0,0,0,1,1,1),$.bind(void 0,0,0,1,1,2),$.bind(void 0,0,0,1,1,3),$.bind(void 0,0,1,0,0,0),$.bind(void 0,0,1,0,0,1),$.bind(void 0,0,1,0,0,2),$.bind(void 0,0,1,0,0,3),$.bind(void 0,0,1,0,1,0),$.bind(void 0,0,1,0,1,1),$.bind(void 0,0,1,0,1,2),$.bind(void 0,0,1,0,1,3),$.bind(void 0,0,1,1,0,0),$.bind(void 0,0,1,1,0,1),$.bind(void 0,0,1,1,0,2),$.bind(void 0,0,1,1,0,3),$.bind(void 0,0,1,1,1,0),$.bind(void 0,0,1,1,1,1),$.bind(void 0,0,1,1,1,2),$.bind(void 0,0,1,1,1,3),$.bind(void 0,1,0,0,0,0),$.bind(void 0,1,0,0,0,1),$.bind(void 0,1,0,0,0,2),$.bind(void 0,1,0,0,0,3),$.bind(void 0,1,0,0,1,0),$.bind(void 0,1,0,0,1,1),$.bind(void 0,1,0,0,1,2),$.bind(void 0,1,0,0,1,3),$.bind(void 0,1,0,1,0,0),$.bind(void 0,1,0,1,0,1),$.bind(void 0,1,0,1,0,2),$.bind(void 0,1,0,1,0,3),$.bind(void 0,1,0,1,1,0),$.bind(void 0,1,0,1,1,1),$.bind(void 0,1,0,1,1,2),$.bind(void 0,1,0,1,1,3),$.bind(void 0,1,1,0,0,0),$.bind(void 0,1,1,0,0,1),$.bind(void 0,1,1,0,0,2),$.bind(void 0,1,1,0,0,3),$.bind(void 0,1,1,0,1,0),$.bind(void 0,1,1,0,1,1),$.bind(void 0,1,1,0,1,2),$.bind(void 0,1,1,0,1,3),$.bind(void 0,1,1,1,0,0),$.bind(void 0,1,1,1,0,1),$.bind(void 0,1,1,1,0,2),$.bind(void 0,1,1,1,0,3),$.bind(void 0,1,1,1,1,0),$.bind(void 0,1,1,1,1,1),$.bind(void 0,1,1,1,1,2),$.bind(void 0,1,1,1,1,3)];function br(e){this.char=e,this.state={},this.activeState=null}function ma(e,t,r){this.contextName=r,this.startIndex=e,this.endOffset=t}function u2(e,t,r){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=r}function nt(e,t){this.context=e,this.index=t,this.length=e.length,this.current=e[t],this.backtrack=e.slice(0,t),this.lookahead=e.slice(t+1)}function jn(e){this.eventId=e,this.subscribers=[]}function c2(e){var t=this,r=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];r.forEach(function(s){Object.defineProperty(t.events,s,{value:new jn(s)})}),e&&r.forEach(function(s){var a=e[s];typeof a=="function"&&t.events[s].subscribe(a)});var n=["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"];n.forEach(function(s){t.events[s].subscribe(t.updateContextsRanges)})}function Oe(e){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],c2.call(this,e)}br.prototype.setState=function(e,t){return this.state[e]=t,this.activeState={key:e,value:this.state[e]},this.activeState};br.prototype.getState=function(e){return this.state[e]||null};Oe.prototype.inboundIndex=function(e){return e>=0&&e0&&e<=this.lookahead.length):return this.lookahead[e-1];default:return null}};Oe.prototype.rangeToText=function(e){if(e instanceof ma)return this.getRangeTokens(e).map(function(t){return t.char}).join("")};Oe.prototype.getText=function(){return this.tokens.map(function(e){return e.char}).join("")};Oe.prototype.getContext=function(e){var t=this.registeredContexts[e];return t||null};Oe.prototype.on=function(e,t){var r=this.events[e];return r?r.subscribe(t):null};Oe.prototype.dispatch=function(e,t){var r=this,n=this.events[e];n instanceof jn&&n.subscribers.forEach(function(s){s.apply(r,t||[])})};Oe.prototype.registerContextChecker=function(e,t,r){if(this.getContext(e))return{FAIL:"context name '"+e+"' is already registered."};if(typeof t!="function")return{FAIL:"missing context start check."};if(typeof r!="function")return{FAIL:"missing context end check."};var n=new u2(e,t,r);return this.registeredContexts[e]=n,this.contextCheckers.push(n),n};Oe.prototype.getRangeTokens=function(e){var t=e.startIndex+e.endOffset;return[].concat(this.tokens.slice(e.startIndex,t))};Oe.prototype.getContextRanges=function(e){var t=this.getContext(e);return t?t.ranges:{FAIL:"context checker '"+e+"' is not registered."}};Oe.prototype.resetContextsRanges=function(){var e=this.registeredContexts;for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];r.ranges=[]}};Oe.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var e=this.tokens.map(function(n){return n.char}),t=0;t=s.start&&e<=s.end){var a=e-s.start;return s.index+a}}break;default:return-1}return-1}function h2(e,t){var r=en(e,t.coverage);return r===-1?null:e+t.deltaGlyphId}function p2(e,t){var r=en(e,t.coverage);return r===-1?null:t.substitute[r]}function gs(e,t){for(var r=[],n=0;n=0;r--){var n=t[r],s=Ql(n),a=Zt(n);if(!s&&!a)return!0;if(s)return!1}return!1}function O2(e){if(Ql(e.current))return!1;for(var t=0;t0}r("fontFamily"),r("weightName"),r("manufacturer"),r("copyright"),r("version"),this.unitsPerEm>0};we.prototype.toTables=function(){return kh.fontToTable(this)};we.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()};we.prototype.toArrayBuffer=function(){for(var e=this.toTables(),t=e.encode(),r=new ArrayBuffer(t.length),n=new Uint8Array(r),s=0;s=1.2&&(s.markGlyphSets=r.parsePointer(K2)),s}var Q2={parse:J2},st=new Array(10);st[1]=function(){var t=this.offset+this.relativeOffset,r=this.parseUShort();if(r===1)return{posFormat:1,coverage:this.parsePointer(w.coverage),value:this.parseValueRecord()};if(r===2)return{posFormat:2,coverage:this.parsePointer(w.coverage),values:this.parseValueRecordList()};Q.assert(!1,"0x"+t.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")};st[2]=function(){var t=this.offset+this.relativeOffset,r=this.parseUShort();Q.assert(r===1||r===2,"0x"+t.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var n=this.parsePointer(w.coverage),s=this.parseUShort(),a=this.parseUShort();if(r===1)return{posFormat:r,coverage:n,valueFormat1:s,valueFormat2:a,pairSets:this.parseList(w.pointer(w.list(function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(s),value2:this.parseValueRecord(a)}})))};if(r===2){var o=this.parsePointer(w.classDef),i=this.parsePointer(w.classDef),l=this.parseUShort(),c=this.parseUShort();return{posFormat:r,coverage:n,valueFormat1:s,valueFormat2:a,classDef1:o,classDef2:i,class1Count:l,class2Count:c,classRecords:this.parseList(l,w.list(c,function(){return{value1:this.parseValueRecord(s),value2:this.parseValueRecord(a)}}))}}};st[3]=function(){return{error:"GPOS Lookup 3 not supported"}};st[4]=function(){return{error:"GPOS Lookup 4 not supported"}};st[5]=function(){return{error:"GPOS Lookup 5 not supported"}};st[6]=function(){return{error:"GPOS Lookup 6 not supported"}};st[7]=function(){return{error:"GPOS Lookup 7 not supported"}};st[8]=function(){return{error:"GPOS Lookup 8 not supported"}};st[9]=function(){return{error:"GPOS Lookup 9 not supported"}};function ed(e,t){t=t||0;var r=new w(e,t),n=r.parseVersion(1);return Q.argument(n===1||n===1.1,"Unsupported GPOS table version "+n),n===1?{version:n,scripts:r.parseScriptList(),features:r.parseFeatureList(),lookups:r.parseLookupList(st)}:{version:n,scripts:r.parseScriptList(),features:r.parseFeatureList(),lookups:r.parseLookupList(st),variations:r.parseFeatureVariationsList()}}var td=new Array(10);function rd(e){return new Z.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new Z.ScriptList(e.scripts)},{name:"features",type:"TABLE",value:new Z.FeatureList(e.features)},{name:"lookups",type:"TABLE",value:new Z.LookupList(e.lookups,td)}])}var nd={parse:ed,make:rd};function sd(e){var t={};e.skip("uShort");var r=e.parseUShort();Q.argument(r===0,"Unsupported kern sub-table version."),e.skip("uShort",2);var n=e.parseUShort();e.skip("uShort",3);for(var s=0;s1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");var n=e.parseUShort(),s=n&255;if(e.skip("uShort"),s===0){var a=e.parseUShort();e.skip("uShort",3);for(var o=0;o0&&t&&t(Math.round(i/s*100))}const l=o.reduce((h,f)=>h+f.length,0),c=new Uint8Array(l);let u=0;for(const h of o)c.set(h,u),u+=h.length;return fd(c.buffer)}catch(r){throw new Error(`Failed to load font from ${e}: ${r}`)}}const Sr=ll("font",()=>{function e(R){try{const G=localStorage.getItem(R);if(!G)return new Set;const A=JSON.parse(G);return Array.isArray(A)?new Set(A.map(String)):new Set}catch{return new Set}}function t(R,G){try{localStorage.setItem(R,JSON.stringify(Array.from(G)))}catch{}}const r=Ce([]),n=Ce(new Set),s=Ce(e("font.favoriteFontIds")),a=Ce(e("font.previewFontIds")),o=Ce(e("font.expandedCategories")),i=Ce([]),l=Ce(!1),c=new Map,u=be(()=>r.value.filter(R=>n.value.has(R.id))),h=be(()=>r.value.filter(R=>s.value.has(R.id))),f=be(()=>r.value.filter(R=>a.value.has(R.id))),p=be(()=>se(h.value));function m(R){r.value.push(R)}function x(R){const G=r.value.findIndex(A=>A.id===R);G!==-1&&r.value.splice(G,1),n.value.delete(R),s.value.delete(R),t("font.favoriteFontIds",s.value),a.value.delete(R),t("font.previewFontIds",a.value)}function g(R){n.value.add(R)}function y(R){n.value.delete(R)}function b(R){n.value.has(R)?y(R):g(R)}function S(){n.value.clear()}function F(R){const G=r.value.find(A=>A.id===R);G&&(G.isFavorite=!0,s.value.add(R),t("font.favoriteFontIds",s.value))}function C(R){const G=r.value.find(A=>A.id===R);G&&(G.isFavorite=!1,s.value.delete(R),t("font.favoriteFontIds",s.value))}function q(R){s.value.has(R)?C(R):F(R)}function D(R){a.value.add(R),t("font.previewFontIds",a.value)}function k(R){a.value.delete(R),t("font.previewFontIds",a.value)}function L(R){a.value.has(R)?k(R):D(R)}function V(){a.value.clear(),t("font.previewFontIds",a.value)}function N(R,G){const A=new Set(o.value);G?A.add(R):A.delete(R),o.value=A,t("font.expandedCategories",o.value)}async function X(R){if(R.loaded||!R.path)return;const G=c.get(R.id);if(G){await G;return}const A=(async()=>{try{const z=await hd(R.path,ee=>{R.progress=ee});R.font=z,R.loaded=!0,R.progress=100}catch(z){throw console.error(`Failed to load font ${R.name}:`,z),z}finally{c.delete(R.id)}})();c.set(R.id,A),await A}function se(R){const G=[],A=new Map;for(const z of R){let ee=A.get(z.category);ee||(ee={name:z.category,type:"category",children:[],expanded:o.value.has(z.category),selected:!1},A.set(z.category,ee),G.push(ee));const fe={name:z.name,type:"font",fontInfo:z,expanded:!1,selected:n.value.has(z.id)};ee.children.push(fe)}G.sort((z,ee)=>z.name.localeCompare(ee.name,"zh-CN"));for(const z of G)z.children&&z.children.sort((ee,fe)=>ee.name.localeCompare(fe.name,"zh-CN"));return G}function oe(){i.value=se(r.value)}return{fonts:r,selectedFontIds:n,favoriteFontIds:s,previewFontIds:a,expandedCategoryNames:o,fontTree:i,isLoadingFonts:l,selectedFonts:u,favoriteFonts:h,previewFonts:f,favoriteTree:p,addFont:m,removeFont:x,selectFont:g,unselectFont:y,toggleSelectFont:b,clearSelection:S,favoriteFont:F,unfavoriteFont:C,toggleFavorite:q,addToPreview:D,removeFromPreview:k,togglePreview:L,clearPreview:V,setCategoryExpanded:N,loadFont:X,updateFontTree:oe}});function pd(){const e=Sr();async function t(){console.log("Starting to load font list..."),e.isLoadingFonts=!0;try{console.log("Fetching /fonts.json...");const r=await fetch("/fonts.json");if(console.log("Response status:",r.status,r.statusText),!r.ok)throw new Error(`Failed to load fonts.json: ${r.statusText}`);const n=await r.json();console.log("Loaded font list:",n.length,"fonts");for(const s of n){const a={id:s.id,name:s.name,path:s.path,category:s.category,isFavorite:!1,loaded:!1,progress:0};e.addFont(a)}e.updateFontTree(),console.log(`Successfully loaded ${n.length} fonts`)}catch(r){console.error("Failed to load font list:",r),alert("加载字体列表失败,请刷新页面重试")}finally{e.isLoadingFonts=!1,console.log("Font loading finished")}}return _i(()=>{console.log("useFontLoader: onMounted called"),t()}),{loadFontList:t}}const t0=ll("ui",()=>{function e(L){return Math.max(10,Math.min(500,L))}const t=(()=>{try{const L=localStorage.getItem("ui.fontSize"),V=L?Number(L):NaN;return Number.isFinite(V)?e(V):100}catch{return 100}})(),r=(()=>{try{return localStorage.getItem("ui.inputText")||""}catch{return""}})(),n=(()=>{try{return localStorage.getItem("ui.textColor")||"#000000"}catch{return"#000000"}})(),s=(()=>{try{const L=localStorage.getItem("ui.selectedExportItems");return L?JSON.parse(L):[]}catch{return[]}})(),a=Ce(r),o=Ce(t),i=Ce(n),l=Ce(0),c=Ce(!0),u=Ce(s),h=Ce(!1),f=Ce(!0),p=Ce(!0);function m(L){a.value=L;try{localStorage.setItem("ui.inputText",L)}catch{}}function x(L){const V=e(L);o.value=V;try{localStorage.setItem("ui.fontSize",String(V))}catch{}}function g(L){i.value=L;try{localStorage.setItem("ui.textColor",L)}catch{}}function y(L){l.value=L}function b(){c.value=!c.value}function S(L){const V=u.value.findIndex(N=>N.fontInfo.id===L.fontInfo.id);V>=0?u.value.splice(V,1):u.value.push(L);try{localStorage.setItem("ui.selectedExportItems",JSON.stringify(u.value))}catch{}}function F(L){const V=u.value.filter(N=>L.has(N.fontInfo.id));if(V.length!==u.value.length){u.value=V;try{localStorage.setItem("ui.selectedExportItems",JSON.stringify(u.value))}catch{}}}function C(){u.value=[];try{localStorage.setItem("ui.selectedExportItems",JSON.stringify([]))}catch{}}function q(L){u.value=[...L];try{localStorage.setItem("ui.selectedExportItems",JSON.stringify(u.value))}catch{}}function D(){f.value=!f.value}function k(){p.value=!p.value}return{inputText:a,fontSize:o,textColor:i,letterSpacing:l,enableLigatures:c,selectedExportItems:u,isExporting:h,isFontSelectorExpanded:f,isFavoritesExpanded:p,setInputText:m,setFontSize:x,setTextColor:g,setLetterSpacing:y,toggleLigatures:b,toggleExportItem:S,retainExportItemsByFontIds:F,clearExportSelection:C,selectAllExportItems:q,toggleFontSelectorExpanded:D,toggleFavoritesExpanded:k}}),Hs=45;function Zo(e){return e.replace(/\r\n?/g,` -`)}function Vs(e,t=Hs){if(t<=0)return Zo(e);const n=Zo(e).split(` -`),s=[];for(const a of n){const o=Array.from(a);if(o.length===0){s.push("");continue}for(let i=0;i(t.searchKeyword??"").trim().toLowerCase()),s=be(()=>n.value.length>0),a=be(()=>s.value||t.selectedOnly===!0);function o(b){if(b.type!=="category"||!b.children)return[];const S=b.children.filter(q=>q.type==="font"&&!!q.fontInfo),F=t.selectedOnly?S.filter(q=>r.previewFontIds.has(q.fontInfo.id)):S;if(!s.value)return F;const C=n.value;return b.name.toLowerCase().includes(C)?F:F.filter(q=>q.name.toLowerCase().includes(C))}function i(b){return b.type==="category"&&o(b).length>0}function l(b){return a.value?!0:!!b.expanded}function c(b){if(a.value)return;const S=!b.expanded;b.expanded=S,r.setCategoryExpanded(b.name,S)}function u(b,S){S.stopPropagation(),b.type==="font"&&b.fontInfo&&r.togglePreview(b.fontInfo.id)}function h(b,S){S.stopPropagation(),b.type==="font"&&b.fontInfo&&r.toggleFavorite(b.fontInfo.id)}function f(b){return b.type==="font"&&b.fontInfo?r.favoriteFontIds.has(b.fontInfo.id):!1}function p(b){return b.type==="font"&&b.fontInfo?r.previewFontIds.has(b.fontInfo.id):!1}function m(b){return o(b).map(S=>S.fontInfo.id)}function x(b){return o(b).length}function g(b){const S=m(b);return S.length>0&&S.every(F=>r.previewFontIds.has(F))}function y(b,S){S.stopPropagation();const F=m(b);F.length!==0&&(g(b)?F.forEach(C=>r.removeFromPreview(C)):F.forEach(C=>r.addToPreview(C)))}return(b,S)=>(pe(),ge("div",gd,[(pe(!0),ge(ze,null,wn(e.nodes,F=>(pe(),ge("div",{key:F.name},[i(F)?(pe(),ge("div",md,[I("div",xd,[I("div",yd,[I("button",{onClick:C=>c(F),class:"tree-toggle",disabled:a.value},[l(F)?(pe(),ge("img",{key:0,src:dd,alt:"收起",class:vt(["w-[15px] h-[15px]",{"opacity-70":a.value}])},null,2)):(pe(),ge("img",Sd))],8,bd)]),I("div",{onClick:C=>c(F),class:vt(["text-base font-medium text-black flex-1 ml-2",a.value?"cursor-default":"cursor-pointer"])},Qe(F.name)+"("+Qe(x(F))+"字体) ",11,wd),I("div",Td,[I("button",{onClick:C=>y(F,C),class:"w-4 h-4 shrink-0 p-0 border-0 bg-transparent cursor-pointer hover:opacity-85 transition-opacity",title:"分类全选/全不选"},[I("img",{src:g(F)?Me(Ws):Me(zs),alt:"分类全选/全不选",class:"w-full h-full"},null,8,Cd)],8,Fd),S[0]||(S[0]=I("div",{class:"w-[18px] h-[17px] shrink-0","aria-hidden":"true"},null,-1))])]),l(F)&&o(F).length>0?(pe(),ge("div",kd)):tr("",!0),l(F)&&o(F).length>0?(pe(),ge("div",Ed,[(pe(!0),ge(ze,null,wn(o(F),C=>(pe(),ge("div",{key:C.name,class:"flex items-center gap-2 border-b border-[#c9cdd4] pb-2 relative"},[S[1]||(S[1]=I("div",{class:"tree-horizontal-line"},null,-1)),S[2]||(S[2]=I("div",{class:"w-4 h-4 shrink-0 ml-[17px]"},[I("img",{src:r0,alt:"font",class:"w-full h-full"})],-1)),I("div",Od,Qe(C.name),1),I("button",{onClick:q=>u(C,q),class:vt(["w-[18px] h-[18px] shrink-0 border rounded-full flex items-center justify-center p-0 bg-transparent",p(C)?"bg-[#9b6bc2] border-[#9b6bc2]":"border-[#c9cdd4]"])},[p(C)?(pe(),ge("img",Ld)):tr("",!0)],10,Ud),I("button",{onClick:q=>h(C,q),class:"w-[18px] h-[17px] shrink-0 p-0 border-0 bg-transparent"},[I("img",{src:n0,alt:"收藏",class:vt(["w-full h-full",f(C)?"favorite-active":""])},null,2)],8,_d)]))),128))])):tr("",!0)])):tr("",!0)]))),128))]))}}),qn=(e,t)=>{const r=e.__vccOpts||e;for(const[n,s]of t)r[n]=s;return r},Ad=qn(Rd,[["__scopeId","data-v-1709e607"]]),Md="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20fill='none'%20viewBox='0%200%2032%2032'%3e%3crect%20width='32'%20height='32'%20fill='%238552A1'%20rx='10'%20transform='matrix(-1%200%200%201%2032%200)'/%3e%3cpath%20fill='%23FEFDFE'%20d='m24.845%2022.204-5.101-5.105-2.64%202.64%205.105%205.104a1.085%201.085%200%200%200%201.527%200l1.108-1.108a1.09%201.09%200%200%200%200-1.531ZM17.22%2018.6l1.382-1.382-1.576-1.576a5.512%205.512%200%200%200-.63-7.032%205.51%205.51%200%200%200-7.785%200c-2.15%202.146-2.146%205.635%200%207.785a5.512%205.512%200%200%200%207.033.63l1.575%201.576Zm-7.541-3.288a3.983%203.983%200%200%201%200-5.635%203.983%203.983%200%200%201%205.635%200%203.983%203.983%200%200%201%200%205.635%203.983%203.983%200%200%201-5.635%200Z'/%3e%3c/svg%3e",Id={class:"space-y-2 pb-1"},Pd={class:"sticky top-0 z-10 bg-white pt-1 pb-1"},Dd={class:"flex items-center gap-3"},Bd={class:"flex-1 min-w-0"},Nd={class:"h-8 rounded-[10px] bg-[#F3EDF7] pl-2 flex items-center"},Gd={type:"button",class:"w-8 h-8 shrink-0 p-0 border-0 bg-transparent flex items-center justify-center","aria-hidden":"true"},Hd=["src"],Vd={key:0,class:"text-sm text-gray-500 text-center py-8"},zd=qr({__name:"FontSelector",setup(e){const t=Sr(),r=Ce(""),n=be(()=>t.fontTree),s=be(()=>r.value.trim().toLowerCase()),a=be(()=>{const u=s.value;return u.includes("选中")||u.includes("选择")||u.includes("已选")||u.includes("xuan")}),o=be(()=>a.value?"":s.value),i=be(()=>s.value.length>0);function l(u){if(u.type!=="category")return!1;const h=(u.children??[]).filter(m=>m.type==="font"&&!!m.fontInfo),f=a.value?h.filter(m=>!!m.fontInfo&&t.previewFontIds.has(m.fontInfo.id)):h;if(o.value.length===0)return f.length>0;const p=o.value;return u.name.toLowerCase().includes(p)?f.length>0:f.some(m=>m.name.toLowerCase().includes(p))}const c=be(()=>i.value?n.value.some(u=>l(u)):n.value.length>0);return(u,h)=>(pe(),ge("div",Id,[I("div",Pd,[I("div",Dd,[h[1]||(h[1]=I("div",{class:"text-[16px] leading-none text-black font-bold shrink-0"}," 选择预览字体 ",-1)),I("div",Bd,[I("div",Nd,[hn(I("input",{"onUpdate:modelValue":h[0]||(h[0]=f=>r.value=f),type:"text",placeholder:"输入搜索字体名称","aria-label":"字体搜索",class:"flex-1 min-w-0 bg-transparent border-none outline-none text-[14px] text-black placeholder-[#a2a0a9]"},null,512),[[Ec,r.value]]),I("button",Gd,[I("img",{src:Me(Md),alt:"",class:"w-[24px] h-[24px]"},null,8,Hd)])])])])]),c.value?(pe(),Ki(Ad,{key:1,nodes:n.value,"search-keyword":o.value,"selected-only":a.value},null,8,["nodes","search-keyword","selected-only"])):(pe(),ge("div",Vd,Qe(i.value?"未找到匹配字体":"暂无字体"),1))]))}}),Wd={class:"space-y-2"},Zd={key:0,class:"text-sm text-gray-500 text-center py-8"},$d={key:1,class:"flex flex-col gap-3 favorite-indent"},jd={class:"flex-1 text-xs text-[#86909c]"},qd=["onClick"],Xd={key:0,src:ba,alt:"选中",class:"w-[11px] h-[9px]"},Yd=["onClick"],Kd=qr({__name:"FavoritesList",setup(e){const t=Sr(),r=be(()=>t.favoriteFonts);function n(i,l){l.stopPropagation(),t.togglePreview(i)}function s(i,l){l.stopPropagation(),t.toggleFavorite(i)}function a(i){return t.favoriteFontIds.has(i)}function o(i){return t.previewFontIds.has(i)}return(i,l)=>(pe(),ge("div",Wd,[r.value.length===0?(pe(),ge("div",Zd," 暂无收藏字体 ")):(pe(),ge("div",$d,[(pe(!0),ge(ze,null,wn(r.value,c=>(pe(),ge("div",{key:c.id,class:"flex items-center gap-2 border-b border-[#c9cdd4] pb-2"},[l[0]||(l[0]=I("div",{class:"w-4 h-4 shrink-0"},[I("img",{src:r0,alt:"font",class:"w-full h-full"})],-1)),I("div",jd,Qe(c.name),1),I("button",{onClick:u=>n(c.id,u),class:vt(["w-[18px] h-[18px] shrink-0 border rounded-full flex items-center justify-center p-0 bg-transparent",o(c.id)?"bg-[#9b6bc2] border-[#9b6bc2]":"border-[#c9cdd4]"])},[o(c.id)?(pe(),ge("img",Xd)):tr("",!0)],10,qd),I("button",{onClick:u=>s(c.id,u),class:"w-[18px] h-[17px] shrink-0 p-0 border-0 bg-transparent"},[I("img",{src:n0,alt:"收藏",class:vt(["w-full h-full",a(c.id)?"favorite-active":""])},null,2)],8,Yd)]))),128))]))]))}}),Jd=qn(Kd,[["__scopeId","data-v-e8bbd3fa"]]),Qd="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='10'%20height='10'%20fill='none'%20viewBox='0%200%2010%2010'%3e%3cpath%20fill='%230079F5'%20d='M7.432%209.596H2.164A2.165%202.165%200%200%201%200%207.432V2.164C0%20.97.97%200%202.164%200h5.268c1.195%200%202.164.97%202.164%202.164v5.268c0%201.195-.97%202.164-2.164%202.164Z'/%3e%3cpath%20fill='%23fff'%20d='M6.24%202.982a.36.36%200%200%200-.662%200l-1.272%202.98a.24.24%200%201%200%20.444.186l.147-.352a.813.813%200%200%201%20.75-.501h.524c.328%200%20.624.198.75.5l.147.353a.24.24%200%201%200%20.444-.187L6.24%202.982Zm.058%201.312a.42.42%200%201%201-.776.324.42.42%200%200%201%20.776-.324Zm-3.01-.587a.253.253%200%200%200-.465%200l-.774%201.814a.18.18%200%201%200%20.333.14l.08-.194a.495.495%200%200%201%20.457-.305h.273c.2%200%20.38.12.457.305l.08.194a.18.18%200%201%200%20.333-.14l-.774-1.814ZM3.055%204.84a.222.222%200%201%201%200-.443.222.222%200%200%201%200%20.443Z'/%3e%3c/svg%3e";let xs=null;async function e1(){if(!xs){const e=await Cn(()=>import("./hb-C3piUv6a.js").then(a=>a.h),__vite__mapDeps([0,1])),r=await(e.default||e)(),n=await Cn(()=>import("./hbjs-B2Ncxvef.js").then(a=>a.h),__vite__mapDeps([2,1]));xs=(n.default||n)(r)}return xs}async function t1(e,t,r){const n=await e1(),s=n.createBlob(e),a=n.createFace(s,0),o=n.createFont(a),i=n.createBuffer();i.addText(t),i.guessSegmentProperties(),n.shape(o,i);const l=i.json(o);return i.destroy(),o.destroy(),a.destroy(),s.destroy(),l.map(c=>({glyphIndex:c.g,xAdvance:c.ax||0,yAdvance:c.ay||0,xOffset:c.dx||0,yOffset:c.dy||0}))}function ye(e){return e.toFixed(2).replace(/\.?0+$/,"")||"0"}function s0(e){const t=e.path;if(!t||!t.commands||t.commands.length===0)return"";const r=[];for(const n of t.commands)switch(n.type){case"M":r.push(`M${ye(n.x)} ${ye(n.y)}`);break;case"L":r.push(`L${ye(n.x)} ${ye(n.y)}`);break;case"Q":r.push(`Q${ye(n.x1)} ${ye(n.y1)} ${ye(n.x)} ${ye(n.y)}`);break;case"C":r.push(`C${ye(n.x1)} ${ye(n.y1)} ${ye(n.x2)} ${ye(n.y2)} ${ye(n.x)} ${ye(n.y)}`);break;case"Z":r.push("Z");break}return r.join(" ")}function a0(e){const t=e.path;if(!t||!t.commands||t.commands.length===0)return null;let r=1/0,n=1/0,s=-1/0,a=-1/0;for(const o of t.commands)"x"in o&&(r=Math.min(r,o.x),s=Math.max(s,o.x),n=Math.min(n,o.y),a=Math.max(a,o.y)),"x1"in o&&(r=Math.min(r,o.x1),s=Math.max(s,o.x1),n=Math.min(n,o.y1),a=Math.max(a,o.y1)),"x2"in o&&(r=Math.min(r,o.x2),s=Math.max(s,o.x2),n=Math.min(n,o.y2),a=Math.max(a,o.y2));return r===1/0?null:{xMin:r,yMin:n,xMax:s,yMax:a}}async function o0(e){const{text:t,font:r,fontSize:n=100,fillColor:s="#000000",letterSpacing:a=0}=e;if(!t||t.trim()==="")throw new Error("文本内容不能为空");const o=Vs(t),i=n/r.unitsPerEm,l=a*r.unitsPerEm,c=[];let u=null,h=null,f=null,p=null,m=0;const x=Number.isFinite(r.ascender)?r.ascender:r.unitsPerEm*.8,g=Number.isFinite(r.descender)?r.descender:-r.unitsPerEm*.2,y=Math.max(r.unitsPerEm*1.2,x-g),b=o.split(` -`);for(let V=0;V`)}if(C.length===0)throw new Error("未生成任何路径");const q=`${ye(u)} 0 ${ye(f-u)} ${ye(p-h)}`,D=`translate(0 ${ye(p)}) scale(1 -1)`,k=` - - -${C.join(` -`)} - -`,L=r.names.fontFamily?.en||r.names.fullName?.en||"Unknown";return{svg:k,width:S,height:F,fontName:L}}async function r1(e,t){const{text:r,font:n,fontSize:s=100,fillColor:a="#000000",letterSpacing:o=0}=e;if(!r||r.trim()==="")throw new Error("文本内容不能为空");const i=await t1(t,r),l=s/n.unitsPerEm,c=o*n.unitsPerEm,u=[];let h=0,f=0,p=1;const m=i.find(N=>N.xAdvance)?.xAdvance||0;Math.abs(m)>n.unitsPerEm*4&&(p=1/64);const x=c/p;for(const N of i){const X=n.glyphs.get(N.glyphIndex),se=(h+N.xOffset)*p,oe=(f+N.yOffset)*p;u.push({glyph:X,xPos:se,yPos:oe}),h+=N.xAdvance+x,f+=N.yAdvance}let g=null,y=null,b=null,S=null;for(const N of u){const X=a0(N.glyph);if(!X)continue;const{xMin:se,yMin:oe,xMax:R,yMax:G}=X,A=se+N.xPos,z=oe+N.yPos,ee=R+N.xPos,fe=G+N.yPos;g=g===null?A:Math.min(g,A),y=y===null?z:Math.min(y,z),b=b===null?ee:Math.max(b,ee),S=S===null?fe:Math.max(S,fe)}if(g===null||y===null||b===null||S===null)throw new Error("未生成有效字形轮廓");const F=(b-g)*l,C=(S-y)*l;if(F<=0||C<=0)throw new Error("计算得到的 SVG 尺寸无效");const q=[];for(const N of u){const X=s0(N.glyph);if(!X)continue;const se=`translate(${ye(N.xPos)} ${ye(N.yPos)})`;q.push(` `)}if(q.length===0)throw new Error("未生成任何路径");const D=`${ye(g)} 0 ${ye(b-g)} ${ye(S-y)}`,k=`translate(0 ${ye(S)}) scale(1 -1)`,L=` - - -${q.join(` -`)} - -`,V=n.names.fontFamily?.en||n.names.fullName?.en||"Unknown";return{svg:L,width:F,height:C,fontName:V}}const n1=Object.freeze(Object.defineProperty({__proto__:null,generateSvg:o0,generateSvgWithHarfbuzz:r1},Symbol.toStringTag,{value:"Module"})),s1={class:"flex flex-col gap-2"},a1={key:0,class:"text-[#86909c] text-center py-20"},o1={key:1,class:"flex flex-col gap-2"},i1={class:"flex items-center gap-[8px] border-b border-[#c9cdd4] pb-[8px] pr-[8px]"},l1={class:"flex-1 text-xs text-[#86909c]"},u1=["onClick"],c1={key:0,src:ba,alt:"选中",class:"w-[11px] h-[9px]"},f1=["onClick"],h1=["innerHTML"],p1={key:0,class:"text-xs text-[#86909c] text-center py-2"},d1=240,v1=4,g1=600,$o="__FONT2SVG_FILL__",cn=20,m1=10,x1=qr({__name:"SvgPreview",setup(e,{expose:t}){const r=Sr(),n=t0(),s=Ce([]),a=Ce(!1),o=Ce(!1),i=Ce([]),l=Ce(0),c=Ce(0),u=Ce(null),h=be(()=>r.previewFonts),f=be(()=>n.inputText),p=be(()=>n.fontSize),m=be(()=>n.textColor);let x=null,g=0,y=!1,b=null;const S=new Map,F=be(()=>s.value.length>0&&s.value.every(Y=>Y.selected)),C=be(()=>c.values.value.slice(0,c.value)),D=be(()=>!C.value||q.value.length<=0?-1:Math.max(0,q.value.length-m1));function k(Y){return Y!==g}function L(Y=!0){if(x!==null&&(clearTimeout(x),x=null),!Y){ue();return}x=setTimeout(()=>{x=null,ue()},d1)}function V(Y){let ie=Y.parentElement;for(;ie;){const xe=window.getComputedStyle(ie).overflowY;if((xe==="auto"||xe==="scroll")&&ie.scrollHeight>ie.clientHeight)return ie;ie=ie.parentElement}return null}function N(){b&&(b.disconnect(),b=null)}function X(){if(N(),!C.value||!u.value)return;const Y=V(u.value);b=new IntersectionObserver(ie=>{ie.some(xe=>xe.isIntersecting)&&fe()},{root:Y,threshold:.01}),b.observe(u.value)}function se(Y,ie){ie===D.value&&(u.value=Y instanceof HTMLElement?Y:null)}function oe(Y){return[Y.id,Y.path,f.value,p.value].join("::")}function R(Y){const ie=S.get(Y);return ie?(S.delete(Y),S.set(Y,ie),ie):null}function G(Y,ie){for(S.has(Y)&&S.delete(Y),S.set(Y,ie);S.size>g1;){const le=S.keys().next().value;if(le===void 0)break;S.delete(le)}}async function A(Y){if(!Y.font)return null;const ie=oe(Y);let le=R(ie);if(!le){const xe=await o0({text:f.value,font:Y.font,fontSize:p.value,fillColor:$o});le={width:xe.width,height:xe.height,fontName:xe.fontName,svgTemplate:xe.svg},G(ie,le)}return{width:le.width,height:le.height,fontName:le.fontName,svg:le.svgTemplate.split($o).join(m.value)}}async function z(Y,ie,le,xe){const Ge=Math.min(ie+le,Y.length),At=Y.slice(ie,Ge);if(At.length===0)return[];const qt=new Set(n.selectedExportItems.map(U=>U.fontInfo.id)),Yn=new Array(At.length).fill(null),d=Math.min(v1,At.length);let v=0;const T=async()=>{for(;;){if(k(xe))return;const U=v;if(v+=1,U>=At.length)return;const E=At[U];if(E){if(!E.loaded)try{await r.loadFont(E)}catch(O){console.error(`Failed to load font ${E.name}:`,O);continue}if(!(k(xe)||!E.font))try{const O=await A(E);if(!O)continue;if(k(xe))return;Yn[U]={fontInfo:E,svgResult:O,selected:qt.has(E.id)}}catch(O){console.error(`Failed to generate SVG for ${E.name}:`,O)}}}};return await Promise.all(Array.from({length:d},()=>T())),k(xe)?[]:Yn.filter(U=>U!==null)}async function ee(Y){if(o.value||k(Y))return;const ie=l.value;if(!(ie>=i.value.length)){o.value=!0;try{const le=await z(i.value,ie,cn,Y);if(k(Y))return;l.value=Math.min(ie+cn,i.value.length),s.value=[...s.value,...le],c.value=Math.min(c.value+cn,s.value.length)}catch(le){console.error("Failed to load preview batch:",le)}finally{k(Y)||(o.value=!1)}}}async function fe(){const Y=g;if(!(o.value||k(Y))){if(c.valuexe.id));if(n.retainExportItemsByFontIds(le),i.value=ie,l.value=0,s.value=[],c.value=0,!f.value||f.value.trim()===""||ie.length===0){a.value=!1;return}a.value=!0;try{await ee(Y)}catch(xe){console.error("Failed to regenerate previews:",xe)}finally{k(Y)||(a.value=!1)}}dr([h,f,p,m],()=>{L(y),y=!0},{immediate:!0}),dr([D,C],async()=>{u.value=null,await na(),X()},{immediate:!0}),Ri(()=>{x!==null&&(clearTimeout(x),x=null),N(),g+=1});function de(Y){Y.selected=!Y.selected,n.toggleExportItem(Y)}function Rt(){if(s.value.length!==0){if(F.value){n.clearExportSelection(),s.value.forEach(Y=>{Y.selected=!1});return}s.value.forEach(Y=>{Y.selected=!0}),n.selectAllExportItems(s.value)}}return t({toggleSelectAllPreviewItems:Rt}),(Y,ie)=>(pe(),ge("div",s1,[s.value.length===0?(pe(),ge("div",a1,Qe(a.value?"生成预览中...":"请选择字体并输入内容"),1)):(pe(),ge("div",o1,[(pe(!0),ge(ze,null,wn(q.value,(le,xe)=>(pe(),ge("div",{key:le.fontInfo.id,ref_for:!0,ref:Ge=>se(Ge,xe),class:"flex flex-col gap-2"},[I("div",i1,[ie[0]||(ie[0]=I("div",{class:"w-[24px] h-[24px] shrink-0"},[I("img",{src:Qd,alt:"字体",class:"w-full h-full"})],-1)),I("div",l1,Qe(le.fontInfo.name),1),I("button",{onClick:Ge=>de(le),class:vt(["w-[18px] h-[18px] shrink-0 border rounded-full flex items-center justify-center p-0 bg-transparent",le.selected?"bg-[#9b6bc2] border-[#9b6bc2]":"border-[#c9cdd4]"])},[le.selected?(pe(),ge("img",c1)):tr("",!0)],10,u1)]),I("div",{onClick:Ge=>de(le),class:"bg-white px-[8px] py-[8px] cursor-pointer"},[I("div",{innerHTML:le.svgResult.svg,class:"svg-preview-container"},null,8,h1)],8,f1)]))),128)),C.value?(pe(),ge("div",p1,Qe(o.value?"加载中...":`继续下滑加载更多(${q.value.length}/${i.value.length})`),1)):tr("",!0)]))]))}}),y1=qn(x1,[["__scopeId","data-v-15496019"]]),b1={class:"w-screen h-screen box-border p-8px bg-white flex flex-col overflow-hidden"},S1={class:"flex gap-2 items-center shrink-0 h-24 px-2 py-1"},w1={class:"flex items-center gap-3 px-2 shrink-0 relative",style:{width:"280px",height:"32px"}},T1={class:"flex-1 h-6 flex items-center relative"},F1=["value"],C1={class:"text-[#8552A1] text-[12px] font-medium text-center w-6"},k1={class:"shrink-0 relative w-9 h-9"},E1={class:"w-full h-full flex items-center justify-center cursor-pointer"},O1=["value"],U1={class:"flex-1 min-w-[80px] bg-[#f7f8fa] rounded-lg px-2 py-1 h-12"},L1=["value"],_1={class:"flex items-center gap-1 shrink-0 border border-[#8552A1] rounded-lg px-1 py-1 bg-[#f7f8fa] shadow-sm"},R1={class:"flex-1 flex gap-2 min-h-0 overflow-hidden px-2"},A1={class:"flex flex-col gap-2 shrink-0 overflow-hidden",style:{"flex-basis":"400px","max-width":"480px","min-width":"320px"}},M1={class:"flex-[2] border border-solid border-[#f7e0e0] rounded-lg p-1.5 flex flex-col gap-2 overflow-hidden min-h-0"},I1={class:"scrollbar-hover flex-1 overflow-y-auto overflow-x-hidden pr-2"},P1={class:"border border-solid border-[#f7e0e0] rounded-lg p-1.5 flex flex-col gap-2 flex-1 overflow-hidden min-h-[120px]"},D1={class:"flex items-center pr-[9px]"},B1={class:"text-base text-black shrink-0 leading-none flex-1"},N1=["src"],G1={class:"scrollbar-hover flex-1 overflow-y-auto overflow-x-hidden pr-2"},H1={class:"flex-1 border border-solid border-[#f7e0e0] rounded-lg p-1.5 flex flex-col gap-2 overflow-hidden min-w-0"},V1={class:"flex items-center pr-[9px]"},z1=["src"],W1={class:"scrollbar-hover flex-1 min-h-0 py-2 overflow-y-auto overflow-x-hidden"},Z1=qr({__name:"App",setup(e){console.log("App.vue: script setup running...");const t=t0(),r=Sr(),n=Ce(null),s=be(()=>{const x=(t.fontSize-10)/490*100;return Math.max(0,Math.min(100,x))}),a=be(()=>{const x=r.previewFonts.map(y=>y.id);if(x.length===0)return!1;const g=new Set(t.selectedExportItems.map(y=>y.fontInfo.id));return x.every(y=>g.has(y))}),o=be(()=>{const x=r.favoriteFonts.map(g=>g.id);return x.length===0?!1:x.every(g=>r.previewFontIds.has(g))}),i=be(()=>r.favoriteFonts.length);try{pd(),console.log("App.vue: useFontLoader called successfully")}catch(x){console.error("App.vue: Error in useFontLoader:",x)}const l=Vs(t.inputText,Hs);l!==t.inputText&&t.setInputText(l);async function c(x){t.retainExportItemsByFontIds(r.previewFontIds);const g=t.selectedExportItems,y=t.inputText.trim();if(g.length===0){alert("请选择需要导出的效果");return}if(!y){alert("请输入要导出的文字");return}try{const{generateSvg:b}=await Cn(async()=>{const{generateSvg:L}=await Promise.resolve().then(()=>n1);return{generateSvg:L}},void 0),{convertSvgToPngBlob:S,downloadSvg:F,downloadMultipleFiles:C,downloadPngFromSvg:q,generatePngFilename:D,generateSvgFilename:k}=await Cn(async()=>{const{convertSvgToPngBlob:L,downloadSvg:V,downloadMultipleFiles:N,downloadPngFromSvg:X,generatePngFilename:se,generateSvgFilename:oe}=await import("./download-T9wchiI1.js");return{convertSvgToPngBlob:L,downloadSvg:V,downloadMultipleFiles:N,downloadPngFromSvg:X,generatePngFilename:se,generateSvgFilename:oe}},[]);if(g.length===1){const L=g[0];if(!L?.fontInfo.font){alert("选中字体未加载完成,请稍后重试");return}const V=L.fontInfo.font,N=await b({text:y,font:V,fontSize:t.fontSize,fillColor:t.textColor,letterSpacing:0});if(x==="svg"){const X=k(y,N.fontName);F(N.svg,X)}else{const X=D(y,N.fontName);await q(N.svg,X,{width:N.width,height:N.height})}}else{const L=[];for(const V of g)try{const N=V.fontInfo.font;if(!N){console.warn(`字体 ${V.fontInfo.name} 尚未加载,已跳过导出`);continue}const X=await b({text:y,font:N,fontSize:t.fontSize,fillColor:t.textColor,letterSpacing:0});if(x==="svg"){const se=k(y,X.fontName);L.push({name:se,content:X.svg})}else{const se=D(y,X.fontName),oe=await S(X.svg,{width:X.width,height:X.height});L.push({name:se,content:oe})}}catch(N){console.warn(`字体 ${V.fontInfo.name} 导出失败:`,N)}L.length>0?await C(L,x==="svg"?"font2svg-svg-export.zip":"font2svg-png-export.zip"):alert(`所有字体${x.toUpperCase()}导出都失败了`)}}catch(b){console.error("导出失败:",b),alert(`导出失败: ${b instanceof Error?b.message:"未知错误"}`)}}function u(x){t.setFontSize(x)}function h(x){const g=x.target,y=Number(g.value);Number.isNaN(y)||t.setFontSize(y)}function f(x){const g=x.target,y=Vs(g.value,Hs);y!==g.value&&(g.value=y),t.setInputText(y)}function p(){n.value?.toggleSelectAllPreviewItems()}function m(){const x=r.favoriteFonts.map(g=>g.id);if(x.length!==0){if(o.value){x.forEach(g=>r.removeFromPreview(g));return}x.forEach(g=>r.addToPreview(g))}}return console.log("App.vue: script setup completed"),(x,g)=>{const y=yu("overflow-aware");return pe(),ge("div",b1,[I("div",S1,[g[11]||(g[11]=I("div",{class:"w-12 h-12 rounded-xl overflow-hidden shrink-0"},[I("img",{src:Hc,alt:"logo",class:"w-full h-full object-cover"})],-1)),g[12]||(g[12]=I("div",{class:"shrink-0 max-w-[225px] min-w-[120px]",style:{height:"72px"}},[I("img",{src:Vc,alt:"星程SVG文字生成 TEXT to SVG",class:"w-full h-full object-contain"})],-1)),I("div",w1,[I("button",{onClick:g[0]||(g[0]=b=>u(Me(t).fontSize-10)),class:"w-4 h-4 shrink-0 cursor-pointer hover:opacity-70 transition-opacity flex items-center justify-center p-0 border-0 bg-transparent",title:"减小字体"},[...g[5]||(g[5]=[I("img",{src:zc,alt:"A-",class:"w-4 h-4 object-contain"},null,-1)])]),I("div",T1,[I("input",{type:"range",min:"10",max:"500",step:"1",value:Me(t).fontSize,onInput:h,class:"font-size-range w-full h-6 cursor-pointer",style:Dr({background:`linear-gradient(to right, #9b6bc2 0%, #9b6bc2 ${s.value}%, #e5e6eb ${s.value}%, #e5e6eb 100%)`})},null,44,F1),I("div",{class:"absolute pointer-events-none -top-4",style:Dr({left:`calc(${s.value}% - 7px)`})},[I("div",C1,Qe(Me(t).fontSize),1)],4)]),I("button",{onClick:g[1]||(g[1]=b=>u(Me(t).fontSize+10)),class:"w-6 h-6 shrink-0 cursor-pointer hover:opacity-70 transition-opacity flex items-center justify-center p-0 border-0 bg-transparent",title:"增大字体"},[...g[6]||(g[6]=[I("img",{src:Wc,alt:"A+",class:"w-6 h-6 object-contain"},null,-1)])])]),I("div",k1,[I("label",E1,[g[7]||(g[7]=I("img",{src:Zc,alt:"颜色",class:"w-9 h-9 object-contain"},null,-1)),I("input",{type:"color",value:Me(t).textColor,onInput:g[2]||(g[2]=b=>Me(t).setTextColor(b.target.value)),class:"absolute inset-0 opacity-0 cursor-pointer","aria-label":"选择文字颜色"},null,40,O1)])]),I("div",U1,[I("textarea",{value:Me(t).inputText,onInput:f,placeholder:"此处输入内容",class:"w-full h-full bg-transparent border-none outline-none text-base text-[#4e5969] placeholder-[#4e5969] resize-none leading-5 overflow-y-auto"},null,40,L1)]),I("div",_1,[g[10]||(g[10]=I("div",{class:"w-[18px] h-[42px] shrink-0 pointer-events-none"},[I("img",{src:$c,alt:"导出",class:"w-full h-full object-contain"})],-1)),I("button",{onClick:g[3]||(g[3]=b=>c("svg")),class:"w-12 h-12 shrink-0 cursor-pointer hover:opacity-85 transition-opacity flex items-center justify-center p-0 border-0 bg-transparent",title:"导出 SVG"},[...g[8]||(g[8]=[I("img",{src:jc,alt:"导出SVG",class:"w-12 h-12 object-contain"},null,-1)])]),I("button",{onClick:g[4]||(g[4]=b=>c("png")),class:"w-12 h-12 shrink-0 cursor-pointer hover:opacity-85 transition-opacity flex items-center justify-center p-0 border-0 bg-transparent",title:"导出 PNG"},[...g[9]||(g[9]=[I("img",{src:qc,alt:"导出PNG",class:"w-12 h-12 object-contain"},null,-1)])])])]),I("div",R1,[I("div",A1,[I("div",M1,[hn((pe(),ge("div",I1,[Ke(zd)])),[[y]])]),I("div",P1,[I("div",D1,[I("h2",B1," 已收藏字体("+Qe(i.value)+"字体) ",1),I("button",{onClick:m,class:"w-4 h-4 shrink-0 p-0 border-0 bg-transparent cursor-pointer hover:opacity-85 transition-opacity",title:"已收藏字体全选/全不选"},[I("img",{src:o.value?Me(Ws):Me(zs),alt:"已收藏字体全选/全不选",class:"w-full h-full"},null,8,N1)])]),hn((pe(),ge("div",G1,[Ke(Jd)])),[[y]])])]),I("div",H1,[I("div",V1,[g[13]||(g[13]=I("h2",{class:"text-base text-black shrink-0 leading-none flex-1"},"效果预览",-1)),I("button",{onClick:p,class:"w-4 h-4 shrink-0 p-0 border-0 bg-transparent cursor-pointer hover:opacity-85 transition-opacity",title:"效果预览全选/全不选"},[I("img",{src:a.value?Me(Ws):Me(zs),alt:"效果预览全选/全不选",class:"w-full h-full"},null,8,z1)])]),hn((pe(),ge("div",W1,[Ke(y1,{ref_key:"svgPreviewRef",ref:n},null,512)])),[[y]])])]),g[14]||(g[14]=I("div",{class:"text-[#86909c] text-xs text-center shrink-0 h-6 pt-4 flex items-center justify-center px-2"}," @版权说明:所有字体来源互联网分享,仅供效果预览,不做下载传播,如有侵权,请告知douboer@gmail.com ",-1))])}}}),i0=qn(Z1,[["__scopeId","data-v-d8854dc4"]]);console.log("main.ts is loading...");console.log("App component:",i0);const Xn=Lc(i0);Xn.use(Ac());const ys=new WeakMap;function jo(e){const t=e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth;e.dataset.overflowing=t?"true":"false"}const $1={mounted(e){const t=()=>jo(e);t();const r=new ResizeObserver(t);r.observe(e);const n=new MutationObserver(t);n.observe(e,{childList:!0,subtree:!0,characterData:!0});const s=()=>t(),a=()=>t();e.addEventListener("mouseenter",s),window.addEventListener("resize",a),ys.set(e,{resizeObserver:r,mutationObserver:n,onMouseEnter:s,onWindowResize:a})},updated(e){jo(e)},unmounted(e){const t=ys.get(e);t&&(t.resizeObserver.disconnect(),t.mutationObserver.disconnect(),e.removeEventListener("mouseenter",t.onMouseEnter),window.removeEventListener("resize",t.onWindowResize),ys.delete(e))}};Xn.directive("overflow-aware",$1);Xn.config.errorHandler=(e,t,r)=>{console.error("Vue Error:",e),console.error("Error info:",r),console.error("Component instance:",t)};console.log("Mounting app to #app...");Xn.mount("#app");console.log("App mounted successfully!");export{Cn as _}; diff --git a/frontend/dist/assets/index-DQpT4mud.css b/frontend/dist/assets/index-DQpT4mud.css deleted file mode 100644 index 708842d..0000000 --- a/frontend/dist/assets/index-DQpT4mud.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-top-4{top:-1rem}.top-0{top:0}.z-10{z-index:10}.mb-3{margin-bottom:.75rem}.ml-\[17px\]{margin-left:17px}.ml-2{margin-left:.5rem}.mr-\[1px\]{margin-right:1px}.mt-3{margin-top:.75rem}.box-border{box-sizing:border-box}.block{display:block}.h-\[15px\]{height:15px}.h-\[17px\]{height:17px}.h-\[18px\]{height:18px}.h-\[24px\]{height:24px}.h-\[42px\]{height:42px}.h-\[9px\]{height:9px}.h-12{height:3rem}.h-24{height:6rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.h-screen{height:100vh}.h2{height:.5rem}.max-w-\[225px\]{max-width:225px}.min-h-\[120px\]{min-height:120px}.min-h-0{min-height:0}.min-w-\[120px\]{min-width:120px}.min-w-\[80px\]{min-width:80px}.min-w-0{min-width:0}.w-\[11px\]{width:11px}.w-\[15px\]{width:15px}.w-\[18px\]{width:18px}.w-\[24px\]{width:24px}.w-12{width:3rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.w-screen{width:100vw}.flex{display:flex}.flex-\[2\]{flex:2}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.items-center{align-items:center}.justify-center{justify-content:center}.gap-\[8px\]{gap:8px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-0>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(0px * var(--un-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(.5rem * var(--un-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-\[\#8552A1\]{--un-border-opacity:1;border-color:rgb(133 82 161 / var(--un-border-opacity))}.border-\[\#9b6bc2\]{--un-border-opacity:1;border-color:rgb(155 107 194 / var(--un-border-opacity))}.border-\[\#c9cdd4\]{--un-border-opacity:1;border-color:rgb(201 205 212 / var(--un-border-opacity))}.border-\[\#f7e0e0\]{--un-border-opacity:1;border-color:rgb(247 224 224 / var(--un-border-opacity))}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border-none{border-style:none}.border-solid{border-style:solid}.bg-\[\#9b6bc2\]{--un-bg-opacity:1;background-color:rgb(155 107 194 / var(--un-bg-opacity))}.bg-\[\#F3EDF7\]{--un-bg-opacity:1;background-color:rgb(243 237 247 / var(--un-bg-opacity))}.bg-\[\#f7f8fa\]{--un-bg-opacity:1;background-color:rgb(247 248 250 / var(--un-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}.object-cover{object-fit:cover}.object-contain{object-fit:contain}.p-0{padding:0}.p-1\.5{padding:.375rem}.p-8px{padding:8px}.px-\[8px\]{padding-left:8px;padding-right:8px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-\[8px\]{padding-top:8px;padding-bottom:8px}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-\[8px\]{padding-bottom:8px}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pr-\[8px\]{padding-right:8px}.pr-\[9px\]{padding-right:9px}.pr-2{padding-right:.5rem}.pt-1{padding-top:.25rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-\[12px\]{font-size:12px}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[\#4e5969\]{--un-text-opacity:1;color:rgb(78 89 105 / var(--un-text-opacity))}.text-\[\#8552A1\]{--un-text-opacity:1;color:rgb(133 82 161 / var(--un-text-opacity))}.text-\[\#86909c\]{--un-text-opacity:1;color:rgb(134 144 156 / var(--un-text-opacity))}.text-black{--un-text-opacity:1;color:rgb(0 0 0 / var(--un-text-opacity))}.text-gray-500{--un-text-opacity:1;color:rgb(107 114 128 / var(--un-text-opacity))}.font-bold{font-weight:700}.font-medium{font-weight:500}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.opacity-0{opacity:0}.opacity-70,.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-85:hover{opacity:.85}.shadow-sm{--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.placeholder-\[\#4e5969\]::placeholder{--un-placeholder-opacity:1;color:rgb(78 89 105 / var(--un-placeholder-opacity))}.placeholder-\[\#a2a0a9\]::placeholder{--un-placeholder-opacity:1;color:rgb(162 160 169 / var(--un-placeholder-opacity))}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{width:100%;height:100vh}.scrollbar-hover{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hover::-webkit-scrollbar{width:0;height:0}.scrollbar-hover[data-overflowing=true]:hover{scrollbar-width:thin;scrollbar-color:#c9cdd4 transparent}.scrollbar-hover[data-overflowing=true]:hover::-webkit-scrollbar{width:8px;height:8px}.scrollbar-hover[data-overflowing=true]:hover::-webkit-scrollbar-thumb{background-color:#c9cdd4;border-radius:9999px}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.tree-icon-wrapper[data-v-1709e607]{position:relative;width:17px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tree-toggle[data-v-1709e607]{width:15px;height:15px;padding:0;border:0;background:transparent;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.tree-vertical-line[data-v-1709e607]{position:absolute;left:8px;top:20px;bottom:12px;width:1px;background:#c9cdd4}.tree-horizontal-line[data-v-1709e607]{position:absolute;left:8px;top:12px;width:10px;height:1px;background:#c9cdd4}.favorite-active[data-v-1709e607]{filter:brightness(0) saturate(100%) invert(16%) sepia(96%) saturate(7491%) hue-rotate(356deg) brightness(99%) contrast(119%)}.favorite-indent[data-v-e8bbd3fa]{padding-left:2ch}.favorite-active[data-v-e8bbd3fa]{filter:brightness(0) saturate(100%) invert(16%) sepia(96%) saturate(7491%) hue-rotate(356deg) brightness(99%) contrast(119%)}.svg-preview-container[data-v-15496019]{width:fit-content;max-width:100%}.svg-preview-container[data-v-15496019] svg{display:block;width:auto;height:auto;max-width:100%;max-height:none}.font-size-range[data-v-d8854dc4]{-webkit-appearance:none;appearance:none;height:3px;border-radius:10px;background:#e5e6eb}.font-size-range[data-v-d8854dc4]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0000001a;border:1px solid #e5e6eb;cursor:pointer}.font-size-range[data-v-d8854dc4]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0000001a;border:1px solid #e5e6eb;cursor:pointer}.font-size-range[data-v-d8854dc4]::-moz-range-track{height:3px;border-radius:10px;background:transparent} diff --git a/frontend/dist/assets/jszip.min-CRv3yS3R.js b/frontend/dist/assets/jszip.min-CRv3yS3R.js deleted file mode 100644 index 16dd83c..0000000 --- a/frontend/dist/assets/jszip.min-CRv3yS3R.js +++ /dev/null @@ -1,2 +0,0 @@ -import{c as vt,a as Bt}from"./_commonjsHelpers-DsqdWQfm.js";function Rt(ct,wt){for(var _=0;_N[w]})}}}return Object.freeze(Object.defineProperty(ct,Symbol.toStringTag,{value:"Module"}))}function yt(ct){throw new Error('Could not dynamically require "'+ct+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var xt={exports:{}};var Ct;function Tt(){return Ct||(Ct=1,(function(ct,wt){(function(_){ct.exports=_()})(function(){return(function _(N,w,u){function o(g,y){if(!w[g]){if(!N[g]){var p=typeof yt=="function"&&yt;if(!y&&p)return p(g,!0);if(n)return n(g,!0);var b=new Error("Cannot find module '"+g+"'");throw b.code="MODULE_NOT_FOUND",b}var i=w[g]={exports:{}};N[g][0].call(i.exports,function(d){var r=N[g][1][d];return o(r||d)},i,i.exports,_,N,w,u)}return w[g].exports}for(var n=typeof yt=="function"&&yt,h=0;h>2,i=(3&g)<<4|y>>4,d=1>6:64,r=2>4,y=(15&b)<<4|(i=n.indexOf(h.charAt(r++)))>>2,p=(3&i)<<6|(d=n.indexOf(h.charAt(r++))),c[l++]=g,i!==64&&(c[l++]=y),d!==64&&(c[l++]=p);return c}},{"./support":30,"./utils":32}],2:[function(_,N,w){var u=_("./external"),o=_("./stream/DataWorker"),n=_("./stream/Crc32Probe"),h=_("./stream/DataLengthProbe");function g(y,p,b,i,d){this.compressedSize=y,this.uncompressedSize=p,this.crc32=b,this.compression=i,this.compressedContent=d}g.prototype={getContentWorker:function(){var y=new o(u.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new h("data_length")),p=this;return y.on("end",function(){if(this.streamInfo.data_length!==p.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),y},getCompressedWorker:function(){return new o(u.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},g.createWorkerFrom=function(y,p,b){return y.pipe(new n).pipe(new h("uncompressedSize")).pipe(p.compressWorker(b)).pipe(new h("compressedSize")).withStreamInfo("compression",p)},N.exports=g},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(_,N,w){var u=_("./stream/GenericWorker");w.STORE={magic:"\0\0",compressWorker:function(){return new u("STORE compression")},uncompressWorker:function(){return new u("STORE decompression")}},w.DEFLATE=_("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(_,N,w){var u=_("./utils"),o=(function(){for(var n,h=[],g=0;g<256;g++){n=g;for(var y=0;y<8;y++)n=1&n?3988292384^n>>>1:n>>>1;h[g]=n}return h})();N.exports=function(n,h){return n!==void 0&&n.length?u.getTypeOf(n)!=="string"?(function(g,y,p,b){var i=o,d=b+p;g^=-1;for(var r=b;r>>8^i[255&(g^y[r])];return-1^g})(0|h,n,n.length,0):(function(g,y,p,b){var i=o,d=b+p;g^=-1;for(var r=b;r>>8^i[255&(g^y.charCodeAt(r))];return-1^g})(0|h,n,n.length,0):0}},{"./utils":32}],5:[function(_,N,w){w.base64=!1,w.binary=!1,w.dir=!1,w.createFolders=!0,w.date=null,w.compression=null,w.compressionOptions=null,w.comment=null,w.unixPermissions=null,w.dosPermissions=null},{}],6:[function(_,N,w){var u=null;u=typeof Promise<"u"?Promise:_("lie"),N.exports={Promise:u}},{lie:37}],7:[function(_,N,w){var u=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",o=_("pako"),n=_("./utils"),h=_("./stream/GenericWorker"),g=u?"uint8array":"array";function y(p,b){h.call(this,"FlateWorker/"+p),this._pako=null,this._pakoAction=p,this._pakoOptions=b,this.meta={}}w.magic="\b\0",n.inherits(y,h),y.prototype.processChunk=function(p){this.meta=p.meta,this._pako===null&&this._createPako(),this._pako.push(n.transformTo(g,p.data),!1)},y.prototype.flush=function(){h.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},y.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},y.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var p=this;this._pako.onData=function(b){p.push({data:b,meta:p.meta})}},w.compressWorker=function(p){return new y("Deflate",p)},w.uncompressWorker=function(){return new y("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(_,N,w){function u(i,d){var r,l="";for(r=0;r>>=8;return l}function o(i,d,r,l,a,c){var v,S,x=i.file,D=i.compression,O=c!==g.utf8encode,j=n.transformTo("string",c(x.name)),I=n.transformTo("string",g.utf8encode(x.name)),W=x.comment,q=n.transformTo("string",c(W)),m=n.transformTo("string",g.utf8encode(W)),B=I.length!==x.name.length,e=m.length!==W.length,T="",J="",U="",$=x.dir,L=x.date,V={crc32:0,compressedSize:0,uncompressedSize:0};d&&!r||(V.crc32=i.crc32,V.compressedSize=i.compressedSize,V.uncompressedSize=i.uncompressedSize);var E=0;d&&(E|=8),O||!B&&!e||(E|=2048);var C=0,X=0;$&&(C|=16),a==="UNIX"?(X=798,C|=(function(H,nt){var ot=H;return H||(ot=nt?16893:33204),(65535&ot)<<16})(x.unixPermissions,$)):(X=20,C|=(function(H){return 63&(H||0)})(x.dosPermissions)),v=L.getUTCHours(),v<<=6,v|=L.getUTCMinutes(),v<<=5,v|=L.getUTCSeconds()/2,S=L.getUTCFullYear()-1980,S<<=4,S|=L.getUTCMonth()+1,S<<=5,S|=L.getUTCDate(),B&&(J=u(1,1)+u(y(j),4)+I,T+="up"+u(J.length,2)+J),e&&(U=u(1,1)+u(y(q),4)+m,T+="uc"+u(U.length,2)+U);var G="";return G+=` -\0`,G+=u(E,2),G+=D.magic,G+=u(v,2),G+=u(S,2),G+=u(V.crc32,4),G+=u(V.compressedSize,4),G+=u(V.uncompressedSize,4),G+=u(j.length,2),G+=u(T.length,2),{fileRecord:p.LOCAL_FILE_HEADER+G+j+T,dirRecord:p.CENTRAL_FILE_HEADER+u(X,2)+G+u(q.length,2)+"\0\0\0\0"+u(C,4)+u(l,4)+j+T+q}}var n=_("../utils"),h=_("../stream/GenericWorker"),g=_("../utf8"),y=_("../crc32"),p=_("../signature");function b(i,d,r,l){h.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=d,this.zipPlatform=r,this.encodeFileName=l,this.streamFiles=i,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}n.inherits(b,h),b.prototype.push=function(i){var d=i.meta.percent||0,r=this.entriesCount,l=this._sources.length;this.accumulate?this.contentBuffer.push(i):(this.bytesWritten+=i.data.length,h.prototype.push.call(this,{data:i.data,meta:{currentFile:this.currentFile,percent:r?(d+100*(r-l-1))/r:100}}))},b.prototype.openedSource=function(i){this.currentSourceOffset=this.bytesWritten,this.currentFile=i.file.name;var d=this.streamFiles&&!i.file.dir;if(d){var r=o(i,d,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},b.prototype.closedSource=function(i){this.accumulate=!1;var d=this.streamFiles&&!i.file.dir,r=o(i,d,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),d)this.push({data:(function(l){return p.DATA_DESCRIPTOR+u(l.crc32,4)+u(l.compressedSize,4)+u(l.uncompressedSize,4)})(i),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},b.prototype.flush=function(){for(var i=this.bytesWritten,d=0;d=this.index;h--)g=(g<<8)+this.byteAt(h);return this.index+=n,g},readString:function(n){return u.transformTo("string",this.readData(n))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var n=this.readInt(4);return new Date(Date.UTC(1980+(n>>25&127),(n>>21&15)-1,n>>16&31,n>>11&31,n>>5&63,(31&n)<<1))}},N.exports=o},{"../utils":32}],19:[function(_,N,w){var u=_("./Uint8ArrayReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.readData=function(n){this.checkOffset(n);var h=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(_,N,w){var u=_("./DataReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.byteAt=function(n){return this.data.charCodeAt(this.zero+n)},o.prototype.lastIndexOfSignature=function(n){return this.data.lastIndexOf(n)-this.zero},o.prototype.readAndCheckSignature=function(n){return n===this.readData(4)},o.prototype.readData=function(n){this.checkOffset(n);var h=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./DataReader":18}],21:[function(_,N,w){var u=_("./ArrayReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.readData=function(n){if(this.checkOffset(n),n===0)return new Uint8Array(0);var h=this.data.subarray(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(_,N,w){var u=_("../utils"),o=_("../support"),n=_("./ArrayReader"),h=_("./StringReader"),g=_("./NodeBufferReader"),y=_("./Uint8ArrayReader");N.exports=function(p){var b=u.getTypeOf(p);return u.checkSupport(b),b!=="string"||o.uint8array?b==="nodebuffer"?new g(p):o.uint8array?new y(u.transformTo("uint8array",p)):new n(u.transformTo("array",p)):new h(p)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(_,N,w){w.LOCAL_FILE_HEADER="PK",w.CENTRAL_FILE_HEADER="PK",w.CENTRAL_DIRECTORY_END="PK",w.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",w.ZIP64_CENTRAL_DIRECTORY_END="PK",w.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(_,N,w){var u=_("./GenericWorker"),o=_("../utils");function n(h){u.call(this,"ConvertWorker to "+h),this.destType=h}o.inherits(n,u),n.prototype.processChunk=function(h){this.push({data:o.transformTo(this.destType,h.data),meta:h.meta})},N.exports=n},{"../utils":32,"./GenericWorker":28}],25:[function(_,N,w){var u=_("./GenericWorker"),o=_("../crc32");function n(){u.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}_("../utils").inherits(n,u),n.prototype.processChunk=function(h){this.streamInfo.crc32=o(h.data,this.streamInfo.crc32||0),this.push(h)},N.exports=n},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(_,N,w){var u=_("../utils"),o=_("./GenericWorker");function n(h){o.call(this,"DataLengthProbe for "+h),this.propName=h,this.withStreamInfo(h,0)}u.inherits(n,o),n.prototype.processChunk=function(h){if(h){var g=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=g+h.data.length}o.prototype.processChunk.call(this,h)},N.exports=n},{"../utils":32,"./GenericWorker":28}],27:[function(_,N,w){var u=_("../utils"),o=_("./GenericWorker");function n(h){o.call(this,"DataWorker");var g=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,h.then(function(y){g.dataIsReady=!0,g.data=y,g.max=y&&y.length||0,g.type=u.getTypeOf(y),g.isPaused||g._tickAndRepeat()},function(y){g.error(y)})}u.inherits(n,o),n.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},n.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,u.delay(this._tickAndRepeat,[],this)),!0)},n.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(u.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},n.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var h=null,g=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":h=this.data.substring(this.index,g);break;case"uint8array":h=this.data.subarray(this.index,g);break;case"array":case"nodebuffer":h=this.data.slice(this.index,g)}return this.index=g,this.push({data:h,meta:{percent:this.max?this.index/this.max*100:0}})},N.exports=n},{"../utils":32,"./GenericWorker":28}],28:[function(_,N,w){function u(o){this.name=o||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}u.prototype={push:function(o){this.emit("data",o)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(o){this.emit("error",o)}return!0},error:function(o){return!this.isFinished&&(this.isPaused?this.generatedError=o:(this.isFinished=!0,this.emit("error",o),this.previous&&this.previous.error(o),this.cleanUp()),!0)},on:function(o,n){return this._listeners[o].push(n),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(o,n){if(this._listeners[o])for(var h=0;h "+o:o}},N.exports=u},{}],29:[function(_,N,w){var u=_("../utils"),o=_("./ConvertWorker"),n=_("./GenericWorker"),h=_("../base64"),g=_("../support"),y=_("../external"),p=null;if(g.nodestream)try{p=_("../nodejs/NodejsStreamOutputAdapter")}catch{}function b(d,r){return new y.Promise(function(l,a){var c=[],v=d._internalType,S=d._outputType,x=d._mimeType;d.on("data",function(D,O){c.push(D),r&&r(O)}).on("error",function(D){c=[],a(D)}).on("end",function(){try{var D=(function(O,j,I){switch(O){case"blob":return u.newBlob(u.transformTo("arraybuffer",j),I);case"base64":return h.encode(j);default:return u.transformTo(O,j)}})(S,(function(O,j){var I,W=0,q=null,m=0;for(I=0;I"u")w.blob=!1;else{var u=new ArrayBuffer(0);try{w.blob=new Blob([u],{type:"application/zip"}).size===0}catch{try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(u),w.blob=o.getBlob("application/zip").size===0}catch{w.blob=!1}}}try{w.nodestream=!!_("readable-stream").Readable}catch{w.nodestream=!1}},{"readable-stream":16}],31:[function(_,N,w){for(var u=_("./utils"),o=_("./support"),n=_("./nodejsUtils"),h=_("./stream/GenericWorker"),g=new Array(256),y=0;y<256;y++)g[y]=252<=y?6:248<=y?5:240<=y?4:224<=y?3:192<=y?2:1;g[254]=g[254]=1;function p(){h.call(this,"utf-8 decode"),this.leftOver=null}function b(){h.call(this,"utf-8 encode")}w.utf8encode=function(i){return o.nodebuffer?n.newBufferFrom(i,"utf-8"):(function(d){var r,l,a,c,v,S=d.length,x=0;for(c=0;c>>6:(l<65536?r[v++]=224|l>>>12:(r[v++]=240|l>>>18,r[v++]=128|l>>>12&63),r[v++]=128|l>>>6&63),r[v++]=128|63&l);return r})(i)},w.utf8decode=function(i){return o.nodebuffer?u.transformTo("nodebuffer",i).toString("utf-8"):(function(d){var r,l,a,c,v=d.length,S=new Array(2*v);for(r=l=0;r>10&1023,S[l++]=56320|1023&a)}return S.length!==l&&(S.subarray?S=S.subarray(0,l):S.length=l),u.applyFromCharCode(S)})(i=u.transformTo(o.uint8array?"uint8array":"array",i))},u.inherits(p,h),p.prototype.processChunk=function(i){var d=u.transformTo(o.uint8array?"uint8array":"array",i.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var r=d;(d=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),d.set(r,this.leftOver.length)}else d=this.leftOver.concat(d);this.leftOver=null}var l=(function(c,v){var S;for((v=v||c.length)>c.length&&(v=c.length),S=v-1;0<=S&&(192&c[S])==128;)S--;return S<0||S===0?v:S+g[c[S]]>v?S:v})(d),a=d;l!==d.length&&(o.uint8array?(a=d.subarray(0,l),this.leftOver=d.subarray(l,d.length)):(a=d.slice(0,l),this.leftOver=d.slice(l,d.length))),this.push({data:w.utf8decode(a),meta:i.meta})},p.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:w.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},w.Utf8DecodeWorker=p,u.inherits(b,h),b.prototype.processChunk=function(i){this.push({data:w.utf8encode(i.data),meta:i.meta})},w.Utf8EncodeWorker=b},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(_,N,w){var u=_("./support"),o=_("./base64"),n=_("./nodejsUtils"),h=_("./external");function g(r){return r}function y(r,l){for(var a=0;a>8;this.dir=!!(16&this.externalFileAttributes),i==0&&(this.dosPermissions=63&this.externalFileAttributes),i==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var i=u(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=i.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=i.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=i.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=i.readInt(4))}},readExtraFields:function(i){var d,r,l,a=i.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});i.index+4>>6:(i<65536?b[l++]=224|i>>>12:(b[l++]=240|i>>>18,b[l++]=128|i>>>12&63),b[l++]=128|i>>>6&63),b[l++]=128|63&i);return b},w.buf2binstring=function(p){return y(p,p.length)},w.binstring2buf=function(p){for(var b=new u.Buf8(p.length),i=0,d=b.length;i>10&1023,c[d++]=56320|1023&r)}return y(c,d)},w.utf8border=function(p,b){var i;for((b=b||p.length)>p.length&&(b=p.length),i=b-1;0<=i&&(192&p[i])==128;)i--;return i<0||i===0?b:i+h[p[i]]>b?i:b}},{"./common":41}],43:[function(_,N,w){N.exports=function(u,o,n,h){for(var g=65535&u|0,y=u>>>16&65535|0,p=0;n!==0;){for(n-=p=2e3>>1:o>>>1;n[h]=o}return n})();N.exports=function(o,n,h,g){var y=u,p=g+h;o^=-1;for(var b=g;b>>8^y[255&(o^n[b])];return-1^o}},{}],46:[function(_,N,w){var u,o=_("../utils/common"),n=_("./trees"),h=_("./adler32"),g=_("./crc32"),y=_("./messages"),p=0,b=4,i=0,d=-2,r=-1,l=4,a=2,c=8,v=9,S=286,x=30,D=19,O=2*S+1,j=15,I=3,W=258,q=W+I+1,m=42,B=113,e=1,T=2,J=3,U=4;function $(t,R){return t.msg=y[R],R}function L(t){return(t<<1)-(4t.avail_out&&(A=t.avail_out),A!==0&&(o.arraySet(t.output,R.pending_buf,R.pending_out,A,t.next_out),t.next_out+=A,R.pending_out+=A,t.total_out+=A,t.avail_out-=A,R.pending-=A,R.pending===0&&(R.pending_out=0))}function C(t,R){n._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,R),t.block_start=t.strstart,E(t.strm)}function X(t,R){t.pending_buf[t.pending++]=R}function G(t,R){t.pending_buf[t.pending++]=R>>>8&255,t.pending_buf[t.pending++]=255&R}function H(t,R){var A,f,s=t.max_chain_length,k=t.strstart,F=t.prev_length,P=t.nice_match,z=t.strstart>t.w_size-q?t.strstart-(t.w_size-q):0,Z=t.window,K=t.w_mask,M=t.prev,Y=t.strstart+W,rt=Z[k+F-1],tt=Z[k+F];t.prev_length>=t.good_match&&(s>>=2),P>t.lookahead&&(P=t.lookahead);do if(Z[(A=R)+F]===tt&&Z[A+F-1]===rt&&Z[A]===Z[k]&&Z[++A]===Z[k+1]){k+=2,A++;do;while(Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&kz&&--s!=0);return F<=t.lookahead?F:t.lookahead}function nt(t){var R,A,f,s,k,F,P,z,Z,K,M=t.w_size;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=M+(M-q)){for(o.arraySet(t.window,t.window,M,M,0),t.match_start-=M,t.strstart-=M,t.block_start-=M,R=A=t.hash_size;f=t.head[--R],t.head[R]=M<=f?f-M:0,--A;);for(R=A=M;f=t.prev[--R],t.prev[R]=M<=f?f-M:0,--A;);s+=M}if(t.strm.avail_in===0)break;if(F=t.strm,P=t.window,z=t.strstart+t.lookahead,Z=s,K=void 0,K=F.avail_in,Z=I)for(k=t.strstart-t.insert,t.ins_h=t.window[k],t.ins_h=(t.ins_h<=I&&(t.ins_h=(t.ins_h<=I)if(f=n._tr_tally(t,t.strstart-t.match_start,t.match_length-I),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=I){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=I&&(t.ins_h=(t.ins_h<=I&&t.match_length<=t.prev_length){for(s=t.strstart+t.lookahead-I,f=n._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-I),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=s&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(A=t.pending_buf_size-5);;){if(t.lookahead<=1){if(nt(t),t.lookahead===0&&R===p)return e;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var f=t.block_start+A;if((t.strstart===0||t.strstart>=f)&&(t.lookahead=t.strstart-f,t.strstart=f,C(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-q&&(C(t,!1),t.strm.avail_out===0))return e}return t.insert=0,R===b?(C(t,!0),t.strm.avail_out===0?J:U):(t.strstart>t.block_start&&(C(t,!1),t.strm.avail_out),e)}),new et(4,4,8,4,ot),new et(4,5,16,8,ot),new et(4,6,32,32,ot),new et(4,4,16,16,Q),new et(8,16,32,32,Q),new et(8,16,128,128,Q),new et(8,32,128,256,Q),new et(32,128,258,1024,Q),new et(32,258,258,4096,Q)],w.deflateInit=function(t,R){return ht(t,R,c,15,8,0)},w.deflateInit2=ht,w.deflateReset=lt,w.deflateResetKeep=it,w.deflateSetHeader=function(t,R){return t&&t.state?t.state.wrap!==2?d:(t.state.gzhead=R,i):d},w.deflate=function(t,R){var A,f,s,k;if(!t||!t.state||5>8&255),X(f,f.gzhead.time>>16&255),X(f,f.gzhead.time>>24&255),X(f,f.level===9?2:2<=f.strategy||f.level<2?4:0),X(f,255&f.gzhead.os),f.gzhead.extra&&f.gzhead.extra.length&&(X(f,255&f.gzhead.extra.length),X(f,f.gzhead.extra.length>>8&255)),f.gzhead.hcrc&&(t.adler=g(t.adler,f.pending_buf,f.pending,0)),f.gzindex=0,f.status=69):(X(f,0),X(f,0),X(f,0),X(f,0),X(f,0),X(f,f.level===9?2:2<=f.strategy||f.level<2?4:0),X(f,3),f.status=B);else{var F=c+(f.w_bits-8<<4)<<8;F|=(2<=f.strategy||f.level<2?0:f.level<6?1:f.level===6?2:3)<<6,f.strstart!==0&&(F|=32),F+=31-F%31,f.status=B,G(f,F),f.strstart!==0&&(G(f,t.adler>>>16),G(f,65535&t.adler)),t.adler=1}if(f.status===69)if(f.gzhead.extra){for(s=f.pending;f.gzindex<(65535&f.gzhead.extra.length)&&(f.pending!==f.pending_buf_size||(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending!==f.pending_buf_size));)X(f,255&f.gzhead.extra[f.gzindex]),f.gzindex++;f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),f.gzindex===f.gzhead.extra.length&&(f.gzindex=0,f.status=73)}else f.status=73;if(f.status===73)if(f.gzhead.name){s=f.pending;do{if(f.pending===f.pending_buf_size&&(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending===f.pending_buf_size)){k=1;break}k=f.gzindexs&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),k===0&&(f.gzindex=0,f.status=91)}else f.status=91;if(f.status===91)if(f.gzhead.comment){s=f.pending;do{if(f.pending===f.pending_buf_size&&(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending===f.pending_buf_size)){k=1;break}k=f.gzindexs&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),k===0&&(f.status=103)}else f.status=103;if(f.status===103&&(f.gzhead.hcrc?(f.pending+2>f.pending_buf_size&&E(t),f.pending+2<=f.pending_buf_size&&(X(f,255&t.adler),X(f,t.adler>>8&255),t.adler=0,f.status=B)):f.status=B),f.pending!==0){if(E(t),t.avail_out===0)return f.last_flush=-1,i}else if(t.avail_in===0&&L(R)<=L(A)&&R!==b)return $(t,-5);if(f.status===666&&t.avail_in!==0)return $(t,-5);if(t.avail_in!==0||f.lookahead!==0||R!==p&&f.status!==666){var P=f.strategy===2?(function(z,Z){for(var K;;){if(z.lookahead===0&&(nt(z),z.lookahead===0)){if(Z===p)return e;break}if(z.match_length=0,K=n._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++,K&&(C(z,!1),z.strm.avail_out===0))return e}return z.insert=0,Z===b?(C(z,!0),z.strm.avail_out===0?J:U):z.last_lit&&(C(z,!1),z.strm.avail_out===0)?e:T})(f,R):f.strategy===3?(function(z,Z){for(var K,M,Y,rt,tt=z.window;;){if(z.lookahead<=W){if(nt(z),z.lookahead<=W&&Z===p)return e;if(z.lookahead===0)break}if(z.match_length=0,z.lookahead>=I&&0z.lookahead&&(z.match_length=z.lookahead)}if(z.match_length>=I?(K=n._tr_tally(z,1,z.match_length-I),z.lookahead-=z.match_length,z.strstart+=z.match_length,z.match_length=0):(K=n._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++),K&&(C(z,!1),z.strm.avail_out===0))return e}return z.insert=0,Z===b?(C(z,!0),z.strm.avail_out===0?J:U):z.last_lit&&(C(z,!1),z.strm.avail_out===0)?e:T})(f,R):u[f.level].func(f,R);if(P!==J&&P!==U||(f.status=666),P===e||P===J)return t.avail_out===0&&(f.last_flush=-1),i;if(P===T&&(R===1?n._tr_align(f):R!==5&&(n._tr_stored_block(f,0,0,!1),R===3&&(V(f.head),f.lookahead===0&&(f.strstart=0,f.block_start=0,f.insert=0))),E(t),t.avail_out===0))return f.last_flush=-1,i}return R!==b?i:f.wrap<=0?1:(f.wrap===2?(X(f,255&t.adler),X(f,t.adler>>8&255),X(f,t.adler>>16&255),X(f,t.adler>>24&255),X(f,255&t.total_in),X(f,t.total_in>>8&255),X(f,t.total_in>>16&255),X(f,t.total_in>>24&255)):(G(f,t.adler>>>16),G(f,65535&t.adler)),E(t),0=A.w_size&&(k===0&&(V(A.head),A.strstart=0,A.block_start=0,A.insert=0),Z=new o.Buf8(A.w_size),o.arraySet(Z,R,K-A.w_size,A.w_size,0),R=Z,K=A.w_size),F=t.avail_in,P=t.next_in,z=t.input,t.avail_in=K,t.next_in=0,t.input=R,nt(A);A.lookahead>=I;){for(f=A.strstart,s=A.lookahead-(I-1);A.ins_h=(A.ins_h<>>=I=j>>>24,v-=I,(I=j>>>16&255)===0)T[y++]=65535&j;else{if(!(16&I)){if((64&I)==0){j=S[(65535&j)+(c&(1<>>=I,v-=I),v<15&&(c+=e[h++]<>>=I=j>>>24,v-=I,!(16&(I=j>>>16&255))){if((64&I)==0){j=x[(65535&j)+(c&(1<>>=I,v-=I,(I=y-p)>3,c&=(1<<(v-=W<<3))-1,u.next_in=h,u.next_out=y,u.avail_in=h>>24&255)+(m>>>8&65280)+((65280&m)<<8)+((255&m)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new u.Buf16(320),this.work=new u.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function v(m){var B;return m&&m.state?(B=m.state,m.total_in=m.total_out=B.total=0,m.msg="",B.wrap&&(m.adler=1&B.wrap),B.mode=d,B.last=0,B.havedict=0,B.dmax=32768,B.head=null,B.hold=0,B.bits=0,B.lencode=B.lendyn=new u.Buf32(r),B.distcode=B.distdyn=new u.Buf32(l),B.sane=1,B.back=-1,b):i}function S(m){var B;return m&&m.state?((B=m.state).wsize=0,B.whave=0,B.wnext=0,v(m)):i}function x(m,B){var e,T;return m&&m.state?(T=m.state,B<0?(e=0,B=-B):(e=1+(B>>4),B<48&&(B&=15)),B&&(B<8||15=U.wsize?(u.arraySet(U.window,B,e-U.wsize,U.wsize,0),U.wnext=0,U.whave=U.wsize):(T<(J=U.wsize-U.wnext)&&(J=T),u.arraySet(U.window,B,e-T,J,U.wnext),(T-=J)?(u.arraySet(U.window,B,e-T,T,0),U.wnext=T,U.whave=U.wsize):(U.wnext+=J,U.wnext===U.wsize&&(U.wnext=0),U.whave>>8&255,e.check=n(e.check,k,2,0),C=E=0,e.mode=2;break}if(e.flags=0,e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&E)<<8)+(E>>8))%31){m.msg="incorrect header check",e.mode=30;break}if((15&E)!=8){m.msg="unknown compression method",e.mode=30;break}if(C-=4,t=8+(15&(E>>>=4)),e.wbits===0)e.wbits=t;else if(t>e.wbits){m.msg="invalid window size",e.mode=30;break}e.dmax=1<>8&1),512&e.flags&&(k[0]=255&E,k[1]=E>>>8&255,e.check=n(e.check,k,2,0)),C=E=0,e.mode=3;case 3:for(;C<32;){if(L===0)break t;L--,E+=T[U++]<>>8&255,k[2]=E>>>16&255,k[3]=E>>>24&255,e.check=n(e.check,k,4,0)),C=E=0,e.mode=4;case 4:for(;C<16;){if(L===0)break t;L--,E+=T[U++]<>8),512&e.flags&&(k[0]=255&E,k[1]=E>>>8&255,e.check=n(e.check,k,2,0)),C=E=0,e.mode=5;case 5:if(1024&e.flags){for(;C<16;){if(L===0)break t;L--,E+=T[U++]<>>8&255,e.check=n(e.check,k,2,0)),C=E=0}else e.head&&(e.head.extra=null);e.mode=6;case 6:if(1024&e.flags&&(L<(H=e.length)&&(H=L),H&&(e.head&&(t=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Array(e.head.extra_len)),u.arraySet(e.head.extra,T,U,H,t)),512&e.flags&&(e.check=n(e.check,T,H,U)),L-=H,U+=H,e.length-=H),e.length))break t;e.length=0,e.mode=7;case 7:if(2048&e.flags){if(L===0)break t;for(H=0;t=T[U+H++],e.head&&t&&e.length<65536&&(e.head.name+=String.fromCharCode(t)),t&&H>9&1,e.head.done=!0),m.adler=e.check=0,e.mode=12;break;case 10:for(;C<32;){if(L===0)break t;L--,E+=T[U++]<>>=7&C,C-=7&C,e.mode=27;break}for(;C<3;){if(L===0)break t;L--,E+=T[U++]<>>=1)){case 0:e.mode=14;break;case 1:if(W(e),e.mode=20,B!==6)break;E>>>=2,C-=2;break t;case 2:e.mode=17;break;case 3:m.msg="invalid block type",e.mode=30}E>>>=2,C-=2;break;case 14:for(E>>>=7&C,C-=7&C;C<32;){if(L===0)break t;L--,E+=T[U++]<>>16^65535)){m.msg="invalid stored block lengths",e.mode=30;break}if(e.length=65535&E,C=E=0,e.mode=15,B===6)break t;case 15:e.mode=16;case 16:if(H=e.length){if(L>>=5,C-=5,e.ndist=1+(31&E),E>>>=5,C-=5,e.ncode=4+(15&E),E>>>=4,C-=4,286>>=3,C-=3}for(;e.have<19;)e.lens[F[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,A={bits:e.lenbits},R=g(0,e.lens,0,19,e.lencode,0,e.work,A),e.lenbits=A.bits,R){m.msg="invalid code lengths set",e.mode=30;break}e.have=0,e.mode=19;case 19:for(;e.have>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=Q,C-=Q,e.lens[e.have++]=st;else{if(st===16){for(f=Q+2;C>>=Q,C-=Q,e.have===0){m.msg="invalid bit length repeat",e.mode=30;break}t=e.lens[e.have-1],H=3+(3&E),E>>>=2,C-=2}else if(st===17){for(f=Q+3;C>>=Q)),E>>>=3,C-=3}else{for(f=Q+7;C>>=Q)),E>>>=7,C-=7}if(e.have+H>e.nlen+e.ndist){m.msg="invalid bit length repeat",e.mode=30;break}for(;H--;)e.lens[e.have++]=t}}if(e.mode===30)break;if(e.lens[256]===0){m.msg="invalid code -- missing end-of-block",e.mode=30;break}if(e.lenbits=9,A={bits:e.lenbits},R=g(y,e.lens,0,e.nlen,e.lencode,0,e.work,A),e.lenbits=A.bits,R){m.msg="invalid literal/lengths set",e.mode=30;break}if(e.distbits=6,e.distcode=e.distdyn,A={bits:e.distbits},R=g(p,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,A),e.distbits=A.bits,R){m.msg="invalid distances set",e.mode=30;break}if(e.mode=20,B===6)break t;case 20:e.mode=21;case 21:if(6<=L&&258<=V){m.next_out=$,m.avail_out=V,m.next_in=U,m.avail_in=L,e.hold=E,e.bits=C,h(m,G),$=m.next_out,J=m.output,V=m.avail_out,U=m.next_in,T=m.input,L=m.avail_in,E=e.hold,C=e.bits,e.mode===12&&(e.back=-1);break}for(e.back=0;et=(s=e.lencode[E&(1<>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>it)])>>>16&255,st=65535&s,!(it+(Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=it,C-=it,e.back+=it}if(E>>>=Q,C-=Q,e.back+=Q,e.length=st,et===0){e.mode=26;break}if(32&et){e.back=-1,e.mode=12;break}if(64&et){m.msg="invalid literal/length code",e.mode=30;break}e.extra=15&et,e.mode=22;case 22:if(e.extra){for(f=e.extra;C>>=e.extra,C-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=23;case 23:for(;et=(s=e.distcode[E&(1<>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>it)])>>>16&255,st=65535&s,!(it+(Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=it,C-=it,e.back+=it}if(E>>>=Q,C-=Q,e.back+=Q,64&et){m.msg="invalid distance code",e.mode=30;break}e.offset=st,e.extra=15&et,e.mode=24;case 24:if(e.extra){for(f=e.extra;C>>=e.extra,C-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){m.msg="invalid distance too far back",e.mode=30;break}e.mode=25;case 25:if(V===0)break t;if(H=G-V,e.offset>H){if((H=e.offset-H)>e.whave&&e.sane){m.msg="invalid distance too far back",e.mode=30;break}nt=H>e.wnext?(H-=e.wnext,e.wsize-H):e.wnext-H,H>e.length&&(H=e.length),ot=e.window}else ot=J,nt=$-e.offset,H=e.length;for(VO?(I=nt[ot+l[B]],C[X+l[B]]):(I=96,0),c=1<>$)+(v-=c)]=j<<24|I<<16|W|0,v!==0;);for(c=1<>=1;if(c!==0?(E&=c-1,E+=c):E=0,B++,--G[m]==0){if(m===T)break;m=p[b+l[B]]}if(J>>7)]}function X(s,k){s.pending_buf[s.pending++]=255&k,s.pending_buf[s.pending++]=k>>>8&255}function G(s,k,F){s.bi_valid>a-F?(s.bi_buf|=k<>a-s.bi_valid,s.bi_valid+=F-a):(s.bi_buf|=k<>>=1,F<<=1,0<--k;);return F>>>1}function ot(s,k,F){var P,z,Z=new Array(l+1),K=0;for(P=1;P<=l;P++)Z[P]=K=K+F[P-1]<<1;for(z=0;z<=k;z++){var M=s[2*z+1];M!==0&&(s[2*z]=nt(Z[M]++,M))}}function Q(s){var k;for(k=0;k>1;1<=F;F--)it(s,Z,F);for(z=Y;F=s.heap[1],s.heap[1]=s.heap[s.heap_len--],it(s,Z,1),P=s.heap[1],s.heap[--s.heap_max]=F,s.heap[--s.heap_max]=P,Z[2*z]=Z[2*F]+Z[2*P],s.depth[z]=(s.depth[F]>=s.depth[P]?s.depth[F]:s.depth[P])+1,Z[2*F+1]=Z[2*P+1]=z,s.heap[1]=z++,it(s,Z,1),2<=s.heap_len;);s.heap[--s.heap_max]=s.heap[1],(function(tt,ut){var pt,ft,mt,at,gt,kt,dt=ut.dyn_tree,St=ut.max_code,At=ut.stat_desc.static_tree,It=ut.stat_desc.has_stree,Ot=ut.stat_desc.extra_bits,zt=ut.stat_desc.extra_base,_t=ut.stat_desc.max_length,bt=0;for(at=0;at<=l;at++)tt.bl_count[at]=0;for(dt[2*tt.heap[tt.heap_max]+1]=0,pt=tt.heap_max+1;pt>=7;z>>=1)if(1&rt&&M.dyn_ltree[2*Y]!==0)return o;if(M.dyn_ltree[18]!==0||M.dyn_ltree[20]!==0||M.dyn_ltree[26]!==0)return n;for(Y=32;Y>>3,(Z=s.static_len+3+7>>>3)<=z&&(z=Z)):z=Z=F+5,F+4<=z&&k!==-1?f(s,k,F,P):s.strategy===4||Z===z?(G(s,2+(P?1:0),3),lt(s,q,m)):(G(s,4+(P?1:0),3),(function(M,Y,rt,tt){var ut;for(G(M,Y-257,5),G(M,rt-1,5),G(M,tt-4,4),ut=0;ut>>8&255,s.pending_buf[s.d_buf+2*s.last_lit+1]=255&k,s.pending_buf[s.l_buf+s.last_lit]=255&F,s.last_lit++,k===0?s.dyn_ltree[2*F]++:(s.matches++,k--,s.dyn_ltree[2*(e[F]+p+1)]++,s.dyn_dtree[2*C(k)]++),s.last_lit===s.lit_bufsize-1},w._tr_align=function(s){G(s,2,3),H(s,v,q),(function(k){k.bi_valid===16?(X(k,k.bi_buf),k.bi_buf=0,k.bi_valid=0):8<=k.bi_valid&&(k.pending_buf[k.pending++]=255&k.bi_buf,k.bi_buf>>=8,k.bi_valid-=8)})(s)}},{"../utils/common":41}],53:[function(_,N,w){N.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(_,N,w){(function(u){(function(o,n){if(!o.setImmediate){var h,g,y,p,b=1,i={},d=!1,r=o.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(o);l=l&&l.setTimeout?l:o,h={}.toString.call(o.process)==="[object process]"?function(S){process.nextTick(function(){c(S)})}:(function(){if(o.postMessage&&!o.importScripts){var S=!0,x=o.onmessage;return o.onmessage=function(){S=!1},o.postMessage("","*"),o.onmessage=x,S}})()?(p="setImmediate$"+Math.random()+"$",o.addEventListener?o.addEventListener("message",v,!1):o.attachEvent("onmessage",v),function(S){o.postMessage(p+S,"*")}):o.MessageChannel?((y=new MessageChannel).port1.onmessage=function(S){c(S.data)},function(S){y.port2.postMessage(S)}):r&&"onreadystatechange"in r.createElement("script")?(g=r.documentElement,function(S){var x=r.createElement("script");x.onreadystatechange=function(){c(S),x.onreadystatechange=null,g.removeChild(x),x=null},g.appendChild(x)}):function(S){setTimeout(c,0,S)},l.setImmediate=function(S){typeof S!="function"&&(S=new Function(""+S));for(var x=new Array(arguments.length-1),D=0;D"u"?u===void 0?this:u:self)}).call(this,typeof vt<"u"?vt:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(xt)),xt.exports}var Et=Tt();const Dt=Bt(Et),Nt=Rt({__proto__:null,default:Dt},[Et]);export{Nt as j}; diff --git a/frontend/dist/assets/webicon-K25S575h.svg b/frontend/dist/assets/webicon-K25S575h.svg deleted file mode 100644 index bd830bc..0000000 --- a/frontend/dist/assets/webicon-K25S575h.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/frontend/dist/default.json b/frontend/dist/default.json deleted file mode 100644 index b482310..0000000 --- a/frontend/dist/default.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "inputText": "星程字体转换", - "fontSize": 50, - "textColor": "#dc2626", - "selectedFontIds": [ - "0001" - ], - "favoriteFontIds": [ - "0001" - ] -} diff --git a/frontend/dist/favicon.png b/frontend/dist/favicon.png deleted file mode 100644 index ecff30e..0000000 Binary files a/frontend/dist/favicon.png and /dev/null differ diff --git a/frontend/dist/favicon.svg b/frontend/dist/favicon.svg deleted file mode 100644 index bd830bc..0000000 --- a/frontend/dist/favicon.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/frontend/dist/favicon_new.png b/frontend/dist/favicon_new.png deleted file mode 100644 index cb0db49..0000000 Binary files a/frontend/dist/favicon_new.png and /dev/null differ diff --git a/frontend/dist/fonts.json b/frontend/dist/fonts.json deleted file mode 100644 index 4be1f6c..0000000 --- a/frontend/dist/fonts.json +++ /dev/null @@ -1,170 +0,0 @@ -[ - { - "id": "0001", - "name": "AlimamaDaoLiTi", - "filename": "AlimamaDaoLiTi.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/AlimamaDaoLiTi.ttf" - }, - { - "id": "0002", - "name": "Hangeuljaemin4-Regular", - "filename": "Hangeuljaemin4-Regular.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/Hangeuljaemin4-Regular.ttf" - }, - { - "id": "0003", - "name": "I.顏體", - "filename": "I.顏體.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/I.顏體.ttf" - }, - { - "id": "0004", - "name": "XCDUANZHUANGSONGTI", - "filename": "XCDUANZHUANGSONGTI.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/XCDUANZHUANGSONGTI.ttf" - }, - { - "id": "0005", - "name": "qiji-combo", - "filename": "qiji-combo.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/qiji-combo.ttf" - }, - { - "id": "0006", - "name": "临海隶书", - "filename": "临海隶书.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/临海隶书.ttf" - }, - { - "id": "0007", - "name": "京華老宋体_KingHwa_OldSong", - "filename": "京華老宋体_KingHwa_OldSong.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/京華老宋体_KingHwa_OldSong.ttf" - }, - { - "id": "0008", - "name": "优设标题黑", - "filename": "优设标题黑.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/优设标题黑.ttf" - }, - { - "id": "0009", - "name": "包图小白体", - "filename": "包图小白体.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/包图小白体.ttf" - }, - { - "id": "0010", - "name": "源界明朝", - "filename": "源界明朝.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/源界明朝.ttf" - }, - { - "id": "0011", - "name": "演示佛系体", - "filename": "演示佛系体.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/演示佛系体.ttf" - }, - { - "id": "0012", - "name": "站酷快乐体", - "filename": "站酷快乐体.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/站酷快乐体.ttf" - }, - { - "id": "0013", - "name": "问藏书房", - "filename": "问藏书房.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/问藏书房.ttf" - }, - { - "id": "0014", - "name": "霞鹜臻楷", - "filename": "霞鹜臻楷.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/霞鹜臻楷.ttf" - }, - { - "id": "0015", - "name": "庞门正道标题体", - "filename": "庞门正道标题体.ttf", - "category": "庞门正道", - "path": "/fonts/庞门正道/庞门正道标题体.ttf" - }, - { - "id": "0016", - "name": "庞门正道标题体", - "filename": "庞门正道标题体.ttf", - "category": "庞门正道-测试", - "path": "/fonts/庞门正道-测试/庞门正道标题体.ttf" - }, - { - "id": "0017", - "name": "王漢宗勘亭流繁", - "filename": "王漢宗勘亭流繁.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗勘亭流繁.ttf" - }, - { - "id": "0018", - "name": "王漢宗新潮體", - "filename": "王漢宗新潮體.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗新潮體.ttf" - }, - { - "id": "0019", - "name": "王漢宗波卡體空陰", - "filename": "王漢宗波卡體空陰.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗波卡體空陰.ttf" - }, - { - "id": "0020", - "name": "王漢宗細黑體繁", - "filename": "王漢宗細黑體繁.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗細黑體繁.ttf" - }, - { - "id": "0021", - "name": "王漢宗綜藝體雙空陰", - "filename": "王漢宗綜藝體雙空陰.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗綜藝體雙空陰.ttf" - }, - { - "id": "0022", - "name": "王漢宗超明體繁", - "filename": "王漢宗超明體繁.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗超明體繁.ttf" - }, - { - "id": "0023", - "name": "王漢宗酷儷海報", - "filename": "王漢宗酷儷海報.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗酷儷海報.ttf" - }, - { - "id": "0024", - "name": "王漢宗顏楷體繁", - "filename": "王漢宗顏楷體繁.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗顏楷體繁.ttf" - } -] \ No newline at end of file diff --git a/frontend/dist/index.html b/frontend/dist/index.html deleted file mode 100644 index 7f31bae..0000000 --- a/frontend/dist/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - Font2SVG - 字体转SVG工具 - - - - -
- - diff --git a/miniprogram/assets/fonts.json b/miniprogram/assets/fonts.json deleted file mode 100644 index d06b486..0000000 --- a/miniprogram/assets/fonts.json +++ /dev/null @@ -1,2585 +0,0 @@ -[ - { - "id": "0001", - "name": "No.1-上首锐博体", - "filename": "No.1-上首锐博体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.1-上首锐博体.ttf" - }, - { - "id": "0002", - "name": "No.10-上首叮当体", - "filename": "No.10-上首叮当体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.10-上首叮当体.ttf" - }, - { - "id": "0003", - "name": "No.100-上首纤宋体", - "filename": "No.100-上首纤宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.100-上首纤宋体.ttf" - }, - { - "id": "0004", - "name": "No.101-上首武士黑体", - "filename": "No.101-上首武士黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.101-上首武士黑体.ttf" - }, - { - "id": "0005", - "name": "No.102-上首玄藏体", - "filename": "No.102-上首玄藏体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.102-上首玄藏体.ttf" - }, - { - "id": "0006", - "name": "No.103-上首星际体", - "filename": "No.103-上首星际体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.103-上首星际体.ttf" - }, - { - "id": "0007", - "name": "No.104-上首鸿志手写体", - "filename": "No.104-上首鸿志手写体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.104-上首鸿志手写体.ttf" - }, - { - "id": "0008", - "name": "No.105-上首逍遥体", - "filename": "No.105-上首逍遥体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.105-上首逍遥体.ttf" - }, - { - "id": "0009", - "name": "No.106-上首简墨体", - "filename": "No.106-上首简墨体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.106-上首简墨体.ttf" - }, - { - "id": "0010", - "name": "No.107-上首松羽体", - "filename": "No.107-上首松羽体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.107-上首松羽体.ttf" - }, - { - "id": "0011", - "name": "No.108-上首燕尾体", - "filename": "No.108-上首燕尾体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.108-上首燕尾体.ttf" - }, - { - "id": "0012", - "name": "No.109-上首韶华体", - "filename": "No.109-上首韶华体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.109-上首韶华体.ttf" - }, - { - "id": "0013", - "name": "No.11-上首车车体", - "filename": "No.11-上首车车体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.11-上首车车体.ttf" - }, - { - "id": "0014", - "name": "No.110-上首烈宋体", - "filename": "No.110-上首烈宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.110-上首烈宋体.ttf" - }, - { - "id": "0015", - "name": "No.111-上首方舟体", - "filename": "No.111-上首方舟体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.111-上首方舟体.ttf" - }, - { - "id": "0016", - "name": "No.112-上首壹方体", - "filename": "No.112-上首壹方体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.112-上首壹方体.ttf" - }, - { - "id": "0017", - "name": "No.113-上首轩正体", - "filename": "No.113-上首轩正体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.113-上首轩正体.ttf" - }, - { - "id": "0018", - "name": "No.114-上首长城体", - "filename": "No.114-上首长城体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.114-上首长城体.ttf" - }, - { - "id": "0019", - "name": "No.115-上首音符体", - "filename": "No.115-上首音符体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.115-上首音符体.ttf" - }, - { - "id": "0020", - "name": "No.116-上首如意体", - "filename": "No.116-上首如意体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.116-上首如意体.ttf" - }, - { - "id": "0021", - "name": "No.117-上首酷峰体", - "filename": "No.117-上首酷峰体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.117-上首酷峰体.ttf" - }, - { - "id": "0022", - "name": "No.118-上首星耀体", - "filename": "No.118-上首星耀体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.118-上首星耀体.ttf" - }, - { - "id": "0023", - "name": "No.119-上首罗马体", - "filename": "No.119-上首罗马体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.119-上首罗马体.ttf" - }, - { - "id": "0024", - "name": "No.12-上首秀圆体", - "filename": "No.12-上首秀圆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.12-上首秀圆体.ttf" - }, - { - "id": "0025", - "name": "No.120-上首宽言体", - "filename": "No.120-上首宽言体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.120-上首宽言体.ttf" - }, - { - "id": "0026", - "name": "No.121-上首刻宋体", - "filename": "No.121-上首刻宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.121-上首刻宋体.ttf" - }, - { - "id": "0027", - "name": "No.122-上首云润体", - "filename": "No.122-上首云润体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.122-上首云润体.ttf" - }, - { - "id": "0028", - "name": "No.123-上首方义手刷体", - "filename": "No.123-上首方义手刷体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.123-上首方义手刷体.ttf" - }, - { - "id": "0029", - "name": "No.124-上首艺圆体", - "filename": "No.124-上首艺圆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.124-上首艺圆体.ttf" - }, - { - "id": "0030", - "name": "No.125-上首方尊体", - "filename": "No.125-上首方尊体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.125-上首方尊体.ttf" - }, - { - "id": "0031", - "name": "No.126-上首吉言体", - "filename": "No.126-上首吉言体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.126-上首吉言体.ttf" - }, - { - "id": "0032", - "name": "No.127-上首简一体", - "filename": "No.127-上首简一体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.127-上首简一体.ttf" - }, - { - "id": "0033", - "name": "No.128-上首玄黑体", - "filename": "No.128-上首玄黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.128-上首玄黑体.ttf" - }, - { - "id": "0034", - "name": "No.129-上首墨遥体", - "filename": "No.129-上首墨遥体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.129-上首墨遥体.ttf" - }, - { - "id": "0035", - "name": "No.13-上首华凤书法体", - "filename": "No.13-上首华凤书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.13-上首华凤书法体.ttf" - }, - { - "id": "0036", - "name": "No.130-上首追光手写体", - "filename": "No.130-上首追光手写体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.130-上首追光手写体.ttf" - }, - { - "id": "0037", - "name": "No.131-上首斗金体", - "filename": "No.131-上首斗金体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.131-上首斗金体.ttf" - }, - { - "id": "0038", - "name": "No.132-上首豆干体", - "filename": "No.132-上首豆干体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.132-上首豆干体.ttf" - }, - { - "id": "0039", - "name": "No.133-上首魔法体", - "filename": "No.133-上首魔法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.133-上首魔法体.ttf" - }, - { - "id": "0040", - "name": "No.134-上首文化体", - "filename": "No.134-上首文化体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.134-上首文化体.ttf" - }, - { - "id": "0041", - "name": "No.135-上首龙吟体", - "filename": "No.135-上首龙吟体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.135-上首龙吟体.ttf" - }, - { - "id": "0042", - "name": "No.136-上首悠然体", - "filename": "No.136-上首悠然体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.136-上首悠然体.ttf" - }, - { - "id": "0043", - "name": "No.137-上首本草纲目体", - "filename": "No.137-上首本草纲目体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.137-上首本草纲目体.ttf" - }, - { - "id": "0044", - "name": "No.138-上首星斗体", - "filename": "No.138-上首星斗体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.138-上首星斗体.ttf" - }, - { - "id": "0045", - "name": "No.139-上首鼎宋体", - "filename": "No.139-上首鼎宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.139-上首鼎宋体.ttf" - }, - { - "id": "0046", - "name": "No.14-上首水滴体", - "filename": "No.14-上首水滴体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.14-上首水滴体.ttf" - }, - { - "id": "0047", - "name": "No.140-上首妖刀体", - "filename": "No.140-上首妖刀体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.140-上首妖刀体.ttf" - }, - { - "id": "0048", - "name": "No.141-上首高达体", - "filename": "No.141-上首高达体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.141-上首高达体.ttf" - }, - { - "id": "0049", - "name": "No.142-上首综艺体", - "filename": "No.142-上首综艺体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.142-上首综艺体.ttf" - }, - { - "id": "0050", - "name": "No.143-上首圆木体", - "filename": "No.143-上首圆木体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.143-上首圆木体.ttf" - }, - { - "id": "0051", - "name": "No.144-上首逍遥书法体", - "filename": "No.144-上首逍遥书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.144-上首逍遥书法体.ttf" - }, - { - "id": "0052", - "name": "No.145-上首高光体", - "filename": "No.145-上首高光体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.145-上首高光体.ttf" - }, - { - "id": "0053", - "name": "No.146-上首清雅宋体", - "filename": "No.146-上首清雅宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.146-上首清雅宋体.ttf" - }, - { - "id": "0054", - "name": "No.147-上首云隶体", - "filename": "No.147-上首云隶体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.147-上首云隶体.ttf" - }, - { - "id": "0055", - "name": "No.148-上首标榜体", - "filename": "No.148-上首标榜体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.148-上首标榜体.ttf" - }, - { - "id": "0056", - "name": "No.149-上首奶酪体", - "filename": "No.149-上首奶酪体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.149-上首奶酪体.ttf" - }, - { - "id": "0057", - "name": "No.15-上首润黑体", - "filename": "No.15-上首润黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.15-上首润黑体.ttf" - }, - { - "id": "0058", - "name": "No.150-上首秋刀体", - "filename": "No.150-上首秋刀体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.150-上首秋刀体.ttf" - }, - { - "id": "0059", - "name": "No.151-上首凤鸣体", - "filename": "No.151-上首凤鸣体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.151-上首凤鸣体.ttf" - }, - { - "id": "0060", - "name": "No.152-上首南枝体", - "filename": "No.152-上首南枝体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.152-上首南枝体.ttf" - }, - { - "id": "0061", - "name": "No.152上首南枝体", - "filename": "No.152上首南枝体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.152上首南枝体.ttf" - }, - { - "id": "0062", - "name": "No.153-上首可乐体", - "filename": "No.153-上首可乐体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.153-上首可乐体.ttf" - }, - { - "id": "0063", - "name": "No.154-上首长青体", - "filename": "No.154-上首长青体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.154-上首长青体.ttf" - }, - { - "id": "0064", - "name": "No.155-上首中正宋体", - "filename": "No.155-上首中正宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.155-上首中正宋体.ttf" - }, - { - "id": "0065", - "name": "No.156-上首曲奇体", - "filename": "No.156-上首曲奇体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.156-上首曲奇体.ttf" - }, - { - "id": "0066", - "name": "No.157-上首萌萌手写体", - "filename": "No.157-上首萌萌手写体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.157-上首萌萌手写体.ttf" - }, - { - "id": "0067", - "name": "No.158-上首朗润体", - "filename": "No.158-上首朗润体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.158-上首朗润体.ttf" - }, - { - "id": "0068", - "name": "No.159-上首财神体", - "filename": "No.159-上首财神体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.159-上首财神体.ttf" - }, - { - "id": "0069", - "name": "No.16-上首锐圆体", - "filename": "No.16-上首锐圆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.16-上首锐圆体.ttf" - }, - { - "id": "0070", - "name": "No.160-上首混沌体", - "filename": "No.160-上首混沌体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.160-上首混沌体.ttf" - }, - { - "id": "0071", - "name": "No.161-上首刺云体", - "filename": "No.161-上首刺云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.161-上首刺云体.ttf" - }, - { - "id": "0072", - "name": "No.162-上首幻视体", - "filename": "No.162-上首幻视体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.162-上首幻视体.ttf" - }, - { - "id": "0073", - "name": "No.163-上首万象体", - "filename": "No.163-上首万象体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.163-上首万象体.ttf" - }, - { - "id": "0074", - "name": "No.164-上首简正体", - "filename": "No.164-上首简正体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.164-上首简正体.ttf" - }, - { - "id": "0075", - "name": "No.165-上首刺秦体", - "filename": "No.165-上首刺秦体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.165-上首刺秦体.ttf" - }, - { - "id": "0076", - "name": "No.166-上首暗黑体", - "filename": "No.166-上首暗黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.166-上首暗黑体.ttf" - }, - { - "id": "0077", - "name": "No.167-上首萌虎体", - "filename": "No.167-上首萌虎体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.167-上首萌虎体.ttf" - }, - { - "id": "0078", - "name": "No.168-上首雪糕体", - "filename": "No.168-上首雪糕体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.168-上首雪糕体.ttf" - }, - { - "id": "0079", - "name": "No.169-上首逐浪书法体", - "filename": "No.169-上首逐浪书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.169-上首逐浪书法体.ttf" - }, - { - "id": "0080", - "name": "No.17-上首钝黑体", - "filename": "No.17-上首钝黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.17-上首钝黑体.ttf" - }, - { - "id": "0081", - "name": "No.170-上首方玉体", - "filename": "No.170-上首方玉体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.170-上首方玉体.ttf" - }, - { - "id": "0082", - "name": "No.171-上首龙猫体", - "filename": "No.171-上首龙猫体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.171-上首龙猫体.ttf" - }, - { - "id": "0083", - "name": "No.172-上首木兰体", - "filename": "No.172-上首木兰体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.172-上首木兰体.ttf" - }, - { - "id": "0084", - "name": "No.173-上首山水宋体", - "filename": "No.173-上首山水宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.173-上首山水宋体.ttf" - }, - { - "id": "0085", - "name": "No.174-上首扑克体", - "filename": "No.174-上首扑克体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.174-上首扑克体.ttf" - }, - { - "id": "0086", - "name": "No.175-上首潮玩体", - "filename": "No.175-上首潮玩体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.175-上首潮玩体.ttf" - }, - { - "id": "0087", - "name": "No.176-上首鲁班宋体", - "filename": "No.176-上首鲁班宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.176-上首鲁班宋体.ttf" - }, - { - "id": "0088", - "name": "No.177-上首奶糖体", - "filename": "No.177-上首奶糖体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.177-上首奶糖体.ttf" - }, - { - "id": "0089", - "name": "No.178-上首浓墨体", - "filename": "No.178-上首浓墨体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.178-上首浓墨体.ttf" - }, - { - "id": "0090", - "name": "No.179-上首朋克体", - "filename": "No.179-上首朋克体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.179-上首朋克体.ttf" - }, - { - "id": "0091", - "name": "No.18-上首疾风书法体", - "filename": "No.18-上首疾风书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.18-上首疾风书法体.ttf" - }, - { - "id": "0092", - "name": "No.180-上首风云书法体", - "filename": "No.180-上首风云书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.180-上首风云书法体.ttf" - }, - { - "id": "0093", - "name": "No.181-上首未来体", - "filename": "No.181-上首未来体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.181-上首未来体.ttf" - }, - { - "id": "0094", - "name": "No.182-上首象牙体", - "filename": "No.182-上首象牙体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.182-上首象牙体.ttf" - }, - { - "id": "0095", - "name": "No.183-上首悦圆体", - "filename": "No.183-上首悦圆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.183-上首悦圆体.ttf" - }, - { - "id": "0096", - "name": "No.184-上首月牙体", - "filename": "No.184-上首月牙体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.184-上首月牙体.ttf" - }, - { - "id": "0097", - "name": "No.185-上首矩正体", - "filename": "No.185-上首矩正体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.185-上首矩正体.ttf" - }, - { - "id": "0098", - "name": "No.186-上首鸿运体", - "filename": "No.186-上首鸿运体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.186-上首鸿运体.ttf" - }, - { - "id": "0099", - "name": "No.187-上首童年体", - "filename": "No.187-上首童年体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.187-上首童年体.ttf" - }, - { - "id": "0100", - "name": "No.188-上首凌宋体", - "filename": "No.188-上首凌宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.188-上首凌宋体.ttf" - }, - { - "id": "0101", - "name": "No.189-上首品黑体", - "filename": "No.189-上首品黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.189-上首品黑体.ttf" - }, - { - "id": "0102", - "name": "No.19-上首简黑极细体", - "filename": "No.19-上首简黑极细体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.19-上首简黑极细体.ttf" - }, - { - "id": "0103", - "name": "No.190-上首波波手写体", - "filename": "No.190-上首波波手写体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.190-上首波波手写体.ttf" - }, - { - "id": "0104", - "name": "No.191-上首祥瑞体", - "filename": "No.191-上首祥瑞体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.191-上首祥瑞体.ttf" - }, - { - "id": "0105", - "name": "No.192-上首傲骨体", - "filename": "No.192-上首傲骨体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.192-上首傲骨体.ttf" - }, - { - "id": "0106", - "name": "No.193-上首轩隶体", - "filename": "No.193-上首轩隶体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.193-上首轩隶体.ttf" - }, - { - "id": "0107", - "name": "No.194-上首品宋体", - "filename": "No.194-上首品宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.194-上首品宋体.ttf" - }, - { - "id": "0108", - "name": "No.195-上首金枝体", - "filename": "No.195-上首金枝体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.195-上首金枝体.ttf" - }, - { - "id": "0109", - "name": "No.196-上首游龙体", - "filename": "No.196-上首游龙体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.196-上首游龙体.ttf" - }, - { - "id": "0110", - "name": "No.197-上首魔方体", - "filename": "No.197-上首魔方体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.197-上首魔方体.ttf" - }, - { - "id": "0111", - "name": "No.198-上首呆呆体", - "filename": "No.198-上首呆呆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.198-上首呆呆体.ttf" - }, - { - "id": "0112", - "name": "No.199-上首新潮体", - "filename": "No.199-上首新潮体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.199-上首新潮体.ttf" - }, - { - "id": "0113", - "name": "No.2-上首维黑体", - "filename": "No.2-上首维黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.2-上首维黑体.ttf" - }, - { - "id": "0114", - "name": "No.20-上首简宋纤细体", - "filename": "No.20-上首简宋纤细体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.20-上首简宋纤细体.ttf" - }, - { - "id": "0115", - "name": "No.200-上首博雅体", - "filename": "No.200-上首博雅体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.200-上首博雅体.ttf" - }, - { - "id": "0116", - "name": "No.201-上首鹊桥体", - "filename": "No.201-上首鹊桥体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.201-上首鹊桥体.ttf" - }, - { - "id": "0117", - "name": "No.202-上首雅倩体", - "filename": "No.202-上首雅倩体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.202-上首雅倩体.ttf" - }, - { - "id": "0118", - "name": "No.203-上首祥瑞手写体", - "filename": "No.203-上首祥瑞手写体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.203-上首祥瑞手写体.ttf" - }, - { - "id": "0119", - "name": "No.204-上首茶颜体", - "filename": "No.204-上首茶颜体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.204-上首茶颜体.ttf" - }, - { - "id": "0120", - "name": "No.205-上首羽刃体", - "filename": "No.205-上首羽刃体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.205-上首羽刃体.ttf" - }, - { - "id": "0121", - "name": "No.206-上首幻灵体", - "filename": "No.206-上首幻灵体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.206-上首幻灵体.ttf" - }, - { - "id": "0122", - "name": "No.207-上首西游体", - "filename": "No.207-上首西游体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.207-上首西游体.ttf" - }, - { - "id": "0123", - "name": "No.208-上首古居体", - "filename": "No.208-上首古居体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.208-上首古居体.ttf" - }, - { - "id": "0124", - "name": "No.209-上首润泽体", - "filename": "No.209-上首润泽体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.209-上首润泽体.ttf" - }, - { - "id": "0125", - "name": "No.21-上首传奇书法体", - "filename": "No.21-上首传奇书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.21-上首传奇书法体.ttf" - }, - { - "id": "0126", - "name": "No.210-上首醒狮体", - "filename": "No.210-上首醒狮体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.210-上首醒狮体.ttf" - }, - { - "id": "0127", - "name": "No.211-上首冰刃体", - "filename": "No.211-上首冰刃体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.211-上首冰刃体.ttf" - }, - { - "id": "0128", - "name": "No.212-上首玄武体", - "filename": "No.212-上首玄武体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.212-上首玄武体.ttf" - }, - { - "id": "0129", - "name": "No.213-上首雪兔体", - "filename": "No.213-上首雪兔体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.213-上首雪兔体.ttf" - }, - { - "id": "0130", - "name": "No.214-上首朱雀体", - "filename": "No.214-上首朱雀体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.214-上首朱雀体.ttf" - }, - { - "id": "0131", - "name": "No.215-上首朗月体", - "filename": "No.215-上首朗月体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.215-上首朗月体.ttf" - }, - { - "id": "0132", - "name": "No.216-上首招财猫体", - "filename": "No.216-上首招财猫体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.216-上首招财猫体.ttf" - }, - { - "id": "0133", - "name": "No.217-上首星舰体", - "filename": "No.217-上首星舰体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.217-上首星舰体.ttf" - }, - { - "id": "0134", - "name": "No.218-上首正舟体", - "filename": "No.218-上首正舟体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.218-上首正舟体.ttf" - }, - { - "id": "0135", - "name": "No.219-上首白虎书法体", - "filename": "No.219-上首白虎书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.219-上首白虎书法体.ttf" - }, - { - "id": "0136", - "name": "No.22-上首简圆体", - "filename": "No.22-上首简圆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.22-上首简圆体.ttf" - }, - { - "id": "0137", - "name": "No.220-上首梧桐体", - "filename": "No.220-上首梧桐体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.220-上首梧桐体.ttf" - }, - { - "id": "0138", - "name": "No.221-上首标题体", - "filename": "No.221-上首标题体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.221-上首标题体.ttf" - }, - { - "id": "0139", - "name": "No.222-上首阿呆体", - "filename": "No.222-上首阿呆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.222-上首阿呆体.ttf" - }, - { - "id": "0140", - "name": "No.223-上首月兔体", - "filename": "No.223-上首月兔体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.223-上首月兔体.ttf" - }, - { - "id": "0141", - "name": "No.224-上首绫黑体", - "filename": "No.224-上首绫黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.224-上首绫黑体.ttf" - }, - { - "id": "0142", - "name": "No.225-上首福禄体", - "filename": "No.225-上首福禄体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.225-上首福禄体.ttf" - }, - { - "id": "0143", - "name": "No.226-上首机甲体", - "filename": "No.226-上首机甲体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.226-上首机甲体.ttf" - }, - { - "id": "0144", - "name": "No.227-上首晴竹体", - "filename": "No.227-上首晴竹体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.227-上首晴竹体.ttf" - }, - { - "id": "0145", - "name": "No.228-上首光折体", - "filename": "No.228-上首光折体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.228-上首光折体.ttf" - }, - { - "id": "0146", - "name": "No.229-上首时光体", - "filename": "No.229-上首时光体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.229-上首时光体.ttf" - }, - { - "id": "0147", - "name": "No.23-上首布丁体", - "filename": "No.23-上首布丁体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.23-上首布丁体.ttf" - }, - { - "id": "0148", - "name": "No.230-上首胖虎体", - "filename": "No.230-上首胖虎体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.230-上首胖虎体.ttf" - }, - { - "id": "0149", - "name": "No.231-上首奇妙体", - "filename": "No.231-上首奇妙体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.231-上首奇妙体.ttf" - }, - { - "id": "0150", - "name": "No.232-上首龙腾体", - "filename": "No.232-上首龙腾体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.232-上首龙腾体.ttf" - }, - { - "id": "0151", - "name": "No.233-上首怪兽体", - "filename": "No.233-上首怪兽体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.233-上首怪兽体.ttf" - }, - { - "id": "0152", - "name": "No.234-上首极限体", - "filename": "No.234-上首极限体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.234-上首极限体.ttf" - }, - { - "id": "0153", - "name": "No.235-上首御风书法体", - "filename": "No.235-上首御风书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.235-上首御风书法体.ttf" - }, - { - "id": "0154", - "name": "No.236-上首东坡体", - "filename": "No.236-上首东坡体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.236-上首东坡体.ttf" - }, - { - "id": "0155", - "name": "No.237-上首木鱼体", - "filename": "No.237-上首木鱼体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.237-上首木鱼体.ttf" - }, - { - "id": "0156", - "name": "No.238-上首妙趣体", - "filename": "No.238-上首妙趣体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.238-上首妙趣体.ttf" - }, - { - "id": "0157", - "name": "No.239-上首青云体", - "filename": "No.239-上首青云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.239-上首青云体.ttf" - }, - { - "id": "0158", - "name": "No.24-上首软糖体", - "filename": "No.24-上首软糖体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.24-上首软糖体.ttf" - }, - { - "id": "0159", - "name": "No.240-上首雅隶体", - "filename": "No.240-上首雅隶体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.240-上首雅隶体.ttf" - }, - { - "id": "0160", - "name": "No.241-上首蔷薇体", - "filename": "No.241-上首蔷薇体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.241-上首蔷薇体.ttf" - }, - { - "id": "0161", - "name": "No.242-上首海浪体", - "filename": "No.242-上首海浪体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.242-上首海浪体.ttf" - }, - { - "id": "0162", - "name": "No.243-上首青柏体", - "filename": "No.243-上首青柏体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.243-上首青柏体.ttf" - }, - { - "id": "0163", - "name": "No.244-上首墩墩体", - "filename": "No.244-上首墩墩体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.244-上首墩墩体.ttf" - }, - { - "id": "0164", - "name": "No.245-上首无限体", - "filename": "No.245-上首无限体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.245-上首无限体.ttf" - }, - { - "id": "0165", - "name": "No.246-上首本墨体", - "filename": "No.246-上首本墨体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.246-上首本墨体.ttf" - }, - { - "id": "0166", - "name": "No.247-上首祥云体", - "filename": "No.247-上首祥云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.247-上首祥云体.ttf" - }, - { - "id": "0167", - "name": "No.248-上首非凡体", - "filename": "No.248-上首非凡体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.248-上首非凡体.ttf" - }, - { - "id": "0168", - "name": "No.249-上首市井体", - "filename": "No.249-上首市井体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.249-上首市井体.ttf" - }, - { - "id": "0169", - "name": "No.25-上首锐圆极细体", - "filename": "No.25-上首锐圆极细体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.25-上首锐圆极细体.ttf" - }, - { - "id": "0170", - "name": "No.250-上首松柏体", - "filename": "No.250-上首松柏体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.250-上首松柏体.ttf" - }, - { - "id": "0171", - "name": "No.251-上首水波体", - "filename": "No.251-上首水波体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.251-上首水波体.ttf" - }, - { - "id": "0172", - "name": "No.252-上首大头手写体", - "filename": "No.252-上首大头手写体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.252-上首大头手写体.ttf" - }, - { - "id": "0173", - "name": "No.253-上首银蛇体", - "filename": "No.253-上首银蛇体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.253-上首银蛇体.ttf" - }, - { - "id": "0174", - "name": "No.254-上首琥珀体", - "filename": "No.254-上首琥珀体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.254-上首琥珀体.ttf" - }, - { - "id": "0175", - "name": "No.255-上首敦煌隶书体", - "filename": "No.255-上首敦煌隶书体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.255-上首敦煌隶书体.ttf" - }, - { - "id": "0176", - "name": "No.256-上首楼兰体", - "filename": "No.256-上首楼兰体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.256-上首楼兰体.ttf" - }, - { - "id": "0177", - "name": "No.257-上首福袋体", - "filename": "No.257-上首福袋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.257-上首福袋体.ttf" - }, - { - "id": "0178", - "name": "No.258-上首惊鸿体", - "filename": "No.258-上首惊鸿体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.258-上首惊鸿体.ttf" - }, - { - "id": "0179", - "name": "No.259-上首果冻体", - "filename": "No.259-上首果冻体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.259-上首果冻体.ttf" - }, - { - "id": "0180", - "name": "No.26-上首悦风体", - "filename": "No.26-上首悦风体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.26-上首悦风体.ttf" - }, - { - "id": "0181", - "name": "No.260-上首山岳体", - "filename": "No.260-上首山岳体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.260-上首山岳体.ttf" - }, - { - "id": "0182", - "name": "No.261-上首惊云体", - "filename": "No.261-上首惊云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.261-上首惊云体.ttf" - }, - { - "id": "0183", - "name": "No.262-上首江南宋体", - "filename": "No.262-上首江南宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.262-上首江南宋体.ttf" - }, - { - "id": "0184", - "name": "No.263-上首蜡笔体", - "filename": "No.263-上首蜡笔体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.263-上首蜡笔体.ttf" - }, - { - "id": "0185", - "name": "No.264-上首赛博体", - "filename": "No.264-上首赛博体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.264-上首赛博体.ttf" - }, - { - "id": "0186", - "name": "No.265-上首心动体", - "filename": "No.265-上首心动体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.265-上首心动体.ttf" - }, - { - "id": "0187", - "name": "No.266-上首千禧体", - "filename": "No.266-上首千禧体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.266-上首千禧体.ttf" - }, - { - "id": "0188", - "name": "No.267-上首柔黑体", - "filename": "No.267-上首柔黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.267-上首柔黑体.ttf" - }, - { - "id": "0189", - "name": "No.268-上首黑仪体", - "filename": "No.268-上首黑仪体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.268-上首黑仪体.ttf" - }, - { - "id": "0190", - "name": "No.269-上首涂鸦体", - "filename": "No.269-上首涂鸦体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.269-上首涂鸦体.ttf" - }, - { - "id": "0191", - "name": "No.27-上首锐棱体", - "filename": "No.27-上首锐棱体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.27-上首锐棱体.ttf" - }, - { - "id": "0192", - "name": "No.270-上首天坛体", - "filename": "No.270-上首天坛体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.270-上首天坛体.ttf" - }, - { - "id": "0193", - "name": "No.271-上首麒麟体", - "filename": "No.271-上首麒麟体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.271-上首麒麟体.ttf" - }, - { - "id": "0194", - "name": "No.272-上首青瓦体", - "filename": "No.272-上首青瓦体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.272-上首青瓦体.ttf" - }, - { - "id": "0195", - "name": "No.273-上首风云体", - "filename": "No.273-上首风云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.273-上首风云体.ttf" - }, - { - "id": "0196", - "name": "No.274-上首战魂体", - "filename": "No.274-上首战魂体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.274-上首战魂体.ttf" - }, - { - "id": "0197", - "name": "No.275-上首招福体", - "filename": "No.275-上首招福体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.275-上首招福体.ttf" - }, - { - "id": "0198", - "name": "No.276-上首佛陀体", - "filename": "No.276-上首佛陀体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.276-上首佛陀体.ttf" - }, - { - "id": "0199", - "name": "No.277-上首大漠体", - "filename": "No.277-上首大漠体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.277-上首大漠体.ttf" - }, - { - "id": "0200", - "name": "No.278-上首绘梦体", - "filename": "No.278-上首绘梦体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.278-上首绘梦体.ttf" - }, - { - "id": "0201", - "name": "No.279-上首东方体", - "filename": "No.279-上首东方体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.279-上首东方体.ttf" - }, - { - "id": "0202", - "name": "No.28-上首星岩体", - "filename": "No.28-上首星岩体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.28-上首星岩体.ttf" - }, - { - "id": "0203", - "name": "No.280-上首英雄体", - "filename": "No.280-上首英雄体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.280-上首英雄体.ttf" - }, - { - "id": "0204", - "name": "No.281-上首破冰体", - "filename": "No.281-上首破冰体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.281-上首破冰体.ttf" - }, - { - "id": "0205", - "name": "No.282-上首玄机体", - "filename": "No.282-上首玄机体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.282-上首玄机体.ttf" - }, - { - "id": "0206", - "name": "No.283-上首舞狮体", - "filename": "No.283-上首舞狮体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.283-上首舞狮体.ttf" - }, - { - "id": "0207", - "name": "No.284-上首北斗体", - "filename": "No.284-上首北斗体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.284-上首北斗体.ttf" - }, - { - "id": "0208", - "name": "No.285-上首万福体", - "filename": "No.285-上首万福体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.285-上首万福体.ttf" - }, - { - "id": "0209", - "name": "No.286-上首云木体", - "filename": "No.286-上首云木体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.286-上首云木体.ttf" - }, - { - "id": "0210", - "name": "No.287-上首方印体", - "filename": "No.287-上首方印体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.287-上首方印体.ttf" - }, - { - "id": "0211", - "name": "No.288-上首几何体", - "filename": "No.288-上首几何体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.288-上首几何体.ttf" - }, - { - "id": "0212", - "name": "No.289-上首江湖书法体", - "filename": "No.289-上首江湖书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.289-上首江湖书法体.ttf" - }, - { - "id": "0213", - "name": "No.29-上首先锋体", - "filename": "No.29-上首先锋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.29-上首先锋体.ttf" - }, - { - "id": "0214", - "name": "No.290-上首书印体", - "filename": "No.290-上首书印体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.290-上首书印体.ttf" - }, - { - "id": "0215", - "name": "No.291-上首淘气体", - "filename": "No.291-上首淘气体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.291-上首淘气体.ttf" - }, - { - "id": "0216", - "name": "No.292-上首暗格体", - "filename": "No.292-上首暗格体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.292-上首暗格体.ttf" - }, - { - "id": "0217", - "name": "No.293-上首逸尘体", - "filename": "No.293-上首逸尘体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.293-上首逸尘体.ttf" - }, - { - "id": "0218", - "name": "No.294-上首小新体", - "filename": "No.294-上首小新体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.294-上首小新体.ttf" - }, - { - "id": "0219", - "name": "No.295-上首荒原体", - "filename": "No.295-上首荒原体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.295-上首荒原体.ttf" - }, - { - "id": "0220", - "name": "No.296-上首松针体", - "filename": "No.296-上首松针体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.296-上首松针体.ttf" - }, - { - "id": "0221", - "name": "No.297-上首墨玄体", - "filename": "No.297-上首墨玄体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.297-上首墨玄体.ttf" - }, - { - "id": "0222", - "name": "No.298-上首沧海书法体", - "filename": "No.298-上首沧海书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.298-上首沧海书法体.ttf" - }, - { - "id": "0223", - "name": "No.299-上首王朝体", - "filename": "No.299-上首王朝体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.299-上首王朝体.ttf" - }, - { - "id": "0224", - "name": "No.3-上首方圆体", - "filename": "No.3-上首方圆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.3-上首方圆体.ttf" - }, - { - "id": "0225", - "name": "No.30-上首倾城体", - "filename": "No.30-上首倾城体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.30-上首倾城体.ttf" - }, - { - "id": "0226", - "name": "No.300-上首古皇体", - "filename": "No.300-上首古皇体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.300-上首古皇体.ttf" - }, - { - "id": "0227", - "name": "No.301-上首言亭体", - "filename": "No.301-上首言亭体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.301-上首言亭体.ttf" - }, - { - "id": "0228", - "name": "No.302-上首流金体", - "filename": "No.302-上首流金体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.302-上首流金体.ttf" - }, - { - "id": "0229", - "name": "No.303-上首墨宋体", - "filename": "No.303-上首墨宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.303-上首墨宋体.ttf" - }, - { - "id": "0230", - "name": "No.304-上首龙虎体", - "filename": "No.304-上首龙虎体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.304-上首龙虎体.ttf" - }, - { - "id": "0231", - "name": "No.305-上首点墨体", - "filename": "No.305-上首点墨体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.305-上首点墨体.ttf" - }, - { - "id": "0232", - "name": "No.306-上首万圣体", - "filename": "No.306-上首万圣体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.306-上首万圣体.ttf" - }, - { - "id": "0233", - "name": "No.307-上首润元体", - "filename": "No.307-上首润元体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.307-上首润元体.ttf" - }, - { - "id": "0234", - "name": "No.308-上首极速体", - "filename": "No.308-上首极速体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.308-上首极速体.ttf" - }, - { - "id": "0235", - "name": "No.309-上首栏栅体", - "filename": "No.309-上首栏栅体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.309-上首栏栅体.ttf" - }, - { - "id": "0236", - "name": "No.31-上首简黑纤细体", - "filename": "No.31-上首简黑纤细体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.31-上首简黑纤细体.ttf" - }, - { - "id": "0237", - "name": "No.310-上首浮华体", - "filename": "No.310-上首浮华体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.310-上首浮华体.ttf" - }, - { - "id": "0238", - "name": "No.311-上首梦想体", - "filename": "No.311-上首梦想体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.311-上首梦想体.ttf" - }, - { - "id": "0239", - "name": "No.312-上首诗宋体", - "filename": "No.312-上首诗宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.312-上首诗宋体.ttf" - }, - { - "id": "0240", - "name": "No.313-上首亦方体", - "filename": "No.313-上首亦方体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.313-上首亦方体.ttf" - }, - { - "id": "0241", - "name": "No.314-上首心愿体", - "filename": "No.314-上首心愿体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.314-上首心愿体.ttf" - }, - { - "id": "0242", - "name": "No.315-上首西施体", - "filename": "No.315-上首西施体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.315-上首西施体.ttf" - }, - { - "id": "0243", - "name": "No.316-上首国美体", - "filename": "No.316-上首国美体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.316-上首国美体.ttf" - }, - { - "id": "0244", - "name": "No.317-上首润玉体", - "filename": "No.317-上首润玉体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.317-上首润玉体.ttf" - }, - { - "id": "0245", - "name": "No.318-上首炫酷体", - "filename": "No.318-上首炫酷体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.318-上首炫酷体.ttf" - }, - { - "id": "0246", - "name": "No.319-上首云烟体", - "filename": "No.319-上首云烟体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.319-上首云烟体.ttf" - }, - { - "id": "0247", - "name": "No.32-上首芊芊体", - "filename": "No.32-上首芊芊体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.32-上首芊芊体.ttf" - }, - { - "id": "0248", - "name": "No.320-上首蜀汉体", - "filename": "No.320-上首蜀汉体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.320-上首蜀汉体.ttf" - }, - { - "id": "0249", - "name": "No.321-上首盛唐体", - "filename": "No.321-上首盛唐体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.321-上首盛唐体.ttf" - }, - { - "id": "0250", - "name": "No.322-上首折扇体", - "filename": "No.322-上首折扇体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.322-上首折扇体.ttf" - }, - { - "id": "0251", - "name": "No.323-上首青竹体", - "filename": "No.323-上首青竹体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.323-上首青竹体.ttf" - }, - { - "id": "0252", - "name": "No.324-上首胭脂体", - "filename": "No.324-上首胭脂体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.324-上首胭脂体.ttf" - }, - { - "id": "0253", - "name": "No.33-上首方糖体", - "filename": "No.33-上首方糖体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.33-上首方糖体.ttf" - }, - { - "id": "0254", - "name": "No.34-上首简黑中细体", - "filename": "No.34-上首简黑中细体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.34-上首简黑中细体.ttf" - }, - { - "id": "0255", - "name": "No.35-上首积木体", - "filename": "No.35-上首积木体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.35-上首积木体.ttf" - }, - { - "id": "0256", - "name": "No.36-上首金牛体", - "filename": "No.36-上首金牛体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.36-上首金牛体.ttf" - }, - { - "id": "0257", - "name": "No.37-上首朗倩体", - "filename": "No.37-上首朗倩体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.37-上首朗倩体.ttf" - }, - { - "id": "0258", - "name": "No.38-上首漠云体", - "filename": "No.38-上首漠云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.38-上首漠云体.ttf" - }, - { - "id": "0259", - "name": "No.39-上首至尊书法体", - "filename": "No.39-上首至尊书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.39-上首至尊书法体.ttf" - }, - { - "id": "0260", - "name": "No.4-上首秀黑体", - "filename": "No.4-上首秀黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.4-上首秀黑体.ttf" - }, - { - "id": "0261", - "name": "No.40-上首星芒体", - "filename": "No.40-上首星芒体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.40-上首星芒体.ttf" - }, - { - "id": "0262", - "name": "No.41-上首山川体", - "filename": "No.41-上首山川体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.41-上首山川体.ttf" - }, - { - "id": "0263", - "name": "No.42-上首芋圆体", - "filename": "No.42-上首芋圆体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.42-上首芋圆体.ttf" - }, - { - "id": "0264", - "name": "No.43-上首星辰体", - "filename": "No.43-上首星辰体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.43-上首星辰体.ttf" - }, - { - "id": "0265", - "name": "No.44-上首哥特体", - "filename": "No.44-上首哥特体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.44-上首哥特体.ttf" - }, - { - "id": "0266", - "name": "No.45-上首黑岩体 ", - "filename": "No.45-上首黑岩体 .ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.45-上首黑岩体 .ttf" - }, - { - "id": "0267", - "name": "No.46-上首言黑体", - "filename": "No.46-上首言黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.46-上首言黑体.ttf" - }, - { - "id": "0268", - "name": "No.47-上首御宋体", - "filename": "No.47-上首御宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.47-上首御宋体.ttf" - }, - { - "id": "0269", - "name": "No.48-上首三国体", - "filename": "No.48-上首三国体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.48-上首三国体.ttf" - }, - { - "id": "0270", - "name": "No.49-上首熊猫体", - "filename": "No.49-上首熊猫体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.49-上首熊猫体.ttf" - }, - { - "id": "0271", - "name": "No.5-上首时尚体", - "filename": "No.5-上首时尚体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.5-上首时尚体.ttf" - }, - { - "id": "0272", - "name": "No.50-上首国潮体", - "filename": "No.50-上首国潮体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.50-上首国潮体.ttf" - }, - { - "id": "0273", - "name": "No.51-上首酷方体", - "filename": "No.51-上首酷方体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.51-上首酷方体.ttf" - }, - { - "id": "0274", - "name": "No.52-上首碑楷体", - "filename": "No.52-上首碑楷体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.52-上首碑楷体.ttf" - }, - { - "id": "0275", - "name": "No.53-上首逸飞体", - "filename": "No.53-上首逸飞体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.53-上首逸飞体.ttf" - }, - { - "id": "0276", - "name": "No.54-上首少年体", - "filename": "No.54-上首少年体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.54-上首少年体.ttf" - }, - { - "id": "0277", - "name": "No.55-上首锋芒体", - "filename": "No.55-上首锋芒体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.55-上首锋芒体.ttf" - }, - { - "id": "0278", - "name": "No.56-上首新艺体", - "filename": "No.56-上首新艺体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.56-上首新艺体.ttf" - }, - { - "id": "0279", - "name": "No.57-上首嘉木体", - "filename": "No.57-上首嘉木体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.57-上首嘉木体.ttf" - }, - { - "id": "0280", - "name": "No.58-上首力方体", - "filename": "No.58-上首力方体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.58-上首力方体.ttf" - }, - { - "id": "0281", - "name": "No.59-上首折言体", - "filename": "No.59-上首折言体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.59-上首折言体.ttf" - }, - { - "id": "0282", - "name": "No.6-上首宽窄体", - "filename": "No.6-上首宽窄体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.6-上首宽窄体.ttf" - }, - { - "id": "0283", - "name": "No.60-上首本刻体", - "filename": "No.60-上首本刻体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.60-上首本刻体.ttf" - }, - { - "id": "0284", - "name": "No.61-上首古宋体", - "filename": "No.61-上首古宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.61-上首古宋体.ttf" - }, - { - "id": "0285", - "name": "No.62-上首黑风体", - "filename": "No.62-上首黑风体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.62-上首黑风体.ttf" - }, - { - "id": "0286", - "name": "No.63-上首迎风手写体", - "filename": "No.63-上首迎风手写体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.63-上首迎风手写体.ttf" - }, - { - "id": "0287", - "name": "No.64-上首奕星体", - "filename": "No.64-上首奕星体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.64-上首奕星体.ttf" - }, - { - "id": "0288", - "name": "No.65-上首山河体", - "filename": "No.65-上首山河体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.65-上首山河体.ttf" - }, - { - "id": "0289", - "name": "No.66-上首和风体", - "filename": "No.66-上首和风体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.66-上首和风体.ttf" - }, - { - "id": "0290", - "name": "No.67-上首轩宋体", - "filename": "No.67-上首轩宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.67-上首轩宋体.ttf" - }, - { - "id": "0291", - "name": "No.68-上首正雅体", - "filename": "No.68-上首正雅体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.68-上首正雅体.ttf" - }, - { - "id": "0292", - "name": "No.69-上首太空体", - "filename": "No.69-上首太空体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.69-上首太空体.ttf" - }, - { - "id": "0293", - "name": "No.7-上首文正体", - "filename": "No.7-上首文正体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.7-上首文正体.ttf" - }, - { - "id": "0294", - "name": "No.70-上首夏木体", - "filename": "No.70-上首夏木体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.70-上首夏木体.ttf" - }, - { - "id": "0295", - "name": "No.71-上首锐锋体", - "filename": "No.71-上首锐锋体.TTF", - "category": "上首造字", - "path": "/fonts/上首造字/No.71-上首锐锋体.TTF" - }, - { - "id": "0296", - "name": "No.72-上首喵尾体", - "filename": "No.72-上首喵尾体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.72-上首喵尾体.ttf" - }, - { - "id": "0297", - "name": "No.73-上首粉笔体", - "filename": "No.73-上首粉笔体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.73-上首粉笔体.ttf" - }, - { - "id": "0298", - "name": "No.74-上首战戟体", - "filename": "No.74-上首战戟体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.74-上首战戟体.ttf" - }, - { - "id": "0299", - "name": "No.75-上首玉立体", - "filename": "No.75-上首玉立体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.75-上首玉立体.ttf" - }, - { - "id": "0300", - "name": "No.76-上首战刃体", - "filename": "No.76-上首战刃体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.76-上首战刃体.ttf" - }, - { - "id": "0301", - "name": "No.77-上首苍穹书法体", - "filename": "No.77-上首苍穹书法体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.77-上首苍穹书法体.ttf" - }, - { - "id": "0302", - "name": "No.78-上首梦黑体", - "filename": "No.78-上首梦黑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.78-上首梦黑体.ttf" - }, - { - "id": "0303", - "name": "No.79-上首博瀚体", - "filename": "No.79-上首博瀚体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.79-上首博瀚体.ttf" - }, - { - "id": "0304", - "name": "No.8-上首京东体", - "filename": "No.8-上首京东体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.8-上首京东体.ttf" - }, - { - "id": "0305", - "name": "No.80-上首乐高体", - "filename": "No.80-上首乐高体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.80-上首乐高体.ttf" - }, - { - "id": "0306", - "name": "No.81-上首胖墩体", - "filename": "No.81-上首胖墩体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.81-上首胖墩体.ttf" - }, - { - "id": "0307", - "name": "No.82-上首简黑粗体", - "filename": "No.82-上首简黑粗体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.82-上首简黑粗体.ttf" - }, - { - "id": "0308", - "name": "No.83-上首粗楷体", - "filename": "No.83-上首粗楷体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.83-上首粗楷体.ttf" - }, - { - "id": "0309", - "name": "No.84-上首状元体", - "filename": "No.84-上首状元体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.84-上首状元体.ttf" - }, - { - "id": "0310", - "name": "No.85-上首元气体", - "filename": "No.85-上首元气体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.85-上首元气体.ttf" - }, - { - "id": "0311", - "name": "No.86-上首圆盾体", - "filename": "No.86-上首圆盾体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.86-上首圆盾体.ttf" - }, - { - "id": "0312", - "name": "No.87-上首乾坤体", - "filename": "No.87-上首乾坤体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.87-上首乾坤体.ttf" - }, - { - "id": "0313", - "name": "No.88-上首典宋体", - "filename": "No.88-上首典宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.88-上首典宋体.ttf" - }, - { - "id": "0314", - "name": "No.89-上首金刚体", - "filename": "No.89-上首金刚体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.89-上首金刚体.ttf" - }, - { - "id": "0315", - "name": "No.9-上首宽云体", - "filename": "No.9-上首宽云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.9-上首宽云体.ttf" - }, - { - "id": "0316", - "name": "No.90-上首嘻哈体", - "filename": "No.90-上首嘻哈体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.90-上首嘻哈体.ttf" - }, - { - "id": "0317", - "name": "No.91-上首婷雅体", - "filename": "No.91-上首婷雅体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.91-上首婷雅体.ttf" - }, - { - "id": "0318", - "name": "No.92-上首虎啸体", - "filename": "No.92-上首虎啸体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.92-上首虎啸体.ttf" - }, - { - "id": "0319", - "name": "No.93-上首萌动体", - "filename": "No.93-上首萌动体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.93-上首萌动体.ttf" - }, - { - "id": "0320", - "name": "No.94-上首奥丁体", - "filename": "No.94-上首奥丁体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.94-上首奥丁体.ttf" - }, - { - "id": "0321", - "name": "No.95-上首昆仑体", - "filename": "No.95-上首昆仑体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.95-上首昆仑体.ttf" - }, - { - "id": "0322", - "name": "No.96-上首锦宋体", - "filename": "No.96-上首锦宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.96-上首锦宋体.ttf" - }, - { - "id": "0323", - "name": "No.97-上首国宋体", - "filename": "No.97-上首国宋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.97-上首国宋体.ttf" - }, - { - "id": "0324", - "name": "No.98-上首趣泡手写体", - "filename": "No.98-上首趣泡手写体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.98-上首趣泡手写体.ttf" - }, - { - "id": "0325", - "name": "No.99-上首元正体", - "filename": "No.99-上首元正体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/No.99-上首元正体.ttf" - }, - { - "id": "0326", - "name": "Sounso Art", - "filename": "Sounso Art.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/Sounso Art.ttf" - }, - { - "id": "0327", - "name": "Sounso Beauty", - "filename": "Sounso Beauty.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/Sounso Beauty.ttf" - }, - { - "id": "0328", - "name": "Sounso Cecily", - "filename": "Sounso Cecily.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/Sounso Cecily.ttf" - }, - { - "id": "0329", - "name": "Sounso Diamond", - "filename": "Sounso Diamond.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/Sounso Diamond.ttf" - }, - { - "id": "0330", - "name": "Sounso Earnestly", - "filename": "Sounso Earnestly.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/Sounso Earnestly.ttf" - }, - { - "id": "0331", - "name": "上首兰亭体", - "filename": "上首兰亭体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首兰亭体.ttf" - }, - { - "id": "0332", - "name": "上首凤凰体", - "filename": "上首凤凰体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首凤凰体.ttf" - }, - { - "id": "0333", - "name": "上首刀锋体", - "filename": "上首刀锋体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首刀锋体.ttf" - }, - { - "id": "0334", - "name": "上首华光体", - "filename": "上首华光体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首华光体.ttf" - }, - { - "id": "0335", - "name": "上首华木体", - "filename": "上首华木体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首华木体.ttf" - }, - { - "id": "0336", - "name": "上首南城体", - "filename": "上首南城体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首南城体.ttf" - }, - { - "id": "0337", - "name": "上首品尚体", - "filename": "上首品尚体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首品尚体.ttf" - }, - { - "id": "0338", - "name": "上首战马体", - "filename": "上首战马体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首战马体.ttf" - }, - { - "id": "0339", - "name": "上首星语体", - "filename": "上首星语体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首星语体.ttf" - }, - { - "id": "0340", - "name": "上首熔岩体", - "filename": "上首熔岩体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首熔岩体.ttf" - }, - { - "id": "0341", - "name": "上首纤云体", - "filename": "上首纤云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首纤云体.ttf" - }, - { - "id": "0342", - "name": "上首纯元体", - "filename": "上首纯元体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首纯元体.ttf" - }, - { - "id": "0343", - "name": "上首苍兰体", - "filename": "上首苍兰体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首苍兰体.ttf" - }, - { - "id": "0344", - "name": "上首轩辕体", - "filename": "上首轩辕体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首轩辕体.ttf" - }, - { - "id": "0345", - "name": "上首锦云体", - "filename": "上首锦云体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首锦云体.ttf" - }, - { - "id": "0346", - "name": "上首雅居体", - "filename": "上首雅居体.ttf", - "category": "上首造字", - "path": "/fonts/上首造字/上首雅居体.ttf" - }, - { - "id": "0347", - "name": "AlimamaDaoLiTi", - "filename": "AlimamaDaoLiTi.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/AlimamaDaoLiTi.ttf" - }, - { - "id": "0348", - "name": "Hangeuljaemin4-Regular", - "filename": "Hangeuljaemin4-Regular.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/Hangeuljaemin4-Regular.ttf" - }, - { - "id": "0349", - "name": "I.顏體", - "filename": "I.顏體.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/I.顏體.ttf" - }, - { - "id": "0350", - "name": "XCDUANZHUANGSONGTI", - "filename": "XCDUANZHUANGSONGTI.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/XCDUANZHUANGSONGTI.ttf" - }, - { - "id": "0351", - "name": "qiji-combo", - "filename": "qiji-combo.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/qiji-combo.ttf" - }, - { - "id": "0352", - "name": "临海隶书", - "filename": "临海隶书.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/临海隶书.ttf" - }, - { - "id": "0353", - "name": "京華老宋体_KingHwa_OldSong", - "filename": "京華老宋体_KingHwa_OldSong.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/京華老宋体_KingHwa_OldSong.ttf" - }, - { - "id": "0354", - "name": "优设标题黑", - "filename": "优设标题黑.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/优设标题黑.ttf" - }, - { - "id": "0355", - "name": "包图小白体", - "filename": "包图小白体.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/包图小白体.ttf" - }, - { - "id": "0356", - "name": "源界明朝", - "filename": "源界明朝.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/源界明朝.ttf" - }, - { - "id": "0357", - "name": "演示佛系体", - "filename": "演示佛系体.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/演示佛系体.ttf" - }, - { - "id": "0358", - "name": "站酷快乐体", - "filename": "站酷快乐体.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/站酷快乐体.ttf" - }, - { - "id": "0359", - "name": "问藏书房", - "filename": "问藏书房.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/问藏书房.ttf" - }, - { - "id": "0360", - "name": "霞鹜臻楷", - "filename": "霞鹜臻楷.ttf", - "category": "其他字体", - "path": "/fonts/其他字体/霞鹜臻楷.ttf" - }, - { - "id": "0361", - "name": "庞门正道标题体", - "filename": "庞门正道标题体.ttf", - "category": "庞门正道", - "path": "/fonts/庞门正道/庞门正道标题体.ttf" - }, - { - "id": "0362", - "name": "王漢宗勘亭流繁", - "filename": "王漢宗勘亭流繁.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗勘亭流繁.ttf" - }, - { - "id": "0363", - "name": "王漢宗新潮體", - "filename": "王漢宗新潮體.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗新潮體.ttf" - }, - { - "id": "0364", - "name": "王漢宗波卡體空陰", - "filename": "王漢宗波卡體空陰.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗波卡體空陰.ttf" - }, - { - "id": "0365", - "name": "王漢宗細黑體繁", - "filename": "王漢宗細黑體繁.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗細黑體繁.ttf" - }, - { - "id": "0366", - "name": "王漢宗綜藝體雙空陰", - "filename": "王漢宗綜藝體雙空陰.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗綜藝體雙空陰.ttf" - }, - { - "id": "0367", - "name": "王漢宗超明體繁", - "filename": "王漢宗超明體繁.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗超明體繁.ttf" - }, - { - "id": "0368", - "name": "王漢宗酷儷海報", - "filename": "王漢宗酷儷海報.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗酷儷海報.ttf" - }, - { - "id": "0369", - "name": "王漢宗顏楷體繁", - "filename": "王漢宗顏楷體繁.ttf", - "category": "王漢宗", - "path": "/fonts/王漢宗/王漢宗顏楷體繁.ttf" - } -] \ No newline at end of file diff --git a/scripts/font-id-state.json b/scripts/font-id-state.json new file mode 100644 index 0000000..b72a1ce --- /dev/null +++ b/scripts/font-id-state.json @@ -0,0 +1,376 @@ +{ + "version": 1, + "nextId": 370, + "pathToId": { + "上首造字/No.1-上首锐博体.ttf": "0001", + "上首造字/No.10-上首叮当体.ttf": "0002", + "上首造字/No.100-上首纤宋体.ttf": "0003", + "上首造字/No.101-上首武士黑体.ttf": "0004", + "上首造字/No.102-上首玄藏体.ttf": "0005", + "上首造字/No.103-上首星际体.ttf": "0006", + "上首造字/No.104-上首鸿志手写体.ttf": "0007", + "上首造字/No.105-上首逍遥体.ttf": "0008", + "上首造字/No.106-上首简墨体.ttf": "0009", + "上首造字/No.107-上首松羽体.ttf": "0010", + "上首造字/No.108-上首燕尾体.ttf": "0011", + "上首造字/No.109-上首韶华体.ttf": "0012", + "上首造字/No.11-上首车车体.ttf": "0013", + "上首造字/No.110-上首烈宋体.ttf": "0014", + "上首造字/No.111-上首方舟体.ttf": "0015", + "上首造字/No.112-上首壹方体.ttf": "0016", + "上首造字/No.113-上首轩正体.ttf": "0017", + "上首造字/No.114-上首长城体.ttf": "0018", + "上首造字/No.115-上首音符体.ttf": "0019", + "上首造字/No.116-上首如意体.ttf": "0020", + "上首造字/No.117-上首酷峰体.ttf": "0021", + "上首造字/No.118-上首星耀体.ttf": "0022", + "上首造字/No.119-上首罗马体.ttf": "0023", + "上首造字/No.12-上首秀圆体.ttf": "0024", + "上首造字/No.120-上首宽言体.ttf": "0025", + "上首造字/No.121-上首刻宋体.ttf": "0026", + "上首造字/No.122-上首云润体.ttf": "0027", + "上首造字/No.123-上首方义手刷体.ttf": "0028", + "上首造字/No.124-上首艺圆体.ttf": "0029", + "上首造字/No.125-上首方尊体.ttf": "0030", + "上首造字/No.126-上首吉言体.ttf": "0031", + "上首造字/No.127-上首简一体.ttf": "0032", + "上首造字/No.128-上首玄黑体.ttf": "0033", + "上首造字/No.129-上首墨遥体.ttf": "0034", + "上首造字/No.13-上首华凤书法体.ttf": "0035", + "上首造字/No.130-上首追光手写体.ttf": "0036", + "上首造字/No.131-上首斗金体.ttf": "0037", + "上首造字/No.132-上首豆干体.ttf": "0038", + "上首造字/No.133-上首魔法体.ttf": "0039", + "上首造字/No.134-上首文化体.ttf": "0040", + "上首造字/No.135-上首龙吟体.ttf": "0041", + "上首造字/No.136-上首悠然体.ttf": "0042", + "上首造字/No.137-上首本草纲目体.ttf": "0043", + "上首造字/No.138-上首星斗体.ttf": "0044", + "上首造字/No.139-上首鼎宋体.ttf": "0045", + "上首造字/No.14-上首水滴体.ttf": "0046", + "上首造字/No.140-上首妖刀体.ttf": "0047", + "上首造字/No.141-上首高达体.ttf": "0048", + "上首造字/No.142-上首综艺体.ttf": "0049", + "上首造字/No.143-上首圆木体.ttf": "0050", + "上首造字/No.144-上首逍遥书法体.ttf": "0051", + "上首造字/No.145-上首高光体.ttf": "0052", + "上首造字/No.146-上首清雅宋体.ttf": "0053", + "上首造字/No.147-上首云隶体.ttf": "0054", + "上首造字/No.148-上首标榜体.ttf": "0055", + "上首造字/No.149-上首奶酪体.ttf": "0056", + "上首造字/No.15-上首润黑体.ttf": "0057", + "上首造字/No.150-上首秋刀体.ttf": "0058", + "上首造字/No.151-上首凤鸣体.ttf": "0059", + "上首造字/No.152-上首南枝体.ttf": "0060", + "上首造字/No.152上首南枝体.ttf": "0061", + "上首造字/No.153-上首可乐体.ttf": "0062", + "上首造字/No.154-上首长青体.ttf": "0063", + "上首造字/No.155-上首中正宋体.ttf": "0064", + "上首造字/No.156-上首曲奇体.ttf": "0065", + "上首造字/No.157-上首萌萌手写体.ttf": "0066", + "上首造字/No.158-上首朗润体.ttf": "0067", + "上首造字/No.159-上首财神体.ttf": "0068", + "上首造字/No.16-上首锐圆体.ttf": "0069", + "上首造字/No.160-上首混沌体.ttf": "0070", + "上首造字/No.161-上首刺云体.ttf": "0071", + "上首造字/No.162-上首幻视体.ttf": "0072", + "上首造字/No.163-上首万象体.ttf": "0073", + "上首造字/No.164-上首简正体.ttf": "0074", + "上首造字/No.165-上首刺秦体.ttf": "0075", + "上首造字/No.166-上首暗黑体.ttf": "0076", + "上首造字/No.167-上首萌虎体.ttf": "0077", + "上首造字/No.168-上首雪糕体.ttf": "0078", + "上首造字/No.169-上首逐浪书法体.ttf": "0079", + "上首造字/No.17-上首钝黑体.ttf": "0080", + "上首造字/No.170-上首方玉体.ttf": "0081", + "上首造字/No.171-上首龙猫体.ttf": "0082", + "上首造字/No.172-上首木兰体.ttf": "0083", + "上首造字/No.173-上首山水宋体.ttf": "0084", + "上首造字/No.174-上首扑克体.ttf": "0085", + "上首造字/No.175-上首潮玩体.ttf": "0086", + "上首造字/No.176-上首鲁班宋体.ttf": "0087", + "上首造字/No.177-上首奶糖体.ttf": "0088", + "上首造字/No.178-上首浓墨体.ttf": "0089", + "上首造字/No.179-上首朋克体.ttf": "0090", + "上首造字/No.18-上首疾风书法体.ttf": "0091", + "上首造字/No.180-上首风云书法体.ttf": "0092", + "上首造字/No.181-上首未来体.ttf": "0093", + "上首造字/No.182-上首象牙体.ttf": "0094", + "上首造字/No.183-上首悦圆体.ttf": "0095", + "上首造字/No.184-上首月牙体.ttf": "0096", + "上首造字/No.185-上首矩正体.ttf": "0097", + "上首造字/No.186-上首鸿运体.ttf": "0098", + "上首造字/No.187-上首童年体.ttf": "0099", + "上首造字/No.188-上首凌宋体.ttf": "0100", + "上首造字/No.189-上首品黑体.ttf": "0101", + "上首造字/No.19-上首简黑极细体.ttf": "0102", + "上首造字/No.190-上首波波手写体.ttf": "0103", + "上首造字/No.191-上首祥瑞体.ttf": "0104", + "上首造字/No.192-上首傲骨体.ttf": "0105", + "上首造字/No.193-上首轩隶体.ttf": "0106", + "上首造字/No.194-上首品宋体.ttf": "0107", + "上首造字/No.195-上首金枝体.ttf": "0108", + "上首造字/No.196-上首游龙体.ttf": "0109", + "上首造字/No.197-上首魔方体.ttf": "0110", + "上首造字/No.198-上首呆呆体.ttf": "0111", + "上首造字/No.199-上首新潮体.ttf": "0112", + "上首造字/No.2-上首维黑体.ttf": "0113", + "上首造字/No.20-上首简宋纤细体.ttf": "0114", + "上首造字/No.200-上首博雅体.ttf": "0115", + "上首造字/No.201-上首鹊桥体.ttf": "0116", + "上首造字/No.202-上首雅倩体.ttf": "0117", + "上首造字/No.203-上首祥瑞手写体.ttf": "0118", + "上首造字/No.204-上首茶颜体.ttf": "0119", + "上首造字/No.205-上首羽刃体.ttf": "0120", + "上首造字/No.206-上首幻灵体.ttf": "0121", + "上首造字/No.207-上首西游体.ttf": "0122", + "上首造字/No.208-上首古居体.ttf": "0123", + "上首造字/No.209-上首润泽体.ttf": "0124", + "上首造字/No.21-上首传奇书法体.ttf": "0125", + "上首造字/No.210-上首醒狮体.ttf": "0126", + "上首造字/No.211-上首冰刃体.ttf": "0127", + "上首造字/No.212-上首玄武体.ttf": "0128", + "上首造字/No.213-上首雪兔体.ttf": "0129", + "上首造字/No.214-上首朱雀体.ttf": "0130", + "上首造字/No.215-上首朗月体.ttf": "0131", + "上首造字/No.216-上首招财猫体.ttf": "0132", + "上首造字/No.217-上首星舰体.ttf": "0133", + "上首造字/No.218-上首正舟体.ttf": "0134", + "上首造字/No.219-上首白虎书法体.ttf": "0135", + "上首造字/No.22-上首简圆体.ttf": "0136", + "上首造字/No.220-上首梧桐体.ttf": "0137", + "上首造字/No.221-上首标题体.ttf": "0138", + "上首造字/No.222-上首阿呆体.ttf": "0139", + "上首造字/No.223-上首月兔体.ttf": "0140", + "上首造字/No.224-上首绫黑体.ttf": "0141", + "上首造字/No.225-上首福禄体.ttf": "0142", + "上首造字/No.226-上首机甲体.ttf": "0143", + "上首造字/No.227-上首晴竹体.ttf": "0144", + "上首造字/No.228-上首光折体.ttf": "0145", + "上首造字/No.229-上首时光体.ttf": "0146", + "上首造字/No.23-上首布丁体.ttf": "0147", + "上首造字/No.230-上首胖虎体.ttf": "0148", + "上首造字/No.231-上首奇妙体.ttf": "0149", + "上首造字/No.232-上首龙腾体.ttf": "0150", + "上首造字/No.233-上首怪兽体.ttf": "0151", + "上首造字/No.234-上首极限体.ttf": "0152", + "上首造字/No.235-上首御风书法体.ttf": "0153", + "上首造字/No.236-上首东坡体.ttf": "0154", + "上首造字/No.237-上首木鱼体.ttf": "0155", + "上首造字/No.238-上首妙趣体.ttf": "0156", + "上首造字/No.239-上首青云体.ttf": "0157", + "上首造字/No.24-上首软糖体.ttf": "0158", + "上首造字/No.240-上首雅隶体.ttf": "0159", + "上首造字/No.241-上首蔷薇体.ttf": "0160", + "上首造字/No.242-上首海浪体.ttf": "0161", + "上首造字/No.243-上首青柏体.ttf": "0162", + "上首造字/No.244-上首墩墩体.ttf": "0163", + "上首造字/No.245-上首无限体.ttf": "0164", + "上首造字/No.246-上首本墨体.ttf": "0165", + "上首造字/No.247-上首祥云体.ttf": "0166", + "上首造字/No.248-上首非凡体.ttf": "0167", + "上首造字/No.249-上首市井体.ttf": "0168", + "上首造字/No.25-上首锐圆极细体.ttf": "0169", + "上首造字/No.250-上首松柏体.ttf": "0170", + "上首造字/No.251-上首水波体.ttf": "0171", + "上首造字/No.252-上首大头手写体.ttf": "0172", + "上首造字/No.253-上首银蛇体.ttf": "0173", + "上首造字/No.254-上首琥珀体.ttf": "0174", + "上首造字/No.255-上首敦煌隶书体.ttf": "0175", + "上首造字/No.256-上首楼兰体.ttf": "0176", + "上首造字/No.257-上首福袋体.ttf": "0177", + "上首造字/No.258-上首惊鸿体.ttf": "0178", + "上首造字/No.259-上首果冻体.ttf": "0179", + "上首造字/No.26-上首悦风体.ttf": "0180", + "上首造字/No.260-上首山岳体.ttf": "0181", + "上首造字/No.261-上首惊云体.ttf": "0182", + "上首造字/No.262-上首江南宋体.ttf": "0183", + "上首造字/No.263-上首蜡笔体.ttf": "0184", + "上首造字/No.264-上首赛博体.ttf": "0185", + "上首造字/No.265-上首心动体.ttf": "0186", + "上首造字/No.266-上首千禧体.ttf": "0187", + "上首造字/No.267-上首柔黑体.ttf": "0188", + "上首造字/No.268-上首黑仪体.ttf": "0189", + "上首造字/No.269-上首涂鸦体.ttf": "0190", + "上首造字/No.27-上首锐棱体.ttf": "0191", + "上首造字/No.270-上首天坛体.ttf": "0192", + "上首造字/No.271-上首麒麟体.ttf": "0193", + "上首造字/No.272-上首青瓦体.ttf": "0194", + "上首造字/No.273-上首风云体.ttf": "0195", + "上首造字/No.274-上首战魂体.ttf": "0196", + "上首造字/No.275-上首招福体.ttf": "0197", + "上首造字/No.276-上首佛陀体.ttf": "0198", + "上首造字/No.277-上首大漠体.ttf": "0199", + "上首造字/No.278-上首绘梦体.ttf": "0200", + "上首造字/No.279-上首东方体.ttf": "0201", + "上首造字/No.28-上首星岩体.ttf": "0202", + "上首造字/No.280-上首英雄体.ttf": "0203", + "上首造字/No.281-上首破冰体.ttf": "0204", + "上首造字/No.282-上首玄机体.ttf": "0205", + "上首造字/No.283-上首舞狮体.ttf": "0206", + "上首造字/No.284-上首北斗体.ttf": "0207", + "上首造字/No.285-上首万福体.ttf": "0208", + "上首造字/No.286-上首云木体.ttf": "0209", + "上首造字/No.287-上首方印体.ttf": "0210", + "上首造字/No.288-上首几何体.ttf": "0211", + "上首造字/No.289-上首江湖书法体.ttf": "0212", + "上首造字/No.29-上首先锋体.ttf": "0213", + "上首造字/No.290-上首书印体.ttf": "0214", + "上首造字/No.291-上首淘气体.ttf": "0215", + "上首造字/No.292-上首暗格体.ttf": "0216", + "上首造字/No.293-上首逸尘体.ttf": "0217", + "上首造字/No.294-上首小新体.ttf": "0218", + "上首造字/No.295-上首荒原体.ttf": "0219", + "上首造字/No.296-上首松针体.ttf": "0220", + "上首造字/No.297-上首墨玄体.ttf": "0221", + "上首造字/No.298-上首沧海书法体.ttf": "0222", + "上首造字/No.299-上首王朝体.ttf": "0223", + "上首造字/No.3-上首方圆体.ttf": "0224", + "上首造字/No.30-上首倾城体.ttf": "0225", + "上首造字/No.300-上首古皇体.ttf": "0226", + "上首造字/No.301-上首言亭体.ttf": "0227", + "上首造字/No.302-上首流金体.ttf": "0228", + "上首造字/No.303-上首墨宋体.ttf": "0229", + "上首造字/No.304-上首龙虎体.ttf": "0230", + "上首造字/No.305-上首点墨体.ttf": "0231", + "上首造字/No.306-上首万圣体.ttf": "0232", + "上首造字/No.307-上首润元体.ttf": "0233", + "上首造字/No.308-上首极速体.ttf": "0234", + "上首造字/No.309-上首栏栅体.ttf": "0235", + "上首造字/No.31-上首简黑纤细体.ttf": "0236", + "上首造字/No.310-上首浮华体.ttf": "0237", + "上首造字/No.311-上首梦想体.ttf": "0238", + "上首造字/No.312-上首诗宋体.ttf": "0239", + "上首造字/No.313-上首亦方体.ttf": "0240", + "上首造字/No.314-上首心愿体.ttf": "0241", + "上首造字/No.315-上首西施体.ttf": "0242", + "上首造字/No.316-上首国美体.ttf": "0243", + "上首造字/No.317-上首润玉体.ttf": "0244", + "上首造字/No.318-上首炫酷体.ttf": "0245", + "上首造字/No.319-上首云烟体.ttf": "0246", + "上首造字/No.32-上首芊芊体.ttf": "0247", + "上首造字/No.320-上首蜀汉体.ttf": "0248", + "上首造字/No.321-上首盛唐体.ttf": "0249", + "上首造字/No.322-上首折扇体.ttf": "0250", + "上首造字/No.323-上首青竹体.ttf": "0251", + "上首造字/No.324-上首胭脂体.ttf": "0252", + "上首造字/No.33-上首方糖体.ttf": "0253", + "上首造字/No.34-上首简黑中细体.ttf": "0254", + "上首造字/No.35-上首积木体.ttf": "0255", + "上首造字/No.36-上首金牛体.ttf": "0256", + "上首造字/No.37-上首朗倩体.ttf": "0257", + "上首造字/No.38-上首漠云体.ttf": "0258", + "上首造字/No.39-上首至尊书法体.ttf": "0259", + "上首造字/No.4-上首秀黑体.ttf": "0260", + "上首造字/No.40-上首星芒体.ttf": "0261", + "上首造字/No.41-上首山川体.ttf": "0262", + "上首造字/No.42-上首芋圆体.ttf": "0263", + "上首造字/No.43-上首星辰体.ttf": "0264", + "上首造字/No.44-上首哥特体.ttf": "0265", + "上首造字/No.45-上首黑岩体 .ttf": "0266", + "上首造字/No.46-上首言黑体.ttf": "0267", + "上首造字/No.47-上首御宋体.ttf": "0268", + "上首造字/No.48-上首三国体.ttf": "0269", + "上首造字/No.49-上首熊猫体.ttf": "0270", + "上首造字/No.5-上首时尚体.ttf": "0271", + "上首造字/No.50-上首国潮体.ttf": "0272", + "上首造字/No.51-上首酷方体.ttf": "0273", + "上首造字/No.52-上首碑楷体.ttf": "0274", + "上首造字/No.53-上首逸飞体.ttf": "0275", + "上首造字/No.54-上首少年体.ttf": "0276", + "上首造字/No.55-上首锋芒体.ttf": "0277", + "上首造字/No.56-上首新艺体.ttf": "0278", + "上首造字/No.57-上首嘉木体.ttf": "0279", + "上首造字/No.58-上首力方体.ttf": "0280", + "上首造字/No.59-上首折言体.ttf": "0281", + "上首造字/No.6-上首宽窄体.ttf": "0282", + "上首造字/No.60-上首本刻体.ttf": "0283", + "上首造字/No.61-上首古宋体.ttf": "0284", + "上首造字/No.62-上首黑风体.ttf": "0285", + "上首造字/No.63-上首迎风手写体.ttf": "0286", + "上首造字/No.64-上首奕星体.ttf": "0287", + "上首造字/No.65-上首山河体.ttf": "0288", + "上首造字/No.66-上首和风体.ttf": "0289", + "上首造字/No.67-上首轩宋体.ttf": "0290", + "上首造字/No.68-上首正雅体.ttf": "0291", + "上首造字/No.69-上首太空体.ttf": "0292", + "上首造字/No.7-上首文正体.ttf": "0293", + "上首造字/No.70-上首夏木体.ttf": "0294", + "上首造字/No.71-上首锐锋体.TTF": "0295", + "上首造字/No.72-上首喵尾体.ttf": "0296", + "上首造字/No.73-上首粉笔体.ttf": "0297", + "上首造字/No.74-上首战戟体.ttf": "0298", + "上首造字/No.75-上首玉立体.ttf": "0299", + "上首造字/No.76-上首战刃体.ttf": "0300", + "上首造字/No.77-上首苍穹书法体.ttf": "0301", + "上首造字/No.78-上首梦黑体.ttf": "0302", + "上首造字/No.79-上首博瀚体.ttf": "0303", + "上首造字/No.8-上首京东体.ttf": "0304", + "上首造字/No.80-上首乐高体.ttf": "0305", + "上首造字/No.81-上首胖墩体.ttf": "0306", + "上首造字/No.82-上首简黑粗体.ttf": "0307", + "上首造字/No.83-上首粗楷体.ttf": "0308", + "上首造字/No.84-上首状元体.ttf": "0309", + "上首造字/No.85-上首元气体.ttf": "0310", + "上首造字/No.86-上首圆盾体.ttf": "0311", + "上首造字/No.87-上首乾坤体.ttf": "0312", + "上首造字/No.88-上首典宋体.ttf": "0313", + "上首造字/No.89-上首金刚体.ttf": "0314", + "上首造字/No.9-上首宽云体.ttf": "0315", + "上首造字/No.90-上首嘻哈体.ttf": "0316", + "上首造字/No.91-上首婷雅体.ttf": "0317", + "上首造字/No.92-上首虎啸体.ttf": "0318", + "上首造字/No.93-上首萌动体.ttf": "0319", + "上首造字/No.94-上首奥丁体.ttf": "0320", + "上首造字/No.95-上首昆仑体.ttf": "0321", + "上首造字/No.96-上首锦宋体.ttf": "0322", + "上首造字/No.97-上首国宋体.ttf": "0323", + "上首造字/No.98-上首趣泡手写体.ttf": "0324", + "上首造字/No.99-上首元正体.ttf": "0325", + "上首造字/Sounso Art.ttf": "0326", + "上首造字/Sounso Beauty.ttf": "0327", + "上首造字/Sounso Cecily.ttf": "0328", + "上首造字/Sounso Diamond.ttf": "0329", + "上首造字/Sounso Earnestly.ttf": "0330", + "上首造字/上首兰亭体.ttf": "0331", + "上首造字/上首凤凰体.ttf": "0332", + "上首造字/上首刀锋体.ttf": "0333", + "上首造字/上首华光体.ttf": "0334", + "上首造字/上首华木体.ttf": "0335", + "上首造字/上首南城体.ttf": "0336", + "上首造字/上首品尚体.ttf": "0337", + "上首造字/上首战马体.ttf": "0338", + "上首造字/上首星语体.ttf": "0339", + "上首造字/上首熔岩体.ttf": "0340", + "上首造字/上首纤云体.ttf": "0341", + "上首造字/上首纯元体.ttf": "0342", + "上首造字/上首苍兰体.ttf": "0343", + "上首造字/上首轩辕体.ttf": "0344", + "上首造字/上首锦云体.ttf": "0345", + "上首造字/上首雅居体.ttf": "0346", + "其他字体/AlimamaDaoLiTi.ttf": "0347", + "其他字体/Hangeuljaemin4-Regular.ttf": "0348", + "其他字体/I.顏體.ttf": "0349", + "其他字体/XCDUANZHUANGSONGTI.ttf": "0350", + "其他字体/qiji-combo.ttf": "0351", + "其他字体/临海隶书.ttf": "0352", + "其他字体/京華老宋体_KingHwa_OldSong.ttf": "0353", + "其他字体/优设标题黑.ttf": "0354", + "其他字体/包图小白体.ttf": "0355", + "其他字体/源界明朝.ttf": "0356", + "其他字体/演示佛系体.ttf": "0357", + "其他字体/站酷快乐体.ttf": "0358", + "其他字体/问藏书房.ttf": "0359", + "其他字体/霞鹜臻楷.ttf": "0360", + "庞门正道-测试/庞门正道标题体.ttf": "0016", + "庞门正道/庞门正道标题体.ttf": "0361", + "王漢宗/王漢宗勘亭流繁.ttf": "0362", + "王漢宗/王漢宗新潮體.ttf": "0363", + "王漢宗/王漢宗波卡體空陰.ttf": "0364", + "王漢宗/王漢宗細黑體繁.ttf": "0365", + "王漢宗/王漢宗綜藝體雙空陰.ttf": "0366", + "王漢宗/王漢宗超明體繁.ttf": "0367", + "王漢宗/王漢宗酷儷海報.ttf": "0368", + "王漢宗/王漢宗顏楷體繁.ttf": "0369" + } +} diff --git a/scripts/generate-font-list.py b/scripts/generate-font-list.py index c0fcd8f..ceabff5 100644 --- a/scripts/generate-font-list.py +++ b/scripts/generate-font-list.py @@ -1,15 +1,176 @@ #!/usr/bin/env python3 """ -生成字体清单文件 +生成字体清单文件(稳定 ID 版本) 扫描 fonts/ 目录下的所有字体文件,同时生成: 1. frontend/public/fonts.json 2. miniprogram/assets/fonts.json 3. miniprogram/assets/fonts.js + +ID 分配规则: +1. 已存在字体(按 relativePath 识别)保持原 ID 不变。 +2. 新增字体按“上次游标”分配新 ID。 +3. ID 从 0001 递增到 10000,之后循环分配(跳过当前正在使用的 ID)。 """ import os import json from pathlib import Path +from urllib.parse import unquote, urlparse + +FONT_DIR = Path('fonts') +WEB_FONTS_JSON = Path('frontend/public/fonts.json') +MP_FONTS_JSON = Path('miniprogram/assets/fonts.json') +MP_FONTS_JS = Path('miniprogram/assets/fonts.js') +ID_STATE_FILE = Path('scripts/font-id-state.json') + +ID_MIN = 1 +ID_MAX = 10000 + + +def format_font_id(num): + return str(num).zfill(4) + + +def parse_font_id(raw): + try: + value = int(str(raw).strip()) + except (TypeError, ValueError): + return None + if ID_MIN <= value <= ID_MAX: + return value + return None + + +def increment_id(num): + return ID_MIN if num >= ID_MAX else num + 1 + + +def normalize_relative_path(raw_path): + if not raw_path: + return None + + text = str(raw_path).strip() + if not text: + return None + + parsed = urlparse(text) + if parsed.scheme and parsed.netloc: + text = parsed.path + + text = unquote(text) + text = text.split('?', 1)[0].split('#', 1)[0] + text = text.replace('\\', '/') + + if '/fonts/' in text: + text = text.split('/fonts/', 1)[1] + elif text.startswith('fonts/'): + text = text[len('fonts/'):] + elif text.startswith('/fonts'): + text = text[len('/fonts'):] + + text = text.lstrip('/') + return text or None + + +def load_manifest_id_map(manifest_file): + mapping = {} + if not manifest_file.exists(): + return mapping + + try: + with open(manifest_file, 'r', encoding='utf-8') as f: + data = json.load(f) + except (OSError, json.JSONDecodeError): + return mapping + + if not isinstance(data, list): + return mapping + + for item in data: + if not isinstance(item, dict): + continue + relative_path = normalize_relative_path( + item.get('path') or item.get('relativePath') + ) + id_num = parse_font_id(item.get('id')) + if relative_path and id_num: + mapping[relative_path] = format_font_id(id_num) + + return mapping + + +def load_id_state(state_file): + default_state = { + 'version': 1, + 'nextId': ID_MIN, + 'pathToId': {}, + } + + if not state_file.exists(): + return default_state + + try: + with open(state_file, 'r', encoding='utf-8') as f: + data = json.load(f) + except (OSError, json.JSONDecodeError): + return default_state + + if not isinstance(data, dict): + return default_state + + path_to_id = {} + raw_map = data.get('pathToId') + if isinstance(raw_map, dict): + for path_key, raw_id in raw_map.items(): + relative_path = normalize_relative_path(path_key) + id_num = parse_font_id(raw_id) + if relative_path and id_num: + path_to_id[relative_path] = format_font_id(id_num) + + next_id = parse_font_id(data.get('nextId')) or ID_MIN + + return { + 'version': 1, + 'nextId': next_id, + 'pathToId': path_to_id, + } + + +def save_id_state(state, state_file): + state_file.parent.mkdir(parents=True, exist_ok=True) + normalized_map = dict(sorted(state['pathToId'].items(), key=lambda x: x[0])) + data = { + 'version': 1, + 'nextId': state['nextId'], + 'pathToId': normalized_map, + } + with open(state_file, 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=2) + f.write('\n') + + +def bootstrap_state_mappings(state): + # 优先级:state 文件 > 小程序现有清单 > web 现有清单 + for manifest_path in (MP_FONTS_JSON, WEB_FONTS_JSON): + mapping = load_manifest_id_map(manifest_path) + for relative_path, font_id in mapping.items(): + state['pathToId'].setdefault(relative_path, font_id) + + if parse_font_id(state.get('nextId')) is None: + state['nextId'] = ID_MIN + + if state['nextId'] == ID_MIN and state['pathToId']: + max_id = max(parse_font_id(v) for v in state['pathToId'].values()) + state['nextId'] = increment_id(max_id) + + +def allocate_new_id(start_id, used_ids): + candidate = start_id + for _ in range(ID_MAX): + if candidate not in used_ids: + return candidate, increment_id(candidate) + candidate = increment_id(candidate) + raise RuntimeError('可用 ID 已耗尽(0001-10000 全部被当前字体占用)') def scan_fonts(font_dir='fonts'): """扫描字体目录,返回字体信息列表""" @@ -45,14 +206,48 @@ def scan_fonts(font_dir='fonts'): fonts.append(font_info) - # 统一排序后分配 4 位数字 id(0001、0002...) - fonts = sorted(fonts, key=lambda x: (x['category'], x['name'], x['filename'])) - for index, font in enumerate(fonts, start=1): - font['id'] = f"{index:04d}" - + # 固定顺序,保证分配冲突时结果稳定 + fonts = sorted(fonts, key=lambda x: (x['category'], x['name'], x['filename'], x['relativePath'])) return fonts +def assign_stable_ids(fonts): + state = load_id_state(ID_STATE_FILE) + bootstrap_state_mappings(state) + + cursor = parse_font_id(state.get('nextId')) or ID_MIN + used_ids = set() + new_count = 0 + + for font in fonts: + relative_path = font['relativePath'] + existing_id = state['pathToId'].get(relative_path) + existing_num = parse_font_id(existing_id) + + if existing_num and existing_num not in used_ids: + assigned_num = existing_num + else: + if existing_num and existing_num in used_ids: + print( + f"警告: 发现 ID 冲突,路径 {relative_path} 原 ID {existing_id} 将重新分配。" + ) + assigned_num, cursor = allocate_new_id(cursor, used_ids) + state['pathToId'][relative_path] = format_font_id(assigned_num) + new_count += 1 + + used_ids.add(assigned_num) + font['id'] = format_font_id(assigned_num) + + state['nextId'] = cursor + save_id_state(state, ID_STATE_FILE) + + return { + 'newCount': new_count, + 'nextId': format_font_id(cursor), + 'stateFile': str(ID_STATE_FILE), + } + + def build_manifest(fonts, path_prefix): """根据路径前缀构建对外清单""" prefix = f"/{str(path_prefix or '').strip('/')}" @@ -91,18 +286,25 @@ def write_fonts_js(fonts, output_file): def main(): """主函数""" # 扫描字体(唯一来源:仓库根目录 fonts/) - fonts = scan_fonts('fonts') + fonts = scan_fonts(str(FONT_DIR)) print(f"找到 {len(fonts)} 个字体文件") + + allocation_result = assign_stable_ids(fonts) + print( + f"ID 分配完成:新增 {allocation_result['newCount']} 个," + f"下次起始 ID {allocation_result['nextId']}," + f"状态文件 {allocation_result['stateFile']}" + ) # Web 清单:统一指向根目录 fonts web_fonts = build_manifest(fonts, '/fonts') - write_fonts_json(web_fonts, 'frontend/public/fonts.json') + write_fonts_json(web_fonts, str(WEB_FONTS_JSON)) # 小程序清单:同样指向根目录 fonts(与 web 共用一份字体目录) miniprogram_fonts = build_manifest(fonts, '/fonts') - write_fonts_json(miniprogram_fonts, 'miniprogram/assets/fonts.json') - write_fonts_js(miniprogram_fonts, 'miniprogram/assets/fonts.js') + write_fonts_json(miniprogram_fonts, str(MP_FONTS_JSON)) + write_fonts_js(miniprogram_fonts, str(MP_FONTS_JS)) # 统计信息 categories = {}