modern-canvas 0.6.2 → 0.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +16 -14
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +11 -11
- package/dist/index.mjs +16 -14
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(g,pi){typeof exports=="object"&&typeof module<"u"?pi(exports):typeof define=="function"&&define.amd?define(["exports"],pi):(g=typeof globalThis<"u"?globalThis:g||self,pi(g.modernCanvas={}))})(this,function(g){"use strict";var pi=typeof document<"u"?document.currentScript:null,Uc={grad:.9,turn:360,rad:360/(2*Math.PI)},Le=function(r){return typeof r=="string"?r.length>0:typeof r=="number"},Mt=function(r,t,e){return t===void 0&&(t=0),e===void 0&&(e=Math.pow(10,t)),Math.round(e*r)/e+0},de=function(r,t,e){return t===void 0&&(t=0),e===void 0&&(e=1),r>e?e:r>t?r:t},Ao=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},ro=function(r){return{r:de(r.r,0,255),g:de(r.g,0,255),b:de(r.b,0,255),a:de(r.a)}},as=function(r){return{r:Mt(r.r),g:Mt(r.g),b:Mt(r.b),a:Mt(r.a,3)}},Nc=/^#([0-9a-f]{3,8})$/i,$A=function(r){var t=r.toString(16);return t.length<2?"0"+t:t},so=function(r){var t=r.r,e=r.g,i=r.b,A=r.a,s=Math.max(t,e,i),n=s-Math.min(t,e,i),o=n?s===t?(e-i)/n:s===e?2+(i-t)/n:4+(t-e)/n:0;return{h:60*(o<0?o+6:o),s:s?n/s*100:0,v:s/255*100,a:A}},no=function(r){var t=r.h,e=r.s,i=r.v,A=r.a;t=t/360*6,e/=100,i/=100;var s=Math.floor(t),n=i*(1-e),o=i*(1-(t-s)*e),a=i*(1-(1-t+s)*e),l=s%6;return{r:255*[i,o,n,n,a,i][l],g:255*[a,i,i,o,n,n][l],b:255*[n,n,a,i,i,o][l],a:A}},oo=function(r){return{h:Ao(r.h),s:de(r.s,0,100),l:de(r.l,0,100),a:de(r.a)}},ao=function(r){return{h:Mt(r.h),s:Mt(r.s),l:Mt(r.l),a:Mt(r.a,3)}},lo=function(r){return no((e=(t=r).s,{h:t.h,s:(e*=((i=t.l)<50?i:100-i)/100)>0?2*e/(i+e)*100:0,v:i+e,a:t.a}));var t,e,i},sA=function(r){return{h:(t=so(r)).h,s:(A=(200-(e=t.s))*(i=t.v)/100)>0&&A<200?e*i/100/(A<=100?A:200-A)*100:0,l:A/2,a:t.a};var t,e,i,A},Fc=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Tc=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Lc=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Gc=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ls={string:[[function(r){var t=Nc.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:r.length===4?Mt(parseInt(r[3]+r[3],16)/255,2):1}:r.length===6||r.length===8?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:r.length===8?Mt(parseInt(r.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(r){var t=Lc.exec(r)||Gc.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:ro({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(r){var t=Fc.exec(r)||Tc.exec(r);if(!t)return null;var e,i,A=oo({h:(e=t[1],i=t[2],i===void 0&&(i="deg"),Number(e)*(Uc[i]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return lo(A)},"hsl"]],object:[[function(r){var t=r.r,e=r.g,i=r.b,A=r.a,s=A===void 0?1:A;return Le(t)&&Le(e)&&Le(i)?ro({r:Number(t),g:Number(e),b:Number(i),a:Number(s)}):null},"rgb"],[function(r){var t=r.h,e=r.s,i=r.l,A=r.a,s=A===void 0?1:A;if(!Le(t)||!Le(e)||!Le(i))return null;var n=oo({h:Number(t),s:Number(e),l:Number(i),a:Number(s)});return lo(n)},"hsl"],[function(r){var t=r.h,e=r.s,i=r.v,A=r.a,s=A===void 0?1:A;if(!Le(t)||!Le(e)||!Le(i))return null;var n=function(o){return{h:Ao(o.h),s:de(o.s,0,100),v:de(o.v,0,100),a:de(o.a)}}({h:Number(t),s:Number(e),v:Number(i),a:Number(s)});return no(n)},"hsv"]]},co=function(r,t){for(var e=0;e<t.length;e++){var i=t[e][0](r);if(i)return[i,t[e][1]]}return[null,void 0]},Oc=function(r){return typeof r=="string"?co(r.trim(),ls.string):typeof r=="object"&&r!==null?co(r,ls.object):[null,void 0]},cs=function(r,t){var e=sA(r);return{h:e.h,s:de(e.s+100*t,0,100),l:e.l,a:e.a}},hs=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},ho=function(r,t){var e=sA(r);return{h:e.h,s:e.s,l:de(e.l+100*t,0,100),a:e.a}},gs=function(){function r(t){this.parsed=Oc(t)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return this.parsed!==null},r.prototype.brightness=function(){return Mt(hs(this.rgba),2)},r.prototype.isDark=function(){return hs(this.rgba)<.5},r.prototype.isLight=function(){return hs(this.rgba)>=.5},r.prototype.toHex=function(){return t=as(this.rgba),e=t.r,i=t.g,A=t.b,n=(s=t.a)<1?$A(Mt(255*s)):"","#"+$A(e)+$A(i)+$A(A)+n;var t,e,i,A,s,n},r.prototype.toRgb=function(){return as(this.rgba)},r.prototype.toRgbString=function(){return t=as(this.rgba),e=t.r,i=t.g,A=t.b,(s=t.a)<1?"rgba("+e+", "+i+", "+A+", "+s+")":"rgb("+e+", "+i+", "+A+")";var t,e,i,A,s},r.prototype.toHsl=function(){return ao(sA(this.rgba))},r.prototype.toHslString=function(){return t=ao(sA(this.rgba)),e=t.h,i=t.s,A=t.l,(s=t.a)<1?"hsla("+e+", "+i+"%, "+A+"%, "+s+")":"hsl("+e+", "+i+"%, "+A+"%)";var t,e,i,A,s},r.prototype.toHsv=function(){return t=so(this.rgba),{h:Mt(t.h),s:Mt(t.s),v:Mt(t.v),a:Mt(t.a,3)};var t},r.prototype.invert=function(){return Be({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},r.prototype.saturate=function(t){return t===void 0&&(t=.1),Be(cs(this.rgba,t))},r.prototype.desaturate=function(t){return t===void 0&&(t=.1),Be(cs(this.rgba,-t))},r.prototype.grayscale=function(){return Be(cs(this.rgba,-1))},r.prototype.lighten=function(t){return t===void 0&&(t=.1),Be(ho(this.rgba,t))},r.prototype.darken=function(t){return t===void 0&&(t=.1),Be(ho(this.rgba,-t))},r.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},r.prototype.alpha=function(t){return typeof t=="number"?Be({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):Mt(this.rgba.a,3);var e},r.prototype.hue=function(t){var e=sA(this.rgba);return typeof t=="number"?Be({h:t,s:e.s,l:e.l,a:e.a}):Mt(e.h)},r.prototype.isEqual=function(t){return this.toHex()===Be(t).toHex()},r}(),Be=function(r){return r instanceof gs?r:new gs(r)},go=[],Hc=function(r){r.forEach(function(t){go.indexOf(t)<0&&(t(gs,ls),go.push(t))})};const Jc="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let Kc=(r=21)=>{let t="",e=crypto.getRandomValues(new Uint8Array(r|=0));for(;r--;)t+=Jc[e[r]&63];return t};function bt(r){return r==null||r==="none"}function Mi(r,t=0,e=10**t){return Math.round(e*r)/e+0}function nA(r,t=!1){if(typeof r!="object"||!r)return r;if(Array.isArray(r))return t?r.map(i=>nA(i,t)):r;const e={};for(const i in r){const A=r[i];A!=null&&(t?e[i]=nA(A,t):e[i]=A)}return e}function us(r,t){const e={};return t.forEach(i=>{i in r&&(e[i]=r[i])}),e}function Yc(r,t,e){const i=t.length-1;if(i<0)return r===void 0?e:r;for(let A=0;A<i;A++){if(r==null)return e;r=r[t[A]]}return r==null||r[t[i]]===void 0?e:r[t[i]]}function Vc(r,t,e){const i=t.length-1;for(let A=0;A<i;A++)typeof r[t[A]]!="object"&&(r[t[A]]={}),r=r[t[A]];r[t[i]]=e}function zc(r,t,e){return r==null||!t||typeof t!="string"?e:r[t]!==void 0?r[t]:(t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,""),Yc(r,t.split("."),e))}function Wc(r,t,e){if(!(typeof r!="object"||!t))return t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,""),Vc(r,t.split("."),e)}let uo=class{_map=new WeakMap;_toRaw(t){if(t&&typeof t=="object"){const e=t.__v_raw;e&&(t=this._toRaw(e))}return t}delete(t){return this._map.delete(this._toRaw(t))}get(t){return this._map.get(this._toRaw(t))}has(t){return this._map.has(this._toRaw(t))}set(t,e){return this._map.set(this._toRaw(t),this._toRaw(e)),this}};function fs(r){let t;return typeof r=="number"?t={r:r>>24&255,g:r>>16&255,b:r>>8&255,a:(r&255)/255}:t=r,Be(t)}function qc(r){return{r:Mi(r.r),g:Mi(r.g),b:Mi(r.b),a:Mi(r.a,3)}}function tr(r){const t=r.toString(16);return t.length<2?`0${t}`:t}const fo="#000000FF";function Xc(r){return fs(r).isValid()}function ne(r,t=!1){const e=fs(r);if(!e.isValid()){if(typeof r=="string")return r;const o=`Failed to normalizeColor ${r}`;if(t)throw new Error(o);return console.warn(o),fo}const{r:i,g:A,b:s,a:n}=qc(e.rgba);return`#${tr(i)}${tr(A)}${tr(s)}${tr(Mi(n*255))}`}var er=er||{};er.parse=function(){const r={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let t="";function e(b){const D=new Error(`${t}: ${b}`);throw D.source=t,D}function i(){const b=A();return t.length>0&&e("Invalid input not EOF"),b}function A(){return y(s)}function s(){return n("linear-gradient",r.linearGradient,a)||n("repeating-linear-gradient",r.repeatingLinearGradient,a)||n("radial-gradient",r.radialGradient,h)||n("repeating-radial-gradient",r.repeatingRadialGradient,h)}function n(b,D,F){return o(D,V=>{const At=F();return At&&(N(r.comma)||e("Missing comma before color stops")),{type:b,orientation:At,colorStops:y(S)}})}function o(b,D){const F=N(b);if(F){N(r.startCall)||e("Missing (");const V=D(F);return N(r.endCall)||e("Missing )"),V}}function a(){const b=l();if(b)return b;const D=j("position-keyword",r.positionKeywords,1);return D?{type:"directional",value:D.value}:c()}function l(){return j("directional",r.sideOrCorner,1)}function c(){return j("angular",r.angleValue,1)||j("angular",r.radianValue,1)}function h(){let b,D=u(),F;return D&&(b=[],b.push(D),F=t,N(r.comma)&&(D=u(),D?b.push(D):t=F)),b}function u(){let b=d()||f();if(b)b.at=p();else{const D=B();if(D){b=D;const F=p();F&&(b.at=F)}else{const F=p();if(F)b={type:"default-radial",at:F};else{const V=R();V&&(b={type:"default-radial",at:V})}}}return b}function d(){const b=j("shape",/^(circle)/i,0);return b&&(b.style=X()||B()),b}function f(){const b=j("shape",/^(ellipse)/i,0);return b&&(b.style=R()||L()||B()),b}function B(){return j("extent-keyword",r.extentKeywords,1)}function p(){if(j("position",/^at/,0)){const b=R();return b||e("Missing positioning value"),b}}function R(){const b=P();if(b.x||b.y)return{type:"position",value:b}}function P(){return{x:L(),y:L()}}function y(b){let D=b();const F=[];if(D)for(F.push(D);N(r.comma);)D=b(),D?F.push(D):e("One extra comma");return F}function S(){const b=Q();return b||e("Expected color definition"),b.length=L(),b}function Q(){return M()||Y()||q()||W()||k()||it()||m()}function m(){return j("literal",r.literalColor,0)}function M(){return j("hex",r.hexColor,1)}function k(){return o(r.rgbColor,()=>({type:"rgb",value:y(H)}))}function W(){return o(r.rgbaColor,()=>({type:"rgba",value:y(H)}))}function it(){return o(r.varColor,()=>({type:"var",value:et()}))}function q(){return o(r.hslColor,()=>{N(r.percentageValue)&&e("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const D=H();N(r.comma);let F=N(r.percentageValue);const V=F?F[1]:null;N(r.comma),F=N(r.percentageValue);const At=F?F[1]:null;return(!V||!At)&&e("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[D,V,At]}})}function Y(){return o(r.hslaColor,()=>{const b=H();N(r.comma);let D=N(r.percentageValue);const F=D?D[1]:null;N(r.comma),D=N(r.percentageValue);const V=D?D[1]:null;N(r.comma);const At=H();return(!F||!V)&&e("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[b,F,V,At]}})}function et(){return N(r.variableName)[1]}function H(){return N(r.number)[1]}function L(){return j("%",r.percentageValue,1)||rt()||O()||X()}function rt(){return j("position-keyword",r.positionKeywords,1)}function O(){return o(r.calcValue,()=>{let b=1,D=0;for(;b>0&&D<t.length;){const V=t.charAt(D);V==="("?b++:V===")"&&b--,D++}b>0&&e("Missing closing parenthesis in calc() expression");const F=t.substring(0,D-1);return tt(D-1),{type:"calc",value:F}})}function X(){return j("px",r.pixelValue,1)||j("em",r.emValue,1)}function j(b,D,F){const V=N(D);if(V)return{type:b,value:V[F]}}function N(b){let D,F;return F=/^\s+/.exec(t),F&&tt(F[0].length),D=b.exec(t),D&&tt(D[0].length),D}function tt(b){t=t.substr(b)}return function(b){return t=b.toString().trim(),t.endsWith(";")&&(t=t.slice(0,-1)),i()}}();const jc=er.parse.bind(er);var ir=ir||{};ir.stringify=function(){var r={"visit_linear-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return r.visit_gradient(t)},"visit_radial-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return r.visit_gradient(t)},visit_gradient:function(t){var e=r.visit(t.orientation);return e&&(e+=", "),t.type+"("+e+r.visit(t.colorStops)+")"},visit_shape:function(t){var e=t.value,i=r.visit(t.at),A=r.visit(t.style);return A&&(e+=" "+A),i&&(e+=" at "+i),e},"visit_default-radial":function(t){var e="",i=r.visit(t.at);return i&&(e+=i),e},"visit_extent-keyword":function(t){var e=t.value,i=r.visit(t.at);return i&&(e+=" at "+i),e},"visit_position-keyword":function(t){return t.value},visit_position:function(t){return r.visit(t.value.x)+" "+r.visit(t.value.y)},"visit_%":function(t){return t.value+"%"},visit_em:function(t){return t.value+"em"},visit_px:function(t){return t.value+"px"},visit_calc:function(t){return"calc("+t.value+")"},visit_literal:function(t){return r.visit_color(t.value,t)},visit_hex:function(t){return r.visit_color("#"+t.value,t)},visit_rgb:function(t){return r.visit_color("rgb("+t.value.join(", ")+")",t)},visit_rgba:function(t){return r.visit_color("rgba("+t.value.join(", ")+")",t)},visit_hsl:function(t){return r.visit_color("hsl("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%)",t)},visit_hsla:function(t){return r.visit_color("hsla("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%, "+t.value[3]+")",t)},visit_var:function(t){return r.visit_color("var("+t.value+")",t)},visit_color:function(t,e){var i=t,A=r.visit(e.length);return A&&(i+=" "+A),i},visit_angular:function(t){return t.value+"deg"},visit_directional:function(t){return"to "+t.value},visit_array:function(t){var e="",i=t.length;return t.forEach(function(A,s){e+=r.visit(A),s<i-1&&(e+=", ")}),e},visit_object:function(t){return t.width&&t.height?r.visit(t.width)+" "+r.visit(t.height):""},visit:function(t){if(!t)return"";if(t instanceof Array)return r.visit_array(t);if(typeof t=="object"&&!t.type)return r.visit_object(t);if(t.type){var e=r["visit_"+t.type];if(e)return e(t);throw Error("Missing visitor visit_"+t.type)}else throw Error("Invalid node.")}};return function(t){return r.visit(t)}}(),ir.stringify.bind(ir);function Io(r){const t=r.length-1;return r.map((e,i)=>{const A=e.value;let s=Mi(i/t,3),n="#00000000";switch(e.type){case"rgb":n=ne({r:Number(A[0]??0),g:Number(A[1]??0),b:Number(A[2]??0)});break;case"rgba":n=ne({r:Number(A[0]??0),g:Number(A[1]??0),b:Number(A[2]??0),a:Number(A[3]??0)});break;case"literal":n=ne(e.value);break;case"hex":n=ne(`#${e.value}`);break}switch(e.length?.type){case"%":s=Number(e.length.value)/100;break}return{offset:s,color:n}})}function po(r){let t=0;switch(r.orientation?.type){case"angular":t=Number(r.orientation.value);break}return{type:"linear-gradient",angle:t,stops:Io(r.colorStops)}}function Eo(r){return r.orientation?.map(t=>{switch(t?.type){case"shape":case"default-radial":case"extent-keyword":default:return null}}),{type:"radial-gradient",stops:Io(r.colorStops)}}function oA(r){return r.startsWith("linear-gradient(")||r.startsWith("radial-gradient(")}function Zc(r){return jc(r).map(t=>{switch(t?.type){case"linear-gradient":return po(t);case"repeating-linear-gradient":return{...po(t),repeat:!0};case"radial-gradient":return Eo(t);case"repeating-radial-gradient":return{...Eo(t),repeat:!0};default:return}}).filter(Boolean)}function $c(r){let t;return typeof r=="string"?t={color:r}:t=r,{color:ne(t.color)}}function th(r){let t;if(typeof r=="string"?t={image:r}:t=r,t.image){const{type:e,...i}=Zc(t.image)[0]??{};switch(e){case"radial-gradient":return{radialGradient:i};case"linear-gradient":return{linearGradient:i}}}return t}function eh(r){let t;return typeof r=="string"?t={image:r}:t=r,t}function ih(r){let t;return typeof r=="string"?t={preset:r}:t=r,{preset:t.preset,foregroundColor:bt(t.foregroundColor)?void 0:ne(t.foregroundColor),backgroundColor:bt(t.backgroundColor)?void 0:ne(t.backgroundColor)}}function Ah(r){return!bt(r.color)}function rh(r){return typeof r=="string"?Xc(r):Ah(r)}function sh(r){return!bt(r.image)&&oA(r.image)||!!r.linearGradient||!!r.radialGradient}function nh(r){return typeof r=="string"?oA(r):sh(r)}function oh(r){return!bt(r.image)&&!oA(r.image)}function ah(r){return typeof r=="string"?!oA(r):oh(r)}function lh(r){return!bt(r.preset)}function ch(r){return typeof r=="string"?!1:lh(r)}function Ei(r){return rh(r)?$c(r):nh(r)?th(r):ah(r)?eh(r):ch(r)?ih(r):{}}function hh(r){return typeof r=="string"?{...Ei(r)}:{...Ei(r),...us(r,["fillWithShape"])}}const ds=Symbol("properties");function Is(r){const t=Object.getPrototypeOf(r);let e;return t&&Object.hasOwn(t,ds)?e=t[ds]:(e=new Map(t?Is(t):void 0),t&&(t[ds]=e)),e}function gh(r,t={}){const e=Symbol.for(r),{default:i,fallback:A,alias:s}=t,n={declaration:t,internalKey:e},o=()=>typeof i=="function"?i():i,a=()=>typeof A=="function"?A():A;let l=!0;function c(){let u;if(s&&s!==r?u=zc(this,s):typeof this.getter<"u"?u=this.getter(r,n):u=this[e],u=u??a(),u===void 0&&l){l=!1;const d=o();d!==void 0&&h.call(this,d)}return u}function h(u){s&&s!==r?Wc(this,s,u):typeof this.setter<"u"?this.setter(r,u,n):this[e]=u}return{get:c,set:h}}function Ar(r,t,e={}){Is(typeof r=="function"?r:r.constructor).set(t,e);const i=gh(t,e);Object.defineProperty(r,t,{get(){return i.get.call(this)},set(A){const s=i.get.call(this);i.set.call(this,A),this.onUpdateProperty?.(t,A,s,e)},configurable:!0,enumerable:!0})}function _(r){return function(t,e){if(typeof e!="string")throw new TypeError("Failed to @property decorator, prop name cannot be a symbol");Ar(t,e,r)}}function uh(r){return typeof r=="string"?{...Ei(r)}:{...Ei(r),...us(r,["fillWithShape"])}}const Bo=()=>Kc(10);function fh(r){return typeof r=="string"?{...Ei(r)}:{...Ei(r),...us(r,["width","style","headEnd","tailEnd"])}}function dh(r){return typeof r=="string"?{color:ne(r)}:{...r,color:bt(r.color)?fo:ne(r.color)}}function Ih(){return{boxShadow:"none"}}function ph(r){return typeof r=="string"?r.startsWith("<svg")?{svg:r}:{paths:[{data:r}]}:Array.isArray(r)?{paths:r.map(t=>typeof t=="string"?{data:t}:t)}:r}function Eh(){return{overflow:"visible",direction:void 0,display:void 0,boxSizing:void 0,width:void 0,height:void 0,maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,position:void 0,left:0,top:0,right:void 0,bottom:void 0,borderTop:void 0,borderLeft:void 0,borderRight:void 0,borderBottom:void 0,borderWidth:0,border:void 0,flex:void 0,flexBasis:void 0,flexDirection:void 0,flexGrow:void 0,flexShrink:void 0,flexWrap:void 0,justifyContent:void 0,gap:void 0,alignContent:void 0,alignItems:void 0,alignSelf:void 0,marginTop:void 0,marginLeft:void 0,marginRight:void 0,marginBottom:void 0,margin:void 0,paddingTop:void 0,paddingLeft:void 0,paddingRight:void 0,paddingBottom:void 0,padding:void 0}}function Bh(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function Ch(){return{...Eh(),...Bh(),...Ih(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function Qh(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function yh(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function mh(){return{...Qh(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function wh(){return{...yh(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function vh(){return{...wh(),...mh(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function rr(r){return nA({...r,color:bt(r.color)?void 0:ne(r.color),backgroundColor:bt(r.backgroundColor)?void 0:ne(r.backgroundColor),borderColor:bt(r.borderColor)?void 0:ne(r.borderColor),outlineColor:bt(r.outlineColor)?void 0:ne(r.outlineColor),shadowColor:bt(r.shadowColor)?void 0:ne(r.shadowColor)})}function _h(){return{...Ch(),...vh()}}const bh=/\r\n|\n\r|\n|\r/,Dh=new RegExp(`^(${bh.source})$`),Co=`
|
|
2
|
-
`;function xh(r){return Dh.test(r)}function Sh(r,t){const e=Array.from(new Set([...Object.keys(r),...Object.keys(t)]));return!e.length||e.every(i=>r[i]===t[i])}function ps(r){const t=[];function e(){return t[t.length-1]}function i(o={}){let a=t[t.length-1];return a?.fragments.length===0?(a={...o,fragments:[]},t[t.length-1]=a):(a={...o,fragments:[]},t.push(a)),a}function A(o="",a={}){Array.from(o).forEach(l=>{if(xh(l)){const{fragments:c,...h}=e()||i();c.length||c.push({...a,content:Co}),i(h)}else{const c=e()||i(),h=c.fragments[c.fragments.length-1];if(h){const{content:u,...d}=h;if(Sh(a,d)){h.content=`${u}${l}`;return}}c.fragments.push({...a,content:l})}})}(Array.isArray(r)?r:[r]).forEach(o=>{if(typeof o=="string")i(),A(o);else if("content"in o){const{content:a,...l}=o;i(rr(l)),A(a)}else if("fragments"in o){const{fragments:a,...l}=o;i(rr(l)),a.forEach(c=>{const{content:h,...u}=c;A(h,rr(u))})}else Array.isArray(o)?(i(),o.forEach(a=>{if(typeof a=="string")A(a);else{const{content:l,...c}=a;A(l,rr(c))}})):console.warn("Failed to parse text content",o)});const n=e();return n&&!n.fragments.length&&n.fragments.push({content:Co}),t}function Mh(r){return typeof r=="string"?{content:ps(r)}:"content"in r?{...r,content:ps(r.content)}:{content:ps(r)}}const sr=new Map;function nt(r,t){return function(e){Object.defineProperty(e.prototype,"is",{value:r,enumerable:!0,configurable:!0}),t&&Object.keys(t).forEach(i=>{Ar(e.prototype,i,{fallback:t[i]})}),sr.set(r,e)}}function Rh(r="node",t={}){const e=sr.get(r);if(!e)throw new Error(`Failed to createNode, tag: ${r}`);return new e().setProperties(t)}class Yt{static _queue=[];static _currentTime=0;static _elapsed=0;static _requestId;static get currentTime(){return this._currentTime}static get elapsed(){return this._elapsed}static on(t,e={}){const{sort:i=0,once:A=!1}=e;this._queue[i]||(this._queue[i]=[]),this._queue[i].push({cb:t,once:A})}static off(t,e={}){const{sort:i=0}=e,A=this._queue[i];if(!A)return;const s=[];for(let n=A.length,o=0;o<n;o++){const a=A[o];a.cb!==t&&s.push(a)}s.length?this._queue[i]=s:this._queue.splice(i,1)}static start(){"requestAnimationFrame"in globalThis&&(this._currentTime=performance.now(),this._requestId=requestAnimationFrame(t=>this._update(t)))}static stop(){this._requestId&&(cancelAnimationFrame(this._requestId),this._requestId=void 0)}static _update(t){this._elapsed=t-this._currentTime,this._currentTime=t,this._requestId=requestAnimationFrame(e=>this._update(e)),this._performUpdate()}static _performUpdate(){const t=this._queue,e=[];for(let i=t.length,A=i;A>=0;A--){const s=t[A];if(!s)continue;const n=[];for(let o=s.length,a=0;a<o;a++){const l=s[a];try{l.cb()}catch(c){console.warn(c)}l.once||n.push(l)}n.length&&(e[A]=n)}this._queue=e}}Yt.start();async function Es(r){return new Promise(t=>{Yt.on(()=>{r?.(),t()},{sort:1,once:!0})})}let Ge=class{eventListeners=new Map;removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(t){return this.eventListeners.has(t)}on(t,e,i){const A={value:e,options:i},s=this.eventListeners.get(t);return s?Array.isArray(s)?s.push(A):this.eventListeners.set(t,[s,A]):this.eventListeners.set(t,A),this}once(t,e){return this.on(t,e,{once:!0})}off(t,e,i){if(!e)return this.eventListeners.delete(t),this;const A=this.eventListeners.get(t);if(!A)return this;if(Array.isArray(A)){const s=[];for(let n=0,o=A.length;n<o;n++){const a=A[n];(a.value!==e||typeof i=="object"&&i?.once&&(typeof a.options=="boolean"||!a.options?.once))&&s.push(a)}s.length?this.eventListeners.set(t,s.length===1?s[0]:s):this.eventListeners.delete(t)}else A.value===e&&(typeof i=="boolean"||!i?.once||typeof A.options=="boolean"||A.options?.once)&&this.eventListeners.delete(t);return this}emit(t,...e){const i=this.eventListeners.get(t);if(i){if(Array.isArray(i))for(let A=i.length,s=0;s<A;s++){const n=i[s];typeof n.options=="object"&&n.options?.once&&this.off(t,n.value,n.options),n.value.apply(this,e)}else typeof i.options=="object"&&i.options?.once&&this.off(t,i.value,i.options),i.value.apply(this,e);return!0}else return!1}},kh=0;class ei extends Ge{instanceId=++kh;_customPropertyAccessor;_properties=new Map;_updatedProperties=new Map;_changedProperties=new Set;_updatingPromise=Promise.resolve();_updating=!1;useCustomPropertyAccessor(t){return this._customPropertyAccessor=t,this.getPropertyDeclarations().forEach((e,i)=>{const A=t.get(i,()=>{}),s=this._properties.get(i);A===void 0?s!==void 0&&t.set(i,s):A!==s&&(this._properties.set(i,A),this._updateProperty(i,A,s,e),this.emit("updateProperty",i,A,s,e))}),this}getter(t,e){return e.declaration.protected?this[e.internalKey]:this._customPropertyAccessor?this._customPropertyAccessor.get(t,()=>this._properties.get(t)):this._properties.get(t)}setter(t,e,i){i.declaration.protected?this[i.internalKey]=e:(this._customPropertyAccessor&&this._customPropertyAccessor.set(t,e),this._properties.set(t,e))}equal(t){return!!(t&&this.instanceId===t.instanceId)}async _enqueueUpdate(){this._updating=!0;try{await this._updatingPromise}catch(t){Promise.reject(t)}await Es(),this._updating&&(this.update(),this._updating=!1)}update(){this._update(this._updatedProperties),this._updatedProperties=new Map}_update(t){}_updateProperty(t,e,i,A){}isDirty(t){return this._updatedProperties.has(t)}getPropertyDeclarations(){return Is(this.constructor)}getPropertyDeclaration(t){return this.getPropertyDeclarations().get(t)}getProperty(t){return this[t]}setProperty(t,e){return this[t]=e,this}getProperties(t){const e={};for(const[i,A]of this.getPropertyDeclarations())!A.protected&&!A.alias&&(!t||t.includes(i))&&(e[i]=this.getProperty(i));return e}setProperties(t){if(t&&typeof t=="object")for(const[e]of this.getPropertyDeclarations())e in t&&this.setProperty(e,t[e]);return this}resetProperties(){for(const[t,e]of this.getPropertyDeclarations())this.setProperty(t,typeof e.fallback=="function"?e.fallback():e.fallback);return this}onUpdateProperty(t,e,i,A){this.requestUpdate(t,e,i,A)}requestUpdate(t,e,i,A){if(t!==void 0)if(!Object.is(e,i))this._updatedProperties.set(t,i),this._changedProperties.add(t),A??=this.getPropertyDeclaration(t),this._updateProperty(t,e,i,A),this.emit("updateProperty",t,e,i,A);else return;this._updating||(this._updatingPromise=this._enqueueUpdate())}toJSON(){const t={};return this._properties.forEach((e,i)=>{e!==void 0&&(e&&typeof e=="object"?"toJSON"in e&&typeof e.toJSON=="function"?t[i]=e.toJSON():t[i]={...e}:t[i]=e)}),t}clone(){return new this.constructor(this.toJSON())}free(){this.removeAllListeners()}}class Qo extends ei{}const nr=Math.PI,ae=nr*2;let Ph=0;function yo(r){return r?.__SPECTOR_Object_TAG?.id??++Ph}function Bs(r){return!(r&r-1)&&!!r}const Uh=/([\w-]+)\((.+?)\)/g,Nh=/[^,]+/g,Fh=/([-e.\d]+)(.*)/;function Cs(r){return Array.isArray(r)?r.map(t=>({name:t.name,args:t.args.map(e=>({...e,normalizedIntValue:e.normalizedDefaultIntValue}))})):{...r,normalizedIntValue:r.normalizedDefaultIntValue}}function aA(r,t,e={}){const i=lA(t,e);return i.length?i:mo(r,t,e)}function lA(r,t={}){const e=[];let i;for(;(i=Uh.exec(r))!==null;){const[,A,s]=i;A&&e.push({name:A,args:Th(A,s,t)})}return e}function Th(r,t,e={}){const i=[];let A,s=0;for(;(A=Nh.exec(t))!==null;)i.push(mo(r,A[0],{...e,index:s++}));return i}function mo(r,t,e={}){const{width:i=1,height:A=1,index:s=0}=e,n=t.match(Fh),o={unit:n?.[2]??null,value:t,intValue:Number(n?.[1]),normalizedIntValue:0,normalizedDefaultIntValue:0};switch(r){case"scale":case"scaleX":case"scaleY":case"scale3d":o.normalizedDefaultIntValue=1;break}switch(o.unit){case"%":o.normalizedIntValue=o.intValue/100;break;case"rad":o.normalizedIntValue=o.intValue/ae;break;case"deg":o.normalizedIntValue=o.intValue/360;break;case"px":switch(s){case 0:o.normalizedIntValue=o.intValue/i;break;case 1:o.normalizedIntValue=o.intValue/A;break}break;case"turn":case"em":case"rem":default:o.normalizedIntValue=o.intValue;break}return o}const wo="WebGL2RenderingContext"in globalThis,vo="ImageBitmap"in globalThis,_o="ResizeObserver"in globalThis,Ri="PointerEvent"in globalThis,bo="WheelEvent"in globalThis,Lh="MouseEvent"in globalThis,Oe="ontouchstart"in globalThis,Do="onclick"in globalThis,Qs="createImageBitmap"in globalThis,ys="AudioContext"in globalThis,ms="webkitAudioContext"in globalThis,ws="OfflineAudioContext"in globalThis,xo="webkitOfflineAudioContext"in globalThis,So=ys||ms,cA=typeof window<"u",vs=globalThis.devicePixelRatio||1,_s=r=>r!==null&&typeof r=="object"&&r.nodeType===1,Mo=r=>_s(r)&&r.tagName==="VIDEO",Gh=r=>_s(r)&&r.tagName==="IMG";function Ro(r){return typeof r=="object"&&r!==null&&r.nodeType===1&&r.tagName==="CANVAS"}function ko(r){return wo&&r instanceof globalThis.WebGL2RenderingContext}function Po(){if(cA)return globalThis.document.createElement("canvas")}function Uo(r,t=globalThis.location){if(r.startsWith("data:"))return"";t=t||globalThis.location;const e=new URL(r,document.baseURI);return e.hostname!==t.hostname||e.port!==t.port||e.protocol!==t.protocol?"anonymous":""}function No(r,t,e){e===null&&!t.startsWith("data:")?r.crossOrigin=Uo(t):e!==!1&&(r.crossOrigin=typeof e=="string"?e:"anonymous")}class bs{_map=new WeakMap;_toRaw(t){if(t&&typeof t=="object"){const e=t.__v_raw;e&&(t=this._toRaw(e))}return t}delete(t){return this._map.delete(this._toRaw(t))}get(t){return this._map.get(this._toRaw(t))}has(t){return this._map.has(this._toRaw(t))}set(t,e){return this._map.set(this._toRaw(t),this._toRaw(e)),this}}class or{bubbles=!0;cancelable=!1;which;cancelBubble=!0;returnValue;srcElement;composed=!1;currentTarget;defaultPrevented=!1;eventPhase=or.prototype.NONE;isTrusted;target;timeStamp;type;nativeEvent;originalEvent;propagationStopped=!1;propagationImmediatelyStopped=!1;path;detail;view;layer={x:0,y:0};get layerX(){return this.layer.x}get layerY(){return this.layer.y}page={x:0,y:0};get pageX(){return this.page.x}get pageY(){return this.page.y}initEvent(...t){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(...t){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}composedPath(){return this.path}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}NONE=0;CAPTURING_PHASE=1;AT_TARGET=2;BUBBLING_PHASE=3}class Ds extends or{altKey;button;buttons;ctrlKey;metaKey;relatedTarget;shiftKey;client={x:0,y:0};get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}movement={x:0,y:0};get movementX(){return this.movement.x}get movementY(){return this.movement.y}offset={x:0,y:0};get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}global={x:0,y:0};get globalX(){return this.global.x}get globalY(){return this.global.y}screen={x:0,y:0};get screenX(){return this.screen.x}get screenY(){return this.screen.y}getModifierState(t){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(...t){throw new Error("Method not implemented.")}}class Fo extends Ds{width=0;height=0;isPrimary=!1;pointerType;pressure;tangentialPressure;tiltX;tiltY;twist;getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}class To extends Ds{deltaMode;deltaX;deltaY;deltaZ;static DOM_DELTA_PIXEL=0;DOM_DELTA_PIXEL=0;static DOM_DELTA_LINE=1;DOM_DELTA_LINE=1;static DOM_DELTA_PAGE=2;DOM_DELTA_PAGE=2}const Oh={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"};class Lo extends Ge{target;cursor="default";cursorStyles={default:"inherit",pointer:"pointer"};setuped=!1;event;enableMoveEvent=!0;enableWheelEvent=!0;enableClickEvent=!0;setTarget(t){this.removeEventListeners(),this.target=t,this.addEventListeners()}removeEventListeners(){if(!this.setuped||!this.target)return;const t=this.target.style;globalThis.navigator.msPointerEnabled?(t.msContentZooming="",t.msTouchAction=""):Ri&&(t.touchAction=""),Ri?(this.target.removeEventListener("pointerdown",this.onPointerDown),this.target.removeEventListener("pointerleave",this.onPointerOver),this.target.removeEventListener("pointerover",this.onPointerOver),this.target.removeEventListener("pointermove",this.onPointerMove),this.target.removeEventListener("pointerup",this.onPointerUp)):(this.target.removeEventListener("mousedown",this.onPointerDown),this.target.removeEventListener("mouseout",this.onPointerOver),this.target.removeEventListener("mouseover",this.onPointerOver),this.target.removeEventListener("mousemove",this.onPointerMove),this.target.removeEventListener("mouseup",this.onPointerUp)),Oe&&(this.target.removeEventListener("touchstart",this.onPointerDown),this.target.removeEventListener("touchmove",this.onPointerMove),this.target.removeEventListener("touchend",this.onPointerUp)),this.target.removeEventListener("wheel",this.onWheel),this.target=void 0,this.setuped=!1}addEventListeners(){if(this.setuped||!this.target)return;const t=this.target.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="none",t.msTouchAction="none"):Ri&&(t.touchAction="none")),Ri?(this.target.addEventListener("pointerdown",this.onPointerDown),this.target.addEventListener("pointerleave",this.onPointerOver),this.target.addEventListener("pointerover",this.onPointerOver),this.target.addEventListener("pointermove",this.onPointerMove),this.target.addEventListener("pointerup",this.onPointerUp)):(this.target.addEventListener("mousedown",this.onPointerDown),this.target.addEventListener("mouseout",this.onPointerOver),this.target.addEventListener("mouseover",this.onPointerOver),this.target.addEventListener("mousemove",this.onPointerMove),this.target.addEventListener("mouseup",this.onPointerUp)),Oe&&(this.target.addEventListener("touchstart",this.onPointerDown),this.target.addEventListener("touchmove",this.onPointerMove),this.target.addEventListener("touchend",this.onPointerUp)),this.target.addEventListener("wheel",this.onWheel),this.setuped=!0}normalize(t){const e=[];if(Oe&&t instanceof globalThis.TouchEvent)for(let i=0,A=t.changedTouches.length;i<A;i++){const s=t.changedTouches[i];typeof s.button>"u"&&(s.button=0),typeof s.buttons>"u"&&(s.buttons=1),typeof s.isPrimary>"u"&&(s.isPrimary=t.touches.length===1&&t.type==="touchstart"),typeof s.width>"u"&&(s.width=s.radiusX||1),typeof s.height>"u"&&(s.height=s.radiusY||1),typeof s.tiltX>"u"&&(s.tiltX=0),typeof s.tiltY>"u"&&(s.tiltY=0),typeof s.pointerType>"u"&&(s.pointerType="touch"),typeof s.pointerId>"u"&&(s.pointerId=s.identifier||0),typeof s.pressure>"u"&&(s.pressure=s.force||.5),typeof s.twist>"u"&&(s.twist=0),typeof s.tangentialPressure>"u"&&(s.tangentialPressure=0),typeof s.layerX>"u"&&(s.layerX=s.offsetX=s.clientX),typeof s.layerY>"u"&&(s.layerY=s.offsetY=s.clientY),s.type=t.type,e.push(s)}else if(bo&&t instanceof globalThis.WheelEvent)e.push(t);else if(Ri&&t instanceof globalThis.PointerEvent)e.push(t);else{const i=t;typeof i.isPrimary>"u"&&(i.isPrimary=!0),typeof i.width>"u"&&(i.width=1),typeof i.height>"u"&&(i.height=1),typeof i.tiltX>"u"&&(i.tiltX=0),typeof i.tiltY>"u"&&(i.tiltY=0),typeof i.pointerType>"u"&&(i.pointerType="mouse"),typeof i.pointerId>"u"&&(i.pointerId=1),typeof i.pressure>"u"&&(i.pressure=.5),typeof i.twist>"u"&&(i.twist=0),typeof i.tangentialPressure>"u"&&(i.tangentialPressure=0),e.push(i)}return e}cloneWheelEvent(t){const e=new To;return this.copyMouseEvent(e,t),e.wheelDeltaY=t.wheelDeltaY,e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ,e.deltaMode=t.deltaMode,this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.x=e.screen.x,e.global.y=e.screen.y,e.offset.x=e.screen.x,e.offset.y=e.screen.y,e.nativeEvent=t,e.type=t.type,e}clonePointerEvent(t){const e=new Fo;return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,e.isTrusted=t.isTrusted,this.copyMouseEvent(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.x=e.screen.x,e.global.y=e.screen.y,e.offset.x=e.screen.x,e.offset.y=e.screen.y,e.type==="pointerleave"?e.type="pointerout":e.type.startsWith("mouse")?e.type=e.type.replace("mouse","pointer"):e.type.startsWith("touch")&&(e.type=Oh[e.type]||e.type),e}copyMouseEvent(t,e){t.preventDefault=e.preventDefault.bind(e),t.stopPropagation=e.stopPropagation.bind(e),t.isTrusted=e.isTrusted,t.timeStamp=performance.now(),t.type=e.type,t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.x=e.clientX,t.client.y=e.clientY,t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.x=e.movementX,t.movement.y=e.movementY,t.page.x=e.pageX,t.page.y=e.pageY,t.relatedTarget=null,t.shiftKey=e.shiftKey}setCursor(t){if(!this.target||(t=t||"default",this.cursor===t))return;this.cursor=t;const e=!(globalThis.OffscreenCanvas&&this.target instanceof OffscreenCanvas),i=this.cursorStyles[t];if(i)switch(typeof i){case"string":e&&(this.target.style.cursor=i);break;case"function":i(t);break;case"object":e&&Object.assign(this.target.style,i);break}else e&&typeof t=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,t)&&(this.target.style.cursor=t)}mapPositionToPoint(t,e,i){if(!this.target)return;const A=Number(this.target.getAttribute("width"))||0,s=Number(this.target.getAttribute("height"))||0,n=Number(this.target.getAttribute("data-pixel-ratio"))||1,o=this.target.isConnected?this.target.getBoundingClientRect():{width:A,height:s,left:0,top:0},a=1/n;t.x=(e-o.left)*(A/o.width)*a,t.y=(i-o.top)*(s/o.height)*a}onPointerDown=t=>{if(Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let i=0,A=e.length;i<A;i++)this.emit("pointerdown",this.event=this.clonePointerEvent(e[i]));this.setCursor(this.cursor)};onPointerOver=t=>{if(!this.enableClickEvent||Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let i=0,A=e.length;i<A;i++)this.emit("pointerover",this.event=this.clonePointerEvent(e[i]))};onPointerMove=t=>{if(!this.enableMoveEvent||Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let i=0,A=e.length;i<A;i++)this.emit("pointermove",this.event=this.clonePointerEvent(e[i]))};onPointerUp=t=>{if(!this.enableClickEvent||Oe&&t.pointerType==="touch")return;let e=t.target;t.composedPath&&t.composedPath().length>0&&(e=t.composedPath()[0]);const i=e!==this.target?"outside":"",A=this.normalize(t);for(let s=0,n=A.length;s<n;s++){const o=this.clonePointerEvent(A[s]);o.type+=i,this.emit("pointerup",this.event=o)}};onWheel=t=>{if(!this.enableWheelEvent)return;const e=this.normalize(t);for(let i=0,A=e.length;i<A;i++)this.emit("wheel",this.event=this.cloneWheelEvent(e[i]))}}class He extends Qo{}function Hh(r,t){var e={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var A in e)i[e[A]]=A;var s={};r.prototype.toName=function(n){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var o,a,l=i[this.toHex()];if(l)return l;if(n?.closest){var c=this.toRgb(),h=1/0,u="black";if(!s.length)for(var d in e)s[d]=new r(e[d]).toRgb();for(var f in e){var B=(o=c,a=s[f],Math.pow(o.r-a.r,2)+Math.pow(o.g-a.g,2)+Math.pow(o.b-a.b,2));B<h&&(h=B,u=f)}return u}},t.string.push([function(n){var o=n.toLowerCase(),a=o==="transparent"?"#0000":e[o];return a?new r(a).toRgb():null},"name"])}Hc([Hh]);class Je{get value(){return this._value}set value(t){this._colord=fs(t??"none")}get r8(){return this._colord.rgba.r}get g8(){return this._colord.rgba.g}get b8(){return this._colord.rgba.b}get a8(){return this._colord.rgba.a*255&255}get r(){return this.r8/255}get g(){return this.g8/255}get b(){return this.b8/255}get a(){return this._colord.rgba.a}get rgb(){return(this.r8<<16)+(this.g8<<8)+this.b8}get bgr(){return(this.b8<<16)+(this.g8<<8)+this.r8}get abgr(){return(this.a8<<24)+this.bgr}constructor(t=0){this.value=t}toHex(){return this._colord.toHex()}toRgb(){return this._colord.toRgb()}toRgbString(){return this._colord.toRgbString()}toHsl(){return this._colord.toHsl()}toHslString(){return this._colord.toHslString()}toHsv(){return this._colord.toHsv()}toArgb(t=this.a,e=!0){if(t===1)return(255<<24)+this.rgb;if(t===0)return e?0:this.rgb;let i=this.r8,A=this.g8,s=this.b8;return e&&(i=i*t+.5|0,A=A*t+.5|0,s=s*t+.5|0),(t*255<<24)+(i<<16)+(A<<8)+s}toArray(){return[this.r,this.g,this.b,this.a]}}class Ce extends Ge{constructor(t){super(),this.dim=t}_array=[];get length(){return this.dim}_operate(t,e,i){const{dim:A,_array:s}=this;let n;typeof e=="number"?n=Array.from({length:A},()=>e):e instanceof be||e instanceof Ce?n=e.toArray():n=e;let o,a=[];if(i?i instanceof Ce?o=i:a=i:o=this,e instanceof be){const{cols:l}=e;switch(t){case"*":for(let c=0;c<A;c++){let h=0;for(let u=0;u<A;u++)h+=s[c]*n[u*l+c];a[c]=h}break;default:throw new Error(`Not support operator in '${this.toName()} ${t} ${e.toName()}'`)}}else switch(t){case"+":for(let l=0;l<A;l++)a[l]=s[l]+n[l];break;case"-":for(let l=0;l<A;l++)a[l]=s[l]-n[l];break;case"*":for(let l=0;l<A;l++)a[l]=s[l]*n[l];break;case"/":for(let l=0;l<A;l++)a[l]=s[l]/n[l];break;case"rot":{const l=Math.cos(n[0]),c=Math.sin(n[0]);a[0]=s[0]*l-s[1]*c,a[1]=s[1]*l+s[0]*c;break}case"==":{let l=!0;for(let c=0;c<A;c++)l=l&&s[c]===n[c];return l}case"=":for(let l=0;l<A;l++){const c=n[l];c!==void 0&&(s[l]=c)}return this._onUpdate(s),this.emit("update",s),this;default:throw new Error(`Not support operator in '${this.toName()} ${t} Vector'`)}return o?.set(a)??a}add(t,e){return this._operate("+",t,e)}sub(t,e){return this._operate("-",t,e)}multiply(t,e){return this._operate("*",t,e)}divide(t,e){return this._operate("/",t,e)}rotate(t){return this._operate("rot",t)}set(t,...e){return e.length&&typeof t=="number"&&(t=[t,...e]),this._operate("=",t)}equals(t){return this._operate("==",t)}copy(t){return this.set(t)}clone(){const t=new this.constructor;return t.set(this.toArray()),t}_onUpdate(t){}toArray(){return this._array.slice()}toName(){return`Vector${this.dim}`}}class be extends Ge{constructor(t,e,i){super(),this.rows=t,this.cols=e,i?this.set(i):this.identity()}_array=[];dirtyId=0;get length(){return this.cols*this.rows}_operate(t,e,i){const{cols:A,rows:s,length:n,_array:o}=this;let a;typeof e=="number"?a=Array.from({length:n},()=>e):e instanceof Ce||e instanceof be?a=e.toArray():a=e;let l,c=[];if(i?i instanceof Ce||i instanceof be?l=i:c=i:e instanceof Ce?l=new e.constructor:l=this,e instanceof Ce){const{dim:h}=e;switch(t){case"*":for(let u=0;u<h;u++){let d=0;for(let f=0;f<A;f++)f<h&&(d+=o[u*A+f]*(a[f]??0));c[u]=d}break;default:throw new Error(`Not support operator in '${this.toName()} ${t} ${e.toName()}'`)}}else switch(t){case"*":for(let h=0;h<A;h++)for(let u=0;u<s;u++){const d=u*A;let f=0;for(let B=0;B<s;B++){const p=d+B,R=B*A+h;f+=o[p]*(a[R]??0)}c[d+h]=f}break;case"=":for(let h=0;h<n;h++){const u=a[h];u!==void 0&&(o[h]=u)}return this._onUpdate(o),this.emit("update",o),this;default:throw new Error(`Not support operator in '${this.toName()} ${t} Matrix2'`)}return l?.set(c)??c}identity(){const{cols:t,rows:e}=this,i=[];for(let A=0;A<t;A++)for(let s=0;s<e;s++){const n=s*t,o=A+n;i[o]=s+n===o?1:0}return this.set(i)}set(t){return this._operate("=",t)}copy(t){return this.set(t)}clone(){const t=new this.constructor;return t.set(this.toArray()),t}multiply(t,e){return this._operate("*",t,e)}_onUpdate(t){this.dirtyId++}toArray(t=!1){const{cols:e,rows:i,_array:A}=this;if(t){const s=[];for(let n=0;n<i;n++)for(let o=0;o<e;o++)s[n+o*e]=A[o+n*e];return s}return A.slice()}toName(){return`Matrix${this.rows}(${this.rows}x${this.cols})`}toJSON(){return this._array}}class Go extends be{constructor(t){super(4,4,t)}}const Oo=nr/180,Jh=180/nr;function Ke(r,t,e){return Math.max(r,Math.min(t,e))}function Dt(r,t,e){return(1-e)*r+e*t}const Kh={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,epsilon:1e-4,_segmentsCount(r,t=20){if(!this.adaptive||!r||Number.isNaN(r))return t;let e=Math.ceil(r/this.maxLength);return e<this.minSegments?e=this.minSegments:e>this.maxSegments&&(e=this.maxSegments),e}};class Ho extends Ce{constructor(t=0,e=0,i=0,A=0){super(4),this.set([t,e,i,A])}}class xs extends be{constructor(t){super(4,5,t)}hueRotate(t=0){const e=Math.sin(t),i=Math.cos(t),A=.213,s=.715,n=.072;return this.multiply([A+i*(1-A)+e*-A,s+i*-s+e*-s,n+i*-n+e*(1-n),0,0,A+i*-A+e*.143,s+i*(1-s)+e*.14,n+i*-n+e*-.283,0,0,A+i*-A+e*-.787,s+i*-s+e*s,n+i*(1-n)+e*n,0,0,0,0,0,1,0])}saturate(t=1){const e=(t-1)*2/3+1,i=(e-1)*-.5;return this.multiply([e,i,i,0,0,i,e,i,0,0,i,i,e,0,0,0,0,0,1,0])}brightness(t=1){const e=t;return this.multiply([e,0,0,0,0,0,e,0,0,0,0,0,e,0,0,0,0,0,1,0])}contrast(t=1){const e=t,i=-128*(e-1);return this.multiply([e,0,0,0,i,0,e,0,0,i,0,0,e,0,i,0,0,0,1,0])}invert(t=1){const e=Dt(1,-1,t),i=Dt(0,255,t);return this.multiply([e,0,0,0,i,0,e,0,0,i,0,0,e,0,i,0,0,0,1,0])}sepia(t=1){const e=Ke(0,t,1);return this.multiply([Dt(1,.393,e),Dt(0,.7689999,e),Dt(0,.18899999,e),0,0,Dt(0,.349,e),Dt(1,.6859999,e),Dt(0,.16799999,e),0,0,Dt(0,.272,e),Dt(0,.5339999,e),Dt(1,.13099999,e),0,0,0,0,0,1,0])}opacity(t=1){return this.multiply([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,t,0])}grayscale(t=1){const e=Ke(0,t,1),i=Dt(1,.3,e),A=Dt(0,.3,e),s=Dt(1,.59,e),n=Dt(0,.59,e),o=Dt(1,.11,e),a=Dt(0,.11,e);return this.multiply([i,n,a,0,0,A,s,a,0,0,A,n,o,0,0,0,0,0,1,0])}multiply(t){const e=t,i=this._array;return this.set([i[0]*e[0]+i[1]*e[5]+i[2]*e[10]+i[3]*e[15],i[0]*e[1]+i[1]*e[6]+i[2]*e[11]+i[3]*e[16],i[0]*e[2]+i[1]*e[7]+i[2]*e[12]+i[3]*e[17],i[0]*e[3]+i[1]*e[8]+i[2]*e[13]+i[3]*e[18],i[0]*e[4]+i[1]*e[9]+i[2]*e[14]+i[3]*e[19]+i[4],i[5]*e[0]+i[6]*e[5]+i[7]*e[10]+i[8]*e[15],i[5]*e[1]+i[6]*e[6]+i[7]*e[11]+i[8]*e[16],i[5]*e[2]+i[6]*e[7]+i[7]*e[12]+i[8]*e[17],i[5]*e[3]+i[6]*e[8]+i[7]*e[13]+i[8]*e[18],i[5]*e[4]+i[6]*e[9]+i[7]*e[14]+i[8]*e[19]+i[9],i[10]*e[0]+i[11]*e[5]+i[12]*e[10]+i[13]*e[15],i[10]*e[1]+i[11]*e[6]+i[12]*e[11]+i[13]*e[16],i[10]*e[2]+i[11]*e[7]+i[12]*e[12]+i[13]*e[17],i[10]*e[3]+i[11]*e[8]+i[12]*e[13]+i[13]*e[18],i[10]*e[4]+i[11]*e[9]+i[12]*e[14]+i[13]*e[19]+i[14],i[15]*e[0]+i[16]*e[5]+i[17]*e[10]+i[18]*e[15],i[15]*e[1]+i[16]*e[6]+i[17]*e[11]+i[18]*e[16],i[15]*e[2]+i[16]*e[7]+i[17]*e[12]+i[18]*e[17],i[15]*e[3]+i[16]*e[8]+i[17]*e[13]+i[18]*e[18],i[15]*e[4]+i[16]*e[9]+i[17]*e[14]+i[18]*e[19]+i[19]])}toMatrix4(){const t=this._array;return new Go([t[0],t[1],t[2],t[3],t[5],t[6],t[7],t[8],t[10],t[11],t[12],t[13],t[15],t[16],t[17],t[18]])}toVector4(){const t=this._array;return new Ho(t[4]/255,t[9]/255,t[14]/255,t[19]/255)}}class Yh extends be{constructor(t){super(2,2,t)}}let Ss=class extends be{constructor(t){super(3,3,t)}invert(){const[t,e,i,A,s,n,o,a,l]=this._array,c=l*s-n*a,h=n*o-l*A,u=a*A-s*o,d=t*c+e*h+i*u;if(d===0)return this.set([0,0,0,0,0,0,0,0,0]);const f=1/d;return this.set([c*f,(i*a-l*e)*f,(n*e-i*s)*f,h*f,(l*t-i*o)*f,(i*A-n*t)*f,u*f,(e*o-a*t)*f,(s*t-e*A)*f])}};class Jo extends Ss{constructor(t=0,e=0,i=0,A=0,s=!1){super(),this._x=t,this._y=e,this._width=i,this._height=A,this._flipY=s,this._performUpdateArray()}flipY(t){return this._flipY!==t&&(this._flipY=t,this._performUpdateArray()),this}translate(t,e){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._performUpdateArray()),this}resize(t,e){return(this._width!==t||this._height!==e)&&(this._width=t,this._height=e,this._performUpdateArray()),this}_performUpdateArray(){const t=this._width,e=this._height;if(!t||!e)return;const i=this._x,A=this._y,s=this._flipY?-1:1,n=1/t*2,o=s*(1/e*2),a=-1-i*n,l=-s-A*o;this.set([n,0,a,0,o,l,0,0,1])}}let le=class os extends Ce{get x(){return this._array[0]}set x(t){const[e,i]=this._array;e!==t&&this.set(t,i)}get y(){return this._array[1]}set y(t){const[e,i]=this._array;i!==t&&this.set(e,t)}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}get left(){return this.x}set left(t){this.x=t}get top(){return this.y}set top(t){this.y=t}constructor(t=0,e){super(2),this.set(typeof t=="number"?[t,e??t]:t)}update(t,e){const[i,A]=this._array;return(i!==t||A!==e)&&this.set(t,e),this}getLength(){const[t,e]=this._array;return Math.sqrt(t*t+e*e)}getAngle(){const[t,e]=this._array;return Math.atan2(-t,-e)+Math.PI}distanceTo(t){return Math.hypot(t.x-this.x,t.y-this.y)}normalize(){const[t,e]=this._array,i=1/(this.getLength()||1);return this.set(t*i,e*i),this}static lerp(t,e,i){return new os(e).clone().sub(new os(t)).multiply(i).add(new os(t))}};class Ms{get x(){return this.position.x}get y(){return this.position.y}get left(){return this.position.x}get top(){return this.position.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get width(){return this.size.x}get height(){return this.size.y}end=new le;position;size;constructor(...t){const e=new le,i=new le;switch(t.length){case 0:break;case 1:e.set(t[0].position),i.set(t[0].size);break;case 2:e.set(t[0]),i.set(t[1]);break;default:e.set(t[0],t[1]),i.set(t[2],t[3]);break}this.update=this.update.bind(this),this.position=e.on("update",this.update),this.size=i.on("update",this.update),this.update()}update(){return this.end.set(this.position.x+this.size.x,this.position.y+this.size.y),this}toArray(){return[this.x,this.y,this.width,this.height]}}class Vt extends Ss{static _t2d=new Vt;premultiply(t){return t.multiply(this,this)}skewX(t){return this.skew(t,0)}skewY(t){return this.skew(0,t)}skew(t,e){return this.premultiply(Vt._t2d.makeSkew(t,e))}makeSkew(t,e){const i=Math.tan(t),A=Math.tan(e);return this.set([1,A,0,i,1,0,0,0,1]),this}translateX(t){return this.translate(t,0)}translateY(t){return this.translate(0,t)}translateZ(t){return this.translate(0,0,t)}translate3d(t,e,i){return this.translate(t,e,i)}translate(t,e,i=0){return this.premultiply(Vt._t2d.makeTranslation(t,e,i))}makeTranslation(t,e,i=0){return this.set([1,0,t,0,1,e,0,0,1]),this}scaleX(t){return this.scale(t,1)}scaleY(t){return this.scale(1,t)}scale3d(t,e,i=1){return this.scale(t,e,i)}scale(t,e,i=1){return this.premultiply(Vt._t2d.makeScale(t,e,i))}makeScale(t,e,i=1){return this.set([t,0,0,0,e,0,0,0,1]),this}rotateX(t){return this.scaleY(this._rotateToScale(t))}rotateY(t){return this.scaleX(this._rotateToScale(t))}rotateZ(t){return this.rotate(t)}rotate(t){return this.premultiply(Vt._t2d.makeRotation(t))}rotate3d(t,e,i,A){const[s,n,o]=this._rotate3d(t,e,i,A);return s&&this.rotateX(s),n&&this.rotateY(n),o&&this.rotateZ(o),this}_rotateToScale(t){const e=t/ae;return e<=.5?e*-4+1:(e-1)*4+1}_rotate3d(t,e,i,A){if(t===1&&e===0&&i===0)return[A,0,0];if(t===0&&e===1&&i===0)return[0,A,0];if(t===0&&e===0)return[0,0,A];{const s=Math.cos(A),n=Math.sin(A),o=s+t*t*(1-s),a=t*e*(1-s)-i*n,l=t*i*(1-s)+e*n,c=s+e*e*(1-s),h=e*i*(1-s)-t*n,u=s+i*i*(1-s),d=-Math.atan2(-h,c),f=-Math.atan2(l,Math.sqrt(h*h+u*u)),B=-Math.atan2(-a,o);return[d,f,B]}}makeRotation(t){const e=Math.cos(t),i=Math.sin(t);return this.set([e,-i,0,i,e,0,0,0,1]),this}applyToPoint(t,e){const{a:i,c:A,tx:s,b:n,d:o,ty:a}=this.toObject();return[i*t+A*e+s,n*t+o*e+a]}inverse(){return this.clone().invert()}isIdentity(){const{a:t,b:e,c:i,d:A,tx:s,ty:n}=this.toObject();return t===1&&e===0&&i===0&&A===1&&s===0&&n===0}toObject(){const[t,e,i,A,s,n,,,o]=this._array;return{a:t,c:e,tx:i,b:A,d:s,ty:n,tz:o}}}class Vh extends Ce{constructor(){super(3)}}var zh=Object.defineProperty,Ko=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&zh(t,e,A),A};class ar extends ei{_starting=!1;_nextDeltaTime=0;get starting(){return this._starting}get spf(){return this.fps?Math.floor(1e3/this.fps):0}constructor(){super(),this._onNextTick=this._onNextTick.bind(this)}start(t){this._starting||(this._starting=!0,this.off("process"),this.on("process",t),Yt.on(this._onNextTick,{sort:0}))}stop(){this._starting&&(this._starting=!1,Yt.off(this._onNextTick,{sort:0}))}_onNextTick(){const t=Yt.elapsed*this.speed;if((this._nextDeltaTime-=t)<=0){const i=(this._nextDeltaTime=this.spf)||t;this.emit("process",i)}}free(){super.free(),this.stop()}}Ko([_({fallback:24})],ar.prototype,"fps"),Ko([_({fallback:1})],ar.prototype,"speed");class Yo{view;pixelRatio=vs;screen={x:0,y:0,width:0,height:0};related=new bs;getRelated(t,e){let i=this.related.get(t);return i||(e?(this.related.set(t,i=e()),i):(console.warn("Failed to get related",t),null))}resize(t,e,i=!0){this.view&&(this.view.width=Math.floor(t*this.pixelRatio),this.view.height=Math.floor(e*this.pixelRatio)),this.screen.width=t,this.screen.height=e,i&&this.view&&(this.view.style.width=`${t}px`,this.view.style.height=`${e}px`)}}var ki=(r=>(r.NORMAL="normal",r.ADD="add",r.MULTIPLY="multiply",r.SCREEN="screen",r.NONE="none",r.NORMAL_NPM="normal_npm",r.ADD_NPM="add_npm",r.SCREEN_NPM="screen_npm",r.SRC_IN="src_in",r.SRC_OUT="src_out",r.SRC_ATOP="src_atop",r.DST_OVER="dst_over",r.DST_IN="dst_in",r.DST_OUT="dst_out",r.DST_ATOP="dst_atop",r.XOR="xor",r.SUBTRACT="subtract",r))(ki||{});function Vo(r){return{normal:[r.ONE,r.ONE_MINUS_SRC_ALPHA],add:[r.ONE,r.ONE],multiply:[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],screen:[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],none:[0,0],normal_npm:[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],add_npm:[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],screen_npm:[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],src_in:[r.DST_ALPHA,r.ZERO],src_out:[r.ONE_MINUS_DST_ALPHA,r.ZERO],src_atop:[r.DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],dst_over:[r.ONE_MINUS_DST_ALPHA,r.ONE],dst_in:[r.ZERO,r.SRC_ALPHA],dst_out:[r.ZERO,r.ONE_MINUS_SRC_ALPHA],dst_atop:[r.ONE_MINUS_DST_ALPHA,r.SRC_ALPHA],xor:[r.ONE_MINUS_DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],subtract:[r.ONE,r.ONE,r.ONE,r.ONE,r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD]}}class Ie{get gl(){return this._renderer.gl}install(t){this._renderer=t}onUpdateContext(){}flush(){}reset(){}free(){}}class Bi{static _properties=["blend","offsets","culling","depthTest","clockwiseFrontFace","depthMask"];static _init(){this._properties.forEach((t,e)=>{Object.defineProperty(this.prototype,t,{get(){return!!(this.bitmap&1<<e)},set(i){!!(this.bitmap&1<<e)!==i&&(this.bitmap^=1<<e)},enumerable:!0,configurable:!0})})}static for2D(){const t=new Bi;return t.depthTest=!1,t.blend=!0,t}_blendMode=ki.NORMAL;_polygonOffset=0;bitmap=0;get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!==ki.NONE,this._blendMode=t}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}constructor(t){if(t)for(const e in t)this[e]=t[e]}}Bi._init();class zo extends Ie{install(t){super.install(t),t.state=this}_blendEq=!1;_setters=Bi._properties.map(t=>this[`set${t.replace(/^\S/,e=>e.toUpperCase())}`]);boundStateBitmap=0;boundBlendMode;blendModes;defaultState=new Bi({blend:!0});onUpdateContext(){super.onUpdateContext(),this.blendModes=Vo(this._renderer.gl)}toggle(t,e){this._renderer.gl[e?"enable":"disable"](t)}setBlend(t){this.toggle(this._renderer.gl.BLEND,t)}setOffsets(t){this.toggle(this._renderer.gl.POLYGON_OFFSET_FILL,t)}setCulling(t){this.toggle(this._renderer.gl.CULL_FACE,t)}setDepthTest(t){this.toggle(this._renderer.gl.DEPTH_TEST,t)}setDepthMask(t){this._renderer.gl.depthMask(t)}setClockwiseFrontFace(t){const e=this._renderer.gl;e.frontFace(e[t?"CW":"CCW"])}setBlendMode(t){if(t===this.boundBlendMode)return;this.boundBlendMode=t;const e=this.blendModes[t],i=this._renderer.gl;e.length===2?i.blendFunc(e[0],e[1]):i.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,i.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(t,e){this._renderer.gl.polygonOffset(t,e)}bind(t){if(this.boundStateBitmap!==t.bitmap){let e=this.boundStateBitmap^t.bitmap,i=0;for(;e;)e&1&&this._setters[i]?.call(this,!!(t.bitmap&1<<i)),e=e>>1,i++;this.boundStateBitmap=t.bitmap}t.blend&&this.setBlendMode(t.blendMode),t.offsets&&this.setPolygonOffset(1,t.polygonOffset)}reset(){super.reset();const t=this._renderer.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),this.bind(this.defaultState),this._blendEq=!0,this.setBlendMode(ki.NORMAL)}}class Wo extends Ie{install(t){super.install(t),t.batch2D=this}_state=Bi.for2D();_batchSize=4096*4;_drawCallUid=0;_defaultModulate=4294967295;_defaultBackgroundColor=0;_defaultColorMatrixOffset=[0,0,0,0];_defaultColorMatrix=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];_batchables=[];_vertexCount=0;_indexCount=0;_attributeBuffer=[];_indexBuffers=[];_shaders=new Map;_attributes={aTextureId:{size:1,normalized:!0,type:"float"},aPosition:{size:2,normalized:!1,type:"float"},aUv:{size:2,normalized:!1,type:"float"},aModulate:{size:4,normalized:!0,type:"unsigned_byte"},aBackgroundColor:{size:4,normalized:!0,type:"unsigned_byte"},aDisableWrapMode:{size:4,normalized:!0,type:"float"},aColorMatrixOffset:{size:4,normalized:!1,type:"float"},aColorMatrix:{size:4,normalized:!1,type:"float"}};_vertexSize=31;_getShader(t){let e=this._shaders.get(t);return e||this._shaders.set(t,e=this._createShader(t)),e}_createShader(t){const e=this._renderer,i=e.program.create({vert:`precision highp float;
|
|
2
|
+
`;function xh(r){return Dh.test(r)}function Sh(r,t){const e=Array.from(new Set([...Object.keys(r),...Object.keys(t)]));return!e.length||e.every(i=>r[i]===t[i])}function ps(r){const t=[];function e(){return t[t.length-1]}function i(o={}){let a=t[t.length-1];return a?.fragments.length===0?(a={...o,fragments:[]},t[t.length-1]=a):(a={...o,fragments:[]},t.push(a)),a}function A(o="",a={}){Array.from(o).forEach(l=>{if(xh(l)){const{fragments:c,...h}=e()||i();c.length||c.push({...a,content:Co}),i(h)}else{const c=e()||i(),h=c.fragments[c.fragments.length-1];if(h){const{content:u,...d}=h;if(Sh(a,d)){h.content=`${u}${l}`;return}}c.fragments.push({...a,content:l})}})}(Array.isArray(r)?r:[r]).forEach(o=>{if(typeof o=="string")i(),A(o);else if("content"in o){const{content:a,...l}=o;i(rr(l)),A(a)}else if("fragments"in o){const{fragments:a,...l}=o;i(rr(l)),a.forEach(c=>{const{content:h,...u}=c;A(h,rr(u))})}else Array.isArray(o)?(i(),o.forEach(a=>{if(typeof a=="string")A(a);else{const{content:l,...c}=a;A(l,rr(c))}})):console.warn("Failed to parse text content",o)});const n=e();return n&&!n.fragments.length&&n.fragments.push({content:Co}),t}function Mh(r){return typeof r=="string"?{content:ps(r)}:"content"in r?{...r,content:ps(r.content)}:{content:ps(r)}}const sr=new Map;function nt(r,t){return function(e){Object.defineProperty(e.prototype,"is",{value:r,enumerable:!0,configurable:!0}),t&&Object.keys(t).forEach(i=>{Ar(e.prototype,i,{fallback:t[i]})}),sr.set(r,e)}}function Rh(r="node",t={}){const e=sr.get(r);if(!e)throw new Error(`Failed to createNode, tag: ${r}`);return new e().setProperties(t)}class Yt{static _queue=[];static _currentTime=0;static _elapsed=0;static _requestId;static get currentTime(){return this._currentTime}static get elapsed(){return this._elapsed}static on(t,e={}){const{sort:i=0,once:A=!1}=e;this._queue[i]||(this._queue[i]=[]),this._queue[i].push({cb:t,once:A})}static off(t,e={}){const{sort:i=0}=e,A=this._queue[i];if(!A)return;const s=[];for(let n=A.length,o=0;o<n;o++){const a=A[o];a.cb!==t&&s.push(a)}s.length?this._queue[i]=s:this._queue.splice(i,1)}static start(){"requestAnimationFrame"in globalThis&&(this._currentTime=performance.now(),this._requestId=requestAnimationFrame(t=>this._update(t)))}static stop(){this._requestId&&(cancelAnimationFrame(this._requestId),this._requestId=void 0)}static _update(t){this._elapsed=t-this._currentTime,this._currentTime=t,this._requestId=requestAnimationFrame(e=>this._update(e)),this._performUpdate()}static _performUpdate(){const t=this._queue,e=[];for(let i=t.length,A=i;A>=0;A--){const s=t[A];if(!s)continue;const n=[];for(let o=s.length,a=0;a<o;a++){const l=s[a];try{l.cb()}catch(c){console.warn(c)}l.once||n.push(l)}n.length&&(e[A]=n)}this._queue=e}}Yt.start();async function Es(r){return new Promise(t=>{Yt.on(()=>{r?.(),t()},{sort:1,once:!0})})}let Ge=class{eventListeners=new Map;removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(t){return this.eventListeners.has(t)}on(t,e,i){const A={value:e,options:i},s=this.eventListeners.get(t);return s?Array.isArray(s)?s.push(A):this.eventListeners.set(t,[s,A]):this.eventListeners.set(t,A),this}once(t,e){return this.on(t,e,{once:!0})}off(t,e,i){if(!e)return this.eventListeners.delete(t),this;const A=this.eventListeners.get(t);if(!A)return this;if(Array.isArray(A)){const s=[];for(let n=0,o=A.length;n<o;n++){const a=A[n];(a.value!==e||typeof i=="object"&&i?.once&&(typeof a.options=="boolean"||!a.options?.once))&&s.push(a)}s.length?this.eventListeners.set(t,s.length===1?s[0]:s):this.eventListeners.delete(t)}else A.value===e&&(typeof i=="boolean"||!i?.once||typeof A.options=="boolean"||A.options?.once)&&this.eventListeners.delete(t);return this}emit(t,...e){const i=this.eventListeners.get(t);if(i){if(Array.isArray(i))for(let A=i.length,s=0;s<A;s++){const n=i[s];typeof n.options=="object"&&n.options?.once&&this.off(t,n.value,n.options),n.value.apply(this,e)}else typeof i.options=="object"&&i.options?.once&&this.off(t,i.value,i.options),i.value.apply(this,e);return!0}else return!1}},kh=0;class ti extends Ge{instanceId=++kh;_customPropertyAccessor;_properties=new Map;_updatedProperties=new Map;_changedProperties=new Set;_updatingPromise=Promise.resolve();_updating=!1;useCustomPropertyAccessor(t){return this._customPropertyAccessor=t,this.getPropertyDeclarations().forEach((e,i)=>{const A=t.get(i,()=>{}),s=this._properties.get(i);A===void 0?s!==void 0&&t.set(i,s):A!==s&&(this._properties.set(i,A),this._updateProperty(i,A,s,e),this.emit("updateProperty",i,A,s,e))}),this}getter(t,e){return e.declaration.protected?this[e.internalKey]:this._customPropertyAccessor?this._customPropertyAccessor.get(t,()=>this._properties.get(t)):this._properties.get(t)}setter(t,e,i){i.declaration.protected?this[i.internalKey]=e:(this._customPropertyAccessor&&this._customPropertyAccessor.set(t,e),this._properties.set(t,e))}equal(t){return!!(t&&this.instanceId===t.instanceId)}async _enqueueUpdate(){this._updating=!0;try{await this._updatingPromise}catch(t){Promise.reject(t)}await Es(),this._updating&&(this.update(),this._updating=!1)}update(){this._update(this._updatedProperties),this._updatedProperties=new Map}_update(t){}_updateProperty(t,e,i,A){}isDirty(t){return this._updatedProperties.has(t)}getPropertyDeclarations(){return Is(this.constructor)}getPropertyDeclaration(t){return this.getPropertyDeclarations().get(t)}getProperty(t){return this[t]}setProperty(t,e){return this[t]=e,this}getProperties(t){const e={};for(const[i,A]of this.getPropertyDeclarations())!A.protected&&!A.alias&&(!t||t.includes(i))&&(e[i]=this.getProperty(i));return e}setProperties(t){if(t&&typeof t=="object")for(const[e]of this.getPropertyDeclarations())e in t&&this.setProperty(e,t[e]);return this}resetProperties(){for(const[t,e]of this.getPropertyDeclarations())this.setProperty(t,typeof e.fallback=="function"?e.fallback():e.fallback);return this}onUpdateProperty(t,e,i,A){this.requestUpdate(t,e,i,A)}requestUpdate(t,e,i,A){if(t!==void 0)if(!Object.is(e,i))this._updatedProperties.set(t,i),this._changedProperties.add(t),A??=this.getPropertyDeclaration(t),this._updateProperty(t,e,i,A),this.emit("updateProperty",t,e,i,A);else return;this._updating||(this._updatingPromise=this._enqueueUpdate())}toJSON(){const t={};return this._properties.forEach((e,i)=>{e!==void 0&&(e&&typeof e=="object"?"toJSON"in e&&typeof e.toJSON=="function"?t[i]=e.toJSON():t[i]={...e}:t[i]=e)}),t}clone(){return new this.constructor(this.toJSON())}free(){this.removeAllListeners()}}class Qo extends ti{}const nr=Math.PI,ae=nr*2;let Ph=0;function yo(r){return r?.__SPECTOR_Object_TAG?.id??++Ph}function Bs(r){return!(r&r-1)&&!!r}const Uh=/([\w-]+)\((.+?)\)/g,Nh=/[^,]+/g,Fh=/([-e.\d]+)(.*)/;function Cs(r){return Array.isArray(r)?r.map(t=>({name:t.name,args:t.args.map(e=>({...e,normalizedIntValue:e.normalizedDefaultIntValue}))})):{...r,normalizedIntValue:r.normalizedDefaultIntValue}}function aA(r,t,e={}){const i=lA(t,e);return i.length?i:mo(r,t,e)}function lA(r,t={}){const e=[];let i;for(;(i=Uh.exec(r))!==null;){const[,A,s]=i;A&&e.push({name:A,args:Th(A,s,t)})}return e}function Th(r,t,e={}){const i=[];let A,s=0;for(;(A=Nh.exec(t))!==null;)i.push(mo(r,A[0],{...e,index:s++}));return i}function mo(r,t,e={}){const{width:i=1,height:A=1,index:s=0}=e,n=t.match(Fh),o={unit:n?.[2]??null,value:t,intValue:Number(n?.[1]),normalizedIntValue:0,normalizedDefaultIntValue:0};switch(r){case"scale":case"scaleX":case"scaleY":case"scale3d":o.normalizedDefaultIntValue=1;break}switch(o.unit){case"%":o.normalizedIntValue=o.intValue/100;break;case"rad":o.normalizedIntValue=o.intValue/ae;break;case"deg":o.normalizedIntValue=o.intValue/360;break;case"px":switch(s){case 0:o.normalizedIntValue=o.intValue/i;break;case 1:o.normalizedIntValue=o.intValue/A;break}break;case"turn":case"em":case"rem":default:o.normalizedIntValue=o.intValue;break}return o}const wo="WebGL2RenderingContext"in globalThis,vo="ImageBitmap"in globalThis,_o="ResizeObserver"in globalThis,Ri="PointerEvent"in globalThis,bo="WheelEvent"in globalThis,Lh="MouseEvent"in globalThis,Oe="ontouchstart"in globalThis,Do="onclick"in globalThis,Qs="createImageBitmap"in globalThis,ys="AudioContext"in globalThis,ms="webkitAudioContext"in globalThis,ws="OfflineAudioContext"in globalThis,xo="webkitOfflineAudioContext"in globalThis,So=ys||ms,cA=typeof window<"u",vs=globalThis.devicePixelRatio||1,_s=r=>r!==null&&typeof r=="object"&&r.nodeType===1,Mo=r=>_s(r)&&r.tagName==="VIDEO",Gh=r=>_s(r)&&r.tagName==="IMG";function Ro(r){return typeof r=="object"&&r!==null&&r.nodeType===1&&r.tagName==="CANVAS"}function ko(r){return wo&&r instanceof globalThis.WebGL2RenderingContext}function Po(){if(cA)return globalThis.document.createElement("canvas")}function Uo(r,t=globalThis.location){if(r.startsWith("data:"))return"";t=t||globalThis.location;const e=new URL(r,document.baseURI);return e.hostname!==t.hostname||e.port!==t.port||e.protocol!==t.protocol?"anonymous":""}function No(r,t,e){e===null&&!t.startsWith("data:")?r.crossOrigin=Uo(t):e!==!1&&(r.crossOrigin=typeof e=="string"?e:"anonymous")}class bs{_map=new WeakMap;_toRaw(t){if(t&&typeof t=="object"){const e=t.__v_raw;e&&(t=this._toRaw(e))}return t}delete(t){return this._map.delete(this._toRaw(t))}get(t){return this._map.get(this._toRaw(t))}has(t){return this._map.has(this._toRaw(t))}set(t,e){return this._map.set(this._toRaw(t),this._toRaw(e)),this}}class or{bubbles=!0;cancelable=!1;which;cancelBubble=!0;returnValue;srcElement;composed=!1;currentTarget;defaultPrevented=!1;eventPhase=or.prototype.NONE;isTrusted;target;timeStamp;type;nativeEvent;originalEvent;propagationStopped=!1;propagationImmediatelyStopped=!1;path;detail;view;layer={x:0,y:0};get layerX(){return this.layer.x}get layerY(){return this.layer.y}page={x:0,y:0};get pageX(){return this.page.x}get pageY(){return this.page.y}initEvent(...t){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(...t){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}composedPath(){return this.path}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}NONE=0;CAPTURING_PHASE=1;AT_TARGET=2;BUBBLING_PHASE=3}class Ds extends or{altKey;button;buttons;ctrlKey;metaKey;relatedTarget;shiftKey;client={x:0,y:0};get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}movement={x:0,y:0};get movementX(){return this.movement.x}get movementY(){return this.movement.y}offset={x:0,y:0};get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}global={x:0,y:0};get globalX(){return this.global.x}get globalY(){return this.global.y}screen={x:0,y:0};get screenX(){return this.screen.x}get screenY(){return this.screen.y}getModifierState(t){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(...t){throw new Error("Method not implemented.")}}class Fo extends Ds{width=0;height=0;isPrimary=!1;pointerType;pressure;tangentialPressure;tiltX;tiltY;twist;getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}class To extends Ds{deltaMode;deltaX;deltaY;deltaZ;static DOM_DELTA_PIXEL=0;DOM_DELTA_PIXEL=0;static DOM_DELTA_LINE=1;DOM_DELTA_LINE=1;static DOM_DELTA_PAGE=2;DOM_DELTA_PAGE=2}const Oh={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"};class Lo extends Ge{target;cursor="default";cursorStyles={default:"inherit",pointer:"pointer"};setuped=!1;event;enableMoveEvent=!0;enableWheelEvent=!0;enableClickEvent=!0;setTarget(t){this.removeEventListeners(),this.target=t,this.addEventListeners()}removeEventListeners(){if(!this.setuped||!this.target)return;const t=this.target.style;globalThis.navigator.msPointerEnabled?(t.msContentZooming="",t.msTouchAction=""):Ri&&(t.touchAction=""),Ri?(this.target.removeEventListener("pointerdown",this.onPointerDown),this.target.removeEventListener("pointerleave",this.onPointerOver),this.target.removeEventListener("pointerover",this.onPointerOver),this.target.removeEventListener("pointermove",this.onPointerMove),this.target.removeEventListener("pointerup",this.onPointerUp)):(this.target.removeEventListener("mousedown",this.onPointerDown),this.target.removeEventListener("mouseout",this.onPointerOver),this.target.removeEventListener("mouseover",this.onPointerOver),this.target.removeEventListener("mousemove",this.onPointerMove),this.target.removeEventListener("mouseup",this.onPointerUp)),Oe&&(this.target.removeEventListener("touchstart",this.onPointerDown),this.target.removeEventListener("touchmove",this.onPointerMove),this.target.removeEventListener("touchend",this.onPointerUp)),this.target.removeEventListener("wheel",this.onWheel),this.target=void 0,this.setuped=!1}addEventListeners(){if(this.setuped||!this.target)return;const t=this.target.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="none",t.msTouchAction="none"):Ri&&(t.touchAction="none")),Ri?(this.target.addEventListener("pointerdown",this.onPointerDown),this.target.addEventListener("pointerleave",this.onPointerOver),this.target.addEventListener("pointerover",this.onPointerOver),this.target.addEventListener("pointermove",this.onPointerMove),this.target.addEventListener("pointerup",this.onPointerUp)):(this.target.addEventListener("mousedown",this.onPointerDown),this.target.addEventListener("mouseout",this.onPointerOver),this.target.addEventListener("mouseover",this.onPointerOver),this.target.addEventListener("mousemove",this.onPointerMove),this.target.addEventListener("mouseup",this.onPointerUp)),Oe&&(this.target.addEventListener("touchstart",this.onPointerDown),this.target.addEventListener("touchmove",this.onPointerMove),this.target.addEventListener("touchend",this.onPointerUp)),this.target.addEventListener("wheel",this.onWheel),this.setuped=!0}normalize(t){const e=[];if(Oe&&t instanceof globalThis.TouchEvent)for(let i=0,A=t.changedTouches.length;i<A;i++){const s=t.changedTouches[i];typeof s.button>"u"&&(s.button=0),typeof s.buttons>"u"&&(s.buttons=1),typeof s.isPrimary>"u"&&(s.isPrimary=t.touches.length===1&&t.type==="touchstart"),typeof s.width>"u"&&(s.width=s.radiusX||1),typeof s.height>"u"&&(s.height=s.radiusY||1),typeof s.tiltX>"u"&&(s.tiltX=0),typeof s.tiltY>"u"&&(s.tiltY=0),typeof s.pointerType>"u"&&(s.pointerType="touch"),typeof s.pointerId>"u"&&(s.pointerId=s.identifier||0),typeof s.pressure>"u"&&(s.pressure=s.force||.5),typeof s.twist>"u"&&(s.twist=0),typeof s.tangentialPressure>"u"&&(s.tangentialPressure=0),typeof s.layerX>"u"&&(s.layerX=s.offsetX=s.clientX),typeof s.layerY>"u"&&(s.layerY=s.offsetY=s.clientY),s.type=t.type,e.push(s)}else if(bo&&t instanceof globalThis.WheelEvent)e.push(t);else if(Ri&&t instanceof globalThis.PointerEvent)e.push(t);else{const i=t;typeof i.isPrimary>"u"&&(i.isPrimary=!0),typeof i.width>"u"&&(i.width=1),typeof i.height>"u"&&(i.height=1),typeof i.tiltX>"u"&&(i.tiltX=0),typeof i.tiltY>"u"&&(i.tiltY=0),typeof i.pointerType>"u"&&(i.pointerType="mouse"),typeof i.pointerId>"u"&&(i.pointerId=1),typeof i.pressure>"u"&&(i.pressure=.5),typeof i.twist>"u"&&(i.twist=0),typeof i.tangentialPressure>"u"&&(i.tangentialPressure=0),e.push(i)}return e}cloneWheelEvent(t){const e=new To;return this.copyMouseEvent(e,t),e.wheelDeltaY=t.wheelDeltaY,e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ,e.deltaMode=t.deltaMode,this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.x=e.screen.x,e.global.y=e.screen.y,e.offset.x=e.screen.x,e.offset.y=e.screen.y,e.nativeEvent=t,e.type=t.type,e}clonePointerEvent(t){const e=new Fo;return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,e.isTrusted=t.isTrusted,this.copyMouseEvent(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.x=e.screen.x,e.global.y=e.screen.y,e.offset.x=e.screen.x,e.offset.y=e.screen.y,e.type==="pointerleave"?e.type="pointerout":e.type.startsWith("mouse")?e.type=e.type.replace("mouse","pointer"):e.type.startsWith("touch")&&(e.type=Oh[e.type]||e.type),e}copyMouseEvent(t,e){t.preventDefault=e.preventDefault.bind(e),t.stopPropagation=e.stopPropagation.bind(e),t.isTrusted=e.isTrusted,t.timeStamp=performance.now(),t.type=e.type,t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.x=e.clientX,t.client.y=e.clientY,t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.x=e.movementX,t.movement.y=e.movementY,t.page.x=e.pageX,t.page.y=e.pageY,t.relatedTarget=null,t.shiftKey=e.shiftKey}setCursor(t){if(!this.target||(t=t||"default",this.cursor===t))return;this.cursor=t;const e=!(globalThis.OffscreenCanvas&&this.target instanceof OffscreenCanvas),i=this.cursorStyles[t];if(i)switch(typeof i){case"string":e&&(this.target.style.cursor=i);break;case"function":i(t);break;case"object":e&&Object.assign(this.target.style,i);break}else e&&typeof t=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,t)&&(this.target.style.cursor=t)}mapPositionToPoint(t,e,i){if(!this.target)return;const A=Number(this.target.getAttribute("width"))||0,s=Number(this.target.getAttribute("height"))||0,n=Number(this.target.getAttribute("data-pixel-ratio"))||1,o=this.target.isConnected?this.target.getBoundingClientRect():{width:A,height:s,left:0,top:0},a=1/n;t.x=(e-o.left)*(A/o.width)*a,t.y=(i-o.top)*(s/o.height)*a}onPointerDown=t=>{if(Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let i=0,A=e.length;i<A;i++)this.emit("pointerdown",this.event=this.clonePointerEvent(e[i]));this.setCursor(this.cursor)};onPointerOver=t=>{if(!this.enableClickEvent||Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let i=0,A=e.length;i<A;i++)this.emit("pointerover",this.event=this.clonePointerEvent(e[i]))};onPointerMove=t=>{if(!this.enableMoveEvent||Oe&&t.pointerType==="touch")return;const e=this.normalize(t);for(let i=0,A=e.length;i<A;i++)this.emit("pointermove",this.event=this.clonePointerEvent(e[i]))};onPointerUp=t=>{if(!this.enableClickEvent||Oe&&t.pointerType==="touch")return;let e=t.target;t.composedPath&&t.composedPath().length>0&&(e=t.composedPath()[0]);const i=e!==this.target?"outside":"",A=this.normalize(t);for(let s=0,n=A.length;s<n;s++){const o=this.clonePointerEvent(A[s]);o.type+=i,this.emit("pointerup",this.event=o)}};onWheel=t=>{if(!this.enableWheelEvent)return;const e=this.normalize(t);for(let i=0,A=e.length;i<A;i++)this.emit("wheel",this.event=this.cloneWheelEvent(e[i]))}}class He extends Qo{}function Hh(r,t){var e={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},i={};for(var A in e)i[e[A]]=A;var s={};r.prototype.toName=function(n){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var o,a,l=i[this.toHex()];if(l)return l;if(n?.closest){var c=this.toRgb(),h=1/0,u="black";if(!s.length)for(var d in e)s[d]=new r(e[d]).toRgb();for(var f in e){var B=(o=c,a=s[f],Math.pow(o.r-a.r,2)+Math.pow(o.g-a.g,2)+Math.pow(o.b-a.b,2));B<h&&(h=B,u=f)}return u}},t.string.push([function(n){var o=n.toLowerCase(),a=o==="transparent"?"#0000":e[o];return a?new r(a).toRgb():null},"name"])}Hc([Hh]);class Je{get value(){return this._value}set value(t){this._colord=fs(t??"none")}get r8(){return this._colord.rgba.r}get g8(){return this._colord.rgba.g}get b8(){return this._colord.rgba.b}get a8(){return this._colord.rgba.a*255&255}get r(){return this.r8/255}get g(){return this.g8/255}get b(){return this.b8/255}get a(){return this._colord.rgba.a}get rgb(){return(this.r8<<16)+(this.g8<<8)+this.b8}get bgr(){return(this.b8<<16)+(this.g8<<8)+this.r8}get abgr(){return(this.a8<<24)+this.bgr}constructor(t=0){this.value=t}toHex(){return this._colord.toHex()}toRgb(){return this._colord.toRgb()}toRgbString(){return this._colord.toRgbString()}toHsl(){return this._colord.toHsl()}toHslString(){return this._colord.toHslString()}toHsv(){return this._colord.toHsv()}toArgb(t=this.a,e=!0){if(t===1)return(255<<24)+this.rgb;if(t===0)return e?0:this.rgb;let i=this.r8,A=this.g8,s=this.b8;return e&&(i=i*t+.5|0,A=A*t+.5|0,s=s*t+.5|0),(t*255<<24)+(i<<16)+(A<<8)+s}toArray(){return[this.r,this.g,this.b,this.a]}}class Ce extends Ge{constructor(t){super(),this.dim=t}_array=[];get length(){return this.dim}_operate(t,e,i){const{dim:A,_array:s}=this;let n;typeof e=="number"?n=Array.from({length:A},()=>e):e instanceof be||e instanceof Ce?n=e.toArray():n=e;let o,a=[];if(i?i instanceof Ce?o=i:a=i:o=this,e instanceof be){const{cols:l}=e;switch(t){case"*":for(let c=0;c<A;c++){let h=0;for(let u=0;u<A;u++)h+=s[c]*n[u*l+c];a[c]=h}break;default:throw new Error(`Not support operator in '${this.toName()} ${t} ${e.toName()}'`)}}else switch(t){case"+":for(let l=0;l<A;l++)a[l]=s[l]+n[l];break;case"-":for(let l=0;l<A;l++)a[l]=s[l]-n[l];break;case"*":for(let l=0;l<A;l++)a[l]=s[l]*n[l];break;case"/":for(let l=0;l<A;l++)a[l]=s[l]/n[l];break;case"rot":{const l=Math.cos(n[0]),c=Math.sin(n[0]);a[0]=s[0]*l-s[1]*c,a[1]=s[1]*l+s[0]*c;break}case"==":{let l=!0;for(let c=0;c<A;c++)l=l&&s[c]===n[c];return l}case"=":for(let l=0;l<A;l++){const c=n[l];c!==void 0&&(s[l]=c)}return this._onUpdate(s),this.emit("update",s),this;default:throw new Error(`Not support operator in '${this.toName()} ${t} Vector'`)}return o?.set(a)??a}add(t,e){return this._operate("+",t,e)}sub(t,e){return this._operate("-",t,e)}multiply(t,e){return this._operate("*",t,e)}divide(t,e){return this._operate("/",t,e)}rotate(t){return this._operate("rot",t)}set(t,...e){return e.length&&typeof t=="number"&&(t=[t,...e]),this._operate("=",t)}equals(t){return this._operate("==",t)}copy(t){return this.set(t)}clone(){const t=new this.constructor;return t.set(this.toArray()),t}_onUpdate(t){}toArray(){return this._array.slice()}toName(){return`Vector${this.dim}`}}class be extends Ge{constructor(t,e,i){super(),this.rows=t,this.cols=e,i?this.set(i):this.identity()}_array=[];dirtyId=0;get length(){return this.cols*this.rows}_operate(t,e,i){const{cols:A,rows:s,length:n,_array:o}=this;let a;typeof e=="number"?a=Array.from({length:n},()=>e):e instanceof Ce||e instanceof be?a=e.toArray():a=e;let l,c=[];if(i?i instanceof Ce||i instanceof be?l=i:c=i:e instanceof Ce?l=new e.constructor:l=this,e instanceof Ce){const{dim:h}=e;switch(t){case"*":for(let u=0;u<h;u++){let d=0;for(let f=0;f<A;f++)f<h&&(d+=o[u*A+f]*(a[f]??0));c[u]=d}break;default:throw new Error(`Not support operator in '${this.toName()} ${t} ${e.toName()}'`)}}else switch(t){case"*":for(let h=0;h<A;h++)for(let u=0;u<s;u++){const d=u*A;let f=0;for(let B=0;B<s;B++){const p=d+B,R=B*A+h;f+=o[p]*(a[R]??0)}c[d+h]=f}break;case"=":for(let h=0;h<n;h++){const u=a[h];u!==void 0&&(o[h]=u)}return this._onUpdate(o),this.emit("update",o),this;default:throw new Error(`Not support operator in '${this.toName()} ${t} Matrix2'`)}return l?.set(c)??c}identity(){const{cols:t,rows:e}=this,i=[];for(let A=0;A<t;A++)for(let s=0;s<e;s++){const n=s*t,o=A+n;i[o]=s+n===o?1:0}return this.set(i)}set(t){return this._operate("=",t)}copy(t){return this.set(t)}clone(){const t=new this.constructor;return t.set(this.toArray()),t}multiply(t,e){return this._operate("*",t,e)}_onUpdate(t){this.dirtyId++}toArray(t=!1){const{cols:e,rows:i,_array:A}=this;if(t){const s=[];for(let n=0;n<i;n++)for(let o=0;o<e;o++)s[n+o*e]=A[o+n*e];return s}return A.slice()}toName(){return`Matrix${this.rows}(${this.rows}x${this.cols})`}toJSON(){return this._array}}class Go extends be{constructor(t){super(4,4,t)}}const Oo=nr/180,Jh=180/nr;function Ke(r,t,e){return Math.max(r,Math.min(t,e))}function Dt(r,t,e){return(1-e)*r+e*t}const Kh={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,epsilon:1e-4,_segmentsCount(r,t=20){if(!this.adaptive||!r||Number.isNaN(r))return t;let e=Math.ceil(r/this.maxLength);return e<this.minSegments?e=this.minSegments:e>this.maxSegments&&(e=this.maxSegments),e}};class Ho extends Ce{constructor(t=0,e=0,i=0,A=0){super(4),this.set([t,e,i,A])}}class xs extends be{constructor(t){super(4,5,t)}hueRotate(t=0){const e=Math.sin(t),i=Math.cos(t),A=.213,s=.715,n=.072;return this.multiply([A+i*(1-A)+e*-A,s+i*-s+e*-s,n+i*-n+e*(1-n),0,0,A+i*-A+e*.143,s+i*(1-s)+e*.14,n+i*-n+e*-.283,0,0,A+i*-A+e*-.787,s+i*-s+e*s,n+i*(1-n)+e*n,0,0,0,0,0,1,0])}saturate(t=1){const e=(t-1)*2/3+1,i=(e-1)*-.5;return this.multiply([e,i,i,0,0,i,e,i,0,0,i,i,e,0,0,0,0,0,1,0])}brightness(t=1){const e=t;return this.multiply([e,0,0,0,0,0,e,0,0,0,0,0,e,0,0,0,0,0,1,0])}contrast(t=1){const e=t,i=-128*(e-1);return this.multiply([e,0,0,0,i,0,e,0,0,i,0,0,e,0,i,0,0,0,1,0])}invert(t=1){const e=Dt(1,-1,t),i=Dt(0,255,t);return this.multiply([e,0,0,0,i,0,e,0,0,i,0,0,e,0,i,0,0,0,1,0])}sepia(t=1){const e=Ke(0,t,1);return this.multiply([Dt(1,.393,e),Dt(0,.7689999,e),Dt(0,.18899999,e),0,0,Dt(0,.349,e),Dt(1,.6859999,e),Dt(0,.16799999,e),0,0,Dt(0,.272,e),Dt(0,.5339999,e),Dt(1,.13099999,e),0,0,0,0,0,1,0])}opacity(t=1){return this.multiply([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,t,0])}grayscale(t=1){const e=Ke(0,t,1),i=Dt(1,.3,e),A=Dt(0,.3,e),s=Dt(1,.59,e),n=Dt(0,.59,e),o=Dt(1,.11,e),a=Dt(0,.11,e);return this.multiply([i,n,a,0,0,A,s,a,0,0,A,n,o,0,0,0,0,0,1,0])}multiply(t){const e=t,i=this._array;return this.set([i[0]*e[0]+i[1]*e[5]+i[2]*e[10]+i[3]*e[15],i[0]*e[1]+i[1]*e[6]+i[2]*e[11]+i[3]*e[16],i[0]*e[2]+i[1]*e[7]+i[2]*e[12]+i[3]*e[17],i[0]*e[3]+i[1]*e[8]+i[2]*e[13]+i[3]*e[18],i[0]*e[4]+i[1]*e[9]+i[2]*e[14]+i[3]*e[19]+i[4],i[5]*e[0]+i[6]*e[5]+i[7]*e[10]+i[8]*e[15],i[5]*e[1]+i[6]*e[6]+i[7]*e[11]+i[8]*e[16],i[5]*e[2]+i[6]*e[7]+i[7]*e[12]+i[8]*e[17],i[5]*e[3]+i[6]*e[8]+i[7]*e[13]+i[8]*e[18],i[5]*e[4]+i[6]*e[9]+i[7]*e[14]+i[8]*e[19]+i[9],i[10]*e[0]+i[11]*e[5]+i[12]*e[10]+i[13]*e[15],i[10]*e[1]+i[11]*e[6]+i[12]*e[11]+i[13]*e[16],i[10]*e[2]+i[11]*e[7]+i[12]*e[12]+i[13]*e[17],i[10]*e[3]+i[11]*e[8]+i[12]*e[13]+i[13]*e[18],i[10]*e[4]+i[11]*e[9]+i[12]*e[14]+i[13]*e[19]+i[14],i[15]*e[0]+i[16]*e[5]+i[17]*e[10]+i[18]*e[15],i[15]*e[1]+i[16]*e[6]+i[17]*e[11]+i[18]*e[16],i[15]*e[2]+i[16]*e[7]+i[17]*e[12]+i[18]*e[17],i[15]*e[3]+i[16]*e[8]+i[17]*e[13]+i[18]*e[18],i[15]*e[4]+i[16]*e[9]+i[17]*e[14]+i[18]*e[19]+i[19]])}toMatrix4(){const t=this._array;return new Go([t[0],t[1],t[2],t[3],t[5],t[6],t[7],t[8],t[10],t[11],t[12],t[13],t[15],t[16],t[17],t[18]])}toVector4(){const t=this._array;return new Ho(t[4]/255,t[9]/255,t[14]/255,t[19]/255)}}class Yh extends be{constructor(t){super(2,2,t)}}let Ss=class extends be{constructor(t){super(3,3,t)}invert(){const[t,e,i,A,s,n,o,a,l]=this._array,c=l*s-n*a,h=n*o-l*A,u=a*A-s*o,d=t*c+e*h+i*u;if(d===0)return this.set([0,0,0,0,0,0,0,0,0]);const f=1/d;return this.set([c*f,(i*a-l*e)*f,(n*e-i*s)*f,h*f,(l*t-i*o)*f,(i*A-n*t)*f,u*f,(e*o-a*t)*f,(s*t-e*A)*f])}};class Jo extends Ss{constructor(t=0,e=0,i=0,A=0,s=!1){super(),this._x=t,this._y=e,this._width=i,this._height=A,this._flipY=s,this._performUpdateArray()}flipY(t){return this._flipY!==t&&(this._flipY=t,this._performUpdateArray()),this}translate(t,e){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._performUpdateArray()),this}resize(t,e){return(this._width!==t||this._height!==e)&&(this._width=t,this._height=e,this._performUpdateArray()),this}_performUpdateArray(){const t=this._width,e=this._height;if(!t||!e)return;const i=this._x,A=this._y,s=this._flipY?-1:1,n=1/t*2,o=s*(1/e*2),a=-1-i*n,l=-s-A*o;this.set([n,0,a,0,o,l,0,0,1])}}let le=class os extends Ce{get x(){return this._array[0]}set x(t){const[e,i]=this._array;e!==t&&this.set(t,i)}get y(){return this._array[1]}set y(t){const[e,i]=this._array;i!==t&&this.set(e,t)}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}get left(){return this.x}set left(t){this.x=t}get top(){return this.y}set top(t){this.y=t}constructor(t=0,e){super(2),this.set(typeof t=="number"?[t,e??t]:t)}update(t,e){const[i,A]=this._array;return(i!==t||A!==e)&&this.set(t,e),this}getLength(){const[t,e]=this._array;return Math.sqrt(t*t+e*e)}getAngle(){const[t,e]=this._array;return Math.atan2(-t,-e)+Math.PI}distanceTo(t){return Math.hypot(t.x-this.x,t.y-this.y)}normalize(){const[t,e]=this._array,i=1/(this.getLength()||1);return this.set(t*i,e*i),this}static lerp(t,e,i){return new os(e).clone().sub(new os(t)).multiply(i).add(new os(t))}};class Ms{get x(){return this.position.x}get y(){return this.position.y}get left(){return this.position.x}get top(){return this.position.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get width(){return this.size.x}get height(){return this.size.y}end=new le;position;size;constructor(...t){const e=new le,i=new le;switch(t.length){case 0:break;case 1:e.set(t[0].position),i.set(t[0].size);break;case 2:e.set(t[0]),i.set(t[1]);break;default:e.set(t[0],t[1]),i.set(t[2],t[3]);break}this.update=this.update.bind(this),this.position=e.on("update",this.update),this.size=i.on("update",this.update),this.update()}update(){return this.end.set(this.position.x+this.size.x,this.position.y+this.size.y),this}toArray(){return[this.x,this.y,this.width,this.height]}}class Vt extends Ss{static _t2d=new Vt;premultiply(t){return t.multiply(this,this)}skewX(t){return this.skew(t,0)}skewY(t){return this.skew(0,t)}skew(t,e){return this.premultiply(Vt._t2d.makeSkew(t,e))}makeSkew(t,e){const i=Math.tan(t),A=Math.tan(e);return this.set([1,A,0,i,1,0,0,0,1]),this}translateX(t){return this.translate(t,0)}translateY(t){return this.translate(0,t)}translateZ(t){return this.translate(0,0,t)}translate3d(t,e,i){return this.translate(t,e,i)}translate(t,e,i=0){return this.premultiply(Vt._t2d.makeTranslation(t,e,i))}makeTranslation(t,e,i=0){return this.set([1,0,t,0,1,e,0,0,1]),this}scaleX(t){return this.scale(t,1)}scaleY(t){return this.scale(1,t)}scale3d(t,e,i=1){return this.scale(t,e,i)}scale(t,e,i=1){return this.premultiply(Vt._t2d.makeScale(t,e,i))}makeScale(t,e,i=1){return this.set([t,0,0,0,e,0,0,0,1]),this}rotateX(t){return this.scaleY(this._rotateToScale(t))}rotateY(t){return this.scaleX(this._rotateToScale(t))}rotateZ(t){return this.rotate(t)}rotate(t){return this.premultiply(Vt._t2d.makeRotation(t))}rotate3d(t,e,i,A){const[s,n,o]=this._rotate3d(t,e,i,A);return s&&this.rotateX(s),n&&this.rotateY(n),o&&this.rotateZ(o),this}_rotateToScale(t){const e=t/ae;return e<=.5?e*-4+1:(e-1)*4+1}_rotate3d(t,e,i,A){if(t===1&&e===0&&i===0)return[A,0,0];if(t===0&&e===1&&i===0)return[0,A,0];if(t===0&&e===0)return[0,0,A];{const s=Math.cos(A),n=Math.sin(A),o=s+t*t*(1-s),a=t*e*(1-s)-i*n,l=t*i*(1-s)+e*n,c=s+e*e*(1-s),h=e*i*(1-s)-t*n,u=s+i*i*(1-s),d=-Math.atan2(-h,c),f=-Math.atan2(l,Math.sqrt(h*h+u*u)),B=-Math.atan2(-a,o);return[d,f,B]}}makeRotation(t){const e=Math.cos(t),i=Math.sin(t);return this.set([e,-i,0,i,e,0,0,0,1]),this}applyToPoint(t,e){const{a:i,c:A,tx:s,b:n,d:o,ty:a}=this.toObject();return[i*t+A*e+s,n*t+o*e+a]}inverse(){return this.clone().invert()}isIdentity(){const{a:t,b:e,c:i,d:A,tx:s,ty:n}=this.toObject();return t===1&&e===0&&i===0&&A===1&&s===0&&n===0}toObject(){const[t,e,i,A,s,n,,,o]=this._array;return{a:t,c:e,tx:i,b:A,d:s,ty:n,tz:o}}}class Vh extends Ce{constructor(){super(3)}}var zh=Object.defineProperty,Ko=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&zh(t,e,A),A};class ar extends ti{_starting=!1;_nextDeltaTime=0;get starting(){return this._starting}get spf(){return this.fps?Math.floor(1e3/this.fps):0}constructor(){super(),this._onNextTick=this._onNextTick.bind(this)}start(t){this._starting||(this._starting=!0,this.off("process"),this.on("process",t),Yt.on(this._onNextTick,{sort:0}))}stop(){this._starting&&(this._starting=!1,Yt.off(this._onNextTick,{sort:0}))}_onNextTick(){const t=Yt.elapsed*this.speed;if((this._nextDeltaTime-=t)<=0){const i=(this._nextDeltaTime=this.spf)||t;this.emit("process",i)}}free(){super.free(),this.stop()}}Ko([_({fallback:24})],ar.prototype,"fps"),Ko([_({fallback:1})],ar.prototype,"speed");class Yo{view;pixelRatio=vs;screen={x:0,y:0,width:0,height:0};related=new bs;getRelated(t,e){let i=this.related.get(t);return i||(e?(this.related.set(t,i=e()),i):(console.warn("Failed to get related",t),null))}resize(t,e,i=!0){this.view&&(this.view.width=Math.floor(t*this.pixelRatio),this.view.height=Math.floor(e*this.pixelRatio)),this.screen.width=t,this.screen.height=e,i&&this.view&&(this.view.style.width=`${t}px`,this.view.style.height=`${e}px`)}}var ki=(r=>(r.NORMAL="normal",r.ADD="add",r.MULTIPLY="multiply",r.SCREEN="screen",r.NONE="none",r.NORMAL_NPM="normal_npm",r.ADD_NPM="add_npm",r.SCREEN_NPM="screen_npm",r.SRC_IN="src_in",r.SRC_OUT="src_out",r.SRC_ATOP="src_atop",r.DST_OVER="dst_over",r.DST_IN="dst_in",r.DST_OUT="dst_out",r.DST_ATOP="dst_atop",r.XOR="xor",r.SUBTRACT="subtract",r))(ki||{});function Vo(r){return{normal:[r.ONE,r.ONE_MINUS_SRC_ALPHA],add:[r.ONE,r.ONE],multiply:[r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],screen:[r.ONE,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],none:[0,0],normal_npm:[r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA],add_npm:[r.SRC_ALPHA,r.ONE,r.ONE,r.ONE],screen_npm:[r.SRC_ALPHA,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE_MINUS_SRC_ALPHA],src_in:[r.DST_ALPHA,r.ZERO],src_out:[r.ONE_MINUS_DST_ALPHA,r.ZERO],src_atop:[r.DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],dst_over:[r.ONE_MINUS_DST_ALPHA,r.ONE],dst_in:[r.ZERO,r.SRC_ALPHA],dst_out:[r.ZERO,r.ONE_MINUS_SRC_ALPHA],dst_atop:[r.ONE_MINUS_DST_ALPHA,r.SRC_ALPHA],xor:[r.ONE_MINUS_DST_ALPHA,r.ONE_MINUS_SRC_ALPHA],subtract:[r.ONE,r.ONE,r.ONE,r.ONE,r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD]}}class Ie{get gl(){return this._renderer.gl}install(t){this._renderer=t}onUpdateContext(){}flush(){}reset(){}free(){}}class Bi{static _properties=["blend","offsets","culling","depthTest","clockwiseFrontFace","depthMask"];static _init(){this._properties.forEach((t,e)=>{Object.defineProperty(this.prototype,t,{get(){return!!(this.bitmap&1<<e)},set(i){!!(this.bitmap&1<<e)!==i&&(this.bitmap^=1<<e)},enumerable:!0,configurable:!0})})}static for2D(){const t=new Bi;return t.depthTest=!1,t.blend=!0,t}_blendMode=ki.NORMAL;_polygonOffset=0;bitmap=0;get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!==ki.NONE,this._blendMode=t}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t}constructor(t){if(t)for(const e in t)this[e]=t[e]}}Bi._init();class zo extends Ie{install(t){super.install(t),t.state=this}_blendEq=!1;_setters=Bi._properties.map(t=>this[`set${t.replace(/^\S/,e=>e.toUpperCase())}`]);boundStateBitmap=0;boundBlendMode;blendModes;defaultState=new Bi({blend:!0});onUpdateContext(){super.onUpdateContext(),this.blendModes=Vo(this._renderer.gl)}toggle(t,e){this._renderer.gl[e?"enable":"disable"](t)}setBlend(t){this.toggle(this._renderer.gl.BLEND,t)}setOffsets(t){this.toggle(this._renderer.gl.POLYGON_OFFSET_FILL,t)}setCulling(t){this.toggle(this._renderer.gl.CULL_FACE,t)}setDepthTest(t){this.toggle(this._renderer.gl.DEPTH_TEST,t)}setDepthMask(t){this._renderer.gl.depthMask(t)}setClockwiseFrontFace(t){const e=this._renderer.gl;e.frontFace(e[t?"CW":"CCW"])}setBlendMode(t){if(t===this.boundBlendMode)return;this.boundBlendMode=t;const e=this.blendModes[t],i=this._renderer.gl;e.length===2?i.blendFunc(e[0],e[1]):i.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,i.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(t,e){this._renderer.gl.polygonOffset(t,e)}bind(t){if(this.boundStateBitmap!==t.bitmap){let e=this.boundStateBitmap^t.bitmap,i=0;for(;e;)e&1&&this._setters[i]?.call(this,!!(t.bitmap&1<<i)),e=e>>1,i++;this.boundStateBitmap=t.bitmap}t.blend&&this.setBlendMode(t.blendMode),t.offsets&&this.setPolygonOffset(1,t.polygonOffset)}reset(){super.reset();const t=this._renderer.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!1),this.bind(this.defaultState),this._blendEq=!0,this.setBlendMode(ki.NORMAL)}}class Wo extends Ie{install(t){super.install(t),t.batch2D=this}_state=Bi.for2D();_batchSize=4096*4;_drawCallUid=0;_defaultModulate=4294967295;_defaultBackgroundColor=0;_defaultColorMatrixOffset=[0,0,0,0];_defaultColorMatrix=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];_batchables=[];_vertexCount=0;_indexCount=0;_attributeBuffer=[];_indexBuffers=[];_shaders=new Map;_attributes={aTextureId:{size:1,normalized:!0,type:"float"},aPosition:{size:2,normalized:!1,type:"float"},aUv:{size:2,normalized:!1,type:"float"},aModulate:{size:4,normalized:!0,type:"unsigned_byte"},aBackgroundColor:{size:4,normalized:!0,type:"unsigned_byte"},aDisableWrapMode:{size:4,normalized:!0,type:"float"},aColorMatrixOffset:{size:4,normalized:!1,type:"float"},aColorMatrix:{size:4,normalized:!1,type:"float"}};_vertexSize=31;_getShader(t){let e=this._shaders.get(t);return e||this._shaders.set(t,e=this._createShader(t)),e}_createShader(t){const e=this._renderer,i=e.program.create({vert:`precision highp float;
|
|
3
3
|
attribute float aTextureId;
|
|
4
4
|
attribute vec2 aPosition;
|
|
5
5
|
attribute vec2 aUv;
|
|
@@ -67,7 +67,7 @@ void main(void) {
|
|
|
67
67
|
gl_FragColor = color;
|
|
68
68
|
}`}),A=e.buffer.create({target:"array_buffer",data:new Float32Array(1),usage:"dynamic_draw"}),s=e.buffer.create({target:"element_array_buffer",data:new Uint16Array(1),usage:"dynamic_draw"}),n={attributes:Object.fromEntries(Object.entries(this._attributes).map(([l,c])=>[l,{...c,buffer:A}])),elementArrayBuffer:s},o=e.vertexArray.create(i,n),a=new Int32Array(Array.from({length:t},(l,c)=>c));return{update:(l,c)=>{e.vertexArray.bind(o??n),e.buffer.update(A,{target:"array_buffer",data:l}),e.buffer.update(s,{target:"element_array_buffer",data:c})},draw:l=>{const c=this._renderer;c.program.bind(i),c.program.updateUniforms(i,{samplers:a,modulate:[1,1,1,1],translationMatrix:[1,0,0,0,1,0,0,0,1],...c.program.uniforms}),c.vertexArray.bind(o??n),c.draw(l)}}}render(t){const{vertices:e,indices:i}=t,A=e.length/2;this._vertexCount+A>this._batchSize&&this.flush(),this._vertexCount+=A,this._indexCount+=i.length,this._batchables.push(t)}flush(){if(super.flush(),this._vertexCount===0)return;const t=this._vertexCount,e=this._indexCount,i=this._batchables;this._batchables=[],this._vertexCount=0,this._indexCount=0;const A=this._renderer.texture.maxUnits,s=this._getAttributeBuffer(t),n=new Float32Array(s),o=new Uint32Array(s),a=this._getIndexBuffer(e);let l=0,c=0;const h=[];for(let d=i.length,f={id:++this._drawCallUid},B=[],p=new Map,R=0,P=0,y=0;y<d;y++){const S=i[y].texture,Q=y===d-1;if(!S||p.has(S)){if(!Q)continue}else B.push(S),p.set(S,R++);if(Q||R>=A){f.textures=B,f.textureLocationMap=p,R=0,f.first=c;for(let m=P;m<=y;m++){const{indices:M,vertices:k,uvs:W=[],texture:it,modulate:q=this._defaultModulate,backgroundColor:Y=this._defaultBackgroundColor,colorMatrix:et=this._defaultColorMatrix,colorMatrixOffset:H=this._defaultColorMatrixOffset,blendMode:L=ki.NORMAL,disableWrapMode:rt=!1}=i[m],O=(it?p.get(it):-1)??-1;P<m&&f.blendMode!==L&&(f.count=c-f.first,h.push(f),P=m,f={id:++this._drawCallUid},f.textures=B,f.first=c);const X=l/this._vertexSize;for(let j=k.length,N=0;N<j;N+=2){n[l++]=O,n[l++]=k[N],n[l++]=k[N+1],n[l++]=W[N]??0,n[l++]=W[N+1]??0,o[l++]=q,o[l++]=Y,n[l++]=rt?1:0,n[l++]=0,n[l++]=0,n[l++]=0;for(let tt=0;tt<4;tt++)n[l++]=H[tt]??0;for(let tt=0;tt<16;tt++)n[l++]=et[tt]??0}for(let j=M.length,N=0;N<j;N++)a[c++]=X+M[N];f.blendMode=L}P=y+1,f.count=c-f.first,h.push(f),f={id:++this._drawCallUid},B=[],p=new Map}}const u=this._getShader(A);u.update(s,a);for(let d=h.length,f=0;f<d;f++){const B=h[f],{first:p=0,textures:R,textureLocationMap:P}=B;for(let y=R.length,S=0;S<y;S++){const Q=R[S],m=P.get(Q);m!==void 0&&this._renderer.texture.bind({target:"texture_2d",location:m,value:Q})}this._state.blendMode=B.blendMode,this._renderer.state.bind(this._state),u.draw({mode:"triangles",count:B.count,first:p,bytesPerElement:2})}}_getAttributeBuffer(t){const e=Rs(Math.ceil(t/8)),i=ks(e),A=e*8;this._attributeBuffer.length<=i&&(this._indexBuffers.length=i+1);let s=this._attributeBuffer[A];return s||(this._attributeBuffer[A]=s=new ArrayBuffer(A*this._vertexSize*4)),s}_getIndexBuffer(t){const e=Rs(Math.ceil(t/12)),i=ks(e),A=e*12;this._indexBuffers.length<=i&&(this._indexBuffers.length=i+1);let s=this._indexBuffers[i];return s||(this._indexBuffers[i]=s=new Uint16Array(A)),s}}function Rs(r){return r+=r===0?1:0,--r,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r+1}function ks(r){let t=(r>65535?1:0)<<4;r>>>=t;let e=(r>255?1:0)<<3;return r>>>=e,t|=e,e=(r>15?1:0)<<2,r>>>=e,t|=e,e=(r>3?1:0)<<1,r>>>=e,t|=e,t|r>>1}class qo extends Ie{install(t){super.install(t),t.buffer=this}boundArrayBuffer=null;boundTarget="array_buffer";create(t){const e=this.gl.createBuffer();if(!e)throw new Error("failed to create");return t&&(this.bind({target:t.target,value:e}),this.update(t)),e}getMeta(t){return this._renderer.getRelated(t,()=>({id:yo(t),length:0,byteLength:0,bytesPerElement:0}))}update(...t){if(t.length>1){this.bind({target:t[1].target,value:t[0]}),this.update(t[1]);return}const e=t[0],i=(e.target??this.boundTarget)==="array_buffer"?this.boundArrayBuffer:this._renderer.vertexArray.boundVertexArray.elementArrayBuffer;if(!i)return;const A=this.getMeta(i);Object.assign(A,{target:e.target,usage:e.usage});const s=A.target??this.boundTarget,n=A.usage??"static_draw",o=e.data,a=this.gl;let l;Array.isArray(o)?s==="array_buffer"?l=new Float32Array(o):l=new Uint32Array(o):l=o;const c=this._renderer.getBindPoint(s);l&&l.byteLength<=A.byteLength?a.bufferSubData(c,0,l):(a.bufferData(c,l,this._renderer.getBindPoint(n)),A.length=l?.length??0,A.byteLength=l?.byteLength??0,A.bytesPerElement=A.length?A.byteLength/A.length:0)}bind(t){let{target:e,value:i}=t;if(i){const s=this.getMeta(i);e??=s.target??this.boundTarget,s.target=e}else e??=this.boundTarget;const A=this._renderer.getBindPoint(e);this._renderer.gl.bindBuffer(A,i),e==="array_buffer"?this.boundArrayBuffer=i:this._renderer.vertexArray.boundVertexArray.elementArrayBuffer=i,this.boundTarget=e}unbind(t){return this.bind({target:t,value:null})}reset(){super.reset(),this.boundArrayBuffer=null,this.boundTarget="array_buffer"}}class Xo extends Ie{install(t){super.install(t),t.framebuffer=this}boundFramebuffer=null;_msaaSamples=[];_hasMRT=!0;_writeDepthTexture=!0;onUpdateContext(){if(this._hasMRT=!0,this._writeDepthTexture=!0,this._renderer.version===1){const t=this._renderer.gl,e=this._renderer.extensions.drawBuffers,i=this._renderer.extensions.depthTexture;e?t.drawBuffers=A=>e.drawBuffersWEBGL(A):(this._hasMRT=!1,t.drawBuffers=()=>{}),i||(this._writeDepthTexture=!1)}else{const t=this._renderer.gl;this._msaaSamples=t.getInternalformatParameter(t.RENDERBUFFER,t.RGBA8,t.SAMPLES)}}create(t){const e=this._renderer.gl.createFramebuffer();if(!e)throw new Error("Unable to create framebuffer");return t&&(this.bind(e),this.update(t)),e}getMeta(t){return this._renderer.getRelated(t,()=>({width:0,height:0,mipLevel:0,stencil:!1,depth:!1,depthTexture:null,colorTextures:[],multisample:0}))}update(...t){if(t.length>1)return this.bind(t[0]),this.update(t[1]);const e=this.boundFramebuffer;if(!e)return;const i=t[0],A=this.getMeta(e);Object.assign(A,{...i});const s=this._renderer.gl;let n=A.colorTextures.length;"drawBuffers"in s||(n=Math.min(n,1));for(let o=0;o<n;o++){const a=A.colorTextures[o];this._renderer.texture.bind({location:0,target:"texture_2d",value:a,forceUpdateLocation:!0}),s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+o,s.TEXTURE_2D,a,A.mipLevel),this._renderer.texture.unbind(a)}if(n>1&&s.drawBuffers(A.colorTextures.map((o,a)=>s.COLOR_ATTACHMENT0+a)),A.depthTexture&&(this._renderer.version>1||this._renderer.extensions.depthTexture)&&(this._renderer.texture.bind({location:0,target:"texture_2d",value:A.depthTexture,forceUpdateLocation:!0}),s.framebufferTexture2D(s.FRAMEBUFFER,s.DEPTH_ATTACHMENT,s.TEXTURE_2D,A.depthTexture,A.mipLevel),this._renderer.texture.unbind(A.depthTexture)),(A.stencilBuffer||A.stencil||A.depth)&&!(A.depthTexture&&this._writeDepthTexture)){A.stencilBuffer??=s.createRenderbuffer(),s.bindRenderbuffer(s.RENDERBUFFER,A.stencilBuffer);const{attachment:o,format:a}=this._getAttachmentAndFormat(A);A.msaaBuffer?s.renderbufferStorageMultisample(s.RENDERBUFFER,A.multisample,a,A.width,A.height):s.renderbufferStorage(s.RENDERBUFFER,a,A.width*this._renderer.pixelRatio,A.height*this._renderer.pixelRatio),s.framebufferRenderbuffer(s.FRAMEBUFFER,o,s.RENDERBUFFER,A.stencilBuffer)}else A.stencilBuffer&&(s.deleteRenderbuffer(A.stencilBuffer),A.stencilBuffer=null)}_getAttachmentAndFormat(t){const e=this.gl;let i,A;return this._renderer.version===1?(i=e.DEPTH_STENCIL_ATTACHMENT,A=e.DEPTH_STENCIL):t.depth&&t.stencil?(i=e.DEPTH_STENCIL_ATTACHMENT,A=e.DEPTH24_STENCIL8):t.depth?(i=e.DEPTH_ATTACHMENT,A=e.DEPTH_COMPONENT24):(i=e.STENCIL_ATTACHMENT,A=e.STENCIL_INDEX8),{attachment:i,format:A}}resize(t,e,i){const A=this.gl,s=this.getMeta(t);if(Object.assign(s,{width:e,height:i}),s.stencil){const{format:o}=this._getAttachmentAndFormat(s);A.bindRenderbuffer(A.RENDERBUFFER,s.stencil),s.msaaBuffer?A.renderbufferStorageMultisample(A.RENDERBUFFER,s.multisample,o,s.width,s.height):A.renderbufferStorage(A.RENDERBUFFER,o,s.width,s.height)}let n=s.colorTextures.length;A.drawBuffers||(n=Math.min(n,1));for(let o=0;o<n;o++){const a=s.colorTextures[o];this._renderer.texture.update(a,{value:{pixels:null,width:s.width,height:s.height}}),o===0&&s.msaaBuffer&&(A.bindRenderbuffer(A.RENDERBUFFER,s.msaaBuffer),A.renderbufferStorageMultisample(A.RENDERBUFFER,s.multisample,A.RGBA,s.width,s.height))}s.depthTexture&&this._renderer.texture.update(s.depthTexture,{value:{pixels:null,width:s.width,height:s.height}})}bind(t){const e=this._renderer.gl,i=t;if({value:this.boundFramebuffer!==i}.value&&(e.bindFramebuffer(e.FRAMEBUFFER,i),this.boundFramebuffer=i),i){const n=this.getMeta(i);for(let l=0;l<n.colorTextures.length;l++)this._renderer.texture.unbind(n.colorTextures[l]);n.depthTexture&&this._renderer.texture.unbind(n.depthTexture);const o=n.width>>n.mipLevel,a=n.height>>n.mipLevel;this._renderer.viewport.bind({x:0,y:0,width:o*this._renderer.pixelRatio,height:a*this._renderer.pixelRatio})}else this._renderer.viewport.bind({x:0,y:0,width:this._renderer.screen.width*this._renderer.pixelRatio,height:this._renderer.screen.height*this._renderer.pixelRatio})}forceStencil(){const t=this.boundFramebuffer;if(!t)return;const e=this.getMeta(t);if(!e||e.stencilBuffer)return;const i=this._renderer.gl;e.stencilBuffer=i.createRenderbuffer(),i.bindRenderbuffer(i.RENDERBUFFER,e.stencilBuffer);let A,s;this._renderer.version===1?(A=i.DEPTH_STENCIL_ATTACHMENT,s=i.DEPTH_STENCIL):e.depth?(A=i.DEPTH_STENCIL_ATTACHMENT,s=i.DEPTH24_STENCIL8):(A=i.STENCIL_ATTACHMENT,s=i.STENCIL_INDEX8),e.msaaBuffer?i.renderbufferStorageMultisample(i.RENDERBUFFER,e.multisample,s,e.width*this._renderer.pixelRatio,e.height*this._renderer.pixelRatio):i.renderbufferStorage(i.RENDERBUFFER,s,e.width*this._renderer.pixelRatio,e.height*this._renderer.pixelRatio),i.framebufferRenderbuffer(i.FRAMEBUFFER,A,i.RENDERBUFFER,e.stencilBuffer)}reset(){super.reset(),this.boundFramebuffer=null}}class jo extends Ie{install(t){super.install(t),t.mask=this}stack=[];get length(){return this.stack.length}get last(){return this.stack[this.length-1]}push(t,e){const i={source:t,mask:e};this.stack.push(i),typeof i.mask=="number"?this.pushColorMask(i):"render"in i.mask?this._renderer.stencil.push(i):this._renderer.scissor.push(i)}pop(t){const e=this.stack.pop();!e||e.source!==t||(typeof e.mask=="number"?this.popColorMask(e):"render"in e.mask?this._renderer.stencil.pop(e):this._renderer.scissor.pop(e))}pushColorMask(t){const e=t.preComputedColor??15,i=t.preComputedColor=e&t.mask;i!==e&&this.useColorMask(i)}popColorMask(t){const e=t.preComputedColor??15,i=this.length>0?this.last.preComputedColor??15:15;i!==e&&this.useColorMask(i)}useColorMask(t){this._renderer.gl.colorMask((t&1)!==0,(t&2)!==0,(t&4)!==0,(t&8)!==0)}}class Zo extends Ie{install(t){super.install(t),t.program=this}boundProgram=null;uniforms={projectionMatrix:[1,0,0,0,1,0,0,0,1]};create(t){const e=this.gl.createProgram();if(!e)throw new Error("Unable to create program");return t&&this.update(e,t),e}getMeta(t){return this._renderer.getRelated(t,()=>({attributes:new Map,uniforms:new Map,boundUniforms:new uo}))}update(...t){if(t.length>1){const a=this.boundProgram;this.boundProgram=t[0],this.update(t[1]),this.boundProgram=a;return}const e=t[0],i=this.boundProgram;if(!i)return;const A=this.gl,s=this.getMeta(i),n=this.createShader(e.vert,"vertex_shader"),o=this.createShader(e.frag,"fragment_shader");if(A.attachShader(i,n),A.attachShader(i,o),A.linkProgram(i),A.deleteShader(n),A.deleteShader(o),!A.getProgramParameter(i,A.LINK_STATUS))throw new Error(`Unable to link program: ${A.getProgramInfoLog(i)}`);s.attributes.clear(),s.uniforms.clear();for(let a=A.getProgramParameter(i,A.ACTIVE_ATTRIBUTES),l=0;l<a;l++){const c=A.getActiveAttrib(i,l);if(!c||c.name.startsWith("gl_"))continue;const h=this._renderer.bindPoints.get(c.type)??String(c.type);s.attributes.set(c.name,{type:h,name:c.name,size:Wh(h),location:A.getAttribLocation(i,c.name)})}for(let a=A.getProgramParameter(i,A.ACTIVE_UNIFORMS),l=0;l<a;l++){const c=A.getActiveUniform(i,l);if(!c)continue;const h=c.name.replace(/\[.*?\]$/,"");let u=A.getUniformLocation(i,h);u||(u=A.getUniformLocation(i,c.name)),s.uniforms.set(h,{name:h,index:l,type:this._renderer.bindPoints.get(c.type)??String(c.type),size:c.size,isArray:h!==c.name,location:u})}}bind(t){const e=this.gl;({value:this.boundProgram!==t}).value&&(e.useProgram(t),this.boundProgram=t)}createShader(t,e){const i=this.gl,A=i.createShader(this._renderer.getBindPoint(e));if(!A)throw new Error("Unable to create shader");if(i.shaderSource(A,t),i.compileShader(A),!i.getShaderParameter(A,i.COMPILE_STATUS))throw new Error(`Unable to compiling shader :
|
|
69
69
|
${t}
|
|
70
|
-
${i.getShaderInfoLog(A)}`);return A}updateUniforms(...t){if(t.length>1){this.bind(t[0]),this.updateUniforms(t[1]);return}const e=this.boundProgram;if(!e)return;const i=this.gl,A=t[0],{uniforms:s,boundUniforms:n}=this.getMeta(e);for(const o in A){const a=A[o],l=s.get(o);if(!l)continue;const{type:c,isArray:h,location:u}=l;if(!(!u||n.get(u)===a))switch(n.set(u,a),c){case"float":h?i.uniform1fv(u,a):i.uniform1f(u,a);break;case"unsigned_int":h?i.uniform1uiv(u,a):i.uniform1ui(u,a);break;case"bool":case"int":case"sampler_2d":case"sampler_cube":case"sampler_2d_array":h?i.uniform1iv(u,a):i.uniform1i(u,a);break;case"bool_vec2":case"int_vec2":i.uniform2iv(u,a);break;case"unsigned_int_vec2":i.uniform2uiv(u,a);break;case"float_vec2":i.uniform2fv(u,a);break;case"bool_vec3":case"int_vec3":i.uniform3iv(u,a);break;case"unsigned_int_vec3":i.uniform3uiv(u,a);break;case"float_vec3":i.uniform3fv(u,a);break;case"bool_vec4":case"int_vec4":i.uniform4iv(u,a);break;case"unsigned_int_vec4":i.uniform4uiv(u,a);break;case"float_vec4":i.uniform4fv(u,a);break;case"float_mat2":i.uniformMatrix2fv(u,!1,a);break;case"float_mat3":i.uniformMatrix3fv(u,!1,a);break;case"float_mat4":i.uniformMatrix4fv(u,!1,a);break}}}reset(){super.reset(),this.boundProgram=null,this.uniforms={}}free(){super.free(),this.bind(null)}}function Wh(r){switch(r){case"float":case"int":case"unsigned_int":case"bool":case"sampler_2d":return 1;case"float_vec2":case"int_vec2":case"unsigned_int_vec2":case"bool_vec2":return 2;case"float_vec3":case"int_vec3":case"unsigned_int_vec3":case"bool_vec3":return 3;case"float_vec4":case"int_vec4":case"unsigned_int_vec4":case"bool_vec4":case"float_mat2":return 4;case"float_mat3":return 9;case"float_mat4":return 16;default:return 1}}class $o extends Ie{install(t){super.install(t),t.scissor=this}get length(){return this._renderer.mask.last?.scissorCounter??0}push(t){const e=this._renderer.gl;e.enable(e.SCISSOR_TEST),t.scissorCounter??=0,t.scissorCounter++,this.use()}pop(t){if(this.length>0)this.use();else{const e=this._renderer.gl;e.disable(e.SCISSOR_TEST)}}use(){const t=this._renderer,{pixelRatio:e,mask:i,viewport:A,screen:s,gl:n}=t,o=i.last.mask;let a;A.boundViewport?a=A.boundViewport.height-(o.height+o.y)*e:a=(s.height-(o.height+o.y))*e,n.scissor(o.x*e,a,o.width*e,o.height*e)}}class ta extends Ie{install(t){super.install(t),t.stencil=this}get length(){return this._renderer.mask.last?.stencilCounter??0}push(t){const e=this._renderer.gl,i=t.mask,A=t.stencilCounter??=0;t.stencilCounter===0&&(this._renderer.framebuffer.forceStencil(),e.clearStencil(0),e.clear(e.STENCIL_BUFFER_BIT),e.enable(e.STENCIL_TEST)),t.stencilCounter++;const s=t.color;s&&(t.color=0,e.colorMask(!1,!1,!1,!1)),e.stencilFunc(e.EQUAL,A,4294967295),e.stencilOp(e.KEEP,e.KEEP,e.INCR),i.render(this._renderer),this._renderer.flush(),s&&(t.color=s,e.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)),this.use()}pop(t){const e=this._renderer.gl,i=t.mask;if(!this.length)e.disable(e.STENCIL_TEST);else{const A=this._renderer.mask.last,s=A?.color??15;s!==0&&(A.color=0,e.colorMask(!1,!1,!1,!1)),e.stencilOp(e.KEEP,e.KEEP,e.DECR),i.render(this._renderer),this._renderer.flush(),s!==0&&(A.color=s,e.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)),this.use()}}use(){const t=this._renderer.gl;t.stencilFunc(t.EQUAL,this.length,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP)}}function qh(r,t){const e=new Set([...Object.keys(r),...Object.keys(t)]),i={};return e.forEach(A=>{i[A]=r[A]!==t[A]}),i}class ea extends Ie{install(t){super.install(t),t.texture=this}maxUnits=0;boundLocation=0;boundTarget="texture_2d";boundTextures=[];emptyTextures={texture_2d:null,texture_cube_map:null};onUpdateContext(){super.onUpdateContext();const t=this.gl;this.maxUnits=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);for(let A=0;A<this.maxUnits;A++)this.boundTextures[A]={texture_2d:null,texture_cube_map:null};const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,new Uint8Array(4));const i=t.createTexture();t.bindTexture(t.TEXTURE_CUBE_MAP,i);for(let A=0;A<6;A++)t.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+A,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null);t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MIN_FILTER,t.LINEAR),this.emptyTextures={texture_2d:e,texture_cube_map:i};for(let A=this.boundTextures.length,s=0;s<A;s++)this.unbind(s)}create(t){const e=this.gl.createTexture();if(!e)throw new Error("Unable to create texture");return t&&(this.bind({location:t.location,target:t.target,value:e,forceUpdateLocation:!0}),this.update({filterMode:"linear",wrapMode:"repeat",...t})),e}getMeta(t){return this._renderer.getRelated(t,()=>({}))}update(...t){if(t.length>1){this.bind({location:t[1].location,target:t[1].target,value:t[0],forceUpdateLocation:!0}),this.update(t[1]);return}const e=t[0],{value:i,...A}=e,s=this.boundTextures[this.boundLocation][e.target??this.boundTarget];if(!s)return;const n=this.gl,o=this.getMeta(s),a=qh(o,A);Object.assign(o,A);const l=this._renderer.getBindPoint(o.target??this.boundTarget);if(i!==void 0&&(i===null?n.texImage2D(l,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,null):"pixels"in i?n.texImage2D(l,0,n.RGBA,i.width,i.height,0,n.RGBA,n.UNSIGNED_BYTE,i.pixels):n.texImage2D(l,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,i)),a.wrapMode&&o.wrapMode){const h=this._renderer.getBindPoint(o.wrapMode);n.texParameteri(l,n.TEXTURE_WRAP_S,h),n.texParameteri(l,n.TEXTURE_WRAP_T,h)}const c=o.filterMode;if(a.filterMode&&c){const h=this._renderer.getBindPoint(c.split("_")[0]);c.includes("_")?n.texParameteri(l,n.TEXTURE_MIN_FILTER,this._renderer.getBindPoint(c)):n.texParameteri(l,n.TEXTURE_MIN_FILTER,h),n.texParameteri(l,n.TEXTURE_MAG_FILTER,h)}if(o.anisoLevel&&c==="linear"&&this._renderer.extensions.anisotropicFiltering&&a.anisoLevel){const{MAX_TEXTURE_MAX_ANISOTROPY_EXT:h,TEXTURE_MAX_ANISOTROPY_EXT:u}=this._renderer.extensions.anisotropicFiltering;n.texParameterf(l,u,Math.min(o.anisoLevel,n.getParameter(h)))}}bind(t){const e=this.gl;let i,A,s,n;if(t&&"value"in t?{target:A,value:i,location:s,forceUpdateLocation:n}=t:i=t,i){const d=this.getMeta(i);d.target=A??=d.target??"texture_2d",d.location=s??=d.location??0}else A??="texture_2d",s??=0;let o=this.boundTextures[s];o||(this.boundTextures[s]=o={texture_2d:null,texture_cube_map:null});const a=o[A]??null,l=this.boundLocation,c=i!==a,h={location:s!==l&&(c||n),texture:c},u=this._renderer.getBindPoint(A);h.location&&(e.activeTexture(e.TEXTURE0+s),this.boundLocation=s),h.texture&&(e.bindTexture(u,i??this.emptyTextures[A]),o[A]=i),this.boundTarget=A}unbind(t,e="texture_2d"){const i=this._renderer.gl;if(typeof t=="number")this.bind({value:null,target:e,location:t});else{const A=this.getMeta(t),{target:s=this.boundTarget}=A,n=this._renderer.getBindPoint(s);for(let o=0;o<this.boundTextures.length;o++)this.boundTextures[o][s]===t&&(this.boundLocation!==o&&(i.activeTexture(i.TEXTURE0+o),this.boundLocation=o),i.bindTexture(n,this.emptyTextures[s]),this.boundTextures[o][s]=null)}}reset(){super.reset(),this.boundLocation=0,this.boundTarget="texture_2d",this.boundTextures=[],this.maxUnits=0}}class ia extends Ie{install(t){super.install(t),t.vertexArray=this}boundVertexArrayNull={attributes:{},elementArrayBuffer:null};boundVertexArrayObject=null;boundVertexArray=this.boundVertexArrayNull;enableVertexAttrib(t,e,i,A=1){const{buffer:s,size:n=0,type:o="float",normalized:a=!1,stride:l=0,offset:c=0,divisor:h}=i,u=this._renderer.gl;this._renderer.buffer.bind({target:"array_buffer",value:s});for(let d=0;d<A;d++)u.enableVertexAttribArray(e+d),u.vertexAttribPointer(e+d,n,this._renderer.getBindPoint(o),a,l,c+(l-c)/A*d);h&&("vertexAttribDivisor"in u?u.vertexAttribDivisor(e,h):console.warn("Failed to active vertex array object, GPU Instancing is not supported on this device")),this.boundVertexArray.attributes[t]={enable:!0,...i}}create(...t){const e=this._renderer.gl;if(!("createVertexArray"in e))return null;const i=e.createVertexArray();if(!i)throw new Error("Unable to create vertex array");return t.length===2?this.update(t[0],i,t[1]):t.length===1&&this.update(i,t[0]),i}getVertexArrayMeta(t){return this._renderer.getRelated(t,()=>({attributes:{},elementArrayBuffer:null}))}update(...t){if(t.length>2){this._renderer.program.bind(t[0]),this.update(t[1],t[2]);return}else if(t.length===2)if(t[0]){const s=t[0],n=t[1],o=this.getVertexArrayMeta(s);this.bind(s),this.update(n),o.attributes=this.boundVertexArray.attributes,o.elementArrayBuffer=this.boundVertexArray.elementArrayBuffer,this.unbind(),this._renderer.buffer.unbind("array_buffer");return}else return this.update(t[1]);const e=this._renderer.program.boundProgram;if(!e)return;const i=t[0];if(i.attributes){const s=this._renderer.program.getMeta(e),n={},o={};for(const l in i.attributes){const c=i.attributes[l],h=s.attributes.get(l);let u;"buffer"in c?u={...c}:u={buffer:c},u.size=u.size||h?.size||0;const d=this._renderer.buffer.getMeta(u.buffer),f=Number(h?.type.match(/mat(\d)/)?.[1]??1);let B;switch(u.type){case"unsigned_byte":B=u.size;break;case"unsigned_short":B=u.size*2;break;case"float":default:B=u.size*4;break}B*=f,n[d.id]??=0,n[d.id]+=B,o[l]={attrib:u,meta:d,info:h,byteLength:B,dimension:f}}const a={};for(const l in o){const{attrib:c,meta:h,info:u,byteLength:d,dimension:f}=o[l];u?.location!==void 0&&(a[h.id]??=0,c.offset??=a[h.id],c.stride??=n[h.id]===d?0:n[h.id],this.enableVertexAttrib(l,u.location,c,f),a[h.id]+=d)}}const A=i.elementArrayBuffer??null;this._renderer.buffer.bind({target:"element_array_buffer",value:A}),this.boundVertexArray.elementArrayBuffer=A}bind(t){const e=this._renderer.gl;if(t&&"attributes"in t)this.update(t);else if("bindVertexArray"in e){const i=this.boundVertexArrayObject;({value:t!==i}).value&&(e.bindVertexArray(t),this.boundVertexArrayObject=t,t?this.boundVertexArray={...this.getVertexArrayMeta(t)}:this.boundVertexArray=this.boundVertexArrayNull)}}unbind(){return this.bind(null)}reset(){super.reset(),this.boundVertexArrayNull={attributes:{},elementArrayBuffer:null},this.boundVertexArray=this.boundVertexArrayNull,this.boundVertexArrayObject=null}}class Aa extends Ie{install(t){super.install(t),t.viewport=this}boundViewport={x:0,y:0,width:0,height:0};bind(t){const e=this.boundViewport,i=Math.floor(t.x),A=Math.floor(t.y),s=Math.floor(t.width),n=Math.floor(t.height);e.x===i&&e.y===A&&e.width===s&&e.height===n||(this._renderer.gl.viewport(i,A,s,n),e.x=i,e.y=A,e.width=s,e.height=n)}reset(){super.reset(),this.boundViewport={x:0,y:0,width:0,height:0}}}class ra extends Yo{_modules=[new ea,new qo,new Xo,new Zo,new ia,new Aa,new zo,new jo,new $o,new ta,new Wo];bindPoints=new Map;constructor(t=Po(),e){if(super(),!t)throw new Error("Failed to createHTMLCanvas");Ro(t)?this._setupContext(t,e):(this.gl=t,this.version=ko(this.gl)?2:1),this._setupBindPoints()._setupExtensions()._setupPolyfill(),this.gl.pixelStorei(this.gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),this._modules.forEach(i=>i.install(this)),this._modules.forEach(i=>i.onUpdateContext())}_setupContext(t,e){this.view=t;let i=t.getContext("webgl2",e)||t.getContext("experimental-webgl2",e),A=2;if(i||(i=t.getContext("webgl",e)||t.getContext("experimental-webgl",e),A=1),!i)throw new Error("Unable to getContext");return this.gl=i,this.version=A,this._onContextLost=this._onContextLost.bind(this),this._onContextRestored=this._onContextRestored.bind(this),t.addEventListener("webglcontextlost",this._onContextLost,!1),t.addEventListener("webglcontextrestored",this._onContextRestored,!1),this}_setupExtensions(){const t=this.gl,e={loseContext:t.getExtension("WEBGL_lose_context"),anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),s3tc:t.getExtension("WEBGL_compressed_texture_s3tc"),s3tcSRGB:t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:t.getExtension("WEBGL_compressed_texture_etc"),etc1:t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:t.getExtension("WEBGL_compressed_texture_atc"),astc:t.getExtension("WEBGL_compressed_texture_astc")};return this.version===1?(e.instancedArrays=t.getExtension("ANGLE_instanced_arrays"),e.drawBuffers=t.getExtension("WEBGL_draw_buffers"),e.depthTexture=t.getExtension("WEBGL_depth_texture"),e.vertexArrayObject=t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object"),e.uint32ElementIndex=t.getExtension("OES_element_index_uint"),e.floatTexture=t.getExtension("OES_texture_float"),e.textureHalfFloat=t.getExtension("OES_texture_half_float"),e.textureHalfFloatLinear=t.getExtension("OES_texture_half_float_linear")):this.version===2&&(e.colorBufferFloat=t.getExtension("EXT_color_buffer_float")),this.extensions=e,this}_setupBindPoints(){for(const t in this.gl)if(t===t.toUpperCase()){const e=this.gl[t];typeof e=="number"&&this.bindPoints.set(e,t.toLowerCase())}return this}_setupPolyfill(){if(this.version===1){const{instancedArrays:t,vertexArrayObject:e,drawBuffers:i}=this.extensions,A=this.gl;e&&(A.createVertexArray=()=>e.createVertexArrayOES(),A.bindVertexArray=s=>e.bindVertexArrayOES(s),A.deleteVertexArray=s=>e.deleteVertexArrayOES(s)),t&&(A.vertexAttribDivisor=(s,n)=>t.vertexAttribDivisorANGLE(s,n),A.drawElementsInstanced=(s,n,o,a,l)=>t.drawElementsInstancedANGLE(s,n,o,a,l),A.drawArraysInstanced=(s,n,o,a)=>t.drawArraysInstancedANGLE(s,n,o,a)),i&&(A.drawBuffers=s=>i.drawBuffersWEBGL(s))}return this}_onContextLost(t){t.preventDefault(),setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0)}_onContextRestored(){}getBindPoint(t){return this.gl[t.toUpperCase()]}clear(t=this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT){this.gl.clear(t)}draw(t={}){const{mode:e="triangles",first:i=0,instanceCount:A}=t;let{count:s=0,bytesPerElement:n=0}=t;if(!s||!n){const a=this.vertexArray.boundVertexArray.elementArrayBuffer??Object.values(this.vertexArray.boundVertexArray.attributes)[0];if(a){const l=this.buffer.getMeta(a);s||(s=l.length),n||(n=l.bytesPerElement)}}const o=this.getBindPoint(e);if(n)if(n===2||n===4&&this.extensions.uint32ElementIndex){const a=n===2?this.gl.UNSIGNED_SHORT:this.gl.UNSIGNED_INT;A&&"drawElementsInstanced"in this.gl?this.gl.drawElementsInstanced(o,s,a,i*n,A):this.gl.drawElements(o,s,a,i*n)}else console.warn("Unsupported index buffer type: uint32");else A&&"drawArraysInstanced"in this.gl?this.gl.drawArraysInstanced(o,i,s,A):this.gl.drawArrays(o,i,s)}reset(){this._modules.forEach(t=>t.reset())}flush(){this._modules.forEach(t=>t.flush())}free(){this._modules.forEach(t=>t.free()),this.view?.removeEventListener("webglcontextlost",this._onContextLost,!1),this.view?.removeEventListener("webglcontextrestored",this._onContextRestored,!1),this.extensions.loseContext?.loseContext()}toPixels(){const t=this.gl.drawingBufferWidth,e=this.gl.drawingBufferHeight,i=t*e*4,A=t*4,s=(e-1)*A,n=new Uint8Array(i),o=new Uint8ClampedArray(i);this.gl.readPixels(0,0,t,e,this.gl.RGBA,this.gl.UNSIGNED_BYTE,n);for(let a=0;a<i;a+=A)o.set(n.subarray(a,a+A),s-a);return o}}class ii{}class sa extends ii{install(t){const e=async i=>{const{parseFont:A}=await Promise.resolve().then(()=>xI);return await t.fetch(i).then(s=>s.arrayBuffer()).then(s=>A(s))};return this.load=i=>t.loadBy(i,()=>e(i)),["woff","ttf","otf"].forEach(i=>{t.register(i,e)}),t.font=this,this}}const na={brightness:1,contrast:1,grayscale:0,"hue-rotate":0,invert:0,opacity:1,saturate:1,sepia:0};function oa(r){const t=new xs;if(r==="none")return t;const e=lA(r).reduce((i,{name:A,args:s})=>(i[A]=s[0].normalizedIntValue,i),{});Object.keys(na).forEach(i=>{e[i]=e[i]??na[i]});for(const i in e){const A=e[i];switch(i){case"hue-rotate":t.hueRotate(A*ae);break;case"saturate":t.saturate(A);break;case"brightness":t.brightness(A);break;case"contrast":t.contrast(A);break;case"invert":t.invert(A);break;case"sepia":t.sepia(A);break;case"opacity":t.opacity(A);break;case"grayscale":t.grayscale(A);break}}return t}function aa(r,t,e,i=new Vt){return r=!r||r==="none"?"":r,lA(r,{width:t,height:e}).reverse().forEach(({name:A,args:s})=>{const n=s.map(o=>o.normalizedIntValue);switch(A){case"translate":i.translate(n[0]*t,(n[1]??n[0])*e);break;case"translateX":i.translateX(n[0]*t);break;case"translateY":i.translateY(n[0]*e);break;case"translateZ":i.translateZ(n[0]);break;case"translate3d":i.translate3d(n[0]*t,(n[1]??n[0])*e,n[2]??n[1]??n[0]);break;case"scale":i.scale(n[0],n[1]??n[0]);break;case"scaleX":i.scaleX(n[0]);break;case"scaleY":i.scaleY(n[0]);break;case"scale3d":i.scale3d(n[0],n[1]??n[0],n[2]??n[1]??n[0]);break;case"rotate":i.rotate(n[0]*ae);break;case"rotateX":i.rotateX(n[0]*ae);break;case"rotateY":i.rotateY(n[0]*ae);break;case"rotateZ":i.rotateZ(n[0]*ae);break;case"rotate3d":i.rotate3d(n[0]*ae,(n[1]??n[0])*ae,(n[2]??n[1]??n[0])*ae,(n[3]??n[2]??n[1]??n[0])*ae);break;case"skew":i.skew(n[0],n[0]??n[1]);break;case"skewX":i.skewX(n[0]);break;case"skewY":i.skewY(n[0]);break;case"matrix":i.set(n);break}}),i}function la(r){const[t,e=t]=r.split(" ");return[t,e].map(i=>{switch(i=i.trim(),i){case"left":case"top":return 0;case"center":return .5;case"right":case"bottom":return 1;default:return Number(i)}})}class lr extends He{vertexAttributes;indexBuffer;instanceCount;mode;_materialWeakMap=new bs;constructor(t={}){super(),this.vertexAttributes=new Map(Object.entries(t?.vertexAttributes??{})),this.indexBuffer=t?.indexBuffer,this.instanceCount=t?.instanceCount,this.mode=t?.mode??"triangles"}_glVertexArray(t){return{attributes:Object.fromEntries(Array.from(this.vertexAttributes).map(([e,i])=>[e,{buffer:i.buffer._glBuffer(t),size:i.size,type:i.type,normalized:i.normalized,stride:i.stride,offset:i.offset,divisor:i.divisor}])),elementArrayBuffer:this.indexBuffer?._glBuffer(t)}}_glVertexArrayObject(t,e){let i=this._materialWeakMap.get(e);return i||(i={material:e.instanceId,geometry:this.instanceId},this._materialWeakMap.set(e,i)),t.getRelated(i,()=>t.vertexArray.create(e._glProgram(t),this._glVertexArray(t)))}draw(t,e,i){t.flush(),e.activate(t,i);const A=this._glVertexArrayObject(t,e);let s=!1,n;this.vertexAttributes.forEach(o=>{n?.instanceId!==o.buffer.instanceId&&(n=o.buffer,n.upload(t)&&(s=!0)),o.upload()&&(s=!0)}),this.indexBuffer?.upload(t)&&(s=!0),s&&A&&t.vertexArray.update(e._glProgram(t),A,this._glVertexArray(t)),t.vertexArray.bind(A??this._glVertexArray(t)),t.draw({mode:this.mode,instanceCount:this.instanceCount}),t.vertexArray.unbind()}}var Xh=Object.defineProperty,ca=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Xh(t,e,A),A};class Pi extends He{needsUpload=!1;constructor(t){super(),this.setProperties(t)}_glBufferOptions(){return{target:"element_array_buffer",data:this.data,usage:this.dynamic?"dynamic_draw":"static_draw"}}_glBuffer(t){return t.getRelated(this,()=>t.buffer.create(this._glBufferOptions()))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"data":case"dynamic":this.needsUpload=!0;break}}upload(t){const e=this.needsUpload;return e&&(this.needsUpload=!1,t.buffer.update(this._glBuffer(t),this._glBufferOptions())),e}}ca([_({protected:!0,default:null})],Pi.prototype,"data"),ca([_({protected:!0,fallback:!1})],Pi.prototype,"dynamic");var jh=Object.defineProperty,ha=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&jh(t,e,A),A};class Ye extends He{needsUpload=!1;constructor(t){super(),this.setProperties(t)}_glBufferOptions(){return{target:"array_buffer",data:this.data,usage:this.dynamic?"dynamic_draw":"static_draw"}}_glBuffer(t){return t.getRelated(this,()=>t.buffer.create(this._glBufferOptions()))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"data":case"dynamic":this.needsUpload=!0;break}}upload(t){const e=this.needsUpload;return e&&(this.needsUpload=!1,t.buffer.update(this._glBuffer(t),this._glBufferOptions())),e}}ha([_({protected:!0,default:null})],Ye.prototype,"data"),ha([_({protected:!0,fallback:!1})],Ye.prototype,"dynamic");var Zh=Object.defineProperty,Ci=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Zh(t,e,A),A};class ce extends He{needsUpload=!1;constructor(t){super(),this.setProperties({buffer:new Ye,...t})}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"buffer":case"size":case"normalized":case"type":case"stride":case"offset":case"divisor":this.needsUpload=!0;break}}upload(){const t=this.needsUpload;return t&&(this.needsUpload=!1),t}}Ci([_({protected:!0})],ce.prototype,"buffer"),Ci([_({fallback:0})],ce.prototype,"size"),Ci([_({fallback:!1})],ce.prototype,"normalized"),Ci([_({fallback:"float"})],ce.prototype,"type"),Ci([_()],ce.prototype,"stride"),Ci([_()],ce.prototype,"offset"),Ci([_()],ce.prototype,"divisor");class $h extends lr{constructor(){super({vertexAttributes:{position:new ce({buffer:new Ye({data:new Float32Array([0,0,1,0,1,1,0,1]),dynamic:!1}),size:2,normalized:!1,type:"float"})},indexBuffer:new Pi({data:new Uint16Array([0,1,3,2]),dynamic:!1}),mode:"triangle_strip"})}}class Bt extends He{static instance=new this;vert;frag;uniforms;constructor(t={}){super(),this.vert=t.vert??`precision highp float;
|
|
70
|
+
${i.getShaderInfoLog(A)}`);return A}updateUniforms(...t){if(t.length>1){this.bind(t[0]),this.updateUniforms(t[1]);return}const e=this.boundProgram;if(!e)return;const i=this.gl,A=t[0],{uniforms:s,boundUniforms:n}=this.getMeta(e);for(const o in A){const a=A[o],l=s.get(o);if(!l)continue;const{type:c,isArray:h,location:u}=l;if(!(!u||n.get(u)===a))switch(n.set(u,a),c){case"float":h?i.uniform1fv(u,a):i.uniform1f(u,a);break;case"unsigned_int":h?i.uniform1uiv(u,a):i.uniform1ui(u,a);break;case"bool":case"int":case"sampler_2d":case"sampler_cube":case"sampler_2d_array":h?i.uniform1iv(u,a):i.uniform1i(u,a);break;case"bool_vec2":case"int_vec2":i.uniform2iv(u,a);break;case"unsigned_int_vec2":i.uniform2uiv(u,a);break;case"float_vec2":i.uniform2fv(u,a);break;case"bool_vec3":case"int_vec3":i.uniform3iv(u,a);break;case"unsigned_int_vec3":i.uniform3uiv(u,a);break;case"float_vec3":i.uniform3fv(u,a);break;case"bool_vec4":case"int_vec4":i.uniform4iv(u,a);break;case"unsigned_int_vec4":i.uniform4uiv(u,a);break;case"float_vec4":i.uniform4fv(u,a);break;case"float_mat2":i.uniformMatrix2fv(u,!1,a);break;case"float_mat3":i.uniformMatrix3fv(u,!1,a);break;case"float_mat4":i.uniformMatrix4fv(u,!1,a);break}}}reset(){super.reset(),this.boundProgram=null,this.uniforms={}}free(){super.free(),this.bind(null)}}function Wh(r){switch(r){case"float":case"int":case"unsigned_int":case"bool":case"sampler_2d":return 1;case"float_vec2":case"int_vec2":case"unsigned_int_vec2":case"bool_vec2":return 2;case"float_vec3":case"int_vec3":case"unsigned_int_vec3":case"bool_vec3":return 3;case"float_vec4":case"int_vec4":case"unsigned_int_vec4":case"bool_vec4":case"float_mat2":return 4;case"float_mat3":return 9;case"float_mat4":return 16;default:return 1}}class $o extends Ie{install(t){super.install(t),t.scissor=this}get length(){return this._renderer.mask.last?.scissorCounter??0}push(t){const e=this._renderer.gl;e.enable(e.SCISSOR_TEST),t.scissorCounter??=0,t.scissorCounter++,this.use()}pop(t){if(this.length>0)this.use();else{const e=this._renderer.gl;e.disable(e.SCISSOR_TEST)}}use(){const t=this._renderer,{pixelRatio:e,mask:i,viewport:A,screen:s,gl:n}=t,o=i.last.mask;let a;A.boundViewport?a=A.boundViewport.height-(o.height+o.y)*e:a=(s.height-(o.height+o.y))*e,n.scissor(o.x*e,a,o.width*e,o.height*e)}}class ta extends Ie{install(t){super.install(t),t.stencil=this}get length(){return this._renderer.mask.last?.stencilCounter??0}push(t){const e=this._renderer.gl,i=t.mask,A=t.stencilCounter??=0;t.stencilCounter===0&&(this._renderer.framebuffer.forceStencil(),e.clearStencil(0),e.clear(e.STENCIL_BUFFER_BIT),e.enable(e.STENCIL_TEST)),t.stencilCounter++;const s=t.color;s&&(t.color=0,e.colorMask(!1,!1,!1,!1)),e.stencilFunc(e.EQUAL,A,4294967295),e.stencilOp(e.KEEP,e.KEEP,e.INCR),i.render(this._renderer),this._renderer.flush(),s&&(t.color=s,e.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)),this.use()}pop(t){const e=this._renderer.gl,i=t.mask;if(!this.length)e.disable(e.STENCIL_TEST);else{const A=this._renderer.mask.last,s=A?.color??15;s!==0&&(A.color=0,e.colorMask(!1,!1,!1,!1)),e.stencilOp(e.KEEP,e.KEEP,e.DECR),i.render(this._renderer),this._renderer.flush(),s!==0&&(A.color=s,e.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)),this.use()}}use(){const t=this._renderer.gl;t.stencilFunc(t.EQUAL,this.length,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP)}}function qh(r,t){const e=new Set([...Object.keys(r),...Object.keys(t)]),i={};return e.forEach(A=>{i[A]=r[A]!==t[A]}),i}class ea extends Ie{install(t){super.install(t),t.texture=this}maxUnits=0;boundLocation=0;boundTarget="texture_2d";boundTextures=[];emptyTextures={texture_2d:null,texture_cube_map:null};onUpdateContext(){super.onUpdateContext();const t=this.gl;this.maxUnits=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);for(let A=0;A<this.maxUnits;A++)this.boundTextures[A]={texture_2d:null,texture_cube_map:null};const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,new Uint8Array(4));const i=t.createTexture();t.bindTexture(t.TEXTURE_CUBE_MAP,i);for(let A=0;A<6;A++)t.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+A,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null);t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MIN_FILTER,t.LINEAR),this.emptyTextures={texture_2d:e,texture_cube_map:i};for(let A=this.boundTextures.length,s=0;s<A;s++)this.unbind(s)}create(t){const e=this.gl.createTexture();if(!e)throw new Error("Unable to create texture");return t&&(this.bind({location:t.location,target:t.target,value:e,forceUpdateLocation:!0}),this.update({filterMode:"linear",wrapMode:"repeat",...t})),e}getMeta(t){return this._renderer.getRelated(t,()=>({}))}update(...t){if(t.length>1){this.bind({location:t[1].location,target:t[1].target,value:t[0],forceUpdateLocation:!0}),this.update(t[1]);return}const e=t[0],{value:i,...A}=e,s=this.boundTextures[this.boundLocation][e.target??this.boundTarget];if(!s)return;const n=this.gl,o=this.getMeta(s),a=qh(o,A);Object.assign(o,A);const l=this._renderer.getBindPoint(o.target??this.boundTarget);if(i!==void 0&&(i===null?n.texImage2D(l,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,null):"pixels"in i?n.texImage2D(l,0,n.RGBA,i.width,i.height,0,n.RGBA,n.UNSIGNED_BYTE,i.pixels):n.texImage2D(l,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,i)),a.wrapMode&&o.wrapMode){const h=this._renderer.getBindPoint(o.wrapMode);n.texParameteri(l,n.TEXTURE_WRAP_S,h),n.texParameteri(l,n.TEXTURE_WRAP_T,h)}const c=o.filterMode;if(a.filterMode&&c){const h=this._renderer.getBindPoint(c.split("_")[0]);c.includes("_")?n.texParameteri(l,n.TEXTURE_MIN_FILTER,this._renderer.getBindPoint(c)):n.texParameteri(l,n.TEXTURE_MIN_FILTER,h),n.texParameteri(l,n.TEXTURE_MAG_FILTER,h)}if(o.anisoLevel&&c==="linear"&&this._renderer.extensions.anisotropicFiltering&&a.anisoLevel){const{MAX_TEXTURE_MAX_ANISOTROPY_EXT:h,TEXTURE_MAX_ANISOTROPY_EXT:u}=this._renderer.extensions.anisotropicFiltering;n.texParameterf(l,u,Math.min(o.anisoLevel,n.getParameter(h)))}}bind(t){const e=this.gl;let i,A,s,n;if(t&&"value"in t?{target:A,value:i,location:s,forceUpdateLocation:n}=t:i=t,i){const d=this.getMeta(i);d.target=A??=d.target??"texture_2d",d.location=s??=d.location??0}else A??="texture_2d",s??=0;let o=this.boundTextures[s];o||(this.boundTextures[s]=o={texture_2d:null,texture_cube_map:null});const a=o[A]??null,l=this.boundLocation,c=i!==a,h={location:s!==l&&(c||n),texture:c},u=this._renderer.getBindPoint(A);h.location&&(e.activeTexture(e.TEXTURE0+s),this.boundLocation=s),h.texture&&(e.bindTexture(u,i??this.emptyTextures[A]),o[A]=i),this.boundTarget=A}unbind(t,e="texture_2d"){const i=this._renderer.gl;if(typeof t=="number")this.bind({value:null,target:e,location:t});else{const A=this.getMeta(t),{target:s=this.boundTarget}=A,n=this._renderer.getBindPoint(s);for(let o=0;o<this.boundTextures.length;o++)this.boundTextures[o][s]===t&&(this.boundLocation!==o&&(i.activeTexture(i.TEXTURE0+o),this.boundLocation=o),i.bindTexture(n,this.emptyTextures[s]),this.boundTextures[o][s]=null)}}reset(){super.reset(),this.boundLocation=0,this.boundTarget="texture_2d",this.boundTextures=[],this.maxUnits=0}}class ia extends Ie{install(t){super.install(t),t.vertexArray=this}boundVertexArrayNull={attributes:{},elementArrayBuffer:null};boundVertexArrayObject=null;boundVertexArray=this.boundVertexArrayNull;enableVertexAttrib(t,e,i,A=1){const{buffer:s,size:n=0,type:o="float",normalized:a=!1,stride:l=0,offset:c=0,divisor:h}=i,u=this._renderer.gl;this._renderer.buffer.bind({target:"array_buffer",value:s});for(let d=0;d<A;d++)u.enableVertexAttribArray(e+d),u.vertexAttribPointer(e+d,n,this._renderer.getBindPoint(o),a,l,c+(l-c)/A*d);h&&("vertexAttribDivisor"in u?u.vertexAttribDivisor(e,h):console.warn("Failed to active vertex array object, GPU Instancing is not supported on this device")),this.boundVertexArray.attributes[t]={enable:!0,...i}}create(...t){const e=this._renderer.gl;if(!("createVertexArray"in e))return null;const i=e.createVertexArray();if(!i)throw new Error("Unable to create vertex array");return t.length===2?this.update(t[0],i,t[1]):t.length===1&&this.update(i,t[0]),i}getVertexArrayMeta(t){return this._renderer.getRelated(t,()=>({attributes:{},elementArrayBuffer:null}))}update(...t){if(t.length>2){this._renderer.program.bind(t[0]),this.update(t[1],t[2]);return}else if(t.length===2)if(t[0]){const s=t[0],n=t[1],o=this.getVertexArrayMeta(s);this.bind(s),this.update(n),o.attributes=this.boundVertexArray.attributes,o.elementArrayBuffer=this.boundVertexArray.elementArrayBuffer,this.unbind(),this._renderer.buffer.unbind("array_buffer");return}else return this.update(t[1]);const e=this._renderer.program.boundProgram;if(!e)return;const i=t[0];if(i.attributes){const s=this._renderer.program.getMeta(e),n={},o={};for(const l in i.attributes){const c=i.attributes[l],h=s.attributes.get(l);let u;"buffer"in c?u={...c}:u={buffer:c},u.size=u.size||h?.size||0;const d=this._renderer.buffer.getMeta(u.buffer),f=Number(h?.type.match(/mat(\d)/)?.[1]??1);let B;switch(u.type){case"unsigned_byte":B=u.size;break;case"unsigned_short":B=u.size*2;break;case"float":default:B=u.size*4;break}B*=f,n[d.id]??=0,n[d.id]+=B,o[l]={attrib:u,meta:d,info:h,byteLength:B,dimension:f}}const a={};for(const l in o){const{attrib:c,meta:h,info:u,byteLength:d,dimension:f}=o[l];u?.location!==void 0&&(a[h.id]??=0,c.offset??=a[h.id],c.stride??=n[h.id]===d?0:n[h.id],this.enableVertexAttrib(l,u.location,c,f),a[h.id]+=d)}}const A=i.elementArrayBuffer??null;this._renderer.buffer.bind({target:"element_array_buffer",value:A}),this.boundVertexArray.elementArrayBuffer=A}bind(t){const e=this._renderer.gl;if(t&&"attributes"in t)this.update(t);else if("bindVertexArray"in e){const i=this.boundVertexArrayObject;({value:t!==i}).value&&(e.bindVertexArray(t),this.boundVertexArrayObject=t,t?this.boundVertexArray={...this.getVertexArrayMeta(t)}:this.boundVertexArray=this.boundVertexArrayNull)}}unbind(){return this.bind(null)}reset(){super.reset(),this.boundVertexArrayNull={attributes:{},elementArrayBuffer:null},this.boundVertexArray=this.boundVertexArrayNull,this.boundVertexArrayObject=null}}class Aa extends Ie{install(t){super.install(t),t.viewport=this}boundViewport={x:0,y:0,width:0,height:0};bind(t){const e=this.boundViewport,i=Math.floor(t.x),A=Math.floor(t.y),s=Math.floor(t.width),n=Math.floor(t.height);e.x===i&&e.y===A&&e.width===s&&e.height===n||(this._renderer.gl.viewport(i,A,s,n),e.x=i,e.y=A,e.width=s,e.height=n)}reset(){super.reset(),this.boundViewport={x:0,y:0,width:0,height:0}}}class ra extends Yo{_modules=[new ea,new qo,new Xo,new Zo,new ia,new Aa,new zo,new jo,new $o,new ta,new Wo];bindPoints=new Map;constructor(t=Po(),e){if(super(),!t)throw new Error("Failed to createHTMLCanvas");Ro(t)?this._setupContext(t,e):(this.gl=t,this.version=ko(this.gl)?2:1),this._setupBindPoints()._setupExtensions()._setupPolyfill(),this.gl.pixelStorei(this.gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),this._modules.forEach(i=>i.install(this)),this._modules.forEach(i=>i.onUpdateContext())}_setupContext(t,e){this.view=t;let i=t.getContext("webgl2",e)||t.getContext("experimental-webgl2",e),A=2;if(i||(i=t.getContext("webgl",e)||t.getContext("experimental-webgl",e),A=1),!i)throw new Error("Unable to getContext");return this.gl=i,this.version=A,this._onContextLost=this._onContextLost.bind(this),this._onContextRestored=this._onContextRestored.bind(this),t.addEventListener("webglcontextlost",this._onContextLost,!1),t.addEventListener("webglcontextrestored",this._onContextRestored,!1),this}_setupExtensions(){const t=this.gl,e={loseContext:t.getExtension("WEBGL_lose_context"),anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),s3tc:t.getExtension("WEBGL_compressed_texture_s3tc"),s3tcSRGB:t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:t.getExtension("WEBGL_compressed_texture_etc"),etc1:t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:t.getExtension("WEBGL_compressed_texture_atc"),astc:t.getExtension("WEBGL_compressed_texture_astc")};return this.version===1?(e.instancedArrays=t.getExtension("ANGLE_instanced_arrays"),e.drawBuffers=t.getExtension("WEBGL_draw_buffers"),e.depthTexture=t.getExtension("WEBGL_depth_texture"),e.vertexArrayObject=t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object"),e.uint32ElementIndex=t.getExtension("OES_element_index_uint"),e.floatTexture=t.getExtension("OES_texture_float"),e.textureHalfFloat=t.getExtension("OES_texture_half_float"),e.textureHalfFloatLinear=t.getExtension("OES_texture_half_float_linear")):this.version===2&&(e.colorBufferFloat=t.getExtension("EXT_color_buffer_float")),this.extensions=e,this}_setupBindPoints(){for(const t in this.gl)if(t===t.toUpperCase()){const e=this.gl[t];typeof e=="number"&&this.bindPoints.set(e,t.toLowerCase())}return this}_setupPolyfill(){if(this.version===1){const{instancedArrays:t,vertexArrayObject:e,drawBuffers:i}=this.extensions,A=this.gl;e&&(A.createVertexArray=()=>e.createVertexArrayOES(),A.bindVertexArray=s=>e.bindVertexArrayOES(s),A.deleteVertexArray=s=>e.deleteVertexArrayOES(s)),t&&(A.vertexAttribDivisor=(s,n)=>t.vertexAttribDivisorANGLE(s,n),A.drawElementsInstanced=(s,n,o,a,l)=>t.drawElementsInstancedANGLE(s,n,o,a,l),A.drawArraysInstanced=(s,n,o,a)=>t.drawArraysInstancedANGLE(s,n,o,a)),i&&(A.drawBuffers=s=>i.drawBuffersWEBGL(s))}return this}_onContextLost(t){t.preventDefault(),setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0)}_onContextRestored(){}getBindPoint(t){return this.gl[t.toUpperCase()]}clear(t=this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT){this.gl.clear(t)}draw(t={}){const{mode:e="triangles",first:i=0,instanceCount:A}=t;let{count:s=0,bytesPerElement:n=0}=t;if(!s||!n){const a=this.vertexArray.boundVertexArray.elementArrayBuffer??Object.values(this.vertexArray.boundVertexArray.attributes)[0];if(a){const l=this.buffer.getMeta(a);s||(s=l.length),n||(n=l.bytesPerElement)}}const o=this.getBindPoint(e);if(n)if(n===2||n===4&&this.extensions.uint32ElementIndex){const a=n===2?this.gl.UNSIGNED_SHORT:this.gl.UNSIGNED_INT;A&&"drawElementsInstanced"in this.gl?this.gl.drawElementsInstanced(o,s,a,i*n,A):this.gl.drawElements(o,s,a,i*n)}else console.warn("Unsupported index buffer type: uint32");else A&&"drawArraysInstanced"in this.gl?this.gl.drawArraysInstanced(o,i,s,A):this.gl.drawArrays(o,i,s)}reset(){this._modules.forEach(t=>t.reset())}flush(){this._modules.forEach(t=>t.flush())}free(){this._modules.forEach(t=>t.free()),this.view?.removeEventListener("webglcontextlost",this._onContextLost,!1),this.view?.removeEventListener("webglcontextrestored",this._onContextRestored,!1),this.extensions.loseContext?.loseContext()}toPixels(){const t=this.gl.drawingBufferWidth,e=this.gl.drawingBufferHeight,i=t*e*4,A=t*4,s=(e-1)*A,n=new Uint8Array(i),o=new Uint8ClampedArray(i);this.gl.readPixels(0,0,t,e,this.gl.RGBA,this.gl.UNSIGNED_BYTE,n);for(let a=0;a<i;a+=A)o.set(n.subarray(a,a+A),s-a);return o}}class ei{}class sa extends ei{install(t){const e=async i=>{const{parseFont:A}=await Promise.resolve().then(()=>xI);return await t.fetch(i).then(s=>s.arrayBuffer()).then(s=>A(s))};return this.load=i=>t.loadBy(i,()=>e(i)),["woff","ttf","otf"].forEach(i=>{t.register(i,e)}),t.font=this,this}}const na={brightness:1,contrast:1,grayscale:0,"hue-rotate":0,invert:0,opacity:1,saturate:1,sepia:0};function oa(r){const t=new xs;if(r==="none")return t;const e=lA(r).reduce((i,{name:A,args:s})=>(i[A]=s[0].normalizedIntValue,i),{});Object.keys(na).forEach(i=>{e[i]=e[i]??na[i]});for(const i in e){const A=e[i];switch(i){case"hue-rotate":t.hueRotate(A*ae);break;case"saturate":t.saturate(A);break;case"brightness":t.brightness(A);break;case"contrast":t.contrast(A);break;case"invert":t.invert(A);break;case"sepia":t.sepia(A);break;case"opacity":t.opacity(A);break;case"grayscale":t.grayscale(A);break}}return t}function aa(r,t,e,i=new Vt){return r=!r||r==="none"?"":r,lA(r,{width:t,height:e}).reverse().forEach(({name:A,args:s})=>{const n=s.map(o=>o.normalizedIntValue);switch(A){case"translate":i.translate(n[0]*t,(n[1]??n[0])*e);break;case"translateX":i.translateX(n[0]*t);break;case"translateY":i.translateY(n[0]*e);break;case"translateZ":i.translateZ(n[0]);break;case"translate3d":i.translate3d(n[0]*t,(n[1]??n[0])*e,n[2]??n[1]??n[0]);break;case"scale":i.scale(n[0],n[1]??n[0]);break;case"scaleX":i.scaleX(n[0]);break;case"scaleY":i.scaleY(n[0]);break;case"scale3d":i.scale3d(n[0],n[1]??n[0],n[2]??n[1]??n[0]);break;case"rotate":i.rotate(n[0]*ae);break;case"rotateX":i.rotateX(n[0]*ae);break;case"rotateY":i.rotateY(n[0]*ae);break;case"rotateZ":i.rotateZ(n[0]*ae);break;case"rotate3d":i.rotate3d(n[0]*ae,(n[1]??n[0])*ae,(n[2]??n[1]??n[0])*ae,(n[3]??n[2]??n[1]??n[0])*ae);break;case"skew":i.skew(n[0],n[0]??n[1]);break;case"skewX":i.skewX(n[0]);break;case"skewY":i.skewY(n[0]);break;case"matrix":i.set(n);break}}),i}function la(r){const[t,e=t]=r.split(" ");return[t,e].map(i=>{switch(i=i.trim(),i){case"left":case"top":return 0;case"center":return .5;case"right":case"bottom":return 1;default:return Number(i)}})}class lr extends He{vertexAttributes;indexBuffer;instanceCount;mode;_materialWeakMap=new bs;constructor(t={}){super(),this.vertexAttributes=new Map(Object.entries(t?.vertexAttributes??{})),this.indexBuffer=t?.indexBuffer,this.instanceCount=t?.instanceCount,this.mode=t?.mode??"triangles"}_glVertexArray(t){return{attributes:Object.fromEntries(Array.from(this.vertexAttributes).map(([e,i])=>[e,{buffer:i.buffer._glBuffer(t),size:i.size,type:i.type,normalized:i.normalized,stride:i.stride,offset:i.offset,divisor:i.divisor}])),elementArrayBuffer:this.indexBuffer?._glBuffer(t)}}_glVertexArrayObject(t,e){let i=this._materialWeakMap.get(e);return i||(i={material:e.instanceId,geometry:this.instanceId},this._materialWeakMap.set(e,i)),t.getRelated(i,()=>t.vertexArray.create(e._glProgram(t),this._glVertexArray(t)))}draw(t,e,i){t.flush(),e.activate(t,i);const A=this._glVertexArrayObject(t,e);let s=!1,n;this.vertexAttributes.forEach(o=>{n?.instanceId!==o.buffer.instanceId&&(n=o.buffer,n.upload(t)&&(s=!0)),o.upload()&&(s=!0)}),this.indexBuffer?.upload(t)&&(s=!0),s&&A&&t.vertexArray.update(e._glProgram(t),A,this._glVertexArray(t)),t.vertexArray.bind(A??this._glVertexArray(t)),t.draw({mode:this.mode,instanceCount:this.instanceCount}),t.vertexArray.unbind()}}var Xh=Object.defineProperty,ca=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Xh(t,e,A),A};class Pi extends He{needsUpload=!1;constructor(t){super(),this.setProperties(t)}_glBufferOptions(){return{target:"element_array_buffer",data:this.data,usage:this.dynamic?"dynamic_draw":"static_draw"}}_glBuffer(t){return t.getRelated(this,()=>t.buffer.create(this._glBufferOptions()))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"data":case"dynamic":this.needsUpload=!0;break}}upload(t){const e=this.needsUpload;return e&&(this.needsUpload=!1,t.buffer.update(this._glBuffer(t),this._glBufferOptions())),e}}ca([_({protected:!0,default:null})],Pi.prototype,"data"),ca([_({protected:!0,fallback:!1})],Pi.prototype,"dynamic");var jh=Object.defineProperty,ha=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&jh(t,e,A),A};class Ye extends He{needsUpload=!1;constructor(t){super(),this.setProperties(t)}_glBufferOptions(){return{target:"array_buffer",data:this.data,usage:this.dynamic?"dynamic_draw":"static_draw"}}_glBuffer(t){return t.getRelated(this,()=>t.buffer.create(this._glBufferOptions()))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"data":case"dynamic":this.needsUpload=!0;break}}upload(t){const e=this.needsUpload;return e&&(this.needsUpload=!1,t.buffer.update(this._glBuffer(t),this._glBufferOptions())),e}}ha([_({protected:!0,default:null})],Ye.prototype,"data"),ha([_({protected:!0,fallback:!1})],Ye.prototype,"dynamic");var Zh=Object.defineProperty,Ci=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Zh(t,e,A),A};class ce extends He{needsUpload=!1;constructor(t){super(),this.setProperties({buffer:new Ye,...t})}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"buffer":case"size":case"normalized":case"type":case"stride":case"offset":case"divisor":this.needsUpload=!0;break}}upload(){const t=this.needsUpload;return t&&(this.needsUpload=!1),t}}Ci([_({protected:!0})],ce.prototype,"buffer"),Ci([_({fallback:0})],ce.prototype,"size"),Ci([_({fallback:!1})],ce.prototype,"normalized"),Ci([_({fallback:"float"})],ce.prototype,"type"),Ci([_()],ce.prototype,"stride"),Ci([_()],ce.prototype,"offset"),Ci([_()],ce.prototype,"divisor");class $h extends lr{constructor(){super({vertexAttributes:{position:new ce({buffer:new Ye({data:new Float32Array([0,0,1,0,1,1,0,1]),dynamic:!1}),size:2,normalized:!1,type:"float"})},indexBuffer:new Pi({data:new Uint16Array([0,1,3,2]),dynamic:!1}),mode:"triangle_strip"})}}class Bt extends He{static instance=new this;vert;frag;uniforms;constructor(t={}){super(),this.vert=t.vert??`precision highp float;
|
|
71
71
|
attribute vec2 position;
|
|
72
72
|
uniform mat3 projectionMatrix;
|
|
73
73
|
uniform mat3 modelViewMatrix;
|
|
@@ -111,7 +111,7 @@ uniform sampler2D sampler;
|
|
|
111
111
|
uniform vec4 tint;
|
|
112
112
|
void main(void) {
|
|
113
113
|
gl_FragColor = texture2D(sampler, vUv) * tint;
|
|
114
|
-
}`,uniforms:{sampler:0,projectionMatrix:new Float32Array([1,0,0,0,1,0,0,0,1]),modelViewMatrix:new Float32Array([1,0,0,0,1,0,0,0,1]),tint:new Float32Array([1,1,1,1])}})}}class gt extends lr{static _instance;static get instance(){return this._instance??=new this}static draw(t,e=gA.instance,i){this.instance.draw(t,e,i)}constructor(){super({vertexAttributes:{position:new ce({buffer:new Ye({data:new Float32Array([-1,-1,1,-1,1,1,-1,1]),dynamic:!1}),size:2,normalized:!1,type:"float"}),uv:new ce({buffer:new Ye({data:new Float32Array([0,0,1,0,1,1,0,1]),dynamic:!1}),size:2,normalized:!1,type:"float"})},indexBuffer:new Pi({data:new Uint16Array([0,1,2,0,2,3]),dynamic:!1})})}}class Ag extends lr{positionBuffer;uvBuffer;constructor(){const t=new Ye({data:new Float32Array,dynamic:!0}),e=new Ye({data:new Float32Array,dynamic:!0});super({vertexAttributes:{position:new ce({buffer:t,size:2,normalized:!1,type:"float"}),uv:new ce({buffer:e,size:2,normalized:!1,type:"float"})},indexBuffer:new Pi({data:new Uint16Array,dynamic:!0})}),this.positionBuffer=t,this.uvBuffer=e}}var rg=Object.defineProperty,Ui=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&rg(t,e,A),A};class mt extends He{static get EMPTY(){return new this({width:1,height:1,pixels:null})}static get WHITE(){return new this({width:1,height:1,pixels:new Uint8Array([255,255,255,255])})}static get BLACK(){return new this({width:1,height:1,pixels:new Uint8Array([0,0,0,255])})}static get RED(){return new this({width:1,height:1,pixels:new Uint8Array([255,0,0,255])})}static get GREEN(){return new this({width:1,height:1,pixels:new Uint8Array([0,255,0,255])})}static get BLUE(){return new this({width:1,height:1,pixels:new Uint8Array([0,0,255,255])})}_isPowerOfTwo=!1;_needsUpload=!1;get valid(){return!!(this.width&&this.height)}get realWidth(){return Math.round(this.width*this.pixelRatio)}get realHeight(){return Math.round(this.height*this.pixelRatio)}constructor(t){super(),this.source=t,this._updateSize()}_glTextureOptions(t,e){let i=this.wrapMode;return t.version===1&&!this._isPowerOfTwo&&(i="clamp_to_edge"),{value:this.source,target:"texture_2d",location:0,filterMode:this.filterMode,wrapMode:i,...e}}_glTexture(t,e){return t.getRelated(this,()=>t.texture.create(this._glTextureOptions(t,e)))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"width":case"height":this._updatePOT();break;case"source":this._updateSize();break;case"filterMode":case"wrapMode":case"pixelRatio":this.requestUpload();break}}_updatePOT(){this._isPowerOfTwo=Bs(this.realWidth)&&Bs(this.realHeight),this.requestUpload()}_updateSize(){const t=this.source;"pixels"in t?(this.width=t.width/this.pixelRatio,this.height=t.height/this.pixelRatio):(this.width=Number(t.naturalWidth||t.videoWidth||t.width||0)/this.pixelRatio,this.height=Number(t.naturalHeight||t.videoHeight||t.height||0)/this.pixelRatio),this.requestUpload()}requestUpload(){this._needsUpload=!0}upload(t,e){return this._needsUpload&&this.valid?(this._needsUpload=!1,t.texture.update(this._glTexture(t,e),this._glTextureOptions(t,e)),!0):!1}activate(t,e=0){return this.valid?(t.texture.bind({target:"texture_2d",value:this._glTexture(t,{location:e}),location:e}),this.upload(t,{location:e}),!0):!1}inactivate(t){t.texture.unbind(this._glTexture(t))}free(){vo&&this.source instanceof ImageBitmap&&this.source.close()}}Ui([_({protected:!0})],mt.prototype,"source"),Ui([_({fallback:0})],mt.prototype,"width"),Ui([_({fallback:0})],mt.prototype,"height"),Ui([_({fallback:"linear"})],mt.prototype,"filterMode"),Ui([_({fallback:"clamp_to_edge"})],mt.prototype,"wrapMode"),Ui([_({fallback:1})],mt.prototype,"pixelRatio");class cr extends He{frames;constructor(t){super();let e;if(Array.isArray(t))e=t;else if(t instanceof mt)e=[{texture:t,duration:0}];else throw new TypeError("Failed new AnimatedTexture");this.frames=e,this.updateDuration()}updateDuration(){return this.duration=this.frames.reduce((t,e)=>e.duration+t,0),this}free(){this.frames.forEach(t=>{t.texture.free()})}}var sg=Object.defineProperty,ng=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&sg(t,e,A),A};class uA extends mt{constructor(t=document.createElement("canvas")){super(t)}_updateProperty(t,e,i,A){switch(t){case"width":this.source.width=Math.max(1,Math.ceil(e*this.pixelRatio));break;case"height":this.source.height=Math.max(1,Math.ceil(e*this.pixelRatio));break}super._updateProperty(t,e,i,A)}}ng([_()],uA.prototype,"pixelRatio");class ga extends mt{constructor(t){const e=new Je(t);super({width:1,height:1,pixels:new Uint8Array([e.r8,e.g8,e.b8,e.a8])})}}class hr extends mt{static test(t){return oA(t)}static linearGradient(t,e,i){e=e||1,i=i||1;const A=document.createElement("canvas");A.width=e,A.height=i;const s=A.getContext("2d");if(!s)throw new Error("Failed to parse linear gradient, get canvas context is null.");let{angle:n=0,stops:o}=t;n-=Math.PI/2;const a=e/2,l=i/2,c=Math.sqrt(e*e+i*i)/2,h=a+c*Math.cos(n+Math.PI),u=l+c*Math.sin(n+Math.PI),d=a+c*Math.cos(n),f=l+c*Math.sin(n),B=s.createLinearGradient(h,u,d,f);o.forEach(R=>{B.addColorStop(R.offset,R.color)}),s.fillStyle=B,s.fillRect(0,0,A.width,A.height);const p=s.getImageData(0,0,A.width,A.height);return{width:p.width,height:p.height,pixels:new Uint8Array(p.data.buffer)}}constructor(t,e,i){super(hr.linearGradient(t,e,i))}}function og(r){return{autoLoad:!!(r?.autoLoad??!0),useBitmap:!!(r?.useBitmap??!0)&&Qs,crossorigin:r?.crossorigin??null}}class ag extends mt{bitmap;useBitmap;preserveBitmap=!1;_loadSource;_loadBitmap;constructor(t,e){const i=og(e);super(t);const A=t.src,s=A.includes(".svg")||A.startsWith("data:image/svg+xml");this.useBitmap=i.useBitmap&&!s,i.autoLoad&&this.load()}async load(){return this._loadSource||(this._loadSource=new Promise(t=>{this._loadSource=void 0;const e=this.source,i=()=>{e.onload=null,e.onerror=null},A=()=>{i(),this.requestUpload(),this.useBitmap?this.genBitmap().finally(()=>t(this)):t(this)},s=n=>{i(),console.warn(`Failed to load ImageTexture, src: ${e.src}`,n),this.emit("error",n),t(this)};e.complete&&e.src?A():(e.onload=A,e.onerror=s)})),this._loadSource}genBitmap(){if(this._loadBitmap)return this._loadBitmap;if(this.bitmap||!Qs)return Promise.resolve(this);const t=this.source,e=!t.crossOrigin||t.crossOrigin==="anonymous";return this._loadBitmap=fetch(t.src,{mode:e?"cors":"no-cors"}).then(i=>i.blob()).then(i=>createImageBitmap(i,0,0,t.width,t.height,{premultiplyAlpha:"premultiply"})).then(i=>(this.bitmap=i,this.requestUpload(),this._loadBitmap=void 0,this)).catch(i=>(console.warn("Failed to genBitmap",i),this)),this._loadBitmap}_glTextureOptions(t){return{...super._glTextureOptions(t),value:this.bitmap??this.source}}upload(t){if(this.useBitmap){if(!this.bitmap)return this.genBitmap(),!1}else{const i=this.source;if(cA&&i instanceof HTMLImageElement&&(!i.complete||i.naturalWidth===0))return!1}const e=super.upload(t);return this.preserveBitmap&&this.bitmap&&(this.bitmap.close(),this.bitmap=void 0),e}}class Ps extends mt{constructor(t,e=1,i=1){const A={width:e,height:i,pixels:null};t&&(ArrayBuffer.isView(t)?A.pixels=new Uint8Array(t.buffer):A.pixels=new Uint8Array(t)),super(A)}_updateProperty(t,e,i,A){switch(t){case"width":this.source.width=Math.round(this.width*this.pixelRatio);break;case"height":this.source.height=Math.round(this.height*this.pixelRatio);break;case"pixelRatio":this.source.width=Math.round(this.width*this.pixelRatio),this.source.height=Math.round(this.height*this.pixelRatio);break}super._updateProperty(t,e,i,A)}}var lg=Object.defineProperty,ua=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&lg(t,e,A),A};function cg(r){return{autoLoad:!!(r?.autoLoad??!0),autoPlay:!!(r?.autoPlay??!1),fps:Number(r?.fps??0),crossorigin:r?.crossorigin??null,loop:!!(r?.loop??!1),muted:!!(r?.muted??!1),playsinline:!!(r?.playsinline??!0)}}const Us=class Sc extends mt{static mimeTypes=new Map(Object.entries({ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"}));get isReady(){return this.source.readyState>2}get isPlaying(){return!this.source.paused&&!this.source.ended&&this.isReady}get duration(){return this.source.duration}get seeking(){return this.source.seeking}get currentTime(){return this.source.currentTime}set currentTime(t){this.source.currentTime=t}_spf=0;_autoPlay=!1;_sourceLoad;_nextTime=0;_connected=!1;_requestId;_resolve;_reject;constructor(t,e){const i=cg(e);if(!Mo(t)){typeof t=="string"&&(t=[t]);const A=t[0].src||t[0],s=document.createElement("video");i.autoLoad&&s.setAttribute("preload","auto"),i.playsinline&&(s.setAttribute("webkit-playsinline",""),s.setAttribute("playsinline","")),i.muted&&(s.setAttribute("muted",""),s.muted=!0),i.loop&&s.setAttribute("loop",""),i.autoPlay&&s.setAttribute("autoplay",""),No(s,A,i.crossorigin);for(let n=0;n<t.length;++n){let{src:o,mime:a}=t[n];if(o=o||t[n],o.startsWith("data:"))a=o.slice(5,o.indexOf(";"));else if(!o.startsWith("blob:")){const c=o.split("?").shift().toLowerCase(),h=c.slice(c.lastIndexOf(".")+1);a=a||Sc.mimeTypes.get(h)||`video/${h}`}const l=document.createElement("source");l.src=o,a&&(l.type=a),s.appendChild(l)}t=s}super(t),this.fps=i.fps,this._autoPlay=i.autoPlay,i.autoPlay&&this.load(),this._setupAutoUpdate()}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"fps":this._spf=e?Math.floor(1e3/e):0,this._setupAutoUpdate();break;case"autoUpdate":this._setupAutoUpdate();break}}_onPlayStart=()=>{this.valid||this._onCanPlay(),this._setupAutoUpdate()};_onPlayStop=()=>{this._setupAutoUpdate()};_onCanPlay=()=>{const t=this.source;t.removeEventListener("canplay",this._onCanPlay),t.removeEventListener("canplaythrough",this._onCanPlay);const e=this.valid;this._nextTime=0,this._updateSize(),this.requestUpload(),this._nextTime=0,!e&&this._resolve&&(this._resolve(this),this._sourceLoad=void 0,this._resolve=void 0,this._reject=void 0),this.isPlaying?this._onPlayStart():this._autoPlay&&t.play()};_onError=t=>{this.source.removeEventListener("error",this._onError,!0),this.emit("error",t),this._reject&&(this._reject(t),this._reject=void 0,this._resolve=void 0)};_onSeeked=()=>{this.autoUpdate&&!this.isPlaying&&(this._nextTime=0,this.requestUpload(),this._nextTime=0)};_setupAutoUpdate(){this.autoUpdate&&this.isPlaying?!this.fps&&this.source.requestVideoFrameCallback?(this._connected&&(Yt.off(this.requestUpload),this._connected=!1,this._nextTime=0),this._requestId===void 0&&(this._requestId=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._requestId!==void 0&&(this.source.cancelVideoFrameCallback(this._requestId),this._requestId=void 0),this._connected||(Yt.on(this.requestUpload),this._connected=!0,this._nextTime=0)):(this._requestId!==void 0&&(this.source.cancelVideoFrameCallback(this._requestId),this._requestId=void 0),this._connected&&(Yt.off(this.requestUpload),this._connected=!1,this._nextTime=0))}_videoFrameRequestCallback=()=>{this.requestUpload(),this._requestId=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback)};requestUpload=()=>{const t=Math.floor(Yt.elapsed*this.source.playbackRate);this._nextTime-=t,(!this._spf||this._nextTime<=0)&&(super.requestUpload(),this._nextTime=this._spf||0)};async load(){if(!this._sourceLoad){const t=this.source;(t.readyState===t.HAVE_ENOUGH_DATA||t.readyState===t.HAVE_FUTURE_DATA)&&t.width&&t.height&&(t.complete=!0),t.addEventListener("play",this._onPlayStart),t.addEventListener("pause",this._onPlayStop),t.addEventListener("seeked",this._onSeeked),this.isReady?this._onCanPlay():(t.addEventListener("canplay",this._onCanPlay),t.addEventListener("canplaythrough",this._onCanPlay),t.addEventListener("error",this._onError,!0)),this._sourceLoad=new Promise((e,i)=>{this.valid?(this._sourceLoad=void 0,e(this)):(this._resolve=e,this._reject=i,t.load())})}return this._sourceLoad}free(){this._setupAutoUpdate();const t=this.source;t&&(t.removeEventListener("play",this._onPlayStart),t.removeEventListener("pause",this._onPlayStop),t.removeEventListener("seeked",this._onSeeked),t.removeEventListener("canplay",this._onCanPlay),t.removeEventListener("canplaythrough",this._onCanPlay),t.removeEventListener("error",this._onError,!0),t.pause(),t.src="",t.load())}};ua([_({protected:!0,fallback:!0})],Us.prototype,"autoUpdate"),ua([_({protected:!0,fallback:0})],Us.prototype,"fps");let fa=Us;class Ns extends Ps{}class da extends Array{front=[];back=[];get internal(){return[...this.front,...this,...this.back]}constructor(...t){super(),this.set(t)}set(t){return this.front.length=0,this.length=0,this.back.length=0,t.forEach(e=>{switch(e.internalMode){case"front":this.front.push(e);break;case"default":this.push(e);break;case"back":this.back.push(e);break}}),this}getInternal(t){switch(t){case"front":return this.front;case"default":return this;case"back":return this.back;default:throw new Error(`Unknown internal mode: ${t}`)}}toJSON(){return[...this]}}var hg=Object.defineProperty,gg=Object.getOwnPropertyDescriptor,Ve=(r,t,e,i)=>{for(var A=i>1?void 0:i?gg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&hg(t,e,A),A};const Ia={};function ug(r){let t=Ia[r]??0;return t++,Ia[r]=t,t}g.Node=class extends ei{_readyed=!1;constructor(t,e=[]){super(),this._onTreeEnter=this._onTreeEnter.bind(this),this._onTreeExit=this._onTreeExit.bind(this),this._onParented=this._onParented.bind(this),this._onUnparented=this._onUnparented.bind(this),this._onReady=this._onReady.bind(this),this._onProcess=this._onProcess.bind(this),this.setProperties({name:`${this.is}:${ug(this.is)}`,...t}).append(e),this.on("treeEnter",this._onTreeEnter).on("treeExit",this._onTreeExit).on("parented",this._onParented).on("unparented",this._onUnparented).on("ready",this._onReady).on("process",this._onProcess)}setProperties(t){if(t){const{meta:e,...i}=t;if(e)for(const A in e)this.meta[A]=e[A];super.setProperties(i)}return this}getName(){return this.name}setName(t){return this.name=t,this}_tree;get tree(){return this.getTree()}set tree(t){this.setTree(t)}getTree(){return this._tree}getViewport(){return this._tree?.getCurrentViewport()}getWindow(){return this._tree?.root}isInsideTree(){return!!this._tree}setTree(t){const e=this._tree;if(!t?.equal(e)){e&&this.emit("treeExit",e),this._tree=t,t&&this.emit("treeEnter",t);const i=this._children.internal;for(let A=i.length,s=0;s<A;s++){const n=i[s];!t&&this.emit("childExitingTree",n),n.setTree(t),t&&this.emit("childEnteredTree",n)}t&&(this.emit("treePostEnter",t),this._readyed||(this._readyed=!0,this.emit("ready")))}return this}_parent;get parent(){return this._parent}set parent(t){this.setParent(t)}hasParent(){return!!this._parent}getParent(){return this._parent}setParent(t){if(!this._parent?.equal(t)){const e=this._parent;e&&this.emit("unparented",e),this._parent=t,t&&this.emit("parented",t),this.setTree(t?._tree)}return this}_children=new da;get children(){return this._children}set children(t){t instanceof da?this._children=t:this._children.set(t)}getChild(t=0){return this._children[t]}get siblingIndex(){return this.getIndex()}set siblingIndex(t){this._parent?.moveChild(this,t)}get previousSibling(){return this._parent?.children[this.getIndex()-1]}get nextSibling(){return this._parent?.children[this.getIndex()+1]}get firstSibling(){return this._parent?.children[0]}get lastSibling(){const t=this._parent?.children;return t?t[t.length-1]:void 0}canProcess(){if(!this._tree)return!1;switch(this.processMode){case"inherit":return this._parent?.canProcess()??!0;case"pausable":return!this._tree.processPaused;case"when_paused":return this._tree.processPaused;case"always":return!0;case"disabled":default:return!1}}canRender(){if(!this._tree)return!1;switch(this.renderMode){case"inherit":return this._parent?.canRender()??!0;case"always":return!0;case"disabled":default:return!1}}_update(t){super._update(t)}_updateProperty(t,e,i,A){super._updateProperty(t,e,i,A)}_onTreeEnter(t){this._treeEnter(t),this.emit("treeEntered",t)}_onTreeExit(t){this.emit("treeExiting",t),this._treeExit(t),this.emit("treeExited",t)}_onParented(t){this._parented(t)}_onUnparented(t){this._unparented(t)}_onReady(){this._ready()}_onProcess(t=0){const e=this._tree,i=this.canRender(),A=this.canProcess(),s=[],n=[];this._children.internal.forEach(a=>{switch(a.processSortMode){case"default":n.push(a);break;case"parent_before":s.push(a);break}}),s.forEach(a=>{a.emit("process",t)}),A&&(e?.emit("nodeProcessing",this),this.emit("processing",t),this._process(t));let o;if(i){const a=e.renderStack.push(this);o=e.renderStack.currentCall,e.renderStack.currentCall=a}if(this.mask instanceof g.Node)this.getNode("__$mask")||(this.mask.processMode="disabled",this.appendChild(this.mask,"front"));else{const a=this.getNode("__$mask");a&&this.removeChild(a)}n.forEach(a=>{a.emit("process",t)}),i&&(e.renderStack.currentCall=o),A&&(this.emit("processed",t),e?.emit("nodeProcessed",this))}render(t,e){const i=this.mask;i&&(t.flush(),t.mask.push(this,i)),this._render(t),e?.(),i&&(t.flush(),t.mask.pop(this))}input(t,e){this._children.internal.forEach(i=>i.input(t,e)),this._input(t,e)}getIndex(){return this._parent?.children.getInternal(this.internalMode).indexOf(this)??0}getNode(t){return this._children.internal.find(e=>e.name===t)}removeNode(t){this.getNode(t)?.remove()}addSibling(t){return this.equal(t)||!this.hasParent()||t.hasParent()?this:(t.internalMode=this.internalMode,this._parent.moveChild(t,this.getIndex()+1),this)}prepend(...t){let e;Array.isArray(t[0])?e=t[0]:e=t,e.forEach(i=>{this.moveChild(i,0)})}append(...t){let e;Array.isArray(t[0])?e=t[0]:e=t,e.forEach(i=>{this.appendChild(i)})}before(...t){let e;Array.isArray(t[0])?e=t[0]:e=t,e.forEach(i=>{this._parent?.moveChild(i,this.getIndex())})}after(...t){let e;Array.isArray(t[0])?e=t[0]:e=t,e.forEach(i=>{this._parent?.moveChild(i,this.getIndex()+1)})}insertBefore(t,e){return!e.hasParent()||!this.equal(e.parent)||this.moveChild(t,e.getIndex()),t}appendChild(t,e=t.internalMode){if(this.equal(t)||t.hasParent())return t;switch(e){case"front":this._children.front.push(t);break;case"default":this._children.push(t);break;case"back":this._children.back.push(t);break}return t.internalMode!==e&&(t.internalMode=e),t.setParent(this),this.emit("appendChild",t),t}moveChild(t,e,i=t.internalMode){if(this.equal(t)||t.hasParent()&&!this.equal(t.parent))return this;const A=this._children.getInternal(t.internalMode),s=A.indexOf(t),n=this._children.getInternal(i);return(t.internalMode!==i||e!==s)&&(s>-1&&A.splice(s,1),t.setParent(this),e>-1&&e<n.length?n.splice(e,0,t):n.push(t),s>-1?this.emit("moveChild",t,e,s):this.emit("appendChild",t)),t.internalMode!==i&&(t.internalMode=i),this}removeChild(t){const e=t.getIndex();return this.equal(t.parent)&&e>-1&&(this._children.getInternal(t.internalMode).splice(e,1),t.setParent(void 0),this.emit("removeChild",t,e)),t}removeChildren(){this._children.forEach(t=>this.removeChild(t))}remove(){this._parent?.removeChild(this)}forEachChild(t){return this._children.forEach(t),this}forEachDescendant(t){return this._children.forEach(e=>{t(e),e.forEachDescendant(t)}),this}forEachAncestor(t){const e=this.parent;return e&&(t(e),e.forEachAncestor(t)),this}_ready(){}_treeEnter(t){}_treeExit(t){}_parented(t){}_unparented(t){}_process(t){}_input(t,e){}_render(t){}clone(){return new this.constructor(this.toJSON(),this._children.internal)}toJSON(){return nA({...super.toJSON(),is:this.is,children:this._children.length?[...this._children.map(t=>t.toJSON())]:void 0})}static parse(t){if(Array.isArray(t))return t.map(o=>this.parse(o));const{is:e,props:i,children:A}=t,s=sr.get(e)??g.Node,n=new s(i);return A?.forEach(o=>n.appendChild(this.parse(o))),n}},Ve([_({fallback:Bo()})],g.Node.prototype,"id",2),Ve([_({fallback:Bo()})],g.Node.prototype,"name",2),Ve([_({fallback:"inherit"})],g.Node.prototype,"processMode",2),Ve([_({fallback:"default"})],g.Node.prototype,"processSortMode",2),Ve([_({fallback:"inherit"})],g.Node.prototype,"renderMode",2),Ve([_({fallback:"default"})],g.Node.prototype,"internalMode",2),Ve([_({default:()=>({})})],g.Node.prototype,"meta",2),Ve([_({protected:!0})],g.Node.prototype,"mask",2),g.Node=Ve([nt("Node")],g.Node);var fg=Object.defineProperty,dg=Object.getOwnPropertyDescriptor,fA=(r,t,e,i)=>{for(var A=i>1?void 0:i?dg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&fg(t,e,A),A};g.TimelineNode=class extends g.Node{constructor(t,e=[]){super(),this.setProperties(t).append(e)}computedDuration=0;_currentTime=0;_startTime=0;get timeline(){return this._tree?.timeline}get timelineCurrentTime(){return this.timeline?.currentTime??0}get parentStartTime(){return this._parent?.startTime??0}get currentTime(){return Ke(0,this._currentTime,this.computedDuration)}get startTime(){return this._startTime}set startTime(t){this.delay=t-this.parentStartTime,this._updateCurrentTime(!0)}get endTime(){return this._startTime+this.computedDuration}get currentTimeProgress(){return this.computedDuration?Ke(0,this._currentTime/this.computedDuration,1):0}isInsideTimeRange(){const t=this._currentTime;return this.computedDuration?t>=0&&t<=this.computedDuration:t>=0}_updateCurrentTime(t=!1){if(t||!this.paused){const e=this._parent;this._startTime=this.delay+this.parentStartTime,this.computedDuration=e?.computedDuration?Math.min(this._startTime+this.duration,e.endTime)-this._startTime:this.duration,this._currentTime=this.timelineCurrentTime-this._startTime,this.emit("updateCurrentTime",this._currentTime),this.insideTimeRange=this.isInsideTimeRange()}}_process(t){super._process(t),this._updateCurrentTime()}},fA([_({fallback:0})],g.TimelineNode.prototype,"delay",2),fA([_({fallback:0})],g.TimelineNode.prototype,"duration",2),fA([_({fallback:!1})],g.TimelineNode.prototype,"paused",2),fA([_({protected:!0,fallback:!1})],g.TimelineNode.prototype,"insideTimeRange",2),g.TimelineNode=fA([nt("TimelineNode")],g.TimelineNode);var Ig=Object.defineProperty,pg=Object.getOwnPropertyDescriptor,dA=(r,t,e,i)=>{for(var A=i>1?void 0:i?pg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Ig(t,e,A),A};g.Viewport=class extends g.Node{constructor(t=!1){super(),this.flipY=t,this._projection.flipY(t)}_projection=new Jo;_framebufferIndex=0;_framebuffers=[{texture:new Ns,needsUpload:!1},{texture:new Ns,needsUpload:!1}];get valid(){return!!(this.width&&this.height)}get framebuffer(){return this._framebuffers[this._framebufferIndex]}get texture(){return this.framebuffer.texture}_glFramebufferOptions(t){const{width:e,height:i}=this,{pixelRatio:A}=t;return this._framebuffers.forEach(s=>{const n=s.texture;n.width=e,n.height=i,n.pixelRatio=A,n.upload(t)}),{width:e,height:i,colorTextures:[this.texture._glTexture(t)]}}_glFramebuffer(t){return t.getRelated(this.framebuffer,()=>t.framebuffer.create(this._glFramebufferOptions(t)))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"x":case"y":this.requestUpload(),this._projection.translate(this.x,this.y),this.emit("updateRect");break;case"width":case"height":this.requestUpload(),this._projection.resize(this.width,this.height),this.emit("updateRect");break}}requestUpload(){this._framebuffers.forEach(t=>t.needsUpload=!0)}resize(t,e){this.width=t,this.height=e}upload(t){const e=this.framebuffer;return e.needsUpload&&this.valid?(e.needsUpload=!1,t.framebuffer.update(this._glFramebuffer(t),this._glFramebufferOptions(t)),!0):!1}activate(t){return this.valid?(t.flush(),this._tree?.setCurrentViewport(this),this.upload(t),t.framebuffer.bind(this._glFramebuffer(t)),!0):!1}redraw(t,e){if(this.valid){t.flush();const i=this.framebuffer.texture;return this._framebufferIndex=(this._framebufferIndex+1)%this._framebuffers.length,this.activate(t),t.clear(),i.activate(t,0),e(),!0}return!1}activateWithCopy(t,e){this.resize(e.width,e.height),this.activate(t)&&(t.clear(),e.texture.activate(t,0),gt.draw(t,gA.instance,{sampler:0}))}render(t,e){const i=this._tree?.getCurrentViewport();this.activate(t),t.clear(),super.render(t,e),t.flush(),i?i.activate(t):(t.framebuffer.bind(null),this._tree?.setCurrentViewport(void 0))}getRect(){return new Ms(this.x,this.y,this.width,this.height)}toProjectionArray(t=!1){return this._projection.toArray(t)}},dA([_({fallback:0})],g.Viewport.prototype,"x",2),dA([_({fallback:0})],g.Viewport.prototype,"y",2),dA([_({fallback:0})],g.Viewport.prototype,"width",2),dA([_({fallback:0})],g.Viewport.prototype,"height",2),g.Viewport=dA([nt("Viewport")],g.Viewport);var Eg=Object.defineProperty,Bg=Object.getOwnPropertyDescriptor,IA=(r,t,e,i)=>{for(var A=i>1?void 0:i?Bg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Eg(t,e,A),A};g.Effect=class extends g.TimelineNode{material;get _effectMode(){return this.effectMode??"parent"}viewport1=new g.Viewport;viewport2=new g.Viewport;_renderId=0;_renderViewport;_previousSibling;_nextSibling;constructor(t,e=[]){super(),this._onProcessing=this._onProcessing.bind(this),this._onNodeProcessed=this._onNodeProcessed.bind(this),this.setProperties(t).append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"glsl":{const s=new hA(e);!this.effectMode&&s.has.transition&&(this.effectMode="transition"),this.material=s;break}case"glslSrc":{e?Ne.text.load(e).then(s=>this.glsl=s):this.glsl="";break}}}_treeEnter(t){t.on("processing",this._onProcessing),t.on("nodeProcessed",this._onNodeProcessed),this.viewport1.setTree(t),this.viewport2.setTree(t)}_treeExit(t){t.off("processing",this._onProcessing),t.off("nodeProcessed",this._onNodeProcessed),this.viewport1.setTree(void 0),this.viewport2.setTree(void 0)}_onProcessing(){if(this.canProcess())switch(this._updateCurrentTime(),this._effectMode){case"transition":this._previousSibling=this.previousSibling,this._nextSibling=this.nextSibling;break;default:this._previousSibling=void 0,this._nextSibling=void 0;break}}_onNodeProcessed(t){if(!this.canProcess()||!this.isInsideTimeRange())return;const e=this._tree?.renderStack;if(e)switch(this._effectMode){case"transition":t.equal(this._previousSibling)?(this._previousSibling=void 0,e.push(this)):t.equal(this._nextSibling)&&(this._nextSibling=void 0,e.push(this));break}}_processParent(){const t=this._tree?.renderStack;if(!t)return;const e=t.currentCall?.parentCall;if(!e)return;const i=e.calls;let A,s;i.forEach((n,o)=>{(n.renderable.equal(this._parent)||n.renderable.parent?.equal(this._parent))&&(A=A??o,s=o)}),!(A===void 0||s===void 0)&&(i.splice(s+1,0,t.createCall(this)),i.splice(A,0,t.createCall(this)))}_processChildren(){this._children.length&&(super.emit("process"),this._tree?.renderStack.push(this))}_onProcess(t=0){if(this.canProcess())switch(this._renderId=0,this._effectMode){case"before":super._onProcess(t);break;case"parent":this._processParent();break;case"children":this._processChildren();break}}_renderBefore(t){const e=this._tree?.getCurrentViewport();e&&this.apply(t,e,{redraw:!0})}_renderTransition(t){if(this._renderId%2===0)this._renderViewport=this._tree?.getCurrentViewport(),this._renderViewport&&(this.viewport1.activateWithCopy(t,this._renderViewport),this.viewport2.resize(this._renderViewport.width,this._renderViewport.height)),this.viewport2.activate(t),t.clear();else{const e=this._renderViewport;this._renderViewport=void 0,e&&(e.activate(t),t.clear(),this.viewport1.texture.activate(t,0),this.viewport2.texture.activate(t,1),this.apply(t,e,{from:this.viewport1,to:this.viewport2}),t.texture.unbind(0),t.texture.unbind(1))}}_renderParentOrChildren(t){if(this._renderId%2===0)this._renderViewport=this._tree?.getCurrentViewport(),this._renderViewport&&this.viewport1.resize(this._renderViewport.width,this._renderViewport.height),this.viewport1.activate(t),t.clear();else{const e=this._renderViewport;this._renderViewport=void 0,e&&(this.viewport1.activate(t),this.apply(t,this.viewport1,{redraw:!0,target:this._effectMode==="parent"?this._parent??void 0:void 0,targetArea:this._parseTargetArea()}),e.activate(t),this.viewport1.texture.activate(t,0),gt.draw(t))}}_parseTargetArea(){if(this._effectMode==="parent"&&this._parent&&"getRect"in this._parent){const t=this._parent.getRect();if(t)return[t.left/this.viewport1.width,t.top/this.viewport1.height,t.width/this.viewport1.width,t.height/this.viewport1.height]}}_render(t){switch(this._effectMode){case"before":this._renderBefore(t);break;case"transition":this._renderTransition(t);break;case"parent":case"children":default:this._renderParentOrChildren(t);break}this._renderId++}apply(t,e,i){this.material&&(i?.redraw?e.redraw(t,()=>{gt.draw(t,this.material,{from:0,to:1,progress:this.currentTimeProgress,ratio:e.width/e.height})}):gt.draw(t,this.material,{from:0,to:1,progress:this.currentTimeProgress,ratio:i?.from?i.from.width/i.from.height:0}))}},IA([_({protected:!0})],g.Effect.prototype,"material",2),IA([_()],g.Effect.prototype,"effectMode",2),IA([_()],g.Effect.prototype,"glsl",2),IA([_()],g.Effect.prototype,"glslSrc",2),g.Effect=IA([nt("Effect")],g.Effect);var pa=Object.defineProperty,Cg=Object.getOwnPropertyDescriptor,Qg=(r,t,e)=>t in r?pa(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,ze=(r,t,e,i)=>{for(var A=i>1?void 0:i?Cg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&pa(t,e,A),A},yg=(r,t,e)=>Qg(r,t+"",e);g.ColorAdjustEffect=class extends g.Effect{constructor(t,e=[]){super(),this.setProperties(t).append(e)}apply(t,e){e.redraw(t,()=>{gt.draw(t,g.ColorAdjustEffect.material,{sampler:0,saturation:this.saturation,contrast:this.contrast,brightness:this.brightness,red:this.red,green:this.green,blue:this.blue,alpha:this.alpha,gamma:Math.max(this.gamma??1,1e-4)})})}},yg(g.ColorAdjustEffect,"material",new Bt({vert:`precision mediump float;
|
|
114
|
+
}`,uniforms:{sampler:0,projectionMatrix:new Float32Array([1,0,0,0,1,0,0,0,1]),modelViewMatrix:new Float32Array([1,0,0,0,1,0,0,0,1]),tint:new Float32Array([1,1,1,1])}})}}class gt extends lr{static _instance;static get instance(){return this._instance??=new this}static draw(t,e=gA.instance,i){this.instance.draw(t,e,i)}constructor(){super({vertexAttributes:{position:new ce({buffer:new Ye({data:new Float32Array([-1,-1,1,-1,1,1,-1,1]),dynamic:!1}),size:2,normalized:!1,type:"float"}),uv:new ce({buffer:new Ye({data:new Float32Array([0,0,1,0,1,1,0,1]),dynamic:!1}),size:2,normalized:!1,type:"float"})},indexBuffer:new Pi({data:new Uint16Array([0,1,2,0,2,3]),dynamic:!1})})}}class Ag extends lr{positionBuffer;uvBuffer;constructor(){const t=new Ye({data:new Float32Array,dynamic:!0}),e=new Ye({data:new Float32Array,dynamic:!0});super({vertexAttributes:{position:new ce({buffer:t,size:2,normalized:!1,type:"float"}),uv:new ce({buffer:e,size:2,normalized:!1,type:"float"})},indexBuffer:new Pi({data:new Uint16Array,dynamic:!0})}),this.positionBuffer=t,this.uvBuffer=e}}var rg=Object.defineProperty,Ui=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&rg(t,e,A),A};class mt extends He{static get EMPTY(){return new this({width:1,height:1,pixels:null})}static get WHITE(){return new this({width:1,height:1,pixels:new Uint8Array([255,255,255,255])})}static get BLACK(){return new this({width:1,height:1,pixels:new Uint8Array([0,0,0,255])})}static get RED(){return new this({width:1,height:1,pixels:new Uint8Array([255,0,0,255])})}static get GREEN(){return new this({width:1,height:1,pixels:new Uint8Array([0,255,0,255])})}static get BLUE(){return new this({width:1,height:1,pixels:new Uint8Array([0,0,255,255])})}_isPowerOfTwo=!1;_needsUpload=!1;get valid(){return!!(this.width&&this.height)}get realWidth(){return Math.round(this.width*this.pixelRatio)}get realHeight(){return Math.round(this.height*this.pixelRatio)}constructor(t){super(),this.source=t,this._updateSize()}_glTextureOptions(t,e){let i=this.wrapMode;return t.version===1&&!this._isPowerOfTwo&&(i="clamp_to_edge"),{value:this.source,target:"texture_2d",location:0,filterMode:this.filterMode,wrapMode:i,...e}}_glTexture(t,e){return t.getRelated(this,()=>t.texture.create(this._glTextureOptions(t,e)))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"width":case"height":this._updatePOT();break;case"source":this._updateSize();break;case"filterMode":case"wrapMode":case"pixelRatio":this.requestUpload();break}}_updatePOT(){this._isPowerOfTwo=Bs(this.realWidth)&&Bs(this.realHeight),this.requestUpload()}_updateSize(){const t=this.source;"pixels"in t?(this.width=t.width/this.pixelRatio,this.height=t.height/this.pixelRatio):(this.width=Number(t.naturalWidth||t.videoWidth||t.width||0)/this.pixelRatio,this.height=Number(t.naturalHeight||t.videoHeight||t.height||0)/this.pixelRatio),this.requestUpload()}requestUpload(){this._needsUpload=!0}upload(t,e){return this._needsUpload&&this.valid?(this._needsUpload=!1,t.texture.update(this._glTexture(t,e),this._glTextureOptions(t,e)),!0):!1}activate(t,e=0){return this.valid?(t.texture.bind({target:"texture_2d",value:this._glTexture(t,{location:e}),location:e}),this.upload(t,{location:e}),!0):!1}inactivate(t){t.texture.unbind(this._glTexture(t))}free(){vo&&this.source instanceof ImageBitmap&&this.source.close()}}Ui([_({protected:!0})],mt.prototype,"source"),Ui([_({fallback:0})],mt.prototype,"width"),Ui([_({fallback:0})],mt.prototype,"height"),Ui([_({fallback:"linear"})],mt.prototype,"filterMode"),Ui([_({fallback:"clamp_to_edge"})],mt.prototype,"wrapMode"),Ui([_({fallback:1})],mt.prototype,"pixelRatio");class cr extends He{frames;constructor(t){super();let e;if(Array.isArray(t))e=t;else if(t instanceof mt)e=[{texture:t,duration:0}];else throw new TypeError("Failed new AnimatedTexture");this.frames=e,this.updateDuration()}updateDuration(){return this.duration=this.frames.reduce((t,e)=>e.duration+t,0),this}free(){this.frames.forEach(t=>{t.texture.free()})}}var sg=Object.defineProperty,ng=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&sg(t,e,A),A};class uA extends mt{constructor(t=document.createElement("canvas")){super(t)}_updateProperty(t,e,i,A){switch(t){case"width":this.source.width=Math.max(1,Math.ceil(e*this.pixelRatio));break;case"height":this.source.height=Math.max(1,Math.ceil(e*this.pixelRatio));break}super._updateProperty(t,e,i,A)}}ng([_()],uA.prototype,"pixelRatio");class ga extends mt{constructor(t){const e=new Je(t);super({width:1,height:1,pixels:new Uint8Array([e.r8,e.g8,e.b8,e.a8])})}}class hr extends mt{static test(t){return oA(t)}static linearGradient(t,e,i){e=e||1,i=i||1;const A=document.createElement("canvas");A.width=e,A.height=i;const s=A.getContext("2d");if(!s)throw new Error("Failed to parse linear gradient, get canvas context is null.");let{angle:n=0,stops:o}=t;n-=Math.PI/2;const a=e/2,l=i/2,c=Math.sqrt(e*e+i*i)/2,h=a+c*Math.cos(n+Math.PI),u=l+c*Math.sin(n+Math.PI),d=a+c*Math.cos(n),f=l+c*Math.sin(n),B=s.createLinearGradient(h,u,d,f);o.forEach(R=>{B.addColorStop(R.offset,R.color)}),s.fillStyle=B,s.fillRect(0,0,A.width,A.height);const p=s.getImageData(0,0,A.width,A.height);return{width:p.width,height:p.height,pixels:new Uint8Array(p.data.buffer)}}constructor(t,e,i){super(hr.linearGradient(t,e,i))}}function og(r){return{autoLoad:!!(r?.autoLoad??!0),useBitmap:!!(r?.useBitmap??!0)&&Qs,crossorigin:r?.crossorigin??null}}class ag extends mt{bitmap;useBitmap;preserveBitmap=!1;_loadSource;_loadBitmap;constructor(t,e){const i=og(e);super(t);const A=t.src,s=A.includes(".svg")||A.startsWith("data:image/svg+xml");this.useBitmap=i.useBitmap&&!s,i.autoLoad&&this.load()}async load(){return this._loadSource||(this._loadSource=new Promise(t=>{this._loadSource=void 0;const e=this.source,i=()=>{e.onload=null,e.onerror=null},A=()=>{i(),this.requestUpload(),this.useBitmap?this.genBitmap().finally(()=>t(this)):t(this)},s=n=>{i(),console.warn(`Failed to load ImageTexture, src: ${e.src}`,n),this.emit("error",n),t(this)};e.complete&&e.src?A():(e.onload=A,e.onerror=s)})),this._loadSource}genBitmap(){if(this._loadBitmap)return this._loadBitmap;if(this.bitmap||!Qs)return Promise.resolve(this);const t=this.source,e=!t.crossOrigin||t.crossOrigin==="anonymous";return this._loadBitmap=fetch(t.src,{mode:e?"cors":"no-cors"}).then(i=>i.blob()).then(i=>createImageBitmap(i,0,0,t.width,t.height,{premultiplyAlpha:"premultiply"})).then(i=>(this.bitmap=i,this.requestUpload(),this._loadBitmap=void 0,this)).catch(i=>(console.warn("Failed to genBitmap",i),this)),this._loadBitmap}_glTextureOptions(t){return{...super._glTextureOptions(t),value:this.bitmap??this.source}}upload(t){if(this.useBitmap){if(!this.bitmap)return this.genBitmap(),!1}else{const i=this.source;if(cA&&i instanceof HTMLImageElement&&(!i.complete||i.naturalWidth===0))return!1}const e=super.upload(t);return this.preserveBitmap&&this.bitmap&&(this.bitmap.close(),this.bitmap=void 0),e}}class Ps extends mt{constructor(t,e=1,i=1){const A={width:e,height:i,pixels:null};t&&(ArrayBuffer.isView(t)?A.pixels=new Uint8Array(t.buffer):A.pixels=new Uint8Array(t)),super(A)}_updateProperty(t,e,i,A){switch(t){case"width":this.source.width=Math.round(this.width*this.pixelRatio);break;case"height":this.source.height=Math.round(this.height*this.pixelRatio);break;case"pixelRatio":this.source.width=Math.round(this.width*this.pixelRatio),this.source.height=Math.round(this.height*this.pixelRatio);break}super._updateProperty(t,e,i,A)}}var lg=Object.defineProperty,ua=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&lg(t,e,A),A};function cg(r){return{autoLoad:!!(r?.autoLoad??!0),autoPlay:!!(r?.autoPlay??!1),fps:Number(r?.fps??0),crossorigin:r?.crossorigin??null,loop:!!(r?.loop??!1),muted:!!(r?.muted??!1),playsinline:!!(r?.playsinline??!0)}}const Us=class Sc extends mt{static mimeTypes=new Map(Object.entries({ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"}));get isReady(){return this.source.readyState>2}get isPlaying(){return!this.source.paused&&!this.source.ended&&this.isReady}get duration(){return this.source.duration}get seeking(){return this.source.seeking}get currentTime(){return this.source.currentTime}set currentTime(t){this.source.currentTime=t}_spf=0;_autoPlay=!1;_sourceLoad;_nextTime=0;_connected=!1;_requestId;_resolve;_reject;constructor(t,e){const i=cg(e);if(!Mo(t)){typeof t=="string"&&(t=[t]);const A=t[0].src||t[0],s=document.createElement("video");i.autoLoad&&s.setAttribute("preload","auto"),i.playsinline&&(s.setAttribute("webkit-playsinline",""),s.setAttribute("playsinline","")),i.muted&&(s.setAttribute("muted",""),s.muted=!0),i.loop&&s.setAttribute("loop",""),i.autoPlay&&s.setAttribute("autoplay",""),No(s,A,i.crossorigin);for(let n=0;n<t.length;++n){let{src:o,mime:a}=t[n];if(o=o||t[n],o.startsWith("data:"))a=o.slice(5,o.indexOf(";"));else if(!o.startsWith("blob:")){const c=o.split("?").shift().toLowerCase(),h=c.slice(c.lastIndexOf(".")+1);a=a||Sc.mimeTypes.get(h)||`video/${h}`}const l=document.createElement("source");l.src=o,a&&(l.type=a),s.appendChild(l)}t=s}super(t),this.fps=i.fps,this._autoPlay=i.autoPlay,i.autoPlay&&this.load(),this._setupAutoUpdate()}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"fps":this._spf=e?Math.floor(1e3/e):0,this._setupAutoUpdate();break;case"autoUpdate":this._setupAutoUpdate();break}}_onPlayStart=()=>{this.valid||this._onCanPlay(),this._setupAutoUpdate()};_onPlayStop=()=>{this._setupAutoUpdate()};_onCanPlay=()=>{const t=this.source;t.removeEventListener("canplay",this._onCanPlay),t.removeEventListener("canplaythrough",this._onCanPlay);const e=this.valid;this._nextTime=0,this._updateSize(),this.requestUpload(),this._nextTime=0,!e&&this._resolve&&(this._resolve(this),this._sourceLoad=void 0,this._resolve=void 0,this._reject=void 0),this.isPlaying?this._onPlayStart():this._autoPlay&&t.play()};_onError=t=>{this.source.removeEventListener("error",this._onError,!0),this.emit("error",t),this._reject&&(this._reject(t),this._reject=void 0,this._resolve=void 0)};_onSeeked=()=>{this.autoUpdate&&!this.isPlaying&&(this._nextTime=0,this.requestUpload(),this._nextTime=0)};_setupAutoUpdate(){this.autoUpdate&&this.isPlaying?!this.fps&&this.source.requestVideoFrameCallback?(this._connected&&(Yt.off(this.requestUpload),this._connected=!1,this._nextTime=0),this._requestId===void 0&&(this._requestId=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._requestId!==void 0&&(this.source.cancelVideoFrameCallback(this._requestId),this._requestId=void 0),this._connected||(Yt.on(this.requestUpload),this._connected=!0,this._nextTime=0)):(this._requestId!==void 0&&(this.source.cancelVideoFrameCallback(this._requestId),this._requestId=void 0),this._connected&&(Yt.off(this.requestUpload),this._connected=!1,this._nextTime=0))}_videoFrameRequestCallback=()=>{this.requestUpload(),this._requestId=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback)};requestUpload=()=>{const t=Math.floor(Yt.elapsed*this.source.playbackRate);this._nextTime-=t,(!this._spf||this._nextTime<=0)&&(super.requestUpload(),this._nextTime=this._spf||0)};async load(){if(!this._sourceLoad){const t=this.source;(t.readyState===t.HAVE_ENOUGH_DATA||t.readyState===t.HAVE_FUTURE_DATA)&&t.width&&t.height&&(t.complete=!0),t.addEventListener("play",this._onPlayStart),t.addEventListener("pause",this._onPlayStop),t.addEventListener("seeked",this._onSeeked),this.isReady?this._onCanPlay():(t.addEventListener("canplay",this._onCanPlay),t.addEventListener("canplaythrough",this._onCanPlay),t.addEventListener("error",this._onError,!0)),this._sourceLoad=new Promise((e,i)=>{this.valid?(this._sourceLoad=void 0,e(this)):(this._resolve=e,this._reject=i,t.load())})}return this._sourceLoad}free(){this._setupAutoUpdate();const t=this.source;t&&(t.removeEventListener("play",this._onPlayStart),t.removeEventListener("pause",this._onPlayStop),t.removeEventListener("seeked",this._onSeeked),t.removeEventListener("canplay",this._onCanPlay),t.removeEventListener("canplaythrough",this._onCanPlay),t.removeEventListener("error",this._onError,!0),t.pause(),t.src="",t.load())}};ua([_({protected:!0,fallback:!0})],Us.prototype,"autoUpdate"),ua([_({protected:!0,fallback:0})],Us.prototype,"fps");let fa=Us;class Ns extends Ps{}class da extends Array{front=[];back=[];get internal(){return[...this.front,...this,...this.back]}constructor(...t){super(),this.set(t)}set(t){return this.front.length=0,this.length=0,this.back.length=0,t.forEach(e=>{switch(e.internalMode){case"front":this.front.push(e);break;case"default":this.push(e);break;case"back":this.back.push(e);break}}),this}getInternal(t){switch(t){case"front":return this.front;case"default":return this;case"back":return this.back;default:throw new Error(`Unknown internal mode: ${t}`)}}toJSON(){return[...this]}}var hg=Object.defineProperty,gg=Object.getOwnPropertyDescriptor,ii=(r,t,e,i)=>{for(var A=i>1?void 0:i?gg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&hg(t,e,A),A};const Ia={};function ug(r){let t=Ia[r]??0;return t++,Ia[r]=t,t}g.Node=class extends ti{meta={};_readyed=!1;constructor(t,e=[]){super(),this._onTreeEnter=this._onTreeEnter.bind(this),this._onTreeExit=this._onTreeExit.bind(this),this._onParented=this._onParented.bind(this),this._onUnparented=this._onUnparented.bind(this),this._onReady=this._onReady.bind(this),this._onProcess=this._onProcess.bind(this),this.setProperties({name:`${this.is}:${ug(this.is)}`,...t}).append(e),this.on("treeEnter",this._onTreeEnter).on("treeExit",this._onTreeExit).on("parented",this._onParented).on("unparented",this._onUnparented).on("ready",this._onReady).on("process",this._onProcess)}setProperties(t){if(t){const{meta:e,...i}=t;if(e)for(const A in e)this.meta[A]=e[A];super.setProperties(i)}return this}getName(){return this.name}setName(t){return this.name=t,this}_tree;get tree(){return this.getTree()}set tree(t){this.setTree(t)}getTree(){return this._tree}getViewport(){return this._tree?.getCurrentViewport()}getWindow(){return this._tree?.root}isInsideTree(){return!!this._tree}setTree(t){const e=this._tree;if(!t?.equal(e)){e&&this.emit("treeExit",e),this._tree=t,t&&this.emit("treeEnter",t);const i=this._children.internal;for(let A=i.length,s=0;s<A;s++){const n=i[s];!t&&this.emit("childExitingTree",n),n.setTree(t),t&&this.emit("childEnteredTree",n)}t&&(this.emit("treePostEnter",t),this._readyed||(this._readyed=!0,this.emit("ready")))}return this}_parent;get parent(){return this._parent}set parent(t){this.setParent(t)}hasParent(){return!!this._parent}getParent(){return this._parent}setParent(t){if(!this._parent?.equal(t)){const e=this._parent;e&&this.emit("unparented",e),this._parent=t,t&&this.emit("parented",t),this.setTree(t?._tree)}return this}_children=new da;get children(){return this._children}set children(t){t instanceof da?this._children=t:this._children.set(t)}getChild(t=0){return this._children[t]}get siblingIndex(){return this.getIndex()}set siblingIndex(t){this._parent?.moveChild(this,t)}get previousSibling(){return this._parent?.children[this.getIndex()-1]}get nextSibling(){return this._parent?.children[this.getIndex()+1]}get firstSibling(){return this._parent?.children[0]}get lastSibling(){const t=this._parent?.children;return t?t[t.length-1]:void 0}canProcess(){if(!this._tree)return!1;switch(this.processMode){case"inherit":return this._parent?.canProcess()??!0;case"pausable":return!this._tree.processPaused;case"when_paused":return this._tree.processPaused;case"always":return!0;case"disabled":default:return!1}}canRender(){if(!this._tree)return!1;switch(this.renderMode){case"inherit":return this._parent?.canRender()??!0;case"always":return!0;case"disabled":default:return!1}}_update(t){super._update(t)}_updateProperty(t,e,i,A){super._updateProperty(t,e,i,A)}_onTreeEnter(t){this._treeEnter(t),this.emit("treeEntered",t)}_onTreeExit(t){this.emit("treeExiting",t),this._treeExit(t),this.emit("treeExited",t)}_onParented(t){this._parented(t)}_onUnparented(t){this._unparented(t)}_onReady(){this._ready()}_onProcess(t=0){const e=this._tree,i=this.canRender(),A=this.canProcess(),s=[],n=[];this._children.internal.forEach(a=>{switch(a.processSortMode){case"default":n.push(a);break;case"parent_before":s.push(a);break}}),s.forEach(a=>{a.emit("process",t)}),A&&(e?.emit("nodeProcessing",this),this.emit("processing",t),this._process(t));let o;if(i){const a=e.renderStack.push(this);o=e.renderStack.currentCall,e.renderStack.currentCall=a}if(this.mask instanceof g.Node)this.getNode("__$mask")||(this.mask.processMode="disabled",this.appendChild(this.mask,"front"));else{const a=this.getNode("__$mask");a&&this.removeChild(a)}n.forEach(a=>{a.emit("process",t)}),i&&(e.renderStack.currentCall=o),A&&(this.emit("processed",t),e?.emit("nodeProcessed",this))}render(t,e){const i=this.mask;i&&(t.flush(),t.mask.push(this,i)),this._render(t),e?.(),i&&(t.flush(),t.mask.pop(this))}input(t,e){this._children.internal.forEach(i=>i.input(t,e)),this._input(t,e)}getIndex(){return this._parent?.children.getInternal(this.internalMode).indexOf(this)??0}getNode(t){return this._children.internal.find(e=>e.name===t)}removeNode(t){this.getNode(t)?.remove()}addSibling(t){return this.equal(t)||!this.hasParent()||t.hasParent()?this:(t.internalMode=this.internalMode,this._parent.moveChild(t,this.getIndex()+1),this)}prepend(...t){let e;Array.isArray(t[0])?e=t[0]:e=t,e.forEach(i=>{this.moveChild(i,0)})}append(...t){let e;Array.isArray(t[0])?e=t[0]:e=t,e.forEach(i=>{this.appendChild(i)})}before(...t){let e;Array.isArray(t[0])?e=t[0]:e=t,e.forEach(i=>{this._parent?.moveChild(i,this.getIndex())})}after(...t){let e;Array.isArray(t[0])?e=t[0]:e=t,e.forEach(i=>{this._parent?.moveChild(i,this.getIndex()+1)})}insertBefore(t,e){return!e.hasParent()||!this.equal(e.parent)||this.moveChild(t,e.getIndex()),t}appendChild(t,e=t.internalMode){if(this.equal(t)||t.hasParent())return t;switch(e){case"front":this._children.front.push(t);break;case"default":this._children.push(t);break;case"back":this._children.back.push(t);break}return t.internalMode!==e&&(t.internalMode=e),t.setParent(this),this.emit("appendChild",t),t}moveChild(t,e,i=t.internalMode){if(this.equal(t)||t.hasParent()&&!this.equal(t.parent))return this;const A=this._children.getInternal(t.internalMode),s=A.indexOf(t),n=this._children.getInternal(i);return(t.internalMode!==i||e!==s)&&(s>-1&&A.splice(s,1),t.setParent(this),e>-1&&e<n.length?n.splice(e,0,t):n.push(t),s>-1?this.emit("moveChild",t,e,s):this.emit("appendChild",t)),t.internalMode!==i&&(t.internalMode=i),this}removeChild(t){const e=t.getIndex();return this.equal(t.parent)&&e>-1&&(this._children.getInternal(t.internalMode).splice(e,1),t.setParent(void 0),this.emit("removeChild",t,e)),t}removeChildren(){this._children.forEach(t=>this.removeChild(t))}remove(){this._parent?.removeChild(this)}forEachChild(t){return this._children.forEach(t),this}forEachDescendant(t){return this._children.forEach(e=>{t(e),e.forEachDescendant(t)}),this}forEachAncestor(t){const e=this.parent;return e&&(t(e),e.forEachAncestor(t)),this}_ready(){}_treeEnter(t){}_treeExit(t){}_parented(t){}_unparented(t){}_process(t){}_input(t,e){}_render(t){}clone(){return new this.constructor(this.toJSON(),this._children.internal)}toJSON(){return nA({...super.toJSON(),is:this.is,children:this._children.length?[...this._children.map(t=>t.toJSON())]:void 0,meta:Object.keys(this.meta).length?{...this.meta}:void 0})}static parse(t){if(Array.isArray(t))return t.map(o=>this.parse(o));const{is:e,props:i,children:A}=t,s=sr.get(e)??g.Node,n=new s(i);return A?.forEach(o=>n.appendChild(this.parse(o))),n}},ii([_({fallback:Bo()})],g.Node.prototype,"id",2),ii([_({fallback:Bo()})],g.Node.prototype,"name",2),ii([_({fallback:"inherit"})],g.Node.prototype,"processMode",2),ii([_({fallback:"default"})],g.Node.prototype,"processSortMode",2),ii([_({fallback:"inherit"})],g.Node.prototype,"renderMode",2),ii([_({fallback:"default"})],g.Node.prototype,"internalMode",2),ii([_({protected:!0})],g.Node.prototype,"mask",2),g.Node=ii([nt("Node")],g.Node);var fg=Object.defineProperty,dg=Object.getOwnPropertyDescriptor,fA=(r,t,e,i)=>{for(var A=i>1?void 0:i?dg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&fg(t,e,A),A};g.TimelineNode=class extends g.Node{constructor(t,e=[]){super(),this.setProperties(t).append(e)}computedDuration=0;_currentTime=0;_startTime=0;get timeline(){return this._tree?.timeline}get timelineCurrentTime(){return this.timeline?.currentTime??0}get parentStartTime(){return this._parent?.startTime??0}get currentTime(){return Ke(0,this._currentTime,this.computedDuration)}get startTime(){return this._startTime}set startTime(t){this.delay=t-this.parentStartTime,this._updateCurrentTime(!0)}get endTime(){return this._startTime+this.computedDuration}get currentTimeProgress(){return this.computedDuration?Ke(0,this._currentTime/this.computedDuration,1):0}isInsideTimeRange(){const t=this._currentTime;return this.computedDuration?t>=0&&t<=this.computedDuration:t>=0}_updateCurrentTime(t=!1){if(t||!this.paused){const e=this._parent;this._startTime=this.delay+this.parentStartTime,this.computedDuration=e?.computedDuration?Math.min(this._startTime+this.duration,e.endTime)-this._startTime:this.duration,this._currentTime=this.timelineCurrentTime-this._startTime,this.emit("updateCurrentTime",this._currentTime),this.insideTimeRange=this.isInsideTimeRange()}}_process(t){super._process(t),this._updateCurrentTime()}},fA([_({fallback:0})],g.TimelineNode.prototype,"delay",2),fA([_({fallback:0})],g.TimelineNode.prototype,"duration",2),fA([_({fallback:!1})],g.TimelineNode.prototype,"paused",2),fA([_({protected:!0,fallback:!1})],g.TimelineNode.prototype,"insideTimeRange",2),g.TimelineNode=fA([nt("TimelineNode")],g.TimelineNode);var Ig=Object.defineProperty,pg=Object.getOwnPropertyDescriptor,dA=(r,t,e,i)=>{for(var A=i>1?void 0:i?pg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Ig(t,e,A),A};g.Viewport=class extends g.Node{constructor(t=!1){super(),this.flipY=t,this._projection.flipY(t)}_projection=new Jo;_framebufferIndex=0;_framebuffers=[{texture:new Ns,needsUpload:!1},{texture:new Ns,needsUpload:!1}];get valid(){return!!(this.width&&this.height)}get framebuffer(){return this._framebuffers[this._framebufferIndex]}get texture(){return this.framebuffer.texture}_glFramebufferOptions(t){const{width:e,height:i}=this,{pixelRatio:A}=t;return this._framebuffers.forEach(s=>{const n=s.texture;n.width=e,n.height=i,n.pixelRatio=A,n.upload(t)}),{width:e,height:i,colorTextures:[this.texture._glTexture(t)]}}_glFramebuffer(t){return t.getRelated(this.framebuffer,()=>t.framebuffer.create(this._glFramebufferOptions(t)))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"x":case"y":this.requestUpload(),this._projection.translate(this.x,this.y),this.emit("updateRect");break;case"width":case"height":this.requestUpload(),this._projection.resize(this.width,this.height),this.emit("updateRect");break}}requestUpload(){this._framebuffers.forEach(t=>t.needsUpload=!0)}resize(t,e){this.width=t,this.height=e}upload(t){const e=this.framebuffer;return e.needsUpload&&this.valid?(e.needsUpload=!1,t.framebuffer.update(this._glFramebuffer(t),this._glFramebufferOptions(t)),!0):!1}activate(t){return this.valid?(t.flush(),this._tree?.setCurrentViewport(this),this.upload(t),t.framebuffer.bind(this._glFramebuffer(t)),!0):!1}redraw(t,e){if(this.valid){t.flush();const i=this.framebuffer.texture;return this._framebufferIndex=(this._framebufferIndex+1)%this._framebuffers.length,this.activate(t),t.clear(),i.activate(t,0),e(),!0}return!1}activateWithCopy(t,e){this.resize(e.width,e.height),this.activate(t)&&(t.clear(),e.texture.activate(t,0),gt.draw(t,gA.instance,{sampler:0}))}render(t,e){const i=this._tree?.getCurrentViewport();this.activate(t),t.clear(),super.render(t,e),t.flush(),i?i.activate(t):(t.framebuffer.bind(null),this._tree?.setCurrentViewport(void 0))}getRect(){return new Ms(this.x,this.y,this.width,this.height)}toProjectionArray(t=!1){return this._projection.toArray(t)}},dA([_({fallback:0})],g.Viewport.prototype,"x",2),dA([_({fallback:0})],g.Viewport.prototype,"y",2),dA([_({fallback:0})],g.Viewport.prototype,"width",2),dA([_({fallback:0})],g.Viewport.prototype,"height",2),g.Viewport=dA([nt("Viewport")],g.Viewport);var Eg=Object.defineProperty,Bg=Object.getOwnPropertyDescriptor,IA=(r,t,e,i)=>{for(var A=i>1?void 0:i?Bg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Eg(t,e,A),A};g.Effect=class extends g.TimelineNode{material;get _effectMode(){return this.effectMode??"parent"}viewport1=new g.Viewport;viewport2=new g.Viewport;_renderId=0;_renderViewport;_previousSibling;_nextSibling;constructor(t,e=[]){super(),this._onProcessing=this._onProcessing.bind(this),this._onNodeProcessed=this._onNodeProcessed.bind(this),this.setProperties(t).append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"glsl":{const s=new hA(e);!this.effectMode&&s.has.transition&&(this.effectMode="transition"),this.material=s;break}case"glslSrc":{e?Ne.text.load(e).then(s=>this.glsl=s):this.glsl="";break}}}_treeEnter(t){t.on("processing",this._onProcessing),t.on("nodeProcessed",this._onNodeProcessed),this.viewport1.setTree(t),this.viewport2.setTree(t)}_treeExit(t){t.off("processing",this._onProcessing),t.off("nodeProcessed",this._onNodeProcessed),this.viewport1.setTree(void 0),this.viewport2.setTree(void 0)}_onProcessing(){if(this.canProcess())switch(this._updateCurrentTime(),this._effectMode){case"transition":this._previousSibling=this.previousSibling,this._nextSibling=this.nextSibling;break;default:this._previousSibling=void 0,this._nextSibling=void 0;break}}_onNodeProcessed(t){if(!this.canProcess()||!this.isInsideTimeRange())return;const e=this._tree?.renderStack;if(e)switch(this._effectMode){case"transition":t.equal(this._previousSibling)?(this._previousSibling=void 0,e.push(this)):t.equal(this._nextSibling)&&(this._nextSibling=void 0,e.push(this));break}}_processParent(){const t=this._tree?.renderStack;if(!t)return;const e=t.currentCall?.parentCall;if(!e)return;const i=e.calls;let A,s;i.forEach((n,o)=>{(n.renderable.equal(this._parent)||n.renderable.parent?.equal(this._parent))&&(A=A??o,s=o)}),!(A===void 0||s===void 0)&&(i.splice(s+1,0,t.createCall(this)),i.splice(A,0,t.createCall(this)))}_processChildren(){this._children.length&&(super.emit("process"),this._tree?.renderStack.push(this))}_onProcess(t=0){if(this.canProcess())switch(this._renderId=0,this._effectMode){case"before":super._onProcess(t);break;case"parent":this._processParent();break;case"children":this._processChildren();break}}_renderBefore(t){const e=this._tree?.getCurrentViewport();e&&this.apply(t,e,{redraw:!0})}_renderTransition(t){if(this._renderId%2===0)this._renderViewport=this._tree?.getCurrentViewport(),this._renderViewport&&(this.viewport1.activateWithCopy(t,this._renderViewport),this.viewport2.resize(this._renderViewport.width,this._renderViewport.height)),this.viewport2.activate(t),t.clear();else{const e=this._renderViewport;this._renderViewport=void 0,e&&(e.activate(t),t.clear(),this.viewport1.texture.activate(t,0),this.viewport2.texture.activate(t,1),this.apply(t,e,{from:this.viewport1,to:this.viewport2}),t.texture.unbind(0),t.texture.unbind(1))}}_renderParentOrChildren(t){if(this._renderId%2===0)this._renderViewport=this._tree?.getCurrentViewport(),this._renderViewport&&this.viewport1.resize(this._renderViewport.width,this._renderViewport.height),this.viewport1.activate(t),t.clear();else{const e=this._renderViewport;this._renderViewport=void 0,e&&(this.viewport1.activate(t),this.apply(t,this.viewport1,{redraw:!0,target:this._effectMode==="parent"?this._parent??void 0:void 0,targetArea:this._parseTargetArea()}),e.activate(t),this.viewport1.texture.activate(t,0),gt.draw(t))}}_parseTargetArea(){if(this._effectMode==="parent"&&this._parent&&"getRect"in this._parent){const t=this._parent.getRect();if(t)return[t.left/this.viewport1.width,t.top/this.viewport1.height,t.width/this.viewport1.width,t.height/this.viewport1.height]}}_render(t){switch(this._effectMode){case"before":this._renderBefore(t);break;case"transition":this._renderTransition(t);break;case"parent":case"children":default:this._renderParentOrChildren(t);break}this._renderId++}apply(t,e,i){this.material&&(i?.redraw?e.redraw(t,()=>{gt.draw(t,this.material,{from:0,to:1,progress:this.currentTimeProgress,ratio:e.width/e.height})}):gt.draw(t,this.material,{from:0,to:1,progress:this.currentTimeProgress,ratio:i?.from?i.from.width/i.from.height:0}))}},IA([_({protected:!0})],g.Effect.prototype,"material",2),IA([_()],g.Effect.prototype,"effectMode",2),IA([_()],g.Effect.prototype,"glsl",2),IA([_()],g.Effect.prototype,"glslSrc",2),g.Effect=IA([nt("Effect")],g.Effect);var pa=Object.defineProperty,Cg=Object.getOwnPropertyDescriptor,Qg=(r,t,e)=>t in r?pa(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Ve=(r,t,e,i)=>{for(var A=i>1?void 0:i?Cg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&pa(t,e,A),A},yg=(r,t,e)=>Qg(r,t+"",e);g.ColorAdjustEffect=class extends g.Effect{constructor(t,e=[]){super(),this.setProperties(t).append(e)}apply(t,e){e.redraw(t,()=>{gt.draw(t,g.ColorAdjustEffect.material,{sampler:0,saturation:this.saturation,contrast:this.contrast,brightness:this.brightness,red:this.red,green:this.green,blue:this.blue,alpha:this.alpha,gamma:Math.max(this.gamma??1,1e-4)})})}},yg(g.ColorAdjustEffect,"material",new Bt({vert:`precision mediump float;
|
|
115
115
|
attribute vec2 position;
|
|
116
116
|
attribute vec2 uv;
|
|
117
117
|
varying vec2 vUv;
|
|
@@ -142,7 +142,7 @@ void main(void) {
|
|
|
142
142
|
c.rgb *= c.a;
|
|
143
143
|
}
|
|
144
144
|
gl_FragColor = c * alpha;
|
|
145
|
-
}`})),
|
|
145
|
+
}`})),Ve([_()],g.ColorAdjustEffect.prototype,"saturation",2),Ve([_()],g.ColorAdjustEffect.prototype,"contrast",2),Ve([_()],g.ColorAdjustEffect.prototype,"brightness",2),Ve([_()],g.ColorAdjustEffect.prototype,"red",2),Ve([_()],g.ColorAdjustEffect.prototype,"green",2),Ve([_()],g.ColorAdjustEffect.prototype,"blue",2),Ve([_()],g.ColorAdjustEffect.prototype,"alpha",2),Ve([_()],g.ColorAdjustEffect.prototype,"gamma",2),g.ColorAdjustEffect=Ve([nt("ColorAdjustEffect")],g.ColorAdjustEffect);var Ea=Object.defineProperty,mg=Object.getOwnPropertyDescriptor,wg=(r,t,e)=>t in r?Ea(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Ba=(r,t,e,i)=>{for(var A=i>1?void 0:i?mg(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Ea(t,e,A),A},vg=(r,t,e)=>wg(r,t+"",e);g.ColorFilterEffect=class extends g.Effect{_colorMatrix=new xs;constructor(t,e=[]){super(),this.setProperties(t).append(e)}apply(t,e){if(!this.filter)return;const i=lA(this.filter),A=this._colorMatrix.identity();i.forEach(({name:s,args:n})=>{const o=n.map(a=>a.normalizedIntValue);switch(s){case"hue-rotate":case"hueRotate":A.hueRotate(o[0]*ae);break;case"saturate":A.saturate(o[0]);break;case"brightness":A.brightness(o[0]);break;case"contrast":A.contrast(o[0]);break;case"invert":A.invert(o[0]);break;case"sepia":A.sepia(o[0]);break;case"opacity":A.opacity(o[0]);break;case"grayscale":A.grayscale(o[0]);break}}),e.redraw(t,()=>{gt.draw(t,g.ColorFilterEffect.material,{sampler:0,m:A.toArray()})})}},vg(g.ColorFilterEffect,"material",new Bt({vert:`precision mediump float;
|
|
146
146
|
attribute vec2 position;
|
|
147
147
|
attribute vec2 uv;
|
|
148
148
|
varying vec2 vUv;
|
|
@@ -274,7 +274,7 @@ void main(void) {
|
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
}`})),Ls([_()],g.ColorReplaceEffect.prototype,"colors",2),Ls([_()],g.ColorReplaceEffect.prototype,"epsilon",2),g.ColorReplaceEffect=Ls([nt("ColorReplaceEffect")],g.ColorReplaceEffect);function Ug(r,t,e=2){const i=t&&t.length,A=i?t[0]*e:r.length;let s=ma(r,0,A,e,!0);const n=[];if(!s||s.next===s.prev)return n;let o,a,l;if(i&&(s=Gg(r,t,s,e)),r.length>80*e){o=1/0,a=1/0;let c=-1/0,h=-1/0;for(let u=e;u<A;u+=e){const d=r[u],f=r[u+1];d<o&&(o=d),f<a&&(a=f),d>c&&(c=d),f>h&&(h=f)}l=Math.max(c-o,h-a),l=l!==0?32767/l:0}return BA(s,n,e,o,a,l,0),n}function ma(r,t,e,i,A){let s;if(A===jg(r,t,e,i)>0)for(let n=t;n<e;n+=i)s=ba(n/i|0,r[n],r[n+1],s);else for(let n=e-i;n>=t;n-=i)s=ba(n/i|0,r[n],r[n+1],s);return s&&Ni(s,s.next)&&(yA(s),s=s.next),s}function Qi(r,t){if(!r)return r;t||(t=r);let e=r,i;do if(i=!1,!e.steiner&&(Ni(e,e.next)||Ct(e.prev,e,e.next)===0)){if(yA(e),e=t=e.prev,e===e.next)break;i=!0}else e=e.next;while(i||e!==t);return t}function BA(r,t,e,i,A,s,n){if(!r)return;!n&&s&&Yg(r,i,A,s);let o=r;for(;r.prev!==r.next;){const a=r.prev,l=r.next;if(s?Fg(r,i,A,s):Ng(r)){t.push(a.i,r.i,l.i),yA(r),r=l.next,o=l.next;continue}if(r=l,r===o){n?n===1?(r=Tg(Qi(r),t),BA(r,t,e,i,A,s,2)):n===2&&Lg(r,t,e,i,A,s):BA(Qi(r),t,e,i,A,s,1);break}}}function Ng(r){const t=r.prev,e=r,i=r.next;if(Ct(t,e,i)>=0)return!1;const A=t.x,s=e.x,n=i.x,o=t.y,a=e.y,l=i.y,c=Math.min(A,s,n),h=Math.min(o,a,l),u=Math.max(A,s,n),d=Math.max(o,a,l);let f=i.next;for(;f!==t;){if(f.x>=c&&f.x<=u&&f.y>=h&&f.y<=d&&CA(A,o,s,a,n,l,f.x,f.y)&&Ct(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Fg(r,t,e,i){const A=r.prev,s=r,n=r.next;if(Ct(A,s,n)>=0)return!1;const o=A.x,a=s.x,l=n.x,c=A.y,h=s.y,u=n.y,d=Math.min(o,a,l),f=Math.min(c,h,u),B=Math.max(o,a,l),p=Math.max(c,h,u),R=Gs(d,f,t,e,i),P=Gs(B,p,t,e,i);let y=r.prevZ,S=r.nextZ;for(;y&&y.z>=R&&S&&S.z<=P;){if(y.x>=d&&y.x<=B&&y.y>=f&&y.y<=p&&y!==A&&y!==n&&CA(o,c,a,h,l,u,y.x,y.y)&&Ct(y.prev,y,y.next)>=0||(y=y.prevZ,S.x>=d&&S.x<=B&&S.y>=f&&S.y<=p&&S!==A&&S!==n&&CA(o,c,a,h,l,u,S.x,S.y)&&Ct(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;y&&y.z>=R;){if(y.x>=d&&y.x<=B&&y.y>=f&&y.y<=p&&y!==A&&y!==n&&CA(o,c,a,h,l,u,y.x,y.y)&&Ct(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;S&&S.z<=P;){if(S.x>=d&&S.x<=B&&S.y>=f&&S.y<=p&&S!==A&&S!==n&&CA(o,c,a,h,l,u,S.x,S.y)&&Ct(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function Tg(r,t){let e=r;do{const i=e.prev,A=e.next.next;!Ni(i,A)&&va(i,e,e.next,A)&&QA(i,A)&&QA(A,i)&&(t.push(i.i,e.i,A.i),yA(e),yA(e.next),e=r=A),e=e.next}while(e!==r);return Qi(e)}function Lg(r,t,e,i,A,s){let n=r;do{let o=n.next.next;for(;o!==n.prev;){if(n.i!==o.i&&Wg(n,o)){let a=_a(n,o);n=Qi(n,n.next),a=Qi(a,a.next),BA(n,t,e,i,A,s,0),BA(a,t,e,i,A,s,0);return}o=o.next}n=n.next}while(n!==r)}function Gg(r,t,e,i){const A=[];for(let s=0,n=t.length;s<n;s++){const o=t[s]*i,a=s<n-1?t[s+1]*i:r.length,l=ma(r,o,a,i,!1);l===l.next&&(l.steiner=!0),A.push(zg(l))}A.sort(Og);for(let s=0;s<A.length;s++)e=Hg(A[s],e);return e}function Og(r,t){let e=r.x-t.x;if(e===0&&(e=r.y-t.y,e===0)){const i=(r.next.y-r.y)/(r.next.x-r.x),A=(t.next.y-t.y)/(t.next.x-t.x);e=i-A}return e}function Hg(r,t){const e=Jg(r,t);if(!e)return t;const i=_a(e,r);return Qi(i,i.next),Qi(e,e.next)}function Jg(r,t){let e=t;const i=r.x,A=r.y;let s=-1/0,n;if(Ni(r,e))return e;do{if(Ni(r,e.next))return e.next;if(A<=e.y&&A>=e.next.y&&e.next.y!==e.y){const h=e.x+(A-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(h<=i&&h>s&&(s=h,n=e.x<e.next.x?e:e.next,h===i))return n}e=e.next}while(e!==t);if(!n)return null;const o=n,a=n.x,l=n.y;let c=1/0;e=n;do{if(i>=e.x&&e.x>=a&&i!==e.x&&wa(A<l?i:s,A,a,l,A<l?s:i,A,e.x,e.y)){const h=Math.abs(A-e.y)/(i-e.x);QA(e,r)&&(h<c||h===c&&(e.x>n.x||e.x===n.x&&Kg(n,e)))&&(n=e,c=h)}e=e.next}while(e!==o);return n}function Kg(r,t){return Ct(r.prev,r,t.prev)<0&&Ct(t.next,r,r.next)<0}function Yg(r,t,e,i){let A=r;do A.z===0&&(A.z=Gs(A.x,A.y,t,e,i)),A.prevZ=A.prev,A.nextZ=A.next,A=A.next;while(A!==r);A.prevZ.nextZ=null,A.prevZ=null,Vg(A)}function Vg(r){let t,e=1;do{let i=r,A;r=null;let s=null;for(t=0;i;){t++;let n=i,o=0;for(let l=0;l<e&&(o++,n=n.nextZ,!!n);l++);let a=e;for(;o>0||a>0&&n;)o!==0&&(a===0||!n||i.z<=n.z)?(A=i,i=i.nextZ,o--):(A=n,n=n.nextZ,a--),s?s.nextZ=A:r=A,A.prevZ=s,s=A;i=n}s.nextZ=null,e*=2}while(t>1);return r}function Gs(r,t,e,i,A){return r=(r-e)*A|0,t=(t-i)*A|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,r|t<<1}function zg(r){let t=r,e=r;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==r);return e}function wa(r,t,e,i,A,s,n,o){return(A-n)*(t-o)>=(r-n)*(s-o)&&(r-n)*(i-o)>=(e-n)*(t-o)&&(e-n)*(s-o)>=(A-n)*(i-o)}function CA(r,t,e,i,A,s,n,o){return!(r===n&&t===o)&&wa(r,t,e,i,A,s,n,o)}function Wg(r,t){return r.next.i!==t.i&&r.prev.i!==t.i&&!qg(r,t)&&(QA(r,t)&&QA(t,r)&&Xg(r,t)&&(Ct(r.prev,r,t.prev)||Ct(r,t.prev,t))||Ni(r,t)&&Ct(r.prev,r,r.next)>0&&Ct(t.prev,t,t.next)>0)}function Ct(r,t,e){return(t.y-r.y)*(e.x-t.x)-(t.x-r.x)*(e.y-t.y)}function Ni(r,t){return r.x===t.x&&r.y===t.y}function va(r,t,e,i){const A=ur(Ct(r,t,e)),s=ur(Ct(r,t,i)),n=ur(Ct(e,i,r)),o=ur(Ct(e,i,t));return!!(A!==s&&n!==o||A===0&&gr(r,e,t)||s===0&&gr(r,i,t)||n===0&&gr(e,r,i)||o===0&&gr(e,t,i))}function gr(r,t,e){return t.x<=Math.max(r.x,e.x)&&t.x>=Math.min(r.x,e.x)&&t.y<=Math.max(r.y,e.y)&&t.y>=Math.min(r.y,e.y)}function ur(r){return r>0?1:r<0?-1:0}function qg(r,t){let e=r;do{if(e.i!==r.i&&e.next.i!==r.i&&e.i!==t.i&&e.next.i!==t.i&&va(e,e.next,r,t))return!0;e=e.next}while(e!==r);return!1}function QA(r,t){return Ct(r.prev,r,r.next)<0?Ct(r,t,r.next)>=0&&Ct(r,r.prev,t)>=0:Ct(r,t,r.prev)<0||Ct(r,r.next,t)<0}function Xg(r,t){let e=r,i=!1;const A=(r.x+t.x)/2,s=(r.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&A<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(i=!i),e=e.next;while(e!==r);return i}function _a(r,t){const e=Os(r.i,r.x,r.y),i=Os(t.i,t.x,t.y),A=r.next,s=t.prev;return r.next=t,t.prev=r,e.next=A,A.prev=e,i.next=e,e.prev=i,s.next=i,i.prev=s,i}function ba(r,t,e,i){const A=Os(r,t,e);return i?(A.next=i.next,A.prev=i,i.next.prev=A,i.next=A):(A.prev=A,A.next=A),A}function yA(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function Os(r,t,e){return{i:r,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function jg(r,t,e,i){let A=0;for(let s=t,n=e-i;s<e;s+=i)A+=(r[n]-r[s])*(r[s+1]+r[n+1]),n=s;return A}function Zg(r,t,e,i={}){const{radius:A=1}=i;r.moveTo(t,e),r.arc(t,e,A,0,Math.PI*2)}const $g={arcs:"bevel",bevel:"bevel",miter:"miter","miter-clip":"miter",round:"round"};function Hs(r,t){const{fill:e="#000",stroke:i="none",strokeWidth:A=i==="none"?0:1,strokeLinecap:s="round",strokeLinejoin:n="miter",strokeMiterlimit:o=0,strokeDasharray:a=[],strokeDashoffset:l=0,shadowOffsetX:c=0,shadowOffsetY:h=0,shadowBlur:u=0,shadowColor:d="rgba(0, 0, 0, 0)"}=t;r.fillStyle=e,r.strokeStyle=i,r.lineWidth=A,r.lineCap=s,r.lineJoin=$g[n],r.miterLimit=o,r.setLineDash(a),r.lineDashOffset=l,r.shadowOffsetX=c,r.shadowOffsetY=h,r.shadowBlur=u,r.shadowColor=d}class J{constructor(t=0,e=0){this.x=t,this.y=e}static get MAX(){return new J(1/0,1/0)}static get MIN(){return new J(-1/0,-1/0)}get array(){return[this.x,this.y]}finite(){return this.x=Number.isFinite(this.x)?this.x:0,this.y=Number.isFinite(this.y)?this.y:0,this}set(t,e){return this.x=t,this.y=e,this}add(t){return this.x+=t.x,this.y+=t.y,this}sub(t){return this.x-=t.x,this.y-=t.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}divide(t){return this.x/=t.x,this.y/=t.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}rotate(t,e={x:0,y:0}){const i=-t/180*Math.PI,A=this.x-e.x,s=-(this.y-e.y),n=Math.sin(i),o=Math.cos(i);return this.set(e.x+(A*o-s*n),e.y-(A*n+s*o)),this}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,i=this.y-t.y;return e*e+i*i}lengthSquared(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.lengthSquared())}scale(t,e=t,i={x:0,y:0}){const A=t<0?i.x-this.x+i.x:this.x,s=e<0?i.y-this.y+i.y:this.y;return this.x=A*Math.abs(t),this.y=s*Math.abs(e),this}skew(t,e=0,i={x:0,y:0}){const A=this.x-i.x,s=this.y-i.y;return this.x=i.x+(A+Math.tan(t)*s),this.y=i.y+(s+Math.tan(e)*A),this}min(...t){return this.x=Math.min(this.x,...t.map(e=>e.x)),this.y=Math.min(this.y,...t.map(e=>e.y)),this}max(...t){return this.x=Math.max(this.x,...t.map(e=>e.x)),this.y=Math.max(this.y,...t.map(e=>e.y)),this}normalize(){return this.scale(1/(this.length()||1))}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this}divideVectors(t,e){return this.x=t.x/e.x,this.y=t.y/e.y,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this}equals(t){return this.x===t.x&&this.y===t.y}applyMatrix3(t){const e=this.x,i=this.y,A=t.elements;return this.x=A[0]*e+A[3]*i+A[6],this.y=A[1]*e+A[4]*i+A[7],this}copy(t){return this.x=t.x,this.y=t.y,this}clone(){return new J(this.x,this.y)}}class lt{constructor(t=0,e=0,i=0,A=0){this.left=t,this.top=e,this.width=i,this.height=A}get x(){return this.left}set x(t){this.left=t}get y(){return this.top}set y(t){this.top=t}get right(){return this.left+this.width}get bottom(){return this.top+this.height}get center(){return new J((this.left+this.right)/2,(this.top+this.bottom)/2)}get array(){return[this.left,this.top,this.width,this.height]}static from(...t){if(t.length===0)return new lt;if(t.length===1)return t[0].clone();const e=t[0],i=t.slice(1).reduce((A,s)=>(A.left=Math.min(A.left,s.left),A.top=Math.min(A.top,s.top),A.right=Math.max(A.right,s.right),A.bottom=Math.max(A.bottom,s.bottom),A),{left:e?.left??0,top:e?.top??0,right:e?.right??0,bottom:e?.bottom??0});return new lt(i.left,i.top,i.right-i.left,i.bottom-i.top)}translate(t,e){return this.left+=t,this.top+=e,this}copy(t){return this.left=t.left,this.top=t.top,this.width=t.width,this.height=t.height,this}clone(){return new lt(this.left,this.top,this.width,this.height)}}class Lt{elements=[];constructor(t=1,e=0,i=0,A=0,s=1,n=0,o=0,a=0,l=1){this.set(t,e,i,A,s,n,o,a,l)}set(t,e,i,A,s,n,o,a,l){const c=this.elements;return c[0]=t,c[1]=A,c[2]=o,c[3]=e,c[4]=s,c[5]=a,c[6]=i,c[7]=n,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const i=t.elements,A=e.elements,s=this.elements,n=i[0],o=i[3],a=i[6],l=i[1],c=i[4],h=i[7],u=i[2],d=i[5],f=i[8],B=A[0],p=A[3],R=A[6],P=A[1],y=A[4],S=A[7],Q=A[2],m=A[5],M=A[8];return s[0]=n*B+o*P+a*Q,s[3]=n*p+o*y+a*m,s[6]=n*R+o*S+a*M,s[1]=l*B+c*P+h*Q,s[4]=l*p+c*y+h*m,s[7]=l*R+c*S+h*M,s[2]=u*B+d*P+f*Q,s[5]=u*p+d*y+f*m,s[8]=u*R+d*S+f*M,this}invert(){const t=this.elements,e=t[0],i=t[1],A=t[2],s=t[3],n=t[4],o=t[5],a=t[6],l=t[7],c=t[8],h=c*n-o*l,u=o*a-c*s,d=l*s-n*a,f=e*h+i*u+A*d;if(f===0)return this.set(0,0,0,0,0,0,0,0,0);const B=1/f;return t[0]=h*B,t[1]=(A*l-c*i)*B,t[2]=(o*i-A*n)*B,t[3]=u*B,t[4]=(c*e-A*a)*B,t[5]=(A*s-o*e)*B,t[6]=d*B,t[7]=(i*a-l*e)*B,t[8]=(n*e-i*s)*B,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}scale(t,e){return this.premultiply(Js.makeScale(t,e)),this}rotate(t){return this.premultiply(Js.makeRotation(-t)),this}translate(t,e){return this.premultiply(Js.makeTranslation(t,e)),this}makeTranslation(t,e){return this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,i,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}fromArray(t,e=0){for(let i=0;i<9;i++)this.elements[i]=t[i+e];return this}clone(){return new this.constructor().fromArray(this.elements)}}const Js=new Lt;function Da(r,t,e,i){const A=r*e+t*i,s=Math.sqrt(r*r+t*t)*Math.sqrt(e*e+i*i);let n=Math.acos(Math.max(-1,Math.min(1,A/s)));return r*i-t*e<0&&(n=-n),n}function tu(r,t,e,i,A,s,n,o){if(t===0||e===0){r.lineTo(o.x,o.y);return}i=i*Math.PI/180,t=Math.abs(t),e=Math.abs(e);const a=(n.x-o.x)/2,l=(n.y-o.y)/2,c=Math.cos(i)*a+Math.sin(i)*l,h=-Math.sin(i)*a+Math.cos(i)*l;let u=t*t,d=e*e;const f=c*c,B=h*h,p=f/u+B/d;if(p>1){const it=Math.sqrt(p);t=it*t,e=it*e,u=t*t,d=e*e}const R=u*B+d*f,P=(u*d-R)/R;let y=Math.sqrt(Math.max(0,P));A===s&&(y=-y);const S=y*t*h/e,Q=-y*e*c/t,m=Math.cos(i)*S-Math.sin(i)*Q+(n.x+o.x)/2,M=Math.sin(i)*S+Math.cos(i)*Q+(n.y+o.y)/2,k=Da(1,0,(c-S)/t,(h-Q)/e),W=Da((c-S)/t,(h-Q)/e,(-c-S)/t,(-h-Q)/e)%(Math.PI*2);r.ellipse(m,M,t,e,i,k,k+W,s===0)}const wt={WHITESPACE:/[ \t\r\n]/,DIGIT:/\d/,SIGN:/[-+]/,POINT:/\./,COMMA:/,/,EXP:/e/i,FLAGS:/[01]/};function De(r,t,e=0){let o=0,a=!0,l="",c="";const h=[];function u(p,R,P){const y=new SyntaxError(`Unexpected character "${p}" at index ${R}.`);throw y.partial=P,y}function d(){l!==""&&(c===""?h.push(Number(l)):h.push(Number(l)*10**Number(c))),l="",c=""}let f;const B=r.length;for(let p=0;p<B;p++){if(f=r[p],Array.isArray(t)&&t.includes(h.length%e)&&wt.FLAGS.test(f)){o=1,l=f,d();continue}if(o===0){if(wt.WHITESPACE.test(f))continue;if(wt.DIGIT.test(f)||wt.SIGN.test(f)){o=1,l=f;continue}if(wt.POINT.test(f)){o=2,l=f;continue}wt.COMMA.test(f)&&(a&&u(f,p,h),a=!0)}if(o===1){if(wt.DIGIT.test(f)){l+=f;continue}if(wt.POINT.test(f)){l+=f,o=2;continue}if(wt.EXP.test(f)){o=3;continue}wt.SIGN.test(f)&&l.length===1&&wt.SIGN.test(l[0])&&u(f,p,h)}if(o===2){if(wt.DIGIT.test(f)){l+=f;continue}if(wt.EXP.test(f)){o=3;continue}wt.POINT.test(f)&&l[l.length-1]==="."&&u(f,p,h)}if(o===3){if(wt.DIGIT.test(f)){c+=f;continue}if(wt.SIGN.test(f)){if(c===""){c+=f;continue}c.length===1&&wt.SIGN.test(c)&&u(f,p,h)}}wt.WHITESPACE.test(f)?(d(),o=0,a=!1):wt.COMMA.test(f)?(d(),o=0,a=!0):wt.SIGN.test(f)?(d(),o=1,l=f):wt.POINT.test(f)?(d(),o=2,l=f):u(f,p,h)}return d(),h}function Fi(r,t){return r-(t-r)}function xa(r,t){const e=new J,i=new J;for(let A=0,s=r.length;A<s;A++){const n=r[A];if(n.type==="m"||n.type==="M")n.type==="m"?e.add(n):e.copy(n),t.moveTo(e.x,e.y),i.copy(e);else if(n.type==="h"||n.type==="H")n.type==="h"?e.x+=n.x:e.x=n.x,t.lineTo(e.x,e.y),i.copy(e);else if(n.type==="v"||n.type==="V")n.type==="v"?e.y+=n.y:e.y=n.y,t.lineTo(e.x,e.y),i.copy(e);else if(n.type==="l"||n.type==="L")n.type==="l"?e.add(n):e.copy(n),t.lineTo(e.x,e.y),i.copy(e);else if(n.type==="c"||n.type==="C")n.type==="c"?(t.bezierCurveTo(e.x+n.x1,e.y+n.y1,e.x+n.x2,e.y+n.y2,e.x+n.x,e.y+n.y),i.x=e.x+n.x2,i.y=e.y+n.y2,e.add(n)):(t.bezierCurveTo(n.x1,n.y1,n.x2,n.y2,n.x,n.y),i.x=n.x2,i.y=n.y2,e.copy(n));else if(n.type==="s"||n.type==="S")n.type==="s"?(t.bezierCurveTo(Fi(e.x,i.x),Fi(e.y,i.y),e.x+n.x2,e.y+n.y2,e.x+n.x,e.y+n.y),i.x=e.x+n.x2,i.y=e.y+n.y2,e.add(n)):(t.bezierCurveTo(Fi(e.x,i.x),Fi(e.y,i.y),n.x2,n.y2,n.x,n.y),i.x=n.x2,i.y=n.y2,e.copy(n));else if(n.type==="q"||n.type==="Q")n.type==="q"?(t.quadraticCurveTo(e.x+n.x1,e.y+n.y1,e.x+n.x,e.y+n.y),i.x=e.x+n.x1,i.y=e.y+n.y1,e.add(n)):(t.quadraticCurveTo(n.x1,n.y1,n.x,n.y),i.x=n.x1,i.y=n.y1,e.copy(n));else if(n.type==="t"||n.type==="T"){const o=Fi(e.x,i.x),a=Fi(e.y,i.y);i.x=o,i.y=a,n.type==="t"?(t.quadraticCurveTo(o,a,e.x+n.x,e.y+n.y),e.add(n)):(t.quadraticCurveTo(o,a,n.x,n.y),e.copy(n))}else if(n.type==="a"||n.type==="A"){const o=e.clone();if(n.type==="a"){if(n.x===0&&n.y===0)continue;e.add(n)}else{if(e.equals(n))continue;e.copy(n)}i.copy(e),tu(t,n.rx,n.ry,n.angle,n.largeArcFlag,n.sweepFlag,o,e)}else n.type==="z"||n.type==="Z"?(t.startPoint&&e.copy(t.startPoint),t.closePath()):console.warn("Unsupported commands",n)}}function eu(r){let t,e;const i=[];for(let A=0,s=r.length;A<s;A++){const n=r[A];switch(n.type){case"m":case"M":if(n.x.toFixed(4)===e?.x.toFixed(4)&&n.y.toFixed(4)===e?.y.toFixed(4))continue;i.push(`${n.type} ${n.x} ${n.y}`),e={x:n.x,y:n.y},t={x:n.x,y:n.y};break;case"h":case"H":i.push(`${n.type} ${n.x}`),e={x:n.x,y:e?.y??0};break;case"v":case"V":i.push(`${n.type} ${n.y}`),e={x:e?.x??0,y:n.y};break;case"l":case"L":i.push(`${n.type} ${n.x} ${n.y}`),e={x:n.x,y:n.y};break;case"c":case"C":i.push(`${n.type} ${n.x1} ${n.y1} ${n.x2} ${n.y2} ${n.x} ${n.y}`),e={x:n.x,y:n.y};break;case"s":case"S":i.push(`${n.type} ${n.x2} ${n.y2} ${n.x} ${n.y}`),e={x:n.x,y:n.y};break;case"q":case"Q":i.push(`${n.type} ${n.x1} ${n.y1} ${n.x} ${n.y}`),e={x:n.x,y:n.y};break;case"t":case"T":i.push(`${n.type} ${n.x} ${n.y}`),e={x:n.x,y:n.y};break;case"a":case"A":i.push(`${n.type} ${n.rx} ${n.ry} ${n.angle} ${n.largeArcFlag} ${n.sweepFlag} ${n.x} ${n.y}`),e={x:n.x,y:n.y};break;case"z":case"Z":i.push(n.type),t&&(e={x:t.x,y:t.y});break}}return i.join(" ")}const iu=/[a-df-z][^a-df-z]*/gi;function Sa(r){const t=[],e=r.match(iu);if(!e)return t;for(let i=0,A=e.length;i<A;i++){const s=e[i],n=s.charAt(0),o=s.slice(1).trim();let a;switch(n){case"m":case"M":a=De(o);for(let l=0,c=a.length;l<c;l+=2)l===0?t.push({type:n,x:a[l],y:a[l+1]}):t.push({type:n==="m"?"l":"L",x:a[l],y:a[l+1]});break;case"h":case"H":a=De(o);for(let l=0,c=a.length;l<c;l++)t.push({type:n,x:a[l]});break;case"v":case"V":a=De(o);for(let l=0,c=a.length;l<c;l++)t.push({type:n,y:a[l]});break;case"l":case"L":a=De(o);for(let l=0,c=a.length;l<c;l+=2)t.push({type:n,x:a[l],y:a[l+1]});break;case"c":case"C":a=De(o);for(let l=0,c=a.length;l<c;l+=6)t.push({type:n,x1:a[l],y1:a[l+1],x2:a[l+2],y2:a[l+3],x:a[l+4],y:a[l+5]});break;case"s":case"S":a=De(o);for(let l=0,c=a.length;l<c;l+=4)t.push({type:n,x2:a[l],y2:a[l+1],x:a[l+2],y:a[l+3]});break;case"q":case"Q":a=De(o);for(let l=0,c=a.length;l<c;l+=4)t.push({type:n,x1:a[l],y1:a[l+1],x:a[l+2],y:a[l+3]});break;case"t":case"T":a=De(o);for(let l=0,c=a.length;l<c;l+=2)t.push({type:n,x:a[l],y:a[l+1]});break;case"a":case"A":a=De(o,[3,4],7);for(let l=0,c=a.length;l<c;l+=7)t.push({type:n,rx:a[l],ry:a[l+1],angle:a[l+2],largeArcFlag:a[l+3],sweepFlag:a[l+4],x:a[l+5],y:a[l+6]});break;case"z":case"Z":t.push({type:n});break;default:console.warn(s)}}return t}const Ma="data:image/svg+xml;",Ra=`${Ma}base64,`,ka=`${Ma}charset=utf8,`;function Ks(r){if(typeof r=="string"){let t;r.startsWith(Ra)?(r=r.substring(Ra.length,r.length),t=atob(r)):r.startsWith(ka)?(r=r.substring(ka.length,r.length),t=decodeURIComponent(r)):t=r;const e=new DOMParser().parseFromString(t,"text/xml"),i=e.querySelector("parsererror");if(i)throw new Error(`${i.textContent??"parser error"}
|
|
277
|
-
${t}`);return e.documentElement}else return r}const Au="px",ru=90,Pa=["mm","cm","in","pt","pc","px"],Ua={mm:{mm:1,cm:.1,in:1/25.4,pt:72/25.4,pc:6/25.4,px:-1},cm:{mm:10,cm:1,in:1/2.54,pt:72/2.54,pc:6/2.54,px:-1},in:{mm:25.4,cm:2.54,in:1,pt:72,pc:6,px:-1},pt:{mm:25.4/72,cm:2.54/72,in:1/72,pt:1,pc:6/72,px:-1},pc:{mm:25.4/6,cm:2.54/6,in:1/6,pt:72/6,pc:1,px:-1},px:{px:1}};function It(r){let t="px";if(typeof r=="string")for(let i=0,A=Pa.length;i<A;i++){const s=Pa[i];if(r.endsWith(s)){t=s,r=r.substring(0,r.length-s.length);break}}let e;return e=Ua[t][Au],e<0&&(e=Ua[t].in*ru),e*Number.parseFloat(r)}const su=new Lt,fr=new Lt,Na=new Lt,Fa=new Lt;function nu(r,t,e){if(!(r.hasAttribute("transform")||r.nodeName==="use"&&(r.hasAttribute("x")||r.hasAttribute("y"))))return null;const i=ou(r);return e.length>0&&i.premultiply(e[e.length-1]),t.copy(i),e.push(i),i}function ou(r){const t=new Lt,e=su;if(r.nodeName==="use"&&(r.hasAttribute("x")||r.hasAttribute("y"))&&t.translate(It(r.getAttribute("x")),It(r.getAttribute("y"))),r.hasAttribute("transform")){const i=r.getAttribute("transform").split(")");for(let A=i.length-1;A>=0;A--){const s=i[A].trim();if(s==="")continue;const n=s.indexOf("("),o=s.length;if(n>0&&n<o){const a=s.slice(0,n),l=De(s.slice(n+1));switch(e.identity(),a){case"translate":if(l.length>=1){const c=l[0];let h=0;l.length>=2&&(h=l[1]),e.translate(c,h)}break;case"rotate":if(l.length>=1){let c=0,h=0,u=0;c=l[0]*Math.PI/180,l.length>=3&&(h=l[1],u=l[2]),fr.makeTranslation(-h,-u),Na.makeRotation(c),Fa.multiplyMatrices(Na,fr),fr.makeTranslation(h,u),e.multiplyMatrices(fr,Fa)}break;case"scale":l.length>=1&&e.scale(l[0],l[1]??l[0]);break;case"skewX":l.length===1&&e.set(1,Math.tan(l[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":l.length===1&&e.set(1,0,0,Math.tan(l[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":l.length===6&&e.set(l[0],l[2],l[4],l[1],l[3],l[5],0,0,1);break}}t.premultiply(e)}}return t}function au(r){return new Rt().arc(It(r.getAttribute("cx")||0),It(r.getAttribute("cy")||0),It(r.getAttribute("r")||0),0,Math.PI*2)}function lu(r,t){if(!(!r.sheet||!r.sheet.cssRules||!r.sheet.cssRules.length))for(let e=0;e<r.sheet.cssRules.length;e++){const i=r.sheet.cssRules[e];if(i.type!==1)continue;const A=i.selectorText.split(/,/g).filter(Boolean).map(n=>n.trim()),s={};for(let n=i.style.length,o=0;o<n;o++){const a=i.style.item(o);s[a]=i.style.getPropertyValue(a)}for(let n=0;n<A.length;n++)t[A[n]]=Object.assign(t[A[n]]||{},{...s})}}function cu(r){return new Rt().ellipse(It(r.getAttribute("cx")||0),It(r.getAttribute("cy")||0),It(r.getAttribute("rx")||0),It(r.getAttribute("ry")||0),0,0,Math.PI*2)}function hu(r){return new Rt().moveTo(It(r.getAttribute("x1")||0),It(r.getAttribute("y1")||0)).lineTo(It(r.getAttribute("x2")||0),It(r.getAttribute("y2")||0))}function gu(r){const t=new Rt,e=r.getAttribute("d");return!e||e==="none"?null:(t.addData(e),t)}const uu=/([+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g;function fu(r){const t=new Rt;let e=0;return r.getAttribute("points")?.replace(uu,(i,A,s)=>{const n=It(A),o=It(s);return e===0?t.moveTo(n,o):t.lineTo(n,o),e++,i}),t.currentCurve.autoClose=!0,t}const du=/([+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g;function Iu(r){const t=new Rt;let e=0;return r.getAttribute("points")?.replace(du,(i,A,s)=>{const n=It(A),o=It(s);return e===0?t.moveTo(n,o):t.lineTo(n,o),e++,i}),t.currentCurve.autoClose=!1,t}function pu(r){const t=It(r.getAttribute("x")||0),e=It(r.getAttribute("y")||0),i=It(r.getAttribute("rx")||r.getAttribute("ry")||0),A=It(r.getAttribute("ry")||r.getAttribute("rx")||0),s=It(r.getAttribute("width")),n=It(r.getAttribute("height")),o=1-.551915024494,a=new Rt;return a.moveTo(t+i,e),a.lineTo(t+s-i,e),(i!==0||A!==0)&&a.bezierCurveTo(t+s-i*o,e,t+s,e+A*o,t+s,e+A),a.lineTo(t+s,e+n-A),(i!==0||A!==0)&&a.bezierCurveTo(t+s,e+n-A*o,t+s-i*o,e+n,t+s-i,e+n),a.lineTo(t+i,e+n),(i!==0||A!==0)&&a.bezierCurveTo(t+i*o,e+n,t,e+n-A*o,t,e+n-A),a.lineTo(t,e+A),(i!==0||A!==0)&&a.bezierCurveTo(t,e+A*o,t+i*o,e,t+i,e),a}function xe(r,t,e){t=Object.assign({},t);let i={};if(r.hasAttribute("class")){const l=r.getAttribute("class").split(/\s/).filter(Boolean).map(c=>c.trim());for(let c=0;c<l.length;c++)i=Object.assign(i,e[`.${l[c]}`])}r.hasAttribute("id")&&(i=Object.assign(i,e[`#${r.getAttribute("id")}`]));for(let l=r.style.length,c=0;c<l;c++){const h=r.style.item(c),u=r.style.getPropertyValue(h);t[h]=u,i[h]=u}function A(l,c,h=s){r.hasAttribute(l)&&(t[c]=h(r.getAttribute(l))),i[l]&&(t[c]=h(i[l]))}function s(l){return l.startsWith("url")&&console.warn("url access in attributes is not implemented."),l}function n(l){return Math.max(0,Math.min(1,It(l)))}function o(l){return Math.max(0,It(l))}function a(l){return l.split(" ").filter(c=>c!=="").map(c=>It(c))}return A("fill","fill"),A("fill-opacity","fillOpacity",n),A("fill-rule","fillRule"),A("opacity","opacity",n),A("stroke","stroke"),A("stroke-opacity","strokeOpacity",n),A("stroke-width","strokeWidth",o),A("stroke-linecap","strokeLinecap"),A("stroke-linejoin","strokeLinejoin"),A("stroke-miterlimit","strokeMiterlimit",o),A("stroke-dasharray","strokeDasharray",a),A("stroke-dashoffset","strokeDashoffset",It),A("visibility","visibility"),t}function Ys(r,t,e=[],i={}){if(r.nodeType!==1)return e;let A=!1,s=null,n={...t};switch(r.nodeName){case"svg":n=xe(r,n,i);break;case"style":lu(r,i);break;case"g":n=xe(r,n,i);break;case"path":n=xe(r,n,i),r.hasAttribute("d")&&(s=gu(r));break;case"rect":n=xe(r,n,i),s=pu(r);break;case"polygon":n=xe(r,n,i),s=fu(r);break;case"polyline":n=xe(r,n,i),s=Iu(r);break;case"circle":n=xe(r,n,i),s=au(r);break;case"ellipse":n=xe(r,n,i),s=cu(r);break;case"line":n=xe(r,n,i),s=hu(r);break;case"defs":A=!0;break;case"use":{n=xe(r,n,i);const u=(r.getAttributeNS("http://www.w3.org/1999/xlink","href")||r.getAttribute("href")||"").substring(1),d=r.viewportElement?.getElementById(u);d?Ys(d,n,e,i):console.warn(`'use node' references non-existent node id: ${u}`);break}default:console.warn(r);break}if(n.display==="none")return e;const o=new Lt,a=[],l=nu(r,o,a);s&&(s.applyTransform(o),e.push(s),s.style={...n});const c=r.childNodes;for(let h=0,u=c.length;h<u;h++){const d=c[h];A&&d.nodeName!=="style"&&d.nodeName!=="defs"||Ys(d,n,e,i)}return l&&(a.pop(),a.length>0?o.copy(a[a.length-1]):o.identity()),e}function Vs(r){const t=Ks(r);return new Ai(Ys(t,{}),t.getAttribute("viewBox")?.trim().split(" ").map(e=>Number(e)))}function Ta(r,t,e,i,A){const s=(i-t)*.5,n=(A-e)*.5,o=r*r,a=r*o;return(2*e-2*i+s+n)*a+(-3*e+3*i-2*s-n)*o+s*r+e}function Eu(r,t){const e=1-r;return e*e*e*t}function Bu(r,t){const e=1-r;return 3*e*e*r*t}function Cu(r,t){return 3*(1-r)*r*r*t}function Qu(r,t){return r*r*r*t}function La(r,t,e,i,A){return Eu(r,t)+Bu(r,e)+Cu(r,i)+Qu(r,A)}function Ga(r,t={}){let{vertices:e=[],indices:i=[],holes:A=[],verticesStride:s=2,verticesOffset:n=e.length/s,indicesOffset:o=i.length}=t;const a=Ug(r,A,2);if(a.length){for(let c=0;c<a.length;c+=3)i[o++]=a[c]+n,i[o++]=a[c+1]+n,i[o++]=a[c+2]+n;let l=n*s;for(let c=0;c<r.length;c+=2)e[l]=r[c],e[l+1]=r[c+1],l+=s}return{vertices:e,indices:i}}const yu=8,dr=11920929e-14,mu=1;function wu(r,t,e,i,A,s,n,o,a=.5,l=[]){const h=Math.min(.99,Math.max(0,a));let u=(mu-h)/1;return u*=u,zs(r,t,e,i,A,s,n,o,l,u,0),l.push(n,o),l}function zs(r,t,e,i,A,s,n,o,a,l,c){if(c>yu)return;const h=(r+e)/2,u=(t+i)/2,d=(e+A)/2,f=(i+s)/2,B=(A+n)/2,p=(s+o)/2,R=(h+d)/2,P=(u+f)/2,y=(d+B)/2,S=(f+p)/2,Q=(R+y)/2,m=(P+S)/2;if(c>0){let M=n-r,k=o-t;const W=Math.abs((e-n)*k-(i-o)*M),it=Math.abs((A-n)*k-(s-o)*M);if(W>dr&&it>dr){if((W+it)*(W+it)<=l*(M*M+k*k)){a.push(Q,m);return}}else if(W>dr){if(W*W<=l*(M*M+k*k)){a.push(Q,m);return}}else if(it>dr){if(it*it<=l*(M*M+k*k)){a.push(Q,m);return}}else if(M=Q-(r+n)/2,k=m-(t+o)/2,M*M+k*k<=l){a.push(Q,m);return}}zs(r,t,h,u,R,P,Q,m,a,l,c+1),zs(Q,m,y,S,B,p,n,o,a,l,c+1)}const vu=8,_u=11920929e-14,bu=1;function Du(r,t,e,i,A,s,n=.5,o=[]){const l=Math.min(.99,Math.max(0,n));let c=(bu-l)/1;return c*=c,Ws(o,r,t,e,i,A,s,c,0),o.push(A,s),o}function Ws(r,t,e,i,A,s,n,o,a){if(a>vu)return;const l=(t+i)/2,c=(e+A)/2,h=(i+s)/2,u=(A+n)/2,d=(l+h)/2,f=(c+u)/2;let B=s-t,p=n-e;const R=Math.abs((i-s)*p-(A-n)*B);if(R>_u){if(R*R<=o*(B*B+p*p)){r.push(d,f);return}}else if(B=d-(t+s)/2,p=f-(e+n)/2,B*B+p*p<=o){r.push(d,f);return}Ws(r,t,e,l,c,d,f,o,a+1),Ws(r,d,f,h,u,s,n,o,a+1)}function xu(r,t){let e=!1;const[i,A]=r,s=t.length/2;for(let n=0,o=s-1;n<s;o=n++){const a=t[n*2],l=t[n*2+1],c=t[o*2],h=t[o*2+1];l>A!=h>A&&i<(c-a)*(A-l)/(h-l)+a&&(e=!e)}return e}function Su(r,t){const e=1-r;return e*e*t}function Mu(r,t){return 2*(1-r)*r*t}function Ru(r,t){return r*r*t}function Oa(r,t,e,i){return Su(r,t)+Mu(r,e)+Ru(r,i)}const ku=1e-4,Ha=1e-4;function Pu(r,t={}){const{vertices:e=[],indices:i=[],lineStyle:A={alignment:.5,cap:"butt",join:"miter",width:1,miterLimit:10},flipAlignment:s=!1,closed:n=!0}=t,o=ku;if(r.length===0)return{vertices:e,indices:i};const a=A;let l=a.alignment;if(A.alignment!==.5){let N=Uu(r);s&&(N*=-1),l=(l-.5)*N+.5}const c={x:r[0],y:r[1]},h={x:r[r.length-2],y:r[r.length-1]},u=n,d=Math.abs(c.x-h.x)<o&&Math.abs(c.y-h.y)<o;if(u){r=r.slice(),d&&(r.pop(),r.pop(),h.x=r[r.length-2],h.y=r[r.length-1]);const N=(c.x+h.x)*.5,tt=(h.y+c.y)*.5;r.unshift(N,tt),r.push(N,tt)}const f=e,B=r.length/2;let p=r.length;const R=f.length/2,P=a.width/2,y=P*P,S=a.miterLimit*a.miterLimit;let Q=r[0],m=r[1],M=r[2],k=r[3],W=0,it=0,q=-(m-k),Y=Q-M,et=0,H=0,L=Math.sqrt(q*q+Y*Y);q/=L,Y/=L,q*=P,Y*=P;const rt=l,O=(1-rt)*2,X=rt*2;u||(a.cap==="round"?p+=yi(Q-q*(O-X)*.5,m-Y*(O-X)*.5,Q-q*O,m-Y*O,Q+q*X,m+Y*X,f,!0)+2:a.cap==="square"&&(p+=Ja(Q,m,q,Y,O,X,!0,f))),f.push(Q-q*O,m-Y*O),f.push(Q+q*X,m+Y*X);for(let N=1;N<B-1;++N){Q=r[(N-1)*2],m=r[(N-1)*2+1],M=r[N*2],k=r[N*2+1],W=r[(N+1)*2],it=r[(N+1)*2+1],q=-(m-k),Y=Q-M,L=Math.sqrt(q*q+Y*Y),q/=L,Y/=L,q*=P,Y*=P,et=-(k-it),H=M-W,L=Math.sqrt(et*et+H*H),et/=L,H/=L,et*=P,H*=P;const tt=M-Q,b=m-k,D=M-W,F=it-k,V=tt*D+b*F,At=b*D-F*tt,Z=At<0;if(Math.abs(At)<.001*Math.abs(V)){f.push(M-q*O,k-Y*O),f.push(M+q*X,k+Y*X),V>=0&&(a.join==="round"?p+=yi(M,k,M-q*O,k-Y*O,M-et*O,k-H*O,f,!1)+4:p+=2,f.push(M-et*X,k-H*X),f.push(M+et*O,k+H*O));continue}const dt=(-q+Q)*(-Y+k)-(-q+M)*(-Y+m),re=(-et+W)*(-H+k)-(-et+M)*(-H+it),se=(tt*re-D*dt)/At,Ft=(F*dt-b*re)/At,ct=(se-M)*(se-M)+(Ft-k)*(Ft-k),Qt=M+(se-M)*O,Tt=k+(Ft-k)*O,Kt=M-(se-M)*X,_t=k-(Ft-k)*X,$t=Math.min(tt*tt+b*b,D*D+F*F),Te=Z?O:X,jr=$t+Te*Te*y;ct<=jr?a.join==="bevel"||ct/y>S?(Z?(f.push(Qt,Tt),f.push(M+q*X,k+Y*X),f.push(Qt,Tt),f.push(M+et*X,k+H*X)):(f.push(M-q*O,k-Y*O),f.push(Kt,_t),f.push(M-et*O,k-H*O),f.push(Kt,_t)),p+=2):a.join==="round"?Z?(f.push(Qt,Tt),f.push(M+q*X,k+Y*X),p+=yi(M,k,M+q*X,k+Y*X,M+et*X,k+H*X,f,!0)+4,f.push(Qt,Tt),f.push(M+et*X,k+H*X)):(f.push(M-q*O,k-Y*O),f.push(Kt,_t),p+=yi(M,k,M-q*O,k-Y*O,M-et*O,k-H*O,f,!1)+4,f.push(M-et*O,k-H*O),f.push(Kt,_t)):(f.push(Qt,Tt),f.push(Kt,_t)):(f.push(M-q*O,k-Y*O),f.push(M+q*X,k+Y*X),a.join==="round"?Z?p+=yi(M,k,M+q*X,k+Y*X,M+et*X,k+H*X,f,!0)+2:p+=yi(M,k,M-q*O,k-Y*O,M-et*O,k-H*O,f,!1)+2:a.join==="miter"&&ct/y<=S&&(Z?(f.push(Kt,_t),f.push(Kt,_t)):(f.push(Qt,Tt),f.push(Qt,Tt)),p+=2),f.push(M-et*O,k-H*O),f.push(M+et*X,k+H*X),p+=2)}Q=r[(B-2)*2],m=r[(B-2)*2+1],M=r[(B-1)*2],k=r[(B-1)*2+1],q=-(m-k),Y=Q-M,L=Math.sqrt(q*q+Y*Y),q/=L,Y/=L,q*=P,Y*=P,f.push(M-q*O,k-Y*O),f.push(M+q*X,k+Y*X),u||(a.cap==="round"?p+=yi(M-q*(O-X)*.5,k-Y*(O-X)*.5,M-q*O,k-Y*O,M+q*X,k+Y*X,f,!1)+2:a.cap==="square"&&(p+=Ja(M,k,q,Y,O,X,!1,f)));const j=Ha*Ha;for(let N=R;N<p+R-2;++N)Q=f[N*2],m=f[N*2+1],M=f[(N+1)*2],k=f[(N+1)*2+1],W=f[(N+2)*2],it=f[(N+2)*2+1],!(Math.abs(Q*(k-it)+M*(it-m)+W*(m-k))<j)&&i.push(N,N+1,N+2);return{vertices:e,indices:i}}function Uu(r){const t=r.length;if(t<6)return 1;let e=0;for(let i=0,A=r[t-2],s=r[t-1];i<t;i+=2){const n=r[i],o=r[i+1];e+=(n-A)*(o+s),A=n,s=o}return e<0?-1:1}function Ja(r,t,e,i,A,s,n,o){const a=r-e*A,l=t-i*A,c=r+e*s,h=t+i*s;let u,d;n?(u=i,d=-e):(u=-i,d=e);const f=a+u,B=l+d,p=c+u,R=h+d;return o.push(f,B),o.push(p,R),2}function yi(r,t,e,i,A,s,n,o){const a=e-r,l=i-t;let c=Math.atan2(a,l),h=Math.atan2(A-r,s-t);o&&c<h?c+=Math.PI*2:!o&&c>h&&(h+=Math.PI*2);let u=c;const d=h-c,f=Math.abs(d),B=Math.sqrt(a*a+l*l),p=(15*f*Math.sqrt(B)/Math.PI>>0)+1,R=d/p;if(u+=R,o){n.push(r,t),n.push(e,i);for(let P=1,y=u;P<p;P++,y+=R)n.push(r,t),n.push(r+Math.sin(y)*B,t+Math.cos(y)*B);n.push(r,t),n.push(A,s)}else{n.push(e,i),n.push(r,t);for(let P=1,y=u;P<p;P++,y+=R)n.push(r+Math.sin(y)*B,t+Math.cos(y)*B),n.push(r,t);n.push(A,s),n.push(r,t)}return p*2}class Ti{arcLengthDivision=200;_arcLengths;getPointAt(t,e=new J){return this.getPoint(this.getUToTMapping(t),e)}isClockwise(){const t=this.getPoint(1),e=this.getPoint(.5),i=this.getPoint(1);return(e.x-t.x)*(i.y-e.y)-(e.y-t.y)*(i.x-e.x)<0}getControlPointRefs(){return[]}applyTransform(t){const e=typeof t=="function";return this.getControlPointRefs().forEach(i=>{e?t(i):i.applyMatrix3(t)}),this}getUnevenVertices(t=5,e=[]){const i=new J;for(let A=0,s=Math.max(1,t)-1;A<=s;A++)this.getPoint(A/s,i),e.push(i.x,i.y);return e}getSpacedVertices(t=5,e=[]){const i=new J;for(let A=0,s=Math.max(1,t)-1;A<=s;A++)this.getPointAt(A/s,i),e.push(i.x,i.y);return e}getAdaptiveVertices(t=[]){return this.getUnevenVertices(5,t)}_verticesToPoints(t,e=[]){for(let i=0,A=t.length;i<A;i+=2){const s=t[i],n=t[i+1];e.push(new J(s,n))}return e}getSpacedPoints(t,e=[]){const i=this.getSpacedVertices(t);return this._verticesToPoints(i,e),e}getUnevenPoints(t,e=[]){const i=this.getUnevenVertices(t);return this._verticesToPoints(i,e),e}getAdaptivePoints(t=[]){const e=this.getAdaptiveVertices();return this._verticesToPoints(e,t),t}getPoints(t,e=[]){let i;return t?i=this.getUnevenVertices(t):i=this.getAdaptiveVertices(),this._verticesToPoints(i,e),e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(){return(!this._arcLengths||this._arcLengths.length!==this.arcLengthDivision+1)&&this.updateLengths(),this._arcLengths}updateLengths(){const t=this.arcLengthDivision,e=[0];for(let i=0,A=this.getPoint(0),s=1;s<=t;s++){const n=this.getPoint(s/t);i+=n.distanceTo(A),e.push(i),A=n}this._arcLengths=e}getUToTMapping(t,e){const i=this.getLengths(),A=i.length,s=e??t*i[A-1];if(A<2)return s/i[0];let n=0,o=0,a=A-1,l;for(;o<=a;)if(n=Math.floor(o+(a-o)/2),l=i[n]-s,l<0)o=n+1;else if(l>0)a=n-1;else{a=n;break}if(n=a,i[n]===s)return n/(A-1);const c=i[n],u=i[n+1]-c,d=(s-c)/u;return(n+d)/(A-1)}getTangent(t,e=new J){const A=Math.max(0,t-1e-4),s=Math.min(1,t+1e-4);return e.copy(this.getPoint(s).sub(this.getPoint(A)).normalize())}getTangentAt(t,e){return this.getTangent(this.getUToTMapping(t),e)}getNormal(t,e=new J){return this.getTangent(t,e),e.set(-e.y,e.x).normalize()}getNormalAt(t,e){return this.getNormal(this.getUToTMapping(t),e)}getTForPoint(t,e=.001){let i=0,A=1,s=(i+A)/2;for(;A-i>e;){s=(i+A)/2;const n=this.getPoint(s);if(n.distanceTo(t)<e)return s;n.x<t.x?i=s:A=s}return s}getMinMax(t=J.MAX,e=J.MIN){const i=this.getPoints();for(let A=0,s=i.length;A<s;A++){const n=i[A];t.min(n),e.max(n)}return{min:t.finite(),max:e.finite()}}getBoundingBox(){const{min:t,max:e}=this.getMinMax();return new lt(t.x,t.y,e.x-t.x,e.y-t.y)}getFillVertices(t){return this.getAdaptiveVertices()}fillTriangulate(t){return Ga(this.getFillVertices(t),t)}strokeTriangulate(t){return Pu(this.getAdaptiveVertices(),t)}toCommands(){const t=[],e=this.getPoints();for(let i=0,A=e.length;i<A;i++){const s=e[i];i===0?t.push({type:"M",x:s.x,y:s.y}):t.push({type:"L",x:s.x,y:s.y})}return t}toData(){return eu(this.toCommands())}drawTo(t){return this.toCommands().forEach(e=>{switch(e.type){case"M":t.moveTo(e.x,e.y);break;case"L":t.lineTo(e.x,e.y);break}}),this}copy(t){return this.arcLengthDivision=t.arcLengthDivision,this}clone(){return new this.constructor().copy(this)}}const Nu=new Lt,Ka=new Lt,Ya=new Lt,Ir=new J;class qs extends Ti{constructor(t=new J,e=new J,i=new J,A=0,s=0,n=Math.PI*2,o=!1){super(),this._center=t,this._radius=e,this._diff=i,this.rotate=A,this.startAngle=s,this.endAngle=n,this.clockwise=o}get cx(){return this._center.x}set cx(t){this._center.x=t}get cy(){return this._center.y}set cy(t){this._center.y=t}get rx(){return this._radius.x}set rx(t){this._radius.x=t}get ry(){return this._radius.y}set ry(t){this._radius.y=t}get dx(){return this._diff.x}set dx(t){this._diff.x=t}get dy(){return this._diff.y}set dy(t){this._diff.y=t}isClockwise(){return this.clockwise}_getDeltaAngle(){const t=Math.PI*2;let e=this.endAngle-this.startAngle;const i=Math.abs(e)<Number.EPSILON;return e=(e%t+t)%t,i?e=0:this.clockwise||(e=e===0?-t:e-t),e}getPoint(t,e=new J){const i=this._getDeltaAngle(),A=this.startAngle+t*i;let s=this.cx+this.rx*Math.cos(A),n=this.cy+this.ry*Math.sin(A);if(this.rotate!==0){const o=Math.cos(this.rotate),a=Math.sin(this.rotate),l=s-this.cx,c=n-this.cy;s=l*o-c*a+this.cx,n=l*a+c*o+this.cy}return e.set(s,n)}toCommands(){const{cx:t,cy:e,rx:i,ry:A,startAngle:s,endAngle:n,clockwise:o,rotate:a}=this,l=t+i*Math.cos(s)*Math.cos(a)-A*Math.sin(s)*Math.sin(a),c=e+i*Math.cos(s)*Math.sin(a)+A*Math.sin(s)*Math.cos(a),h=Math.abs(s-n),u=h>Math.PI?1:0,d=o?1:0,f=a*180/Math.PI;if(h>=2*Math.PI){const B=s+Math.PI,p=t+i*Math.cos(B)*Math.cos(a)-A*Math.sin(B)*Math.sin(a),R=e+i*Math.cos(B)*Math.sin(a)+A*Math.sin(B)*Math.cos(a);return[{type:"M",x:l,y:c},{type:"A",rx:i,ry:A,angle:f,largeArcFlag:0,sweepFlag:d,x:p,y:R},{type:"A",rx:i,ry:A,angle:f,largeArcFlag:0,sweepFlag:d,x:l,y:c}]}else{const B=t+i*Math.cos(n)*Math.cos(a)-A*Math.sin(n)*Math.sin(a),p=e+i*Math.cos(n)*Math.sin(a)+A*Math.sin(n)*Math.cos(a);return[{type:"M",x:l,y:c},{type:"A",rx:i,ry:A,angle:f,largeArcFlag:u,sweepFlag:d,x:B,y:p}]}}drawTo(t){const{cx:e,cy:i,rx:A,ry:s,rotate:n,startAngle:o,endAngle:a,clockwise:l}=this;return t.ellipse(e,i,A,s,n,o,a,!l),this}applyTransform(t){return Ir.set(this.cx,this.cy),Ir.applyMatrix3(t),this.cx=Ir.x,this.cy=Ir.y,Lu(t)?Fu(this,t):Tu(this,t),this}getControlPointRefs(){return[this._center]}_getAdaptiveVerticesByArc(t=[]){const{cx:e,cy:i,rx:A,ry:s,dx:n,dy:o,startAngle:a,endAngle:l,clockwise:c,rotate:h}=this,u=!c;let d=Math.abs(a-l);(!u&&a>l||u&&l>a)&&(d=2*Math.PI-d);const f=Math.max(12,Math.floor(12*A**(1/3)*(d/Math.PI)));let B=d/f,p=a;B*=u?-1:1;const R=Math.cos(u?h:-h),P=Math.sin(u?h:-h);for(let y=0;y<f+1;y++){const S=n+Math.cos(p)*A,Q=o+Math.sin(p)*s,m=S*R-Q*P,M=S*P+Q*R;t.push(e+m,i+M),p+=B}return t}_getAdaptiveVerticesByCircle(t=[]){const{cx:e,cy:i,rx:A,ry:s,dx:n,dy:o,rotate:a,clockwise:l}=this;if(!(A>=0&&s>=0&&n>=0&&o>=0))return t;const c=Math.ceil(2.3*Math.sqrt(A+s)),h=c*8+(n?4:0)+(o?4:0),u=[];if(h===0)return t;{const B=u.length;if(c===0)u[B]=u[B+6]=e+n,u[B+1]=u[B+3]=i+o,u[B+2]=u[B+4]=e-n,u[B+5]=u[B+7]=i-o;else{let p=B,R=B+c*4+(n?2:0)+2,P=R,y=h,S=n+A,Q=o,m=e+S,M=e-S,k=i+Q;if(u[p++]=m,u[p++]=k,u[--R]=k,u[--R]=M,o){const it=i-Q;u[P++]=M,u[P++]=it,u[--y]=it,u[--y]=m}for(let it=1;it<c;it++){const q=Math.PI/2*(it/c),Y=n+Math.cos(q)*A,et=o+Math.sin(q)*s,H=e+Y,L=e-Y,rt=i+et,O=i-et;u[p++]=H,u[p++]=rt,u[--R]=rt,u[--R]=L,u[P++]=L,u[P++]=O,u[--y]=O,u[--y]=H}S=n,Q=o+s,m=e+S,M=e-S,k=i+Q;const W=i-Q;u[p++]=m,u[p++]=k,u[--y]=W,u[--y]=m,n&&(u[p++]=M,u[p++]=k,u[--y]=W,u[--y]=M)}}const d=Math.cos(l?-a:a),f=Math.sin(l?-a:a);for(let B=0;B<u.length;B+=2){const p=u[B],R=u[B+1],P=p-e,y=R-i,S=P*d-y*f,Q=P*f+y*d;t.push(e+S,i+Q)}return t}getAdaptiveVertices(t=[]){return this.startAngle===0&&this.endAngle===Math.PI*2?this._getAdaptiveVerticesByCircle(t):this._getAdaptiveVerticesByArc(t)}copy(t){return super.copy(t),this.cx=t.cx,this.cy=t.cy,this.rx=t.rx,this.ry=t.ry,this.dx=t.dx,this.dy=t.dy,this.startAngle=t.startAngle,this.endAngle=t.endAngle,this.clockwise=t.clockwise,this.rotate=t.rotate,this}}function Fu(r,t){const e=r.rx,i=r.ry,A=Math.cos(r.rotate),s=Math.sin(r.rotate),n=new J(e*A,e*s),o=new J(-i*s,i*A),a=n.applyMatrix3(t),l=o.applyMatrix3(t),c=Nu.set(a.x,l.x,0,a.y,l.y,0,0,0,1),h=Ka.copy(c).invert(),f=Ya.copy(h).transpose().multiply(h).elements,B=Gu(f[0],f[1],f[4]),p=Math.sqrt(B.rt1),R=Math.sqrt(B.rt2);if(r.rx=1/p,r.ry=1/R,r.rotate=Math.atan2(B.sn,B.cs),!((r.endAngle-r.startAngle)%(2*Math.PI)<Number.EPSILON)){const y=Ka.set(p,0,0,0,R,0,0,0,1),S=Ya.set(B.cs,B.sn,0,-B.sn,B.cs,0,0,0,1),Q=y.multiply(S).multiply(c),m=M=>{const{x:k,y:W}=new J(Math.cos(M),Math.sin(M)).applyMatrix3(Q);return Math.atan2(W,k)};r.startAngle=m(r.startAngle),r.endAngle=m(r.endAngle),Va(t)&&(r.clockwise=!r.clockwise)}}function Tu(r,t){const e=za(t),i=Wa(t);r.rx*=e,r.ry*=i;const A=e>Number.EPSILON?Math.atan2(t.elements[1],t.elements[0]):Math.atan2(-t.elements[3],t.elements[4]);r.rotate+=A,Va(t)&&(r.startAngle*=-1,r.endAngle*=-1,r.clockwise=!r.clockwise)}function Va(r){const t=r.elements;return t[0]*t[4]-t[1]*t[3]<0}function Lu(r){const t=r.elements,e=t[0]*t[3]+t[1]*t[4];if(e===0)return!1;const i=za(r),A=Wa(r);return Math.abs(e/(i*A))>Number.EPSILON}function za(r){const t=r.elements;return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Wa(r){const t=r.elements;return Math.sqrt(t[3]*t[3]+t[4]*t[4])}function Gu(r,t,e){let i,A,s,n,o;const a=r+e,l=r-e,c=Math.sqrt(l*l+4*t*t);return a>0?(i=.5*(a+c),o=1/i,A=r*o*e-t*o*t):a<0?A=.5*(a-c):(i=.5*c,A=-.5*c),l>0?s=l+c:s=l-c,Math.abs(s)>2*Math.abs(t)?(o=-2*t/s,n=1/Math.sqrt(1+o*o),s=o*n):Math.abs(t)===0?(s=1,n=0):(o=-.5*s/t,s=1/Math.sqrt(1+o*o),n=o*s),l>0&&(o=s,s=-n,n=o),{rt1:i,rt2:A,cs:s,sn:n}}class Ou extends qs{constructor(t=0,e=0,i=1,A=0,s=Math.PI*2,n=!1){super(new J(t,e),new J(i,i),new J,0,A,s,n)}drawTo(t){const{cx:e,cy:i,rx:A,startAngle:s,endAngle:n,clockwise:o}=this;return t.arc(e,i,A,s,n,!o),this}getAdaptiveVertices(t=[]){const{cx:e,cy:i,rx:A,startAngle:s,endAngle:n,clockwise:o}=this;let a=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(a=2*Math.PI-a);let l=Math.max(6,Math.floor(6*A**(1/3)*(a/Math.PI)));l=Math.max(l,3);let c=a/l,h=s;c*=o?1:-1;for(let u=0;u<l+1;u++){const d=Math.cos(h),f=Math.sin(h),B=e+d*A,p=i+f*A;t.push(B,p),h+=c}return t}}class We extends Ti{constructor(t=new J,e=new J){super(),this.p1=t,this.p2=e}static from(t,e,i,A){return new We(new J(t,e),new J(i,A))}getPoint(t,e=new J){return t===1?e.copy(this.p2):e.copy(this.p2).sub(this.p1).scale(t).add(this.p1),e}getPointAt(t,e=new J){return this.getPoint(t,e)}getTangent(t,e=new J){return e.subVectors(this.p2,this.p1).normalize()}getTangentAt(t,e=new J){return this.getTangent(t,e)}getControlPointRefs(){return[this.p1,this.p2]}getAdaptiveVertices(t=[]){return t.push(this.p1.x,this.p1.y,this.p2.x,this.p2.y),t}getMinMax(t=J.MAX,e=J.MIN){const{p1:i,p2:A}=this;return t.x=Math.min(t.x,i.x,A.x),t.y=Math.min(t.y,i.y,A.y),e.x=Math.max(e.x,i.x,A.x),e.y=Math.max(e.y,i.y,A.y),{min:t.finite(),max:e.finite()}}toCommands(){const{p1:t,p2:e}=this;return[{type:"M",x:t.x,y:t.y},{type:"L",x:e.x,y:e.y}]}getFillVertices(t={}){const e=Math.min(this.p1.x,this.p2.x),i=Math.max(this.p1.x,this.p2.x),A=Math.min(this.p1.y,this.p2.y),s=Math.max(this.p1.y,this.p2.y),n=e,o=A,a=i-e||t.style?.strokeWidth||0,l=s-A||t.style?.strokeWidth||0;return[n,o,n+a,o,n+a,o+l,n,o+l]}drawTo(t){const{p1:e,p2:i}=this;return t.lineTo(e.x,e.y),t.lineTo(i.x,i.y),this}copy(t){return super.copy(t),this.p1.copy(t.p1),this.p2.copy(t.p2),this}}class mA extends Ti{constructor(t=[]){super(),this.curves=t}getFlatCurves(){return this.curves.flatMap(t=>t instanceof mA?t.getFlatCurves():t)}addCurve(t){return this.curves.push(t),this}getPoint(t,e=new J){const i=t*this.getLength(),A=this.getLengths();let s=0;for(;s<A.length;){if(A[s]>=i){const n=A[s]-i,o=this.curves[s],a=o.getLength();return o.getPointAt(a===0?0:1-n/a,e)}s++}return e}updateLengths(){const t=[];for(let e=0,i=0,A=this.curves.length;e<A;e++)i+=this.curves[e].getLength(),t.push(i);this._arcLengths=t}getControlPointRefs(){return this.curves.flatMap(t=>t.getControlPointRefs())}_removeNextPointIfEqualPrevPoint(t,e){const i=[t[e-1],t[e]],A=[t[e+1],t[e+2]];return i[0]===A[0]&&i[1]===A[1]&&t.splice(e+1,2),t}getSpacedVertices(t=5,e=[]){let i;return this.curves.forEach(A=>{A.getSpacedVertices(t,e),i&&this._removeNextPointIfEqualPrevPoint(e,i),i=e.length-1}),e}getAdaptiveVertices(t=[]){let e;return this.curves.forEach(i=>{i.getAdaptiveVertices(t),e&&this._removeNextPointIfEqualPrevPoint(t,e),e=t.length-1}),t}strokeTriangulate(t){return this.curves.length===1?this.curves[0].strokeTriangulate(t):super.strokeTriangulate(t)}getFillVertices(t){if(this.curves.length===1)return this.curves[0].getFillVertices(t);{const e=[];let i;return this.curves.forEach(A=>{let s;A instanceof We?s=A.getAdaptiveVertices():s=A.getFillVertices(t),e.push(...s),i&&this._removeNextPointIfEqualPrevPoint(e,i),i=e.length-1}),e}}applyTransform(t){return this.curves.forEach(e=>e.applyTransform(t)),this}getMinMax(t=J.MAX,e=J.MIN){return this.curves.forEach(i=>i.getMinMax(t,e)),{min:t.finite(),max:e.finite()}}getBoundingBox(){const{min:t,max:e}=this.getMinMax();return new lt(t.x,t.y,e.x-t.x,e.y-t.y)}toCommands(){return this.curves.flatMap(t=>t.toCommands())}drawTo(t){const e=this.curves[0]?.getPoint(0);return e&&t.moveTo(e.x,e.y),this.curves.forEach(i=>i.drawTo(t)),this}copy(t){return super.copy(t),this.curves=t.curves.map(e=>e.clone()),this}}class Xs extends Ti{constructor(t=new J,e=new J,i=new J,A=new J){super(),this.p1=t,this.cp1=e,this.cp2=i,this.p2=A}static from(t,e,i,A,s,n,o,a){return new Xs(new J(t,e),new J(i,A),new J(s,n),new J(o,a))}getPoint(t,e=new J){const{p1:i,cp1:A,cp2:s,p2:n}=this;return e.set(La(t,i.x,A.x,s.x,n.x),La(t,i.y,A.y,s.y,n.y))}getAdaptiveVertices(t=[]){return wu(this.p1.x,this.p1.y,this.cp1.x,this.cp1.y,this.cp2.x,this.cp2.y,this.p2.x,this.p2.y,.5,t)}getControlPointRefs(){return[this.p1,this.cp1,this.cp2,this.p2]}_solveQuadratic(t,e,i){const A=e*e-4*t*i;if(A<0)return[];const s=Math.sqrt(A),n=(-e+s)/(2*t),o=(-e-s)/(2*t);return[n,o].filter(a=>a>=0&&a<=1)}getMinMax(t=J.MAX,e=J.MIN){const{p1:i,cp1:A,cp2:s,p2:n}=this,o=this._solveQuadratic(3*(A.x-i.x),6*(s.x-A.x),3*(n.x-s.x)),a=this._solveQuadratic(3*(A.y-i.y),6*(s.y-A.y),3*(n.y-s.y)),l=[0,1,...o,...a];return((h,u)=>{for(const d of h)for(let f=0;f<=u;f++){const B=f/u-.5,p=Math.min(1,Math.max(0,d+B)),R=this.getPoint(p);t.x=Math.min(t.x,R.x),t.y=Math.min(t.y,R.y),e.x=Math.max(e.x,R.x),e.y=Math.max(e.y,R.y)}})(l,10),{min:t.finite(),max:e.finite()}}toCommands(){const{p1:t,cp1:e,cp2:i,p2:A}=this;return[{type:"M",x:t.x,y:t.y},{type:"C",x1:e.x,y1:e.y,x2:i.x,y2:i.y,x:A.x,y:A.y}]}drawTo(t){const{p1:e,cp1:i,cp2:A,p2:s}=this;return t.lineTo(e.x,e.y),t.bezierCurveTo(i.x,i.y,A.x,A.y,s.x,s.y),this}copy(t){return super.copy(t),this.p1.copy(t.p1),this.cp1.copy(t.cp1),this.cp2.copy(t.cp2),this.p2.copy(t.p2),this}}class Hu extends qs{constructor(t=0,e=0,i=1,A=1,s=0,n=0,o=Math.PI*2,a=!1){super(new J(t,e),new J(i,A),new J,s,n,o,a)}drawTo(t){return t.ellipse(this.cx,this.cy,this.rx,this.ry,this.rotate,this.startAngle,this.endAngle,!this.clockwise),this}}class Ju extends mA{}class js extends Ti{constructor(t=new J,e=new J,i=new J){super(),this.p1=t,this.cp=e,this.p2=i}static from(t,e,i,A,s,n){return new js(new J(t,e),new J(i,A),new J(s,n))}getPoint(t,e=new J){const{p1:i,cp:A,p2:s}=this;return e.set(Oa(t,i.x,A.x,s.x),Oa(t,i.y,A.y,s.y)),e}getControlPointRefs(){return[this.p1,this.cp,this.p2]}getAdaptiveVertices(t=[]){return Du(this.p1.x,this.p1.y,this.cp.x,this.cp.y,this.p2.x,this.p2.y,.5,t)}getMinMax(t=J.MAX,e=J.MIN){const{p1:i,cp:A,p2:s}=this,n=.5*(i.x+A.x),o=.5*(i.y+A.y),a=.5*(i.x+s.x),l=.5*(i.y+s.y);return t.x=Math.min(t.x,i.x,s.x,n,a),t.y=Math.min(t.y,i.y,s.y,o,l),e.x=Math.max(e.x,i.x,s.x,n,a),e.y=Math.max(e.y,i.y,s.y,o,l),{min:t.finite(),max:e.finite()}}toCommands(){const{p1:t,cp:e,p2:i}=this;return[{type:"M",x:t.x,y:t.y},{type:"Q",x1:e.x,y1:e.y,x:i.x,y:i.y}]}drawTo(t){const{p1:e,cp:i,p2:A}=this;return t.lineTo(e.x,e.y),t.quadraticCurveTo(i.x,i.y,A.x,A.y),this}copy(t){return super.copy(t),this.p1.copy(t.p1),this.cp.copy(t.cp),this.p2.copy(t.p2),this}}class Ku extends Ju{constructor(t=0,e=0,i=0,A=0){super(),this.x=t,this.y=e,this.width=i,this.height=A,this.update()}update(){const{x:t,y:e,width:i,height:A}=this,s=[new J(t,e),new J(t+i,e),new J(t+i,e+A),new J(t,e+A)];return this.curves=[new We(s[0],s[1]),new We(s[1],s[2]),new We(s[2],s[3]),new We(s[3],s[0])],this}drawTo(t){return t.rect(this.x,this.y,this.width,this.height),this}getFillVertices(t={}){const{x:e,y:i,width:A,height:s}=this;return[e,i,e+A,i,e+A,i+s,e,i+s]}copy(t){return super.copy(t),this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.update(),this}}class Yu extends qs{constructor(t=0,e=0,i=1,A=1,s=1){super(),this.x=t,this.y=e,this.width=i,this.height=A,this.radius=s,this.update()}update(){const{x:t,y:e,width:i,height:A,radius:s}=this,n=i/2,o=A/2,a=t+n,l=e+o,c=Math.max(0,Math.min(s,Math.min(n,o))),h=c;return this._center=new J(a,l),this._radius=new J(c,h),this._diff=new J(n-c,o-h),this}drawTo(t){const{x:e,y:i,width:A,height:s,radius:n}=this;return t.roundRect(e,i,A,s,n),this}copy(t){return super.copy(t),this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.radius=t.radius,this.update(),this}}class Vu extends Ti{constructor(t=[]){super(),this.points=t}getPoint(t,e=new J){const{points:i}=this,A=(i.length-1)*t,s=Math.floor(A),n=A-s,o=i[s===0?s:s-1],a=i[s],l=i[s>i.length-2?i.length-1:s+1],c=i[s>i.length-3?i.length-1:s+2];return e.set(Ta(n,o.x,a.x,l.x,c.x),Ta(n,o.y,a.y,l.y,c.y)),e}getControlPointRefs(){return this.points}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e<i;e++)this.points.push(t.points[e].clone());return this}}class pr extends mA{startPoint;currentPoint;autoClose=!1;constructor(t){super(),t&&this.addPoints(t)}addPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,i=t.length;e<i;e++){const{x:A,y:s}=t[e];this.lineTo(A,s)}return this}addCommands(t){return xa(t,this),this}addData(t){return this.addCommands(Sa(t)),this}_closeVertices(t){return this.autoClose&&t.length>=4&&t[0]!==t[t.length-2]&&t[1]!==t[t.length-1]&&t.push(t[0],t[1]),t}getUnevenVertices(t=40,e=[]){return this._closeVertices(super.getUnevenVertices(t,e))}getSpacedVertices(t=40,e=[]){return this._closeVertices(super.getSpacedVertices(t,e))}getAdaptiveVertices(t=[]){return this._closeVertices(super.getAdaptiveVertices(t))}getFillVertices(t){return this._closeVertices(super.getFillVertices(t))}_setCurrentPoint(t){return this.currentPoint=new J(t.x,t.y),this.startPoint||(this.startPoint=this.currentPoint.clone()),this}_connetLineTo(t){if(this.curves.length>0){const e=t.getPoint(0);(!this.currentPoint||!e.equals(this.currentPoint))&&this.lineTo(e.x,e.y)}return this}closePath(){const t=this.startPoint;if(t){const e=this.currentPoint;e&&!t.equals(e)&&(this.curves.push(new We(e.clone(),t.clone())),e.copy(t)),this.startPoint=void 0}return this}moveTo(t,e){return this.currentPoint=new J(t,e),this.startPoint=this.currentPoint.clone(),this}lineTo(t,e){const i=this.currentPoint;return i?.equals({x:t,y:e})||this.curves.push(We.from(i?.x??0,i?.y??0,t,e)),this._setCurrentPoint({x:t,y:e}),this}bezierCurveTo(t,e,i,A,s,n){const o=this.currentPoint;return o?.equals({x:s,y:n})||this.curves.push(Xs.from(o?.x??0,o?.y??0,t,e,i,A,s,n)),this._setCurrentPoint({x:s,y:n}),this}quadraticCurveTo(t,e,i,A){const s=this.currentPoint;return s?.equals({x:i,y:A})||this.curves.push(js.from(s?.x??0,s?.y??0,t,e,i,A)),this._setCurrentPoint({x:i,y:A}),this}arc(t,e,i,A,s,n){const o=new Ou(t,e,i,A,s,!n);return this._connetLineTo(o),this.curves.push(o),this._setCurrentPoint(o.getPoint(1)),this}relativeArc(t,e,i,A,s,n){return t+=this.currentPoint?.x??0,e+=this.currentPoint?.y??0,this.arc(t,e,i,A,s,n),this}arcTo(t,e,i,A,s){return console.warn("Method arcTo not supported yet"),this}ellipse(t,e,i,A,s,n,o,a=!0){const l=new Hu(t,e,i,A,s,n,o,!a);return this._connetLineTo(l),this.curves.push(l),this._setCurrentPoint(l.getPoint(1)),this}relativeEllipse(t,e,i,A,s,n,o,a){return t+=this.currentPoint?.x??0,e+=this.currentPoint?.y??0,this.ellipse(t,e,i,A,s,n,o,a),this}rect(t,e,i,A){const s=new Ku(t,e,i,A);return this._connetLineTo(s),this.curves.push(s),this._setCurrentPoint({x:t,y:e}),this}roundRect(t,e,i,A,s){const n=new Yu(t,e,i,A,s);return this._connetLineTo(n),this.curves.push(n),this._setCurrentPoint({x:t,y:e}),this}splineThru(t){const e=this.currentPoint??new J;return this.curves.push(new Vu([e].concat(t))),this._setCurrentPoint(t[t.length-1]),this}drawTo(t){const e=this.curves[0]?.getPoint(0);return e&&t.moveTo(e.x,e.y),this.curves.forEach(i=>i.drawTo(t)),this.autoClose&&t.closePath(),this}copy(t){return super.copy(t),this.autoClose=t.autoClose,this.currentPoint=t.currentPoint?.clone(),this}}function zu(r){return r.replace(/[^a-z0-9]/gi,"-").replace(/\B([A-Z])/g,"-$1").toLowerCase()}function Wu(r,t,e,i){const A=t.clone().sub(r),s=i.clone().sub(e),n=e.clone().sub(r),o=A.cross(s);if(o===0)return new J((r.x+e.x)/2,(r.y+e.y)/2);const a=n.cross(s)/o;return Math.abs(a)>1?new J((r.x+e.x)/2,(r.y+e.y)/2):new J(r.x+a*A.x,r.y+a*A.y)}class Rt extends mA{currentCurve=new pr;style;get startPoint(){return this.currentCurve.startPoint}get currentPoint(){return this.currentCurve.currentPoint}get strokeWidth(){return this.style.strokeWidth??((this.style.stroke??"none")==="none"?0:1)}constructor(t,e={}){super(),this.curves.push(this.currentCurve),this.style=e,t&&(t instanceof Rt?this.addPath(t):Array.isArray(t)?this.addCommands(t):this.addData(t))}addPath(t){const e=this.curves.findIndex(i=>i===this.currentCurve);return e>-1&&this.curves.splice(e,1),t instanceof Rt?this.curves.push(...t.curves.filter(i=>i.curves.length).map(i=>i.clone())):t.curves.length&&this.curves.push(t),this.curves.push(this.currentCurve),this}closePath(){const t=this.startPoint;return t&&(this.currentCurve.closePath(),this.currentCurve.curves.length&&(this.currentCurve=new pr().moveTo(t.x,t.y),this.curves.push(this.currentCurve))),this}moveTo(t,e){return this.currentCurve.currentPoint?.equals({x:t,y:e})||(this.currentCurve.curves.length&&(this.currentCurve=new pr,this.curves.push(this.currentCurve)),this.currentCurve.moveTo(t,e)),this}lineTo(t,e){return this.currentCurve.lineTo(t,e),this}bezierCurveTo(t,e,i,A,s,n){return this.currentCurve.bezierCurveTo(t,e,i,A,s,n),this}quadraticCurveTo(t,e,i,A){return this.currentCurve.quadraticCurveTo(t,e,i,A),this}arc(t,e,i,A,s,n){return this.currentCurve.arc(t,e,i,A,s,n),this}arcTo(t,e,i,A,s){return this.currentCurve.arcTo(t,e,i,A,s),this}ellipse(t,e,i,A,s,n,o,a){return this.currentCurve.ellipse(t,e,i,A,s,n,o,a),this}rect(t,e,i,A){return this.currentCurve.rect(t,e,i,A),this}roundRect(t,e,i,A,s){return this.currentCurve.roundRect(t,e,i,A,s),this}reset(){return this.currentCurve=new pr,this.curves=[this.currentCurve],this.style={},this}addCommands(t){return xa(t,this),this}addData(t){return this.addCommands(Sa(t)),this}splineThru(t){return this.currentCurve.splineThru(t),this}scale(t,e=t,i={x:0,y:0}){return this.getControlPointRefs().forEach(A=>{A.scale(t,e,i)}),this}skew(t,e=0,i={x:0,y:0}){return this.getControlPointRefs().forEach(A=>{A.skew(t,e,i)}),this}rotate(t,e={x:0,y:0}){return this.getControlPointRefs().forEach(i=>{i.rotate(t,e)}),this}bold(t){if(t===0)return this;const e=this.getFlatCurves(),i=[],A=[],s=[];e.forEach((o,a)=>{const l=o.getControlPointRefs(),c=o.isClockwise();s[a]=l,A[a]=c;const h=l[0],u=l[l.length-1]??h;i.push({start:c?u:h,end:c?h:u,index:a})});const n=[];return i.forEach((o,a)=>{n[a]=[],i.forEach((l,c)=>{l.start&&o.end&&c!==a&&l.start?.equals(o.end)&&n[a].push(l.index)})}),e.forEach((o,a)=>{const l=A[a];s[a].forEach(c=>{c.add(o.getNormal(o.getTForPoint(c)).scale(l?t:-t))})}),n.forEach((o,a)=>{const l=s[a];o.forEach(c=>{const h=s[c],u=Wu(l[l.length-1],l[l.length-2]??l[l.length-1],h[0],h[1]??h[0]);u&&(l[l.length-1].copy(u),h[0].copy(u))})}),this}getMinMax(t=J.MAX,e=J.MIN,i=!0){const A=this.strokeWidth;return this.curves.forEach(s=>{if(s.getMinMax(t,e),i&&A>1){const n=A/2,o=s.isClockwise(),a=[];for(let l=0;l<=1;l+=1/s.arcLengthDivision){const c=s.getPoint(l),h=s.getNormal(l),u=h.clone().scale(o?n:-n),d=h.clone().scale(o?-n:n);a.push(c.clone().add(u),c.clone().add(d),c.clone().add({x:n,y:0}),c.clone().add({x:-n,y:0}),c.clone().add({x:0,y:n}),c.clone().add({x:0,y:-n}),c.clone().add({x:n,y:n}),c.clone().add({x:-n,y:-n}))}t.min(...a),e.max(...a)}}),{min:t.finite(),max:e.finite()}}strokeTriangulate(t){const e=t?.indices??[],i=t?.vertices??[];return this.curves.forEach(A=>{A.strokeTriangulate({...t,indices:e,vertices:i,style:{...this.style}})}),{indices:e,vertices:i}}fillTriangulate(t){const e={...t,style:{...this.style,...t?.style}},i=e.indices??[],A=e.vertices??[];if((e.style.fillRule??"nonzero")==="nonzero"){const n=this.curves.map(l=>l.getFillVertices(e)),o=new Map,a=new Set;for(let l=0;l<n.length;l++){const c=[];for(let h=0;h<n.length;h++)l!==h&&xu([n[l][0],n[l][1]],n[h])&&c.push(h);c.length&&(c.forEach(h=>{let u=o.get(h);u||(u=new Set,o.set(h,u)),u.add(l)}),a.add(l))}n.forEach((l,c)=>{if(a.has(c)||!l.length)return;const h=l.slice(),u=[];o.get(c)?.forEach(d=>{u.push(h.length/2),h.push(...n[d])}),Ga(h,{...t,indices:i,vertices:A,holes:u,style:{...this.style}})})}else this.curves.forEach(n=>{n.fillTriangulate({...t,indices:i,vertices:A,style:{...this.style}})});return{indices:i,vertices:A}}getBoundingBox(t=!0){const{min:e,max:i}=this.getMinMax(void 0,void 0,t);return new lt(e.x,e.y,i.x-e.x,i.y-e.y)}drawTo(t,e={}){e={...this.style,...e};const{fill:i="#000",stroke:A="none"}=e;return t.beginPath(),t.save(),Hs(t,e),this.curves.forEach(s=>{s.drawTo(t)}),i!=="none"&&t.fill(),A!=="none"&&t.stroke(),t.restore(),this}drawControlPointsTo(t,e={}){e={...this.style,...e};const{fill:i="#000",stroke:A="none"}=e;return t.beginPath(),t.save(),Hs(t,e),this.getControlPointRefs().forEach(s=>{Zg(t,s.x,s.y,{radius:4})}),i!=="none"&&t.fill(),A!=="none"&&t.stroke(),t.restore(),this}toCommands(){return this.curves.flatMap(t=>t.toCommands())}toData(){return this.curves.filter(t=>t.curves.length).map(t=>t.toData()).join(" ")}toSvgPathString(){const t={...this.style,fill:this.style.fill??"#000",stroke:this.style.stroke??"none"},e={};for(const A in t)t[A]!==void 0&&(e[zu(A)]=t[A]);Object.assign(e,{"stroke-width":`${this.strokeWidth}px`});let i="";for(const A in e)e[A]!==void 0&&(i+=`${A}:${e[A]};`);return`<path d="${this.toData()}" style="${i}"></path>`}copy(t){return super.copy(t),this.currentCurve=t.currentCurve.clone(),this.style={...t.style},this}}class Ai{constructor(t=[],e){this.paths=t,this.viewBox=e}getBoundingBox(t=!0){if(!this.paths.length)return;const e=J.MAX,i=J.MIN;return this.paths.forEach(A=>A.getMinMax(e,i,t)),new lt(e.x,e.y,i.x-e.x,i.y-e.y)}toTriangulatedSvgString(t=this.paths.map(i=>i.fillTriangulate()),e=0){let i="";const A={x:-e,y:-e},s={x:e,y:e};(Array.isArray(t)?t:[t]).forEach(({vertices:a,indices:l})=>{const c=h=>{const u=a[h*2],d=a[h*2+1];return A.x=Math.min(A.x,u+e),s.x=Math.max(s.x,u+e),A.y=Math.min(A.y,d+e),s.y=Math.max(s.y,d+e),[u,d]};for(let h=0,u=l.length;h<u;h+=3){const d=c(l[h]),f=c(l[h+1]),B=c(l[h+2]);i+=`<polygon points="${d.join(",")} ${f.join(",")} ${B.join(",")}" fill="black" />`}});const o=[A.x,A.y,s.x-A.x,s.y-A.y];return`<svg width="${o[2]}" height="${o[3]}" viewBox="${o.join(" ")}" xmlns="http://www.w3.org/2000/svg">${i}</svg>`}toTriangulatedSvg(t,e){return new DOMParser().parseFromString(this.toTriangulatedSvgString(t,e),"image/svg+xml").documentElement}toSvgString(){const{x:t,y:e,width:i,height:A}=this.getBoundingBox(),s=this.paths.map(n=>n.toSvgPathString()).join("");return`<svg viewBox="${t} ${e} ${i} ${A}" width="${i}px" height="${A}px" xmlns="http://www.w3.org/2000/svg">${s}</svg>`}toSvgUrl(){return`data:image/svg+xml;base64,${btoa(this.toSvgString())}`}toSvg(){return new DOMParser().parseFromString(this.toSvgString(),"image/svg+xml").documentElement}toCanvas(t={}){const{pixelRatio:e=2,...i}=t,{left:A,top:s,width:n,height:o}=this.getBoundingBox(),a=document.createElement("canvas");a.width=n*e,a.height=o*e,a.style.width=`${n}px`,a.style.height=`${o}px`;const l=a.getContext("2d");return l&&(l.scale(e,e),l.translate(-A,-s),this.paths.forEach(c=>{c.drawTo(l,i)})),a}}class qa extends Rt{fillStyle;strokeStyle;lineCap;lineJoin;lineWidth;miterLimit;uvTransform;vertTransform;_defaultStyle=mt.EMPTY;_draws=[];_toTexture(t){return t instanceof mt?t:new ga(t)}stroke(t){const e=new Rt(this);let i=this._defaultStyle;this.strokeStyle&&(i=this._toTexture(this.strokeStyle)),this.curves.length&&(this._draws.push({...t,type:"stroke",path:e,texture:i,uvTransform:this.uvTransform,vertTransform:this.vertTransform,style:{alignment:.5,cap:this.lineCap??"butt",join:this.lineJoin??"miter",width:this.lineWidth??1,miterLimit:this.miterLimit??10}}),super.reset())}fillRect(t,e,i,A){this.rect(t,e,i,A).fill()}strokeRect(t,e,i,A){this.rect(t,e,i,A).stroke()}fill(t){const e=new Rt(this);let i=this._defaultStyle;this.fillStyle&&(i=this._toTexture(this.fillStyle)),this._draws.push({...t,type:"fill",path:e,texture:i,uvTransform:this.uvTransform,vertTransform:this.vertTransform}),super.reset()}copy(t){return super.copy(t),this.strokeStyle=t.strokeStyle,this.fillStyle=t.fillStyle,this.uvTransform=t.uvTransform,this.vertTransform=t.vertTransform,this.lineCap=t.lineCap,this.lineJoin=t.lineJoin,this.lineWidth=t.lineWidth,this.miterLimit=t.miterLimit,this._draws=t._draws.slice(),this}reset(){return super.reset(),this.strokeStyle=void 0,this.fillStyle=void 0,this.uvTransform=void 0,this.vertTransform=void 0,this.lineCap=void 0,this.lineJoin=void 0,this.lineWidth=void 0,this.miterLimit=void 0,this._draws.length=0,this}buildUvs(t,e,i,A,s){if(A){const n=s&&(typeof s=="function"?s:(l,c)=>s.applyToPoint(l,c)),o=A.width,a=A.height;for(let l=e.length,c=t;c<l;c+=2){const h=e[c],u=e[c+1];let d,f;n?[d,f]=n(h,u):[d,f]=[h/o,u/a],i.push(d,f)}}else for(let n=e.length,o=t;o<n;o+=2)i.push(0,0)}toBatchables(){const t=[];for(let e=this._draws.length,i=0;i<e;i++){const A=this._draws[i],s=[],n=[],o=[];A.type==="fill"?A.path.fillTriangulate({vertices:s,indices:n}):A.path.strokeTriangulate({vertices:s,indices:n,lineStyle:A.style,flipAlignment:!1,closed:!0}),this.buildUvs(0,s,o,A.texture,A.uvTransform),t.push({vertices:s,indices:n,uvs:o,texture:A.texture,type:A.type,disableWrapMode:A.disableWrapMode,vertTransform:A.vertTransform})}return t}}var qu=Object.defineProperty,Xu=Object.getOwnPropertyDescriptor,wA=(r,t,e,i)=>{for(var A=i>1?void 0:i?Xu(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&qu(t,e,A),A};g.CanvasItem=class extends g.TimelineNode{_parentGlobalVisible;_globalVisible;get globalVisible(){return this._globalVisible??!0}_parentGlobalOpacity;_globalOpacity;get globalOpacity(){return this._globalOpacity??1}_modulate=new Je(4294967295);context=new qa;_resetContext=!0;_redrawing=!0;_relayouting=!1;_repainting=!1;_originalBatchables=[];_layoutedBatchables=[];_batchables=[];constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"modulate":this._modulate.value=e,this.requestRepaint();break;case"blendMode":this.requestRepaint();break;case"opacity":this._updateGlobalOpacity();break;case"visible":case"insideTimeRange":this._updateGlobalVisible();break}}show(){this.visible=!0}hide(){this.visible=!1}isVisibleInTree(){return this.globalOpacity>0&&this.globalVisible}canRender(){return super.canRender()&&this.isVisibleInTree()}requestRedraw(){this._redrawing=!0,this.requestUpdate()}requestRelayout(){this._relayouting=!0,this.requestUpdate()}requestRepaint(){this._repainting=!0,this.requestUpdate()}_updateGlobalVisible(){this._parentGlobalVisible=this.getParent()?.globalVisible,this._globalVisible=(this._parentGlobalVisible??!0)&&this.visible&&this.insideTimeRange}_updateGlobalOpacity(){this._parentGlobalOpacity=this.getParent()?.opacity;const t=Ke(0,this.opacity,1)*(this._parentGlobalOpacity??1);this._globalOpacity!==t&&(this._globalOpacity=t,this.requestRepaint())}_draw(){this.emit("draw")}_redraw(){return this._tree?.log(this.name,"drawing"),this._draw(),this.context.toBatchables()}_relayout(t){return this._tree?.log(this.name,"layouting"),t}_repaint(t){return this._tree?.log(this.name,"painting"),t.map(e=>({...e,modulate:this._modulate.toArgb(this.globalOpacity,!0),blendMode:this.blendMode}))}_process(t){super._process(t);const e=this.getParent();this._parentGlobalVisible!==e?.globalVisible&&this.requestUpdate(),this._parentGlobalOpacity!==e?.globalOpacity&&this.requestUpdate()}_update(t){super._update(t);const e=this.getParent();this._parentGlobalVisible!==e?.globalVisible&&this._updateGlobalVisible(),this._parentGlobalOpacity!==e?.globalOpacity&&this._updateGlobalOpacity();const i=this._redrawing;let A=this._relayouting,s=this._repainting,n;i&&(this._originalBatchables=this._redraw(),A=!0),A&&(this._layoutedBatchables=this._relayout(this._originalBatchables),s=!0),s&&(n=this._repaint(this._layoutedBatchables)),i&&this._resetContext&&this.context.reset(),n&&(this._batchables=n,this._redrawing=!1,this._relayouting=!1,this._repainting=!1)}_render(t){this._batchables.forEach(e=>{e.texture?.upload(t),t.batch2D.render({...e,texture:e.texture?._glTexture(t)})}),super._render(t)}},wA([_()],g.CanvasItem.prototype,"modulate",2),wA([_()],g.CanvasItem.prototype,"blendMode",2),wA([_({protected:!0,fallback:!0})],g.CanvasItem.prototype,"visible",2),wA([_({protected:!0,fallback:1})],g.CanvasItem.prototype,"opacity",2),g.CanvasItem=wA([nt("CanvasItem")],g.CanvasItem);class ju{currentCall;calls=[];createCall(t){return{renderable:t,parentCall:this.currentCall,fn:t.render.bind(t),calls:[]}}push(t){const e=this.createCall(t);return(this.currentCall?.calls??this.calls).push(e),e}render(t){this.calls.forEach(function e(i){i.fn(t,()=>{i.calls.forEach(e)})}),this.calls=[]}}var Zu=Object.defineProperty,$u=Object.getOwnPropertyDescriptor,vA=(r,t,e,i)=>{for(var A=i>1?void 0:i?$u(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Zu(t,e,A),A};g.Timeline=class extends g.Node{static from(t,e=!1){const[i,A]=t?Array.isArray(t)?t:[0,t]:[];return new g.Timeline({startTime:i,endTime:A,loop:e})}constructor(t){super(),this.setProperties(t)}_updateProperty(t,e,i){switch(super._updateProperty(t,e,i),t){case"startTime":this.startTime=Math.min(e,this.endTime);break;case"endTime":this.endTime=e||Number.MAX_SAFE_INTEGER;break}}addTime(t){const e=this.startTime,i=this.endTime;let A=this.currentTime;return A=A+t,this.loop&&A>i&&(A=e+A%i),A=Ke(e,A,i),this.currentTime=A,this.emit("updateCurrentTime",A,t),this}_process(t){super._process(t),this.addTime(t)}},vA([_({fallback:0})],g.Timeline.prototype,"startTime",2),vA([_({fallback:0})],g.Timeline.prototype,"currentTime",2),vA([_({fallback:Number.MAX_SAFE_INTEGER})],g.Timeline.prototype,"endTime",2),vA([_({fallback:!1})],g.Timeline.prototype,"loop",2),g.Timeline=vA([nt("Timeline")],g.Timeline);var tf=Object.defineProperty,Zs=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&tf(t,e,A),A};class _A extends ar{input=new Lo;renderStack=new ju;root=new g.Viewport(!0).setTree(this);timeline;nodes=new Map;_backgroundColor=new Je;_currentViewport;getCurrentViewport(){return this._currentViewport}setCurrentViewport(t){this._currentViewport=t}constructor(t=new g.Timeline){super(),this.timeline=t.setTree(this)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"backgroundColor":this._backgroundColor.value=e;break}}log(...t){this.debug&&console.log("[modern-canvas]",...t)}_process(t=0){this.timeline.emit("process",t),this.emit("processing"),this.root.emit("process",t),this.emit("processed")}_render(t){this.emit("rendering"),t.program.uniforms.projectionMatrix=this.root.toProjectionArray(!0),this.renderStack.render(t),this._renderScreen(t),this.emit("rendered")}_renderScreen(t){t.state.reset(),t.framebuffer.bind(null),t.viewport.bind({x:0,y:0,width:this.root.width*t.pixelRatio,height:this.root.height*t.pixelRatio}),this.backgroundColor&&t.gl.clearColor(...this._backgroundColor.toArray()),t.clear(),this.backgroundColor&&t.gl.clearColor(0,0,0,0);const e=this.root.texture;e.activate(t,0),gt.draw(t),t.texture.unbind(e)}free(){super.free(),this.root.children.internal.forEach(t=>this.root.removeChild(t)),this.input.removeEventListeners()}}Zs([_({fallback:!1})],_A.prototype,"processPaused"),Zs([_()],_A.prototype,"backgroundColor"),Zs([_({protected:!0,fallback:!1})],_A.prototype,"debug");var ef=Object.getOwnPropertyDescriptor,Af=(r,t,e,i)=>{for(var A=i>1?void 0:i?ef(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.Transition=class extends g.Effect{constructor(t,e=[]){super(),this.setProperties(t).append(e)}},g.Transition=Af([nt("Transition",{effectMode:"transition",processMode:"pausable",duration:2e3})],g.Transition);var Xa=Object.defineProperty,rf=Object.getOwnPropertyDescriptor,sf=(r,t,e)=>t in r?Xa(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,$s=(r,t,e,i)=>{for(var A=i>1?void 0:i?rf(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Xa(t,e,A),A},ja=(r,t,e)=>sf(r,typeof t!="symbol"?t+"":t,e);const Za=`varying vec2 vUv[9];
|
|
277
|
+
${t}`);return e.documentElement}else return r}const Au="px",ru=90,Pa=["mm","cm","in","pt","pc","px"],Ua={mm:{mm:1,cm:.1,in:1/25.4,pt:72/25.4,pc:6/25.4,px:-1},cm:{mm:10,cm:1,in:1/2.54,pt:72/2.54,pc:6/2.54,px:-1},in:{mm:25.4,cm:2.54,in:1,pt:72,pc:6,px:-1},pt:{mm:25.4/72,cm:2.54/72,in:1/72,pt:1,pc:6/72,px:-1},pc:{mm:25.4/6,cm:2.54/6,in:1/6,pt:72/6,pc:1,px:-1},px:{px:1}};function It(r){let t="px";if(typeof r=="string")for(let i=0,A=Pa.length;i<A;i++){const s=Pa[i];if(r.endsWith(s)){t=s,r=r.substring(0,r.length-s.length);break}}let e;return e=Ua[t][Au],e<0&&(e=Ua[t].in*ru),e*Number.parseFloat(r)}const su=new Lt,fr=new Lt,Na=new Lt,Fa=new Lt;function nu(r,t,e){if(!(r.hasAttribute("transform")||r.nodeName==="use"&&(r.hasAttribute("x")||r.hasAttribute("y"))))return null;const i=ou(r);return e.length>0&&i.premultiply(e[e.length-1]),t.copy(i),e.push(i),i}function ou(r){const t=new Lt,e=su;if(r.nodeName==="use"&&(r.hasAttribute("x")||r.hasAttribute("y"))&&t.translate(It(r.getAttribute("x")),It(r.getAttribute("y"))),r.hasAttribute("transform")){const i=r.getAttribute("transform").split(")");for(let A=i.length-1;A>=0;A--){const s=i[A].trim();if(s==="")continue;const n=s.indexOf("("),o=s.length;if(n>0&&n<o){const a=s.slice(0,n),l=De(s.slice(n+1));switch(e.identity(),a){case"translate":if(l.length>=1){const c=l[0];let h=0;l.length>=2&&(h=l[1]),e.translate(c,h)}break;case"rotate":if(l.length>=1){let c=0,h=0,u=0;c=l[0]*Math.PI/180,l.length>=3&&(h=l[1],u=l[2]),fr.makeTranslation(-h,-u),Na.makeRotation(c),Fa.multiplyMatrices(Na,fr),fr.makeTranslation(h,u),e.multiplyMatrices(fr,Fa)}break;case"scale":l.length>=1&&e.scale(l[0],l[1]??l[0]);break;case"skewX":l.length===1&&e.set(1,Math.tan(l[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":l.length===1&&e.set(1,0,0,Math.tan(l[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":l.length===6&&e.set(l[0],l[2],l[4],l[1],l[3],l[5],0,0,1);break}}t.premultiply(e)}}return t}function au(r){return new Rt().arc(It(r.getAttribute("cx")||0),It(r.getAttribute("cy")||0),It(r.getAttribute("r")||0),0,Math.PI*2)}function lu(r,t){if(!(!r.sheet||!r.sheet.cssRules||!r.sheet.cssRules.length))for(let e=0;e<r.sheet.cssRules.length;e++){const i=r.sheet.cssRules[e];if(i.type!==1)continue;const A=i.selectorText.split(/,/g).filter(Boolean).map(n=>n.trim()),s={};for(let n=i.style.length,o=0;o<n;o++){const a=i.style.item(o);s[a]=i.style.getPropertyValue(a)}for(let n=0;n<A.length;n++)t[A[n]]=Object.assign(t[A[n]]||{},{...s})}}function cu(r){return new Rt().ellipse(It(r.getAttribute("cx")||0),It(r.getAttribute("cy")||0),It(r.getAttribute("rx")||0),It(r.getAttribute("ry")||0),0,0,Math.PI*2)}function hu(r){return new Rt().moveTo(It(r.getAttribute("x1")||0),It(r.getAttribute("y1")||0)).lineTo(It(r.getAttribute("x2")||0),It(r.getAttribute("y2")||0))}function gu(r){const t=new Rt,e=r.getAttribute("d");return!e||e==="none"?null:(t.addData(e),t)}const uu=/([+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g;function fu(r){const t=new Rt;let e=0;return r.getAttribute("points")?.replace(uu,(i,A,s)=>{const n=It(A),o=It(s);return e===0?t.moveTo(n,o):t.lineTo(n,o),e++,i}),t.currentCurve.autoClose=!0,t}const du=/([+-]?(?:\d+(?:\.\d+)?|\.\d+)(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g;function Iu(r){const t=new Rt;let e=0;return r.getAttribute("points")?.replace(du,(i,A,s)=>{const n=It(A),o=It(s);return e===0?t.moveTo(n,o):t.lineTo(n,o),e++,i}),t.currentCurve.autoClose=!1,t}function pu(r){const t=It(r.getAttribute("x")||0),e=It(r.getAttribute("y")||0),i=It(r.getAttribute("rx")||r.getAttribute("ry")||0),A=It(r.getAttribute("ry")||r.getAttribute("rx")||0),s=It(r.getAttribute("width")),n=It(r.getAttribute("height")),o=1-.551915024494,a=new Rt;return a.moveTo(t+i,e),a.lineTo(t+s-i,e),(i!==0||A!==0)&&a.bezierCurveTo(t+s-i*o,e,t+s,e+A*o,t+s,e+A),a.lineTo(t+s,e+n-A),(i!==0||A!==0)&&a.bezierCurveTo(t+s,e+n-A*o,t+s-i*o,e+n,t+s-i,e+n),a.lineTo(t+i,e+n),(i!==0||A!==0)&&a.bezierCurveTo(t+i*o,e+n,t,e+n-A*o,t,e+n-A),a.lineTo(t,e+A),(i!==0||A!==0)&&a.bezierCurveTo(t,e+A*o,t+i*o,e,t+i,e),a}function xe(r,t,e){t=Object.assign({},t);let i={};if(r.hasAttribute("class")){const l=r.getAttribute("class").split(/\s/).filter(Boolean).map(c=>c.trim());for(let c=0;c<l.length;c++)i=Object.assign(i,e[`.${l[c]}`])}r.hasAttribute("id")&&(i=Object.assign(i,e[`#${r.getAttribute("id")}`]));for(let l=r.style.length,c=0;c<l;c++){const h=r.style.item(c),u=r.style.getPropertyValue(h);t[h]=u,i[h]=u}function A(l,c,h=s){r.hasAttribute(l)&&(t[c]=h(r.getAttribute(l))),i[l]&&(t[c]=h(i[l]))}function s(l){return l.startsWith("url")&&console.warn("url access in attributes is not implemented."),l}function n(l){return Math.max(0,Math.min(1,It(l)))}function o(l){return Math.max(0,It(l))}function a(l){return l.split(" ").filter(c=>c!=="").map(c=>It(c))}return A("fill","fill"),A("fill-opacity","fillOpacity",n),A("fill-rule","fillRule"),A("opacity","opacity",n),A("stroke","stroke"),A("stroke-opacity","strokeOpacity",n),A("stroke-width","strokeWidth",o),A("stroke-linecap","strokeLinecap"),A("stroke-linejoin","strokeLinejoin"),A("stroke-miterlimit","strokeMiterlimit",o),A("stroke-dasharray","strokeDasharray",a),A("stroke-dashoffset","strokeDashoffset",It),A("visibility","visibility"),t}function Ys(r,t,e=[],i={}){if(r.nodeType!==1)return e;let A=!1,s=null,n={...t};switch(r.nodeName){case"svg":n=xe(r,n,i);break;case"style":lu(r,i);break;case"g":n=xe(r,n,i);break;case"path":n=xe(r,n,i),r.hasAttribute("d")&&(s=gu(r));break;case"rect":n=xe(r,n,i),s=pu(r);break;case"polygon":n=xe(r,n,i),s=fu(r);break;case"polyline":n=xe(r,n,i),s=Iu(r);break;case"circle":n=xe(r,n,i),s=au(r);break;case"ellipse":n=xe(r,n,i),s=cu(r);break;case"line":n=xe(r,n,i),s=hu(r);break;case"defs":A=!0;break;case"use":{n=xe(r,n,i);const u=(r.getAttributeNS("http://www.w3.org/1999/xlink","href")||r.getAttribute("href")||"").substring(1),d=r.viewportElement?.getElementById(u);d?Ys(d,n,e,i):console.warn(`'use node' references non-existent node id: ${u}`);break}default:console.warn(r);break}if(n.display==="none")return e;const o=new Lt,a=[],l=nu(r,o,a);s&&(s.applyTransform(o),e.push(s),s.style={...n});const c=r.childNodes;for(let h=0,u=c.length;h<u;h++){const d=c[h];A&&d.nodeName!=="style"&&d.nodeName!=="defs"||Ys(d,n,e,i)}return l&&(a.pop(),a.length>0?o.copy(a[a.length-1]):o.identity()),e}function Vs(r){const t=Ks(r);return new Ai(Ys(t,{}),t.getAttribute("viewBox")?.trim().split(" ").map(e=>Number(e)))}function Ta(r,t,e,i,A){const s=(i-t)*.5,n=(A-e)*.5,o=r*r,a=r*o;return(2*e-2*i+s+n)*a+(-3*e+3*i-2*s-n)*o+s*r+e}function Eu(r,t){const e=1-r;return e*e*e*t}function Bu(r,t){const e=1-r;return 3*e*e*r*t}function Cu(r,t){return 3*(1-r)*r*r*t}function Qu(r,t){return r*r*r*t}function La(r,t,e,i,A){return Eu(r,t)+Bu(r,e)+Cu(r,i)+Qu(r,A)}function Ga(r,t={}){let{vertices:e=[],indices:i=[],holes:A=[],verticesStride:s=2,verticesOffset:n=e.length/s,indicesOffset:o=i.length}=t;const a=Ug(r,A,2);if(a.length){for(let c=0;c<a.length;c+=3)i[o++]=a[c]+n,i[o++]=a[c+1]+n,i[o++]=a[c+2]+n;let l=n*s;for(let c=0;c<r.length;c+=2)e[l]=r[c],e[l+1]=r[c+1],l+=s}return{vertices:e,indices:i}}const yu=8,dr=11920929e-14,mu=1;function wu(r,t,e,i,A,s,n,o,a=.5,l=[]){const h=Math.min(.99,Math.max(0,a));let u=(mu-h)/1;return u*=u,zs(r,t,e,i,A,s,n,o,l,u,0),l.push(n,o),l}function zs(r,t,e,i,A,s,n,o,a,l,c){if(c>yu)return;const h=(r+e)/2,u=(t+i)/2,d=(e+A)/2,f=(i+s)/2,B=(A+n)/2,p=(s+o)/2,R=(h+d)/2,P=(u+f)/2,y=(d+B)/2,S=(f+p)/2,Q=(R+y)/2,m=(P+S)/2;if(c>0){let M=n-r,k=o-t;const W=Math.abs((e-n)*k-(i-o)*M),it=Math.abs((A-n)*k-(s-o)*M);if(W>dr&&it>dr){if((W+it)*(W+it)<=l*(M*M+k*k)){a.push(Q,m);return}}else if(W>dr){if(W*W<=l*(M*M+k*k)){a.push(Q,m);return}}else if(it>dr){if(it*it<=l*(M*M+k*k)){a.push(Q,m);return}}else if(M=Q-(r+n)/2,k=m-(t+o)/2,M*M+k*k<=l){a.push(Q,m);return}}zs(r,t,h,u,R,P,Q,m,a,l,c+1),zs(Q,m,y,S,B,p,n,o,a,l,c+1)}const vu=8,_u=11920929e-14,bu=1;function Du(r,t,e,i,A,s,n=.5,o=[]){const l=Math.min(.99,Math.max(0,n));let c=(bu-l)/1;return c*=c,Ws(o,r,t,e,i,A,s,c,0),o.push(A,s),o}function Ws(r,t,e,i,A,s,n,o,a){if(a>vu)return;const l=(t+i)/2,c=(e+A)/2,h=(i+s)/2,u=(A+n)/2,d=(l+h)/2,f=(c+u)/2;let B=s-t,p=n-e;const R=Math.abs((i-s)*p-(A-n)*B);if(R>_u){if(R*R<=o*(B*B+p*p)){r.push(d,f);return}}else if(B=d-(t+s)/2,p=f-(e+n)/2,B*B+p*p<=o){r.push(d,f);return}Ws(r,t,e,l,c,d,f,o,a+1),Ws(r,d,f,h,u,s,n,o,a+1)}function xu(r,t){let e=!1;const[i,A]=r,s=t.length/2;for(let n=0,o=s-1;n<s;o=n++){const a=t[n*2],l=t[n*2+1],c=t[o*2],h=t[o*2+1];l>A!=h>A&&i<(c-a)*(A-l)/(h-l)+a&&(e=!e)}return e}function Su(r,t){const e=1-r;return e*e*t}function Mu(r,t){return 2*(1-r)*r*t}function Ru(r,t){return r*r*t}function Oa(r,t,e,i){return Su(r,t)+Mu(r,e)+Ru(r,i)}const ku=1e-4,Ha=1e-4;function Pu(r,t={}){const{vertices:e=[],indices:i=[],lineStyle:A={alignment:.5,cap:"butt",join:"miter",width:1,miterLimit:10},flipAlignment:s=!1,closed:n=!0}=t,o=ku;if(r.length===0)return{vertices:e,indices:i};const a=A;let l=a.alignment;if(A.alignment!==.5){let N=Uu(r);s&&(N*=-1),l=(l-.5)*N+.5}const c={x:r[0],y:r[1]},h={x:r[r.length-2],y:r[r.length-1]},u=n,d=Math.abs(c.x-h.x)<o&&Math.abs(c.y-h.y)<o;if(u){r=r.slice(),d&&(r.pop(),r.pop(),h.x=r[r.length-2],h.y=r[r.length-1]);const N=(c.x+h.x)*.5,tt=(h.y+c.y)*.5;r.unshift(N,tt),r.push(N,tt)}const f=e,B=r.length/2;let p=r.length;const R=f.length/2,P=a.width/2,y=P*P,S=a.miterLimit*a.miterLimit;let Q=r[0],m=r[1],M=r[2],k=r[3],W=0,it=0,q=-(m-k),Y=Q-M,et=0,H=0,L=Math.sqrt(q*q+Y*Y);q/=L,Y/=L,q*=P,Y*=P;const rt=l,O=(1-rt)*2,X=rt*2;u||(a.cap==="round"?p+=yi(Q-q*(O-X)*.5,m-Y*(O-X)*.5,Q-q*O,m-Y*O,Q+q*X,m+Y*X,f,!0)+2:a.cap==="square"&&(p+=Ja(Q,m,q,Y,O,X,!0,f))),f.push(Q-q*O,m-Y*O),f.push(Q+q*X,m+Y*X);for(let N=1;N<B-1;++N){Q=r[(N-1)*2],m=r[(N-1)*2+1],M=r[N*2],k=r[N*2+1],W=r[(N+1)*2],it=r[(N+1)*2+1],q=-(m-k),Y=Q-M,L=Math.sqrt(q*q+Y*Y),q/=L,Y/=L,q*=P,Y*=P,et=-(k-it),H=M-W,L=Math.sqrt(et*et+H*H),et/=L,H/=L,et*=P,H*=P;const tt=M-Q,b=m-k,D=M-W,F=it-k,V=tt*D+b*F,At=b*D-F*tt,Z=At<0;if(Math.abs(At)<.001*Math.abs(V)){f.push(M-q*O,k-Y*O),f.push(M+q*X,k+Y*X),V>=0&&(a.join==="round"?p+=yi(M,k,M-q*O,k-Y*O,M-et*O,k-H*O,f,!1)+4:p+=2,f.push(M-et*X,k-H*X),f.push(M+et*O,k+H*O));continue}const dt=(-q+Q)*(-Y+k)-(-q+M)*(-Y+m),re=(-et+W)*(-H+k)-(-et+M)*(-H+it),se=(tt*re-D*dt)/At,Ft=(F*dt-b*re)/At,ct=(se-M)*(se-M)+(Ft-k)*(Ft-k),Qt=M+(se-M)*O,Tt=k+(Ft-k)*O,Kt=M-(se-M)*X,_t=k-(Ft-k)*X,$t=Math.min(tt*tt+b*b,D*D+F*F),Te=Z?O:X,jr=$t+Te*Te*y;ct<=jr?a.join==="bevel"||ct/y>S?(Z?(f.push(Qt,Tt),f.push(M+q*X,k+Y*X),f.push(Qt,Tt),f.push(M+et*X,k+H*X)):(f.push(M-q*O,k-Y*O),f.push(Kt,_t),f.push(M-et*O,k-H*O),f.push(Kt,_t)),p+=2):a.join==="round"?Z?(f.push(Qt,Tt),f.push(M+q*X,k+Y*X),p+=yi(M,k,M+q*X,k+Y*X,M+et*X,k+H*X,f,!0)+4,f.push(Qt,Tt),f.push(M+et*X,k+H*X)):(f.push(M-q*O,k-Y*O),f.push(Kt,_t),p+=yi(M,k,M-q*O,k-Y*O,M-et*O,k-H*O,f,!1)+4,f.push(M-et*O,k-H*O),f.push(Kt,_t)):(f.push(Qt,Tt),f.push(Kt,_t)):(f.push(M-q*O,k-Y*O),f.push(M+q*X,k+Y*X),a.join==="round"?Z?p+=yi(M,k,M+q*X,k+Y*X,M+et*X,k+H*X,f,!0)+2:p+=yi(M,k,M-q*O,k-Y*O,M-et*O,k-H*O,f,!1)+2:a.join==="miter"&&ct/y<=S&&(Z?(f.push(Kt,_t),f.push(Kt,_t)):(f.push(Qt,Tt),f.push(Qt,Tt)),p+=2),f.push(M-et*O,k-H*O),f.push(M+et*X,k+H*X),p+=2)}Q=r[(B-2)*2],m=r[(B-2)*2+1],M=r[(B-1)*2],k=r[(B-1)*2+1],q=-(m-k),Y=Q-M,L=Math.sqrt(q*q+Y*Y),q/=L,Y/=L,q*=P,Y*=P,f.push(M-q*O,k-Y*O),f.push(M+q*X,k+Y*X),u||(a.cap==="round"?p+=yi(M-q*(O-X)*.5,k-Y*(O-X)*.5,M-q*O,k-Y*O,M+q*X,k+Y*X,f,!1)+2:a.cap==="square"&&(p+=Ja(M,k,q,Y,O,X,!1,f)));const j=Ha*Ha;for(let N=R;N<p+R-2;++N)Q=f[N*2],m=f[N*2+1],M=f[(N+1)*2],k=f[(N+1)*2+1],W=f[(N+2)*2],it=f[(N+2)*2+1],!(Math.abs(Q*(k-it)+M*(it-m)+W*(m-k))<j)&&i.push(N,N+1,N+2);return{vertices:e,indices:i}}function Uu(r){const t=r.length;if(t<6)return 1;let e=0;for(let i=0,A=r[t-2],s=r[t-1];i<t;i+=2){const n=r[i],o=r[i+1];e+=(n-A)*(o+s),A=n,s=o}return e<0?-1:1}function Ja(r,t,e,i,A,s,n,o){const a=r-e*A,l=t-i*A,c=r+e*s,h=t+i*s;let u,d;n?(u=i,d=-e):(u=-i,d=e);const f=a+u,B=l+d,p=c+u,R=h+d;return o.push(f,B),o.push(p,R),2}function yi(r,t,e,i,A,s,n,o){const a=e-r,l=i-t;let c=Math.atan2(a,l),h=Math.atan2(A-r,s-t);o&&c<h?c+=Math.PI*2:!o&&c>h&&(h+=Math.PI*2);let u=c;const d=h-c,f=Math.abs(d),B=Math.sqrt(a*a+l*l),p=(15*f*Math.sqrt(B)/Math.PI>>0)+1,R=d/p;if(u+=R,o){n.push(r,t),n.push(e,i);for(let P=1,y=u;P<p;P++,y+=R)n.push(r,t),n.push(r+Math.sin(y)*B,t+Math.cos(y)*B);n.push(r,t),n.push(A,s)}else{n.push(e,i),n.push(r,t);for(let P=1,y=u;P<p;P++,y+=R)n.push(r+Math.sin(y)*B,t+Math.cos(y)*B),n.push(r,t);n.push(A,s),n.push(r,t)}return p*2}class Ti{arcLengthDivision=200;_arcLengths;getPointAt(t,e=new J){return this.getPoint(this.getUToTMapping(t),e)}isClockwise(){const t=this.getPoint(1),e=this.getPoint(.5),i=this.getPoint(1);return(e.x-t.x)*(i.y-e.y)-(e.y-t.y)*(i.x-e.x)<0}getControlPointRefs(){return[]}applyTransform(t){const e=typeof t=="function";return this.getControlPointRefs().forEach(i=>{e?t(i):i.applyMatrix3(t)}),this}getUnevenVertices(t=5,e=[]){const i=new J;for(let A=0,s=Math.max(1,t)-1;A<=s;A++)this.getPoint(A/s,i),e.push(i.x,i.y);return e}getSpacedVertices(t=5,e=[]){const i=new J;for(let A=0,s=Math.max(1,t)-1;A<=s;A++)this.getPointAt(A/s,i),e.push(i.x,i.y);return e}getAdaptiveVertices(t=[]){return this.getUnevenVertices(5,t)}_verticesToPoints(t,e=[]){for(let i=0,A=t.length;i<A;i+=2){const s=t[i],n=t[i+1];e.push(new J(s,n))}return e}getSpacedPoints(t,e=[]){const i=this.getSpacedVertices(t);return this._verticesToPoints(i,e),e}getUnevenPoints(t,e=[]){const i=this.getUnevenVertices(t);return this._verticesToPoints(i,e),e}getAdaptivePoints(t=[]){const e=this.getAdaptiveVertices();return this._verticesToPoints(e,t),t}getPoints(t,e=[]){let i;return t?i=this.getUnevenVertices(t):i=this.getAdaptiveVertices(),this._verticesToPoints(i,e),e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(){return(!this._arcLengths||this._arcLengths.length!==this.arcLengthDivision+1)&&this.updateLengths(),this._arcLengths}updateLengths(){const t=this.arcLengthDivision,e=[0];for(let i=0,A=this.getPoint(0),s=1;s<=t;s++){const n=this.getPoint(s/t);i+=n.distanceTo(A),e.push(i),A=n}this._arcLengths=e}getUToTMapping(t,e){const i=this.getLengths(),A=i.length,s=e??t*i[A-1];if(A<2)return s/i[0];let n=0,o=0,a=A-1,l;for(;o<=a;)if(n=Math.floor(o+(a-o)/2),l=i[n]-s,l<0)o=n+1;else if(l>0)a=n-1;else{a=n;break}if(n=a,i[n]===s)return n/(A-1);const c=i[n],u=i[n+1]-c,d=(s-c)/u;return(n+d)/(A-1)}getTangent(t,e=new J){const A=Math.max(0,t-1e-4),s=Math.min(1,t+1e-4);return e.copy(this.getPoint(s).sub(this.getPoint(A)).normalize())}getTangentAt(t,e){return this.getTangent(this.getUToTMapping(t),e)}getNormal(t,e=new J){return this.getTangent(t,e),e.set(-e.y,e.x).normalize()}getNormalAt(t,e){return this.getNormal(this.getUToTMapping(t),e)}getTForPoint(t,e=.001){let i=0,A=1,s=(i+A)/2;for(;A-i>e;){s=(i+A)/2;const n=this.getPoint(s);if(n.distanceTo(t)<e)return s;n.x<t.x?i=s:A=s}return s}getMinMax(t=J.MAX,e=J.MIN){const i=this.getPoints();for(let A=0,s=i.length;A<s;A++){const n=i[A];t.min(n),e.max(n)}return{min:t.finite(),max:e.finite()}}getBoundingBox(){const{min:t,max:e}=this.getMinMax();return new lt(t.x,t.y,e.x-t.x,e.y-t.y)}getFillVertices(t){return this.getAdaptiveVertices()}fillTriangulate(t){return Ga(this.getFillVertices(t),t)}strokeTriangulate(t){return Pu(this.getAdaptiveVertices(),t)}toCommands(){const t=[],e=this.getPoints();for(let i=0,A=e.length;i<A;i++){const s=e[i];i===0?t.push({type:"M",x:s.x,y:s.y}):t.push({type:"L",x:s.x,y:s.y})}return t}toData(){return eu(this.toCommands())}drawTo(t){return this.toCommands().forEach(e=>{switch(e.type){case"M":t.moveTo(e.x,e.y);break;case"L":t.lineTo(e.x,e.y);break}}),this}copy(t){return this.arcLengthDivision=t.arcLengthDivision,this}clone(){return new this.constructor().copy(this)}}const Nu=new Lt,Ka=new Lt,Ya=new Lt,Ir=new J;class qs extends Ti{constructor(t=new J,e=new J,i=new J,A=0,s=0,n=Math.PI*2,o=!1){super(),this._center=t,this._radius=e,this._diff=i,this.rotate=A,this.startAngle=s,this.endAngle=n,this.clockwise=o}get cx(){return this._center.x}set cx(t){this._center.x=t}get cy(){return this._center.y}set cy(t){this._center.y=t}get rx(){return this._radius.x}set rx(t){this._radius.x=t}get ry(){return this._radius.y}set ry(t){this._radius.y=t}get dx(){return this._diff.x}set dx(t){this._diff.x=t}get dy(){return this._diff.y}set dy(t){this._diff.y=t}isClockwise(){return this.clockwise}_getDeltaAngle(){const t=Math.PI*2;let e=this.endAngle-this.startAngle;const i=Math.abs(e)<Number.EPSILON;return e=(e%t+t)%t,i?e=0:this.clockwise||(e=e===0?-t:e-t),e}getPoint(t,e=new J){const i=this._getDeltaAngle(),A=this.startAngle+t*i;let s=this.cx+this.rx*Math.cos(A),n=this.cy+this.ry*Math.sin(A);if(this.rotate!==0){const o=Math.cos(this.rotate),a=Math.sin(this.rotate),l=s-this.cx,c=n-this.cy;s=l*o-c*a+this.cx,n=l*a+c*o+this.cy}return e.set(s,n)}toCommands(){const{cx:t,cy:e,rx:i,ry:A,startAngle:s,endAngle:n,clockwise:o,rotate:a}=this,l=t+i*Math.cos(s)*Math.cos(a)-A*Math.sin(s)*Math.sin(a),c=e+i*Math.cos(s)*Math.sin(a)+A*Math.sin(s)*Math.cos(a),h=Math.abs(s-n),u=h>Math.PI?1:0,d=o?1:0,f=a*180/Math.PI;if(h>=2*Math.PI){const B=s+Math.PI,p=t+i*Math.cos(B)*Math.cos(a)-A*Math.sin(B)*Math.sin(a),R=e+i*Math.cos(B)*Math.sin(a)+A*Math.sin(B)*Math.cos(a);return[{type:"M",x:l,y:c},{type:"A",rx:i,ry:A,angle:f,largeArcFlag:0,sweepFlag:d,x:p,y:R},{type:"A",rx:i,ry:A,angle:f,largeArcFlag:0,sweepFlag:d,x:l,y:c}]}else{const B=t+i*Math.cos(n)*Math.cos(a)-A*Math.sin(n)*Math.sin(a),p=e+i*Math.cos(n)*Math.sin(a)+A*Math.sin(n)*Math.cos(a);return[{type:"M",x:l,y:c},{type:"A",rx:i,ry:A,angle:f,largeArcFlag:u,sweepFlag:d,x:B,y:p}]}}drawTo(t){const{cx:e,cy:i,rx:A,ry:s,rotate:n,startAngle:o,endAngle:a,clockwise:l}=this;return t.ellipse(e,i,A,s,n,o,a,!l),this}applyTransform(t){return Ir.set(this.cx,this.cy),Ir.applyMatrix3(t),this.cx=Ir.x,this.cy=Ir.y,Lu(t)?Fu(this,t):Tu(this,t),this}getControlPointRefs(){return[this._center]}_getAdaptiveVerticesByArc(t=[]){const{cx:e,cy:i,rx:A,ry:s,dx:n,dy:o,startAngle:a,endAngle:l,clockwise:c,rotate:h}=this,u=!c;let d=Math.abs(a-l);(!u&&a>l||u&&l>a)&&(d=2*Math.PI-d);const f=Math.max(12,Math.floor(12*A**(1/3)*(d/Math.PI)));let B=d/f,p=a;B*=u?-1:1;const R=Math.cos(u?h:-h),P=Math.sin(u?h:-h);for(let y=0;y<f+1;y++){const S=n+Math.cos(p)*A,Q=o+Math.sin(p)*s,m=S*R-Q*P,M=S*P+Q*R;t.push(e+m,i+M),p+=B}return t}_getAdaptiveVerticesByCircle(t=[]){const{cx:e,cy:i,rx:A,ry:s,dx:n,dy:o,rotate:a,clockwise:l}=this;if(!(A>=0&&s>=0&&n>=0&&o>=0))return t;const c=Math.ceil(2.3*Math.sqrt(A+s)),h=c*8+(n?4:0)+(o?4:0),u=[];if(h===0)return t;{const B=u.length;if(c===0)u[B]=u[B+6]=e+n,u[B+1]=u[B+3]=i+o,u[B+2]=u[B+4]=e-n,u[B+5]=u[B+7]=i-o;else{let p=B,R=B+c*4+(n?2:0)+2,P=R,y=h,S=n+A,Q=o,m=e+S,M=e-S,k=i+Q;if(u[p++]=m,u[p++]=k,u[--R]=k,u[--R]=M,o){const it=i-Q;u[P++]=M,u[P++]=it,u[--y]=it,u[--y]=m}for(let it=1;it<c;it++){const q=Math.PI/2*(it/c),Y=n+Math.cos(q)*A,et=o+Math.sin(q)*s,H=e+Y,L=e-Y,rt=i+et,O=i-et;u[p++]=H,u[p++]=rt,u[--R]=rt,u[--R]=L,u[P++]=L,u[P++]=O,u[--y]=O,u[--y]=H}S=n,Q=o+s,m=e+S,M=e-S,k=i+Q;const W=i-Q;u[p++]=m,u[p++]=k,u[--y]=W,u[--y]=m,n&&(u[p++]=M,u[p++]=k,u[--y]=W,u[--y]=M)}}const d=Math.cos(l?-a:a),f=Math.sin(l?-a:a);for(let B=0;B<u.length;B+=2){const p=u[B],R=u[B+1],P=p-e,y=R-i,S=P*d-y*f,Q=P*f+y*d;t.push(e+S,i+Q)}return t}getAdaptiveVertices(t=[]){return this.startAngle===0&&this.endAngle===Math.PI*2?this._getAdaptiveVerticesByCircle(t):this._getAdaptiveVerticesByArc(t)}copy(t){return super.copy(t),this.cx=t.cx,this.cy=t.cy,this.rx=t.rx,this.ry=t.ry,this.dx=t.dx,this.dy=t.dy,this.startAngle=t.startAngle,this.endAngle=t.endAngle,this.clockwise=t.clockwise,this.rotate=t.rotate,this}}function Fu(r,t){const e=r.rx,i=r.ry,A=Math.cos(r.rotate),s=Math.sin(r.rotate),n=new J(e*A,e*s),o=new J(-i*s,i*A),a=n.applyMatrix3(t),l=o.applyMatrix3(t),c=Nu.set(a.x,l.x,0,a.y,l.y,0,0,0,1),h=Ka.copy(c).invert(),f=Ya.copy(h).transpose().multiply(h).elements,B=Gu(f[0],f[1],f[4]),p=Math.sqrt(B.rt1),R=Math.sqrt(B.rt2);if(r.rx=1/p,r.ry=1/R,r.rotate=Math.atan2(B.sn,B.cs),!((r.endAngle-r.startAngle)%(2*Math.PI)<Number.EPSILON)){const y=Ka.set(p,0,0,0,R,0,0,0,1),S=Ya.set(B.cs,B.sn,0,-B.sn,B.cs,0,0,0,1),Q=y.multiply(S).multiply(c),m=M=>{const{x:k,y:W}=new J(Math.cos(M),Math.sin(M)).applyMatrix3(Q);return Math.atan2(W,k)};r.startAngle=m(r.startAngle),r.endAngle=m(r.endAngle),Va(t)&&(r.clockwise=!r.clockwise)}}function Tu(r,t){const e=za(t),i=Wa(t);r.rx*=e,r.ry*=i;const A=e>Number.EPSILON?Math.atan2(t.elements[1],t.elements[0]):Math.atan2(-t.elements[3],t.elements[4]);r.rotate+=A,Va(t)&&(r.startAngle*=-1,r.endAngle*=-1,r.clockwise=!r.clockwise)}function Va(r){const t=r.elements;return t[0]*t[4]-t[1]*t[3]<0}function Lu(r){const t=r.elements,e=t[0]*t[3]+t[1]*t[4];if(e===0)return!1;const i=za(r),A=Wa(r);return Math.abs(e/(i*A))>Number.EPSILON}function za(r){const t=r.elements;return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Wa(r){const t=r.elements;return Math.sqrt(t[3]*t[3]+t[4]*t[4])}function Gu(r,t,e){let i,A,s,n,o;const a=r+e,l=r-e,c=Math.sqrt(l*l+4*t*t);return a>0?(i=.5*(a+c),o=1/i,A=r*o*e-t*o*t):a<0?A=.5*(a-c):(i=.5*c,A=-.5*c),l>0?s=l+c:s=l-c,Math.abs(s)>2*Math.abs(t)?(o=-2*t/s,n=1/Math.sqrt(1+o*o),s=o*n):Math.abs(t)===0?(s=1,n=0):(o=-.5*s/t,s=1/Math.sqrt(1+o*o),n=o*s),l>0&&(o=s,s=-n,n=o),{rt1:i,rt2:A,cs:s,sn:n}}class Ou extends qs{constructor(t=0,e=0,i=1,A=0,s=Math.PI*2,n=!1){super(new J(t,e),new J(i,i),new J,0,A,s,n)}drawTo(t){const{cx:e,cy:i,rx:A,startAngle:s,endAngle:n,clockwise:o}=this;return t.arc(e,i,A,s,n,!o),this}getAdaptiveVertices(t=[]){const{cx:e,cy:i,rx:A,startAngle:s,endAngle:n,clockwise:o}=this;let a=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(a=2*Math.PI-a);let l=Math.max(6,Math.floor(6*A**(1/3)*(a/Math.PI)));l=Math.max(l,3);let c=a/l,h=s;c*=o?1:-1;for(let u=0;u<l+1;u++){const d=Math.cos(h),f=Math.sin(h),B=e+d*A,p=i+f*A;t.push(B,p),h+=c}return t}}class ze extends Ti{constructor(t=new J,e=new J){super(),this.p1=t,this.p2=e}static from(t,e,i,A){return new ze(new J(t,e),new J(i,A))}getPoint(t,e=new J){return t===1?e.copy(this.p2):e.copy(this.p2).sub(this.p1).scale(t).add(this.p1),e}getPointAt(t,e=new J){return this.getPoint(t,e)}getTangent(t,e=new J){return e.subVectors(this.p2,this.p1).normalize()}getTangentAt(t,e=new J){return this.getTangent(t,e)}getControlPointRefs(){return[this.p1,this.p2]}getAdaptiveVertices(t=[]){return t.push(this.p1.x,this.p1.y,this.p2.x,this.p2.y),t}getMinMax(t=J.MAX,e=J.MIN){const{p1:i,p2:A}=this;return t.x=Math.min(t.x,i.x,A.x),t.y=Math.min(t.y,i.y,A.y),e.x=Math.max(e.x,i.x,A.x),e.y=Math.max(e.y,i.y,A.y),{min:t.finite(),max:e.finite()}}toCommands(){const{p1:t,p2:e}=this;return[{type:"M",x:t.x,y:t.y},{type:"L",x:e.x,y:e.y}]}getFillVertices(t={}){const e=Math.min(this.p1.x,this.p2.x),i=Math.max(this.p1.x,this.p2.x),A=Math.min(this.p1.y,this.p2.y),s=Math.max(this.p1.y,this.p2.y),n=e,o=A,a=i-e||t.style?.strokeWidth||0,l=s-A||t.style?.strokeWidth||0;return[n,o,n+a,o,n+a,o+l,n,o+l]}drawTo(t){const{p1:e,p2:i}=this;return t.lineTo(e.x,e.y),t.lineTo(i.x,i.y),this}copy(t){return super.copy(t),this.p1.copy(t.p1),this.p2.copy(t.p2),this}}class mA extends Ti{constructor(t=[]){super(),this.curves=t}getFlatCurves(){return this.curves.flatMap(t=>t instanceof mA?t.getFlatCurves():t)}addCurve(t){return this.curves.push(t),this}getPoint(t,e=new J){const i=t*this.getLength(),A=this.getLengths();let s=0;for(;s<A.length;){if(A[s]>=i){const n=A[s]-i,o=this.curves[s],a=o.getLength();return o.getPointAt(a===0?0:1-n/a,e)}s++}return e}updateLengths(){const t=[];for(let e=0,i=0,A=this.curves.length;e<A;e++)i+=this.curves[e].getLength(),t.push(i);this._arcLengths=t}getControlPointRefs(){return this.curves.flatMap(t=>t.getControlPointRefs())}_removeNextPointIfEqualPrevPoint(t,e){const i=[t[e-1],t[e]],A=[t[e+1],t[e+2]];return i[0]===A[0]&&i[1]===A[1]&&t.splice(e+1,2),t}getSpacedVertices(t=5,e=[]){let i;return this.curves.forEach(A=>{A.getSpacedVertices(t,e),i&&this._removeNextPointIfEqualPrevPoint(e,i),i=e.length-1}),e}getAdaptiveVertices(t=[]){let e;return this.curves.forEach(i=>{i.getAdaptiveVertices(t),e&&this._removeNextPointIfEqualPrevPoint(t,e),e=t.length-1}),t}strokeTriangulate(t){return this.curves.length===1?this.curves[0].strokeTriangulate(t):super.strokeTriangulate(t)}getFillVertices(t){if(this.curves.length===1)return this.curves[0].getFillVertices(t);{const e=[];let i;return this.curves.forEach(A=>{let s;A instanceof ze?s=A.getAdaptiveVertices():s=A.getFillVertices(t),e.push(...s),i&&this._removeNextPointIfEqualPrevPoint(e,i),i=e.length-1}),e}}applyTransform(t){return this.curves.forEach(e=>e.applyTransform(t)),this}getMinMax(t=J.MAX,e=J.MIN){return this.curves.forEach(i=>i.getMinMax(t,e)),{min:t.finite(),max:e.finite()}}getBoundingBox(){const{min:t,max:e}=this.getMinMax();return new lt(t.x,t.y,e.x-t.x,e.y-t.y)}toCommands(){return this.curves.flatMap(t=>t.toCommands())}drawTo(t){const e=this.curves[0]?.getPoint(0);return e&&t.moveTo(e.x,e.y),this.curves.forEach(i=>i.drawTo(t)),this}copy(t){return super.copy(t),this.curves=t.curves.map(e=>e.clone()),this}}class Xs extends Ti{constructor(t=new J,e=new J,i=new J,A=new J){super(),this.p1=t,this.cp1=e,this.cp2=i,this.p2=A}static from(t,e,i,A,s,n,o,a){return new Xs(new J(t,e),new J(i,A),new J(s,n),new J(o,a))}getPoint(t,e=new J){const{p1:i,cp1:A,cp2:s,p2:n}=this;return e.set(La(t,i.x,A.x,s.x,n.x),La(t,i.y,A.y,s.y,n.y))}getAdaptiveVertices(t=[]){return wu(this.p1.x,this.p1.y,this.cp1.x,this.cp1.y,this.cp2.x,this.cp2.y,this.p2.x,this.p2.y,.5,t)}getControlPointRefs(){return[this.p1,this.cp1,this.cp2,this.p2]}_solveQuadratic(t,e,i){const A=e*e-4*t*i;if(A<0)return[];const s=Math.sqrt(A),n=(-e+s)/(2*t),o=(-e-s)/(2*t);return[n,o].filter(a=>a>=0&&a<=1)}getMinMax(t=J.MAX,e=J.MIN){const{p1:i,cp1:A,cp2:s,p2:n}=this,o=this._solveQuadratic(3*(A.x-i.x),6*(s.x-A.x),3*(n.x-s.x)),a=this._solveQuadratic(3*(A.y-i.y),6*(s.y-A.y),3*(n.y-s.y)),l=[0,1,...o,...a];return((h,u)=>{for(const d of h)for(let f=0;f<=u;f++){const B=f/u-.5,p=Math.min(1,Math.max(0,d+B)),R=this.getPoint(p);t.x=Math.min(t.x,R.x),t.y=Math.min(t.y,R.y),e.x=Math.max(e.x,R.x),e.y=Math.max(e.y,R.y)}})(l,10),{min:t.finite(),max:e.finite()}}toCommands(){const{p1:t,cp1:e,cp2:i,p2:A}=this;return[{type:"M",x:t.x,y:t.y},{type:"C",x1:e.x,y1:e.y,x2:i.x,y2:i.y,x:A.x,y:A.y}]}drawTo(t){const{p1:e,cp1:i,cp2:A,p2:s}=this;return t.lineTo(e.x,e.y),t.bezierCurveTo(i.x,i.y,A.x,A.y,s.x,s.y),this}copy(t){return super.copy(t),this.p1.copy(t.p1),this.cp1.copy(t.cp1),this.cp2.copy(t.cp2),this.p2.copy(t.p2),this}}class Hu extends qs{constructor(t=0,e=0,i=1,A=1,s=0,n=0,o=Math.PI*2,a=!1){super(new J(t,e),new J(i,A),new J,s,n,o,a)}drawTo(t){return t.ellipse(this.cx,this.cy,this.rx,this.ry,this.rotate,this.startAngle,this.endAngle,!this.clockwise),this}}class Ju extends mA{}class js extends Ti{constructor(t=new J,e=new J,i=new J){super(),this.p1=t,this.cp=e,this.p2=i}static from(t,e,i,A,s,n){return new js(new J(t,e),new J(i,A),new J(s,n))}getPoint(t,e=new J){const{p1:i,cp:A,p2:s}=this;return e.set(Oa(t,i.x,A.x,s.x),Oa(t,i.y,A.y,s.y)),e}getControlPointRefs(){return[this.p1,this.cp,this.p2]}getAdaptiveVertices(t=[]){return Du(this.p1.x,this.p1.y,this.cp.x,this.cp.y,this.p2.x,this.p2.y,.5,t)}getMinMax(t=J.MAX,e=J.MIN){const{p1:i,cp:A,p2:s}=this,n=.5*(i.x+A.x),o=.5*(i.y+A.y),a=.5*(i.x+s.x),l=.5*(i.y+s.y);return t.x=Math.min(t.x,i.x,s.x,n,a),t.y=Math.min(t.y,i.y,s.y,o,l),e.x=Math.max(e.x,i.x,s.x,n,a),e.y=Math.max(e.y,i.y,s.y,o,l),{min:t.finite(),max:e.finite()}}toCommands(){const{p1:t,cp:e,p2:i}=this;return[{type:"M",x:t.x,y:t.y},{type:"Q",x1:e.x,y1:e.y,x:i.x,y:i.y}]}drawTo(t){const{p1:e,cp:i,p2:A}=this;return t.lineTo(e.x,e.y),t.quadraticCurveTo(i.x,i.y,A.x,A.y),this}copy(t){return super.copy(t),this.p1.copy(t.p1),this.cp.copy(t.cp),this.p2.copy(t.p2),this}}class Ku extends Ju{constructor(t=0,e=0,i=0,A=0){super(),this.x=t,this.y=e,this.width=i,this.height=A,this.update()}update(){const{x:t,y:e,width:i,height:A}=this,s=[new J(t,e),new J(t+i,e),new J(t+i,e+A),new J(t,e+A)];return this.curves=[new ze(s[0],s[1]),new ze(s[1],s[2]),new ze(s[2],s[3]),new ze(s[3],s[0])],this}drawTo(t){return t.rect(this.x,this.y,this.width,this.height),this}getFillVertices(t={}){const{x:e,y:i,width:A,height:s}=this;return[e,i,e+A,i,e+A,i+s,e,i+s]}copy(t){return super.copy(t),this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.update(),this}}class Yu extends qs{constructor(t=0,e=0,i=1,A=1,s=1){super(),this.x=t,this.y=e,this.width=i,this.height=A,this.radius=s,this.update()}update(){const{x:t,y:e,width:i,height:A,radius:s}=this,n=i/2,o=A/2,a=t+n,l=e+o,c=Math.max(0,Math.min(s,Math.min(n,o))),h=c;return this._center=new J(a,l),this._radius=new J(c,h),this._diff=new J(n-c,o-h),this}drawTo(t){const{x:e,y:i,width:A,height:s,radius:n}=this;return t.roundRect(e,i,A,s,n),this}copy(t){return super.copy(t),this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.radius=t.radius,this.update(),this}}class Vu extends Ti{constructor(t=[]){super(),this.points=t}getPoint(t,e=new J){const{points:i}=this,A=(i.length-1)*t,s=Math.floor(A),n=A-s,o=i[s===0?s:s-1],a=i[s],l=i[s>i.length-2?i.length-1:s+1],c=i[s>i.length-3?i.length-1:s+2];return e.set(Ta(n,o.x,a.x,l.x,c.x),Ta(n,o.y,a.y,l.y,c.y)),e}getControlPointRefs(){return this.points}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e<i;e++)this.points.push(t.points[e].clone());return this}}class pr extends mA{startPoint;currentPoint;autoClose=!1;constructor(t){super(),t&&this.addPoints(t)}addPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,i=t.length;e<i;e++){const{x:A,y:s}=t[e];this.lineTo(A,s)}return this}addCommands(t){return xa(t,this),this}addData(t){return this.addCommands(Sa(t)),this}_closeVertices(t){return this.autoClose&&t.length>=4&&t[0]!==t[t.length-2]&&t[1]!==t[t.length-1]&&t.push(t[0],t[1]),t}getUnevenVertices(t=40,e=[]){return this._closeVertices(super.getUnevenVertices(t,e))}getSpacedVertices(t=40,e=[]){return this._closeVertices(super.getSpacedVertices(t,e))}getAdaptiveVertices(t=[]){return this._closeVertices(super.getAdaptiveVertices(t))}getFillVertices(t){return this._closeVertices(super.getFillVertices(t))}_setCurrentPoint(t){return this.currentPoint=new J(t.x,t.y),this.startPoint||(this.startPoint=this.currentPoint.clone()),this}_connetLineTo(t){if(this.curves.length>0){const e=t.getPoint(0);(!this.currentPoint||!e.equals(this.currentPoint))&&this.lineTo(e.x,e.y)}return this}closePath(){const t=this.startPoint;if(t){const e=this.currentPoint;e&&!t.equals(e)&&(this.curves.push(new ze(e.clone(),t.clone())),e.copy(t)),this.startPoint=void 0}return this}moveTo(t,e){return this.currentPoint=new J(t,e),this.startPoint=this.currentPoint.clone(),this}lineTo(t,e){const i=this.currentPoint;return i?.equals({x:t,y:e})||this.curves.push(ze.from(i?.x??0,i?.y??0,t,e)),this._setCurrentPoint({x:t,y:e}),this}bezierCurveTo(t,e,i,A,s,n){const o=this.currentPoint;return o?.equals({x:s,y:n})||this.curves.push(Xs.from(o?.x??0,o?.y??0,t,e,i,A,s,n)),this._setCurrentPoint({x:s,y:n}),this}quadraticCurveTo(t,e,i,A){const s=this.currentPoint;return s?.equals({x:i,y:A})||this.curves.push(js.from(s?.x??0,s?.y??0,t,e,i,A)),this._setCurrentPoint({x:i,y:A}),this}arc(t,e,i,A,s,n){const o=new Ou(t,e,i,A,s,!n);return this._connetLineTo(o),this.curves.push(o),this._setCurrentPoint(o.getPoint(1)),this}relativeArc(t,e,i,A,s,n){return t+=this.currentPoint?.x??0,e+=this.currentPoint?.y??0,this.arc(t,e,i,A,s,n),this}arcTo(t,e,i,A,s){return console.warn("Method arcTo not supported yet"),this}ellipse(t,e,i,A,s,n,o,a=!0){const l=new Hu(t,e,i,A,s,n,o,!a);return this._connetLineTo(l),this.curves.push(l),this._setCurrentPoint(l.getPoint(1)),this}relativeEllipse(t,e,i,A,s,n,o,a){return t+=this.currentPoint?.x??0,e+=this.currentPoint?.y??0,this.ellipse(t,e,i,A,s,n,o,a),this}rect(t,e,i,A){const s=new Ku(t,e,i,A);return this._connetLineTo(s),this.curves.push(s),this._setCurrentPoint({x:t,y:e}),this}roundRect(t,e,i,A,s){const n=new Yu(t,e,i,A,s);return this._connetLineTo(n),this.curves.push(n),this._setCurrentPoint({x:t,y:e}),this}splineThru(t){const e=this.currentPoint??new J;return this.curves.push(new Vu([e].concat(t))),this._setCurrentPoint(t[t.length-1]),this}drawTo(t){const e=this.curves[0]?.getPoint(0);return e&&t.moveTo(e.x,e.y),this.curves.forEach(i=>i.drawTo(t)),this.autoClose&&t.closePath(),this}copy(t){return super.copy(t),this.autoClose=t.autoClose,this.currentPoint=t.currentPoint?.clone(),this}}function zu(r){return r.replace(/[^a-z0-9]/gi,"-").replace(/\B([A-Z])/g,"-$1").toLowerCase()}function Wu(r,t,e,i){const A=t.clone().sub(r),s=i.clone().sub(e),n=e.clone().sub(r),o=A.cross(s);if(o===0)return new J((r.x+e.x)/2,(r.y+e.y)/2);const a=n.cross(s)/o;return Math.abs(a)>1?new J((r.x+e.x)/2,(r.y+e.y)/2):new J(r.x+a*A.x,r.y+a*A.y)}class Rt extends mA{currentCurve=new pr;style;get startPoint(){return this.currentCurve.startPoint}get currentPoint(){return this.currentCurve.currentPoint}get strokeWidth(){return this.style.strokeWidth??((this.style.stroke??"none")==="none"?0:1)}constructor(t,e={}){super(),this.curves.push(this.currentCurve),this.style=e,t&&(t instanceof Rt?this.addPath(t):Array.isArray(t)?this.addCommands(t):this.addData(t))}addPath(t){const e=this.curves.findIndex(i=>i===this.currentCurve);return e>-1&&this.curves.splice(e,1),t instanceof Rt?this.curves.push(...t.curves.filter(i=>i.curves.length).map(i=>i.clone())):t.curves.length&&this.curves.push(t),this.curves.push(this.currentCurve),this}closePath(){const t=this.startPoint;return t&&(this.currentCurve.closePath(),this.currentCurve.curves.length&&(this.currentCurve=new pr().moveTo(t.x,t.y),this.curves.push(this.currentCurve))),this}moveTo(t,e){return this.currentCurve.currentPoint?.equals({x:t,y:e})||(this.currentCurve.curves.length&&(this.currentCurve=new pr,this.curves.push(this.currentCurve)),this.currentCurve.moveTo(t,e)),this}lineTo(t,e){return this.currentCurve.lineTo(t,e),this}bezierCurveTo(t,e,i,A,s,n){return this.currentCurve.bezierCurveTo(t,e,i,A,s,n),this}quadraticCurveTo(t,e,i,A){return this.currentCurve.quadraticCurveTo(t,e,i,A),this}arc(t,e,i,A,s,n){return this.currentCurve.arc(t,e,i,A,s,n),this}arcTo(t,e,i,A,s){return this.currentCurve.arcTo(t,e,i,A,s),this}ellipse(t,e,i,A,s,n,o,a){return this.currentCurve.ellipse(t,e,i,A,s,n,o,a),this}rect(t,e,i,A){return this.currentCurve.rect(t,e,i,A),this}roundRect(t,e,i,A,s){return this.currentCurve.roundRect(t,e,i,A,s),this}reset(){return this.currentCurve=new pr,this.curves=[this.currentCurve],this.style={},this}addCommands(t){return xa(t,this),this}addData(t){return this.addCommands(Sa(t)),this}splineThru(t){return this.currentCurve.splineThru(t),this}scale(t,e=t,i={x:0,y:0}){return this.getControlPointRefs().forEach(A=>{A.scale(t,e,i)}),this}skew(t,e=0,i={x:0,y:0}){return this.getControlPointRefs().forEach(A=>{A.skew(t,e,i)}),this}rotate(t,e={x:0,y:0}){return this.getControlPointRefs().forEach(i=>{i.rotate(t,e)}),this}bold(t){if(t===0)return this;const e=this.getFlatCurves(),i=[],A=[],s=[];e.forEach((o,a)=>{const l=o.getControlPointRefs(),c=o.isClockwise();s[a]=l,A[a]=c;const h=l[0],u=l[l.length-1]??h;i.push({start:c?u:h,end:c?h:u,index:a})});const n=[];return i.forEach((o,a)=>{n[a]=[],i.forEach((l,c)=>{l.start&&o.end&&c!==a&&l.start?.equals(o.end)&&n[a].push(l.index)})}),e.forEach((o,a)=>{const l=A[a];s[a].forEach(c=>{c.add(o.getNormal(o.getTForPoint(c)).scale(l?t:-t))})}),n.forEach((o,a)=>{const l=s[a];o.forEach(c=>{const h=s[c],u=Wu(l[l.length-1],l[l.length-2]??l[l.length-1],h[0],h[1]??h[0]);u&&(l[l.length-1].copy(u),h[0].copy(u))})}),this}getMinMax(t=J.MAX,e=J.MIN,i=!0){const A=this.strokeWidth;return this.curves.forEach(s=>{if(s.getMinMax(t,e),i&&A>1){const n=A/2,o=s.isClockwise(),a=[];for(let l=0;l<=1;l+=1/s.arcLengthDivision){const c=s.getPoint(l),h=s.getNormal(l),u=h.clone().scale(o?n:-n),d=h.clone().scale(o?-n:n);a.push(c.clone().add(u),c.clone().add(d),c.clone().add({x:n,y:0}),c.clone().add({x:-n,y:0}),c.clone().add({x:0,y:n}),c.clone().add({x:0,y:-n}),c.clone().add({x:n,y:n}),c.clone().add({x:-n,y:-n}))}t.min(...a),e.max(...a)}}),{min:t.finite(),max:e.finite()}}strokeTriangulate(t){const e=t?.indices??[],i=t?.vertices??[];return this.curves.forEach(A=>{A.strokeTriangulate({...t,indices:e,vertices:i,style:{...this.style}})}),{indices:e,vertices:i}}fillTriangulate(t){const e={...t,style:{...this.style,...t?.style}},i=e.indices??[],A=e.vertices??[];if((e.style.fillRule??"nonzero")==="nonzero"){const n=this.curves.map(l=>l.getFillVertices(e)),o=new Map,a=new Set;for(let l=0;l<n.length;l++){const c=[];for(let h=0;h<n.length;h++)l!==h&&xu([n[l][0],n[l][1]],n[h])&&c.push(h);c.length&&(c.forEach(h=>{let u=o.get(h);u||(u=new Set,o.set(h,u)),u.add(l)}),a.add(l))}n.forEach((l,c)=>{if(a.has(c)||!l.length)return;const h=l.slice(),u=[];o.get(c)?.forEach(d=>{u.push(h.length/2),h.push(...n[d])}),Ga(h,{...t,indices:i,vertices:A,holes:u,style:{...this.style}})})}else this.curves.forEach(n=>{n.fillTriangulate({...t,indices:i,vertices:A,style:{...this.style}})});return{indices:i,vertices:A}}getBoundingBox(t=!0){const{min:e,max:i}=this.getMinMax(void 0,void 0,t);return new lt(e.x,e.y,i.x-e.x,i.y-e.y)}drawTo(t,e={}){e={...this.style,...e};const{fill:i="#000",stroke:A="none"}=e;return t.beginPath(),t.save(),Hs(t,e),this.curves.forEach(s=>{s.drawTo(t)}),i!=="none"&&t.fill(),A!=="none"&&t.stroke(),t.restore(),this}drawControlPointsTo(t,e={}){e={...this.style,...e};const{fill:i="#000",stroke:A="none"}=e;return t.beginPath(),t.save(),Hs(t,e),this.getControlPointRefs().forEach(s=>{Zg(t,s.x,s.y,{radius:4})}),i!=="none"&&t.fill(),A!=="none"&&t.stroke(),t.restore(),this}toCommands(){return this.curves.flatMap(t=>t.toCommands())}toData(){return this.curves.filter(t=>t.curves.length).map(t=>t.toData()).join(" ")}toSvgPathString(){const t={...this.style,fill:this.style.fill??"#000",stroke:this.style.stroke??"none"},e={};for(const A in t)t[A]!==void 0&&(e[zu(A)]=t[A]);Object.assign(e,{"stroke-width":`${this.strokeWidth}px`});let i="";for(const A in e)e[A]!==void 0&&(i+=`${A}:${e[A]};`);return`<path d="${this.toData()}" style="${i}"></path>`}copy(t){return super.copy(t),this.currentCurve=t.currentCurve.clone(),this.style={...t.style},this}}class Ai{constructor(t=[],e){this.paths=t,this.viewBox=e}getBoundingBox(t=!0){if(!this.paths.length)return;const e=J.MAX,i=J.MIN;return this.paths.forEach(A=>A.getMinMax(e,i,t)),new lt(e.x,e.y,i.x-e.x,i.y-e.y)}toTriangulatedSvgString(t=this.paths.map(i=>i.fillTriangulate()),e=0){let i="";const A={x:-e,y:-e},s={x:e,y:e};(Array.isArray(t)?t:[t]).forEach(({vertices:a,indices:l})=>{const c=h=>{const u=a[h*2],d=a[h*2+1];return A.x=Math.min(A.x,u+e),s.x=Math.max(s.x,u+e),A.y=Math.min(A.y,d+e),s.y=Math.max(s.y,d+e),[u,d]};for(let h=0,u=l.length;h<u;h+=3){const d=c(l[h]),f=c(l[h+1]),B=c(l[h+2]);i+=`<polygon points="${d.join(",")} ${f.join(",")} ${B.join(",")}" fill="black" />`}});const o=[A.x,A.y,s.x-A.x,s.y-A.y];return`<svg width="${o[2]}" height="${o[3]}" viewBox="${o.join(" ")}" xmlns="http://www.w3.org/2000/svg">${i}</svg>`}toTriangulatedSvg(t,e){return new DOMParser().parseFromString(this.toTriangulatedSvgString(t,e),"image/svg+xml").documentElement}toSvgString(){const{x:t,y:e,width:i,height:A}=this.getBoundingBox(),s=this.paths.map(n=>n.toSvgPathString()).join("");return`<svg viewBox="${t} ${e} ${i} ${A}" width="${i}px" height="${A}px" xmlns="http://www.w3.org/2000/svg">${s}</svg>`}toSvgUrl(){return`data:image/svg+xml;base64,${btoa(this.toSvgString())}`}toSvg(){return new DOMParser().parseFromString(this.toSvgString(),"image/svg+xml").documentElement}toCanvas(t={}){const{pixelRatio:e=2,...i}=t,{left:A,top:s,width:n,height:o}=this.getBoundingBox(),a=document.createElement("canvas");a.width=n*e,a.height=o*e,a.style.width=`${n}px`,a.style.height=`${o}px`;const l=a.getContext("2d");return l&&(l.scale(e,e),l.translate(-A,-s),this.paths.forEach(c=>{c.drawTo(l,i)})),a}}class qa extends Rt{fillStyle;strokeStyle;lineCap;lineJoin;lineWidth;miterLimit;uvTransform;vertTransform;_defaultStyle=mt.EMPTY;_draws=[];_toTexture(t){return t instanceof mt?t:new ga(t)}stroke(t){const e=new Rt(this);let i=this._defaultStyle;this.strokeStyle&&(i=this._toTexture(this.strokeStyle)),this.curves.length&&(this._draws.push({...t,type:"stroke",path:e,texture:i,uvTransform:this.uvTransform,vertTransform:this.vertTransform,style:{alignment:.5,cap:this.lineCap??"butt",join:this.lineJoin??"miter",width:this.lineWidth??1,miterLimit:this.miterLimit??10}}),super.reset())}fillRect(t,e,i,A){this.rect(t,e,i,A).fill()}strokeRect(t,e,i,A){this.rect(t,e,i,A).stroke()}fill(t){const e=new Rt(this);let i=this._defaultStyle;this.fillStyle&&(i=this._toTexture(this.fillStyle)),this._draws.push({...t,type:"fill",path:e,texture:i,uvTransform:this.uvTransform,vertTransform:this.vertTransform}),super.reset()}copy(t){return super.copy(t),this.strokeStyle=t.strokeStyle,this.fillStyle=t.fillStyle,this.uvTransform=t.uvTransform,this.vertTransform=t.vertTransform,this.lineCap=t.lineCap,this.lineJoin=t.lineJoin,this.lineWidth=t.lineWidth,this.miterLimit=t.miterLimit,this._draws=t._draws.slice(),this}reset(){return super.reset(),this.strokeStyle=void 0,this.fillStyle=void 0,this.uvTransform=void 0,this.vertTransform=void 0,this.lineCap=void 0,this.lineJoin=void 0,this.lineWidth=void 0,this.miterLimit=void 0,this._draws.length=0,this}buildUvs(t,e,i,A,s){if(A){const n=s&&(typeof s=="function"?s:(l,c)=>s.applyToPoint(l,c)),o=A.width,a=A.height;for(let l=e.length,c=t;c<l;c+=2){const h=e[c],u=e[c+1];let d,f;n?[d,f]=n(h,u):[d,f]=[h/o,u/a],i.push(d,f)}}else for(let n=e.length,o=t;o<n;o+=2)i.push(0,0)}toBatchables(){const t=[];for(let e=this._draws.length,i=0;i<e;i++){const A=this._draws[i],s=[],n=[],o=[];A.type==="fill"?A.path.fillTriangulate({vertices:s,indices:n}):A.path.strokeTriangulate({vertices:s,indices:n,lineStyle:A.style,flipAlignment:!1,closed:!0}),this.buildUvs(0,s,o,A.texture,A.uvTransform),t.push({vertices:s,indices:n,uvs:o,texture:A.texture,type:A.type,disableWrapMode:A.disableWrapMode,vertTransform:A.vertTransform})}return t}}var qu=Object.defineProperty,Xu=Object.getOwnPropertyDescriptor,wA=(r,t,e,i)=>{for(var A=i>1?void 0:i?Xu(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&qu(t,e,A),A};g.CanvasItem=class extends g.TimelineNode{_parentGlobalVisible;_globalVisible;get globalVisible(){return this._globalVisible??!0}_parentGlobalOpacity;_globalOpacity;get globalOpacity(){return this._globalOpacity??1}_modulate=new Je(4294967295);context=new qa;_resetContext=!0;_redrawing=!0;_relayouting=!1;_repainting=!1;_originalBatchables=[];_layoutedBatchables=[];_batchables=[];constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"modulate":this._modulate.value=e,this.requestRepaint();break;case"blendMode":this.requestRepaint();break;case"opacity":this._updateGlobalOpacity();break;case"visible":case"insideTimeRange":this._updateGlobalVisible();break}}show(){this.visible=!0}hide(){this.visible=!1}isVisibleInTree(){return this.globalOpacity>0&&this.globalVisible}canRender(){return super.canRender()&&this.isVisibleInTree()}requestRedraw(){this._redrawing=!0,this.requestUpdate()}requestRelayout(){this._relayouting=!0,this.requestUpdate()}requestRepaint(){this._repainting=!0,this.requestUpdate()}_updateGlobalVisible(){this._parentGlobalVisible=this.getParent()?.globalVisible,this._globalVisible=(this._parentGlobalVisible??!0)&&this.visible&&this.insideTimeRange}_updateGlobalOpacity(){this._parentGlobalOpacity=this.getParent()?.opacity;const t=Ke(0,this.opacity,1)*(this._parentGlobalOpacity??1);this._globalOpacity!==t&&(this._globalOpacity=t,this.requestRepaint())}_draw(){this.emit("draw")}_redraw(){return this._tree?.log(this.name,"drawing"),this._draw(),this.context.toBatchables()}_relayout(t){return this._tree?.log(this.name,"layouting"),t}_repaint(t){return this._tree?.log(this.name,"painting"),t.map(e=>({...e,modulate:this._modulate.toArgb(this.globalOpacity,!0),blendMode:this.blendMode}))}_process(t){super._process(t);const e=this.getParent();this._parentGlobalVisible!==e?.globalVisible&&this.requestUpdate(),this._parentGlobalOpacity!==e?.globalOpacity&&this.requestUpdate()}_update(t){super._update(t);const e=this.getParent();this._parentGlobalVisible!==e?.globalVisible&&this._updateGlobalVisible(),this._parentGlobalOpacity!==e?.globalOpacity&&this._updateGlobalOpacity();const i=this._redrawing;let A=this._relayouting,s=this._repainting,n;i&&(this._originalBatchables=this._redraw(),A=!0),A&&(this._layoutedBatchables=this._relayout(this._originalBatchables),s=!0),s&&(n=this._repaint(this._layoutedBatchables)),i&&this._resetContext&&this.context.reset(),n&&(this._batchables=n,this._redrawing=!1,this._relayouting=!1,this._repainting=!1)}_render(t){this._batchables.forEach(e=>{e.texture?.upload(t),t.batch2D.render({...e,texture:e.texture?._glTexture(t)})}),super._render(t)}},wA([_()],g.CanvasItem.prototype,"modulate",2),wA([_()],g.CanvasItem.prototype,"blendMode",2),wA([_({protected:!0,fallback:!0})],g.CanvasItem.prototype,"visible",2),wA([_({protected:!0,fallback:1})],g.CanvasItem.prototype,"opacity",2),g.CanvasItem=wA([nt("CanvasItem")],g.CanvasItem);class ju{currentCall;calls=[];createCall(t){return{renderable:t,parentCall:this.currentCall,fn:t.render.bind(t),calls:[]}}push(t){const e=this.createCall(t);return(this.currentCall?.calls??this.calls).push(e),e}render(t){this.calls.forEach(function e(i){i.fn(t,()=>{i.calls.forEach(e)})}),this.calls=[]}}var Zu=Object.defineProperty,$u=Object.getOwnPropertyDescriptor,vA=(r,t,e,i)=>{for(var A=i>1?void 0:i?$u(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Zu(t,e,A),A};g.Timeline=class extends g.Node{static from(t,e=!1){const[i,A]=t?Array.isArray(t)?t:[0,t]:[];return new g.Timeline({startTime:i,endTime:A,loop:e})}constructor(t){super(),this.setProperties(t)}_updateProperty(t,e,i){switch(super._updateProperty(t,e,i),t){case"startTime":this.startTime=Math.min(e,this.endTime);break;case"endTime":this.endTime=e||Number.MAX_SAFE_INTEGER;break}}addTime(t){const e=this.startTime,i=this.endTime;let A=this.currentTime;return A=A+t,this.loop&&A>i&&(A=e+A%i),A=Ke(e,A,i),this.currentTime=A,this.emit("updateCurrentTime",A,t),this}_process(t){super._process(t),this.addTime(t)}},vA([_({fallback:0})],g.Timeline.prototype,"startTime",2),vA([_({fallback:0})],g.Timeline.prototype,"currentTime",2),vA([_({fallback:Number.MAX_SAFE_INTEGER})],g.Timeline.prototype,"endTime",2),vA([_({fallback:!1})],g.Timeline.prototype,"loop",2),g.Timeline=vA([nt("Timeline")],g.Timeline);var tf=Object.defineProperty,Zs=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&tf(t,e,A),A};class _A extends ar{input=new Lo;renderStack=new ju;root=new g.Viewport(!0).setTree(this);timeline;nodes=new Map;_backgroundColor=new Je;_currentViewport;getCurrentViewport(){return this._currentViewport}setCurrentViewport(t){this._currentViewport=t}constructor(t=new g.Timeline){super(),this.timeline=t.setTree(this)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"backgroundColor":this._backgroundColor.value=e;break}}log(...t){this.debug&&console.log("[modern-canvas]",...t)}_process(t=0){this.timeline.emit("process",t),this.emit("processing"),this.root.emit("process",t),this.emit("processed")}_render(t){this.emit("rendering"),t.program.uniforms.projectionMatrix=this.root.toProjectionArray(!0),this.renderStack.render(t),this._renderScreen(t),this.emit("rendered")}_renderScreen(t){t.state.reset(),t.framebuffer.bind(null),t.viewport.bind({x:0,y:0,width:this.root.width*t.pixelRatio,height:this.root.height*t.pixelRatio}),this.backgroundColor&&t.gl.clearColor(...this._backgroundColor.toArray()),t.clear(),this.backgroundColor&&t.gl.clearColor(0,0,0,0);const e=this.root.texture;e.activate(t,0),gt.draw(t),t.texture.unbind(e)}free(){super.free(),this.root.children.internal.forEach(t=>this.root.removeChild(t)),this.input.removeEventListeners()}}Zs([_({fallback:!1})],_A.prototype,"processPaused"),Zs([_()],_A.prototype,"backgroundColor"),Zs([_({protected:!0,fallback:!1})],_A.prototype,"debug");var ef=Object.getOwnPropertyDescriptor,Af=(r,t,e,i)=>{for(var A=i>1?void 0:i?ef(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.Transition=class extends g.Effect{constructor(t,e=[]){super(),this.setProperties(t).append(e)}},g.Transition=Af([nt("Transition",{effectMode:"transition",processMode:"pausable",duration:2e3})],g.Transition);var Xa=Object.defineProperty,rf=Object.getOwnPropertyDescriptor,sf=(r,t,e)=>t in r?Xa(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,$s=(r,t,e,i)=>{for(var A=i>1?void 0:i?rf(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Xa(t,e,A),A},ja=(r,t,e)=>sf(r,typeof t!="symbol"?t+"":t,e);const Za=`varying vec2 vUv[9];
|
|
278
278
|
uniform sampler2D sampler;
|
|
279
279
|
|
|
280
280
|
void main(void) {
|
|
@@ -855,14 +855,14 @@ void main() {
|
|
|
855
855
|
color /= total;
|
|
856
856
|
|
|
857
857
|
gl_FragColor = color;
|
|
858
|
-
}`})),bA([_()],g.ZoomBlurEffect.prototype,"center",2),bA([_()],g.ZoomBlurEffect.prototype,"innerRadius",2),bA([_()],g.ZoomBlurEffect.prototype,"radius",2),bA([_()],g.ZoomBlurEffect.prototype,"strength",2),g.ZoomBlurEffect=bA([nt("ZoomBlurEffect")],g.ZoomBlurEffect);var kf=Object.defineProperty,Qe=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&kf(t,e,A),A};class zt extends ei{constructor(t){super(),this.parent=t}_texture;_setProperties(t){return super.setProperties(t)}setProperties(t){return this._setProperties(bt(t)?void 0:Ei(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"color":case"cropRect":case"stretchRect":case"dpi":case"rotateWithShape":case"tile":case"opacity":case"enabled":this.parent.requestRedraw();break;case"image":case"linearGradient":case"radialGradient":this._updateTexture();break}}async loadTexture(){return this.linearGradient||this.radialGradient?new hr(this.linearGradient??this.radialGradient,this.parent.size.width,this.parent.size.height):bt(this.image)?void 0:(this.parent.tree?.log(`load image ${this.image}`),await Ne.texture.load(this.image))}async _updateTexture(){this._texture=await this.loadTexture(),this.parent.requestRedraw()}canDraw(){return!!(this.enabled&&(this._texture||this.color))}_getDrawOptions(){let t=!1;const{width:e,height:i}=this.parent.size,A=new Vt().scale(1/e,1/i);if(this.cropRect){const{left:s=0,top:n=0,right:o=0,bottom:a=0}=this.cropRect;A.scale(Math.abs(1-(s+o)),Math.abs(1-(n+a))).translate(s,n),t=!0}if(this.tile){const{translateX:s=0,translateY:n=0,scaleX:o=1,scaleY:a=1}=this.tile;A.translate(-s/e,-n/i).scale(1/o,1/a),t=!0}else if(this.stretchRect){const{left:s=0,top:n=0,right:o=0,bottom:a=0}=this.stretchRect;A.scale(Math.abs(1-(-s+-o)),Math.abs(1-(-n+-a))).translate(-s,-n),t=!0}return{disableWrapMode:t,uvTransform:A}}draw(){const t=this.parent.context,{uvTransform:e,disableWrapMode:i}=this._getDrawOptions();t.uvTransform=e,t.fillStyle=this._texture??this.color,t.fill({disableWrapMode:i})}}Qe([_({fallback:!0})],zt.prototype,"enabled"),Qe([_()],zt.prototype,"color"),Qe([_()],zt.prototype,"image"),Qe([_()],zt.prototype,"linearGradient"),Qe([_()],zt.prototype,"radialGradient"),Qe([_()],zt.prototype,"cropRect"),Qe([_()],zt.prototype,"stretchRect"),Qe([_()],zt.prototype,"dpi"),Qe([_()],zt.prototype,"rotateWithShape"),Qe([_()],zt.prototype,"tile"),Qe([_()],zt.prototype,"opacity");var Pf=Object.defineProperty,Uf=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Pf(t,e,A),A};class en extends zt{setProperties(t){return super._setProperties(bt(t)?void 0:hh(t))}}Uf([_()],en.prototype,"fillWithShape");var Nf=Object.defineProperty,Ff=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Nf(t,e,A),A};class An extends zt{setProperties(t){return super._setProperties(bt(t)?void 0:uh(t))}}Ff([_()],An.prototype,"fillWithShape");var Tf=Object.defineProperty,rn=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Tf(t,e,A),A};class DA extends zt{setProperties(t){return super._setProperties(bt(t)?void 0:fh(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"width":case"style":case"enabled":this.parent.requestRedraw();break}}canDraw(){return!!(this.enabled&&(this.width||this.color||super.canDraw()))}draw(){const t=this.parent.context,{uvTransform:e,disableWrapMode:i}=this._getDrawOptions();t.lineWidth=this.width||1,t.uvTransform=e,t.strokeStyle=this._texture??this.color,t.stroke({disableWrapMode:i})}}rn([_({fallback:"#00000000"})],DA.prototype,"color"),rn([_({fallback:0})],DA.prototype,"width"),rn([_({fallback:"solid"})],DA.prototype,"style");var Lf=Object.defineProperty,xA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Lf(t,e,A),A};class mi extends ei{constructor(t){super(),this.parent=t}setProperties(t){return super.setProperties(bt(t)?void 0:dh(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"color":case"blur":case"offsetX":case"offsetY":this.updateEffect();break}}updateEffect(){const t="__$shadow";let e=this.parent.getNode(t);this.blur||this.offsetX||this.offsetY?(e||(e=new g.DropShadowEffect({name:t}),this.parent.appendChild(e,"back")),e.setProperties(this.getProperties())):e&&this.parent.removeChild(e)}}xA([_({fallback:!0})],mi.prototype,"enabled"),xA([_({fallback:"#000000FF"})],mi.prototype,"color"),xA([_({fallback:0})],mi.prototype,"blur"),xA([_({fallback:0})],mi.prototype,"offsetY"),xA([_({fallback:0})],mi.prototype,"offsetX");var Gf=Object.defineProperty,SA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Gf(t,e,A),A};class wi extends ei{constructor(t){super(),this.parent=t,this._updatePath2DSet()}_path2DSet=new Ai;setProperties(t){return super.setProperties(bt(t)?void 0:ph(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"svg":case"paths":case"viewBox":case"enabled":this._updatePath2DSet(),this.parent.requestRedraw();break}}_updatePath2DSet(){let t;if(this.svg){const n=Ks(this.svg);this._path2DSet=Vs(n),t=this._path2DSet.viewBox}else this.paths?.forEach((n,o)=>{const{data:a,...l}=n,c=new Rt;c.style=l,c.addData(a),this._path2DSet.paths[o]=c});if(!t){const n=this._path2DSet.getBoundingBox();t=n?[n.x,n.y,n.width,n.height]:[0,0,1,1]}const[e,i,A,s]=t;this._path2DSet.paths.forEach(n=>{n.applyTransform(new Lt().translate(-e,-i).scale(1/A,1/s))})}draw(){if(this.enabled&&this._path2DSet.paths.length){const t=this.parent.context,{width:e,height:i}=this.parent.size;this._path2DSet.paths.forEach(A=>{t.addPath(A.clone().applyTransform(new Lt().scale(e,i)))})}else this.drawRect()}drawRect(){const t=this.parent.context,{width:e,height:i}=this.parent.size,{borderRadius:A}=this.parent.style;e&&i&&(A?t.roundRect(0,0,e,i,A):t.rect(0,0,e,i))}}SA([_({fallback:!0})],wi.prototype,"enabled"),SA([_()],wi.prototype,"preset"),SA([_()],wi.prototype,"svg"),SA([_()],wi.prototype,"viewBox"),SA([_()],wi.prototype,"paths");class MA extends He{constructor(t){super(),this.setProperties(t)}}const gl=_h();for(const r in gl){const t=gl[r];Ar(MA.prototype,r,{fallback:t})}function Gt(r){return r==null||r==="none"}function RA(r,t=0,e=10**t){return Math.round(e*r)/e+0}function sn(r,t=!1){if(typeof r!="object"||!r)return r;if(Array.isArray(r))return t?r.map(i=>sn(i,t)):r;const e={};for(const i in r){const A=r[i];A!=null&&(t?e[i]=sn(A,t):e[i]=A)}return e}function Of(r){let t;return typeof r=="number"?t={r:r>>24&255,g:r>>16&255,b:r>>8&255,a:(r&255)/255}:t=r,Be(t)}function Hf(r){return{r:RA(r.r),g:RA(r.g),b:RA(r.b),a:RA(r.a,3)}}function Br(r){const t=r.toString(16);return t.length<2?`0${t}`:t}const Jf="#000000FF";function kA(r,t=!1){const e=Of(r);if(!e.isValid()){if(typeof r=="string")return r;const o=`Failed to normalizeColor ${r}`;if(t)throw new Error(o);return console.warn(o),Jf}const{r:i,g:A,b:s,a:n}=Hf(e.rgba);return`#${Br(i)}${Br(A)}${Br(s)}${Br(RA(n*255))}`}var Cr=Cr||{};Cr.parse=function(){const r={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let t="";function e(b){const D=new Error(`${t}: ${b}`);throw D.source=t,D}function i(){const b=A();return t.length>0&&e("Invalid input not EOF"),b}function A(){return y(s)}function s(){return n("linear-gradient",r.linearGradient,a)||n("repeating-linear-gradient",r.repeatingLinearGradient,a)||n("radial-gradient",r.radialGradient,h)||n("repeating-radial-gradient",r.repeatingRadialGradient,h)}function n(b,D,F){return o(D,V=>{const At=F();return At&&(N(r.comma)||e("Missing comma before color stops")),{type:b,orientation:At,colorStops:y(S)}})}function o(b,D){const F=N(b);if(F){N(r.startCall)||e("Missing (");const V=D(F);return N(r.endCall)||e("Missing )"),V}}function a(){const b=l();if(b)return b;const D=j("position-keyword",r.positionKeywords,1);return D?{type:"directional",value:D.value}:c()}function l(){return j("directional",r.sideOrCorner,1)}function c(){return j("angular",r.angleValue,1)||j("angular",r.radianValue,1)}function h(){let b,D=u(),F;return D&&(b=[],b.push(D),F=t,N(r.comma)&&(D=u(),D?b.push(D):t=F)),b}function u(){let b=d()||f();if(b)b.at=p();else{const D=B();if(D){b=D;const F=p();F&&(b.at=F)}else{const F=p();if(F)b={type:"default-radial",at:F};else{const V=R();V&&(b={type:"default-radial",at:V})}}}return b}function d(){const b=j("shape",/^(circle)/i,0);return b&&(b.style=X()||B()),b}function f(){const b=j("shape",/^(ellipse)/i,0);return b&&(b.style=R()||L()||B()),b}function B(){return j("extent-keyword",r.extentKeywords,1)}function p(){if(j("position",/^at/,0)){const b=R();return b||e("Missing positioning value"),b}}function R(){const b=P();if(b.x||b.y)return{type:"position",value:b}}function P(){return{x:L(),y:L()}}function y(b){let D=b();const F=[];if(D)for(F.push(D);N(r.comma);)D=b(),D?F.push(D):e("One extra comma");return F}function S(){const b=Q();return b||e("Expected color definition"),b.length=L(),b}function Q(){return M()||Y()||q()||W()||k()||it()||m()}function m(){return j("literal",r.literalColor,0)}function M(){return j("hex",r.hexColor,1)}function k(){return o(r.rgbColor,()=>({type:"rgb",value:y(H)}))}function W(){return o(r.rgbaColor,()=>({type:"rgba",value:y(H)}))}function it(){return o(r.varColor,()=>({type:"var",value:et()}))}function q(){return o(r.hslColor,()=>{N(r.percentageValue)&&e("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const D=H();N(r.comma);let F=N(r.percentageValue);const V=F?F[1]:null;N(r.comma),F=N(r.percentageValue);const At=F?F[1]:null;return(!V||!At)&&e("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[D,V,At]}})}function Y(){return o(r.hslaColor,()=>{const b=H();N(r.comma);let D=N(r.percentageValue);const F=D?D[1]:null;N(r.comma),D=N(r.percentageValue);const V=D?D[1]:null;N(r.comma);const At=H();return(!F||!V)&&e("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[b,F,V,At]}})}function et(){return N(r.variableName)[1]}function H(){return N(r.number)[1]}function L(){return j("%",r.percentageValue,1)||rt()||O()||X()}function rt(){return j("position-keyword",r.positionKeywords,1)}function O(){return o(r.calcValue,()=>{let b=1,D=0;for(;b>0&&D<t.length;){const V=t.charAt(D);V==="("?b++:V===")"&&b--,D++}b>0&&e("Missing closing parenthesis in calc() expression");const F=t.substring(0,D-1);return tt(D-1),{type:"calc",value:F}})}function X(){return j("px",r.pixelValue,1)||j("em",r.emValue,1)}function j(b,D,F){const V=N(D);if(V)return{type:b,value:V[F]}}function N(b){let D,F;return F=/^\s+/.exec(t),F&&tt(F[0].length),D=b.exec(t),D&&tt(D[0].length),D}function tt(b){t=t.substr(b)}return function(b){return t=b.toString().trim(),t.endsWith(";")&&(t=t.slice(0,-1)),i()}}(),Cr.parse.bind(Cr);var Qr=Qr||{};Qr.stringify=function(){var r={"visit_linear-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return r.visit_gradient(t)},"visit_radial-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return r.visit_gradient(t)},visit_gradient:function(t){var e=r.visit(t.orientation);return e&&(e+=", "),t.type+"("+e+r.visit(t.colorStops)+")"},visit_shape:function(t){var e=t.value,i=r.visit(t.at),A=r.visit(t.style);return A&&(e+=" "+A),i&&(e+=" at "+i),e},"visit_default-radial":function(t){var e="",i=r.visit(t.at);return i&&(e+=i),e},"visit_extent-keyword":function(t){var e=t.value,i=r.visit(t.at);return i&&(e+=" at "+i),e},"visit_position-keyword":function(t){return t.value},visit_position:function(t){return r.visit(t.value.x)+" "+r.visit(t.value.y)},"visit_%":function(t){return t.value+"%"},visit_em:function(t){return t.value+"em"},visit_px:function(t){return t.value+"px"},visit_calc:function(t){return"calc("+t.value+")"},visit_literal:function(t){return r.visit_color(t.value,t)},visit_hex:function(t){return r.visit_color("#"+t.value,t)},visit_rgb:function(t){return r.visit_color("rgb("+t.value.join(", ")+")",t)},visit_rgba:function(t){return r.visit_color("rgba("+t.value.join(", ")+")",t)},visit_hsl:function(t){return r.visit_color("hsl("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%)",t)},visit_hsla:function(t){return r.visit_color("hsla("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%, "+t.value[3]+")",t)},visit_var:function(t){return r.visit_color("var("+t.value+")",t)},visit_color:function(t,e){var i=t,A=r.visit(e.length);return A&&(i+=" "+A),i},visit_angular:function(t){return t.value+"deg"},visit_directional:function(t){return"to "+t.value},visit_array:function(t){var e="",i=t.length;return t.forEach(function(A,s){e+=r.visit(A),s<i-1&&(e+=", ")}),e},visit_object:function(t){return t.width&&t.height?r.visit(t.width)+" "+r.visit(t.height):""},visit:function(t){if(!t)return"";if(t instanceof Array)return r.visit_array(t);if(typeof t=="object"&&!t.type)return r.visit_object(t);if(t.type){var e=r["visit_"+t.type];if(e)return e(t);throw Error("Missing visitor visit_"+t.type)}else throw Error("Invalid node.")}};return function(t){return r.visit(t)}}(),Qr.stringify.bind(Qr);function Kf(){return{boxShadow:"none"}}function Yf(){return{overflow:"visible",direction:void 0,display:void 0,boxSizing:void 0,width:void 0,height:void 0,maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,position:void 0,left:0,top:0,right:void 0,bottom:void 0,borderTop:void 0,borderLeft:void 0,borderRight:void 0,borderBottom:void 0,borderWidth:0,border:void 0,flex:void 0,flexBasis:void 0,flexDirection:void 0,flexGrow:void 0,flexShrink:void 0,flexWrap:void 0,justifyContent:void 0,gap:void 0,alignContent:void 0,alignItems:void 0,alignSelf:void 0,marginTop:void 0,marginLeft:void 0,marginRight:void 0,marginBottom:void 0,margin:void 0,paddingTop:void 0,paddingLeft:void 0,paddingRight:void 0,paddingBottom:void 0,padding:void 0}}function Vf(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function zf(){return{...Yf(),...Vf(),...Kf(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function Wf(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function qf(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function Xf(){return{...Wf(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function jf(){return{...qf(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function Zf(){return{...jf(),...Xf(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function yr(r){return sn({...r,color:Gt(r.color)?void 0:kA(r.color),backgroundColor:Gt(r.backgroundColor)?void 0:kA(r.backgroundColor),borderColor:Gt(r.borderColor)?void 0:kA(r.borderColor),outlineColor:Gt(r.outlineColor)?void 0:kA(r.outlineColor),shadowColor:Gt(r.shadowColor)?void 0:kA(r.shadowColor)})}function $f(){return{...zf(),...Zf()}}const td=/\r\n|\n\r|\n|\r/,ed=new RegExp(`^(${td.source})$`),ul=`
|
|
859
|
-
`;function id(r){return ed.test(r)}function Ad(r,t){const e=Array.from(new Set([...Object.keys(r),...Object.keys(t)]));return!e.length||e.every(i=>r[i]===t[i])}function rd(r){const t=[];function e(){return t[t.length-1]}function i(o={}){let a=t[t.length-1];return a?.fragments.length===0?(a={...o,fragments:[]},t[t.length-1]=a):(a={...o,fragments:[]},t.push(a)),a}function A(o="",a={}){Array.from(o).forEach(l=>{if(id(l)){const{fragments:c,...h}=e()||i();c.length||c.push({...a,content:ul}),i(h)}else{const c=e()||i(),h=c.fragments[c.fragments.length-1];if(h){const{content:u,...d}=h;if(Ad(a,d)){h.content=`${u}${l}`;return}}c.fragments.push({...a,content:l})}})}(Array.isArray(r)?r:[r]).forEach(o=>{if(typeof o=="string")i(),A(o);else if("content"in o){const{content:a,...l}=o;i(yr(l)),A(a)}else if("fragments"in o){const{fragments:a,...l}=o;i(yr(l)),a.forEach(c=>{const{content:h,...u}=c;A(h,yr(u))})}else Array.isArray(o)?(i(),o.forEach(a=>{if(typeof a=="string")A(a);else{const{content:l,...c}=a;A(l,yr(c))}})):console.warn("Failed to parse text content",o)});const n=e();return n&&!n.fragments.length&&n.fragments.push({content:ul}),t}var Wt=Uint8Array,he=Uint16Array,nn=Int32Array,mr=new Wt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),wr=new Wt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),on=new Wt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),fl=function(r,t){for(var e=new he(31),i=0;i<31;++i)e[i]=t+=1<<r[i-1];for(var A=new nn(e[30]),i=1;i<30;++i)for(var s=e[i];s<e[i+1];++s)A[s]=s-e[i]<<5|i;return{b:e,r:A}},dl=fl(mr,2),Il=dl.b,an=dl.r;Il[28]=258,an[258]=28;for(var pl=fl(wr,0),sd=pl.b,El=pl.r,ln=new he(32768),pt=0;pt<32768;++pt){var ni=(pt&43690)>>1|(pt&21845)<<1;ni=(ni&52428)>>2|(ni&13107)<<2,ni=(ni&61680)>>4|(ni&3855)<<4,ln[pt]=((ni&65280)>>8|(ni&255)<<8)>>1}for(var Me=function(r,t,e){for(var i=r.length,A=0,s=new he(t);A<i;++A)r[A]&&++s[r[A]-1];var n=new he(t);for(A=1;A<t;++A)n[A]=n[A-1]+s[A-1]<<1;var o;if(e){o=new he(1<<t);var a=15-t;for(A=0;A<i;++A)if(r[A])for(var l=A<<4|r[A],c=t-r[A],h=n[r[A]-1]++<<c,u=h|(1<<c)-1;h<=u;++h)o[ln[h]>>a]=l}else for(o=new he(i),A=0;A<i;++A)r[A]&&(o[A]=ln[n[r[A]-1]++]>>15-r[A]);return o},oi=new Wt(288),pt=0;pt<144;++pt)oi[pt]=8;for(var pt=144;pt<256;++pt)oi[pt]=9;for(var pt=256;pt<280;++pt)oi[pt]=7;for(var pt=280;pt<288;++pt)oi[pt]=8;for(var PA=new Wt(32),pt=0;pt<32;++pt)PA[pt]=5;var nd=Me(oi,9,0),od=Me(oi,9,1),ad=Me(PA,5,0),ld=Me(PA,5,1),cn=function(r){for(var t=r[0],e=1;e<r.length;++e)r[e]>t&&(t=r[e]);return t},ye=function(r,t,e){var i=t/8|0;return(r[i]|r[i+1]<<8)>>(t&7)&e},hn=function(r,t){var e=t/8|0;return(r[e]|r[e+1]<<8|r[e+2]<<16)>>(t&7)},gn=function(r){return(r+7)/8|0},Bl=function(r,t,e){return(e==null||e>r.length)&&(e=r.length),new Wt(r.subarray(t,e))},cd=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],me=function(r,t,e){var i=new Error(t||cd[r]);if(i.code=r,Error.captureStackTrace&&Error.captureStackTrace(i,me),!e)throw i;return i},hd=function(r,t,e,i){var A=r.length,s=0;if(!A||t.f&&!t.l)return e||new Wt(0);var n=!e,o=n||t.i!=2,a=t.i;n&&(e=new Wt(A*3));var l=function(Ft){var ct=e.length;if(Ft>ct){var Qt=new Wt(Math.max(ct*2,Ft));Qt.set(e),e=Qt}},c=t.f||0,h=t.p||0,u=t.b||0,d=t.l,f=t.d,B=t.m,p=t.n,R=A*8;do{if(!d){c=ye(r,h,1);var P=ye(r,h+1,3);if(h+=3,P)if(P==1)d=od,f=ld,B=9,p=5;else if(P==2){var m=ye(r,h,31)+257,M=ye(r,h+10,15)+4,k=m+ye(r,h+5,31)+1;h+=14;for(var W=new Wt(k),it=new Wt(19),q=0;q<M;++q)it[on[q]]=ye(r,h+q*3,7);h+=M*3;for(var Y=cn(it),et=(1<<Y)-1,H=Me(it,Y,1),q=0;q<k;){var L=H[ye(r,h,et)];h+=L&15;var y=L>>4;if(y<16)W[q++]=y;else{var rt=0,O=0;for(y==16?(O=3+ye(r,h,3),h+=2,rt=W[q-1]):y==17?(O=3+ye(r,h,7),h+=3):y==18&&(O=11+ye(r,h,127),h+=7);O--;)W[q++]=rt}}var X=W.subarray(0,m),j=W.subarray(m);B=cn(X),p=cn(j),d=Me(X,B,1),f=Me(j,p,1)}else me(1);else{var y=gn(h)+4,S=r[y-4]|r[y-3]<<8,Q=y+S;if(Q>A){a&&me(0);break}o&&l(u+S),e.set(r.subarray(y,Q),u),t.b=u+=S,t.p=h=Q*8,t.f=c;continue}if(h>R){a&&me(0);break}}o&&l(u+131072);for(var N=(1<<B)-1,tt=(1<<p)-1,b=h;;b=h){var rt=d[hn(r,h)&N],D=rt>>4;if(h+=rt&15,h>R){a&&me(0);break}if(rt||me(2),D<256)e[u++]=D;else if(D==256){b=h,d=null;break}else{var F=D-254;if(D>264){var q=D-257,V=mr[q];F=ye(r,h,(1<<V)-1)+Il[q],h+=V}var At=f[hn(r,h)&tt],Z=At>>4;At||me(3),h+=At&15;var j=sd[Z];if(Z>3){var V=wr[Z];j+=hn(r,h)&(1<<V)-1,h+=V}if(h>R){a&&me(0);break}o&&l(u+131072);var dt=u+F;if(u<j){var re=s-j,se=Math.min(j,dt);for(re+u<0&&me(3);u<se;++u)e[u]=i[re+u]}for(;u<dt;++u)e[u]=e[u-j]}}t.l=d,t.p=b,t.b=u,t.f=c,d&&(c=1,t.m=B,t.d=f,t.n=p)}while(!c);return u!=e.length&&n?Bl(e,0,u):e.subarray(0,u)},qe=function(r,t,e){e<<=t&7;var i=t/8|0;r[i]|=e,r[i+1]|=e>>8},UA=function(r,t,e){e<<=t&7;var i=t/8|0;r[i]|=e,r[i+1]|=e>>8,r[i+2]|=e>>16},un=function(r,t){for(var e=[],i=0;i<r.length;++i)r[i]&&e.push({s:i,f:r[i]});var A=e.length,s=e.slice();if(!A)return{t:ml,l:0};if(A==1){var n=new Wt(e[0].s+1);return n[e[0].s]=1,{t:n,l:1}}e.sort(function(Q,m){return Q.f-m.f}),e.push({s:-1,f:25001});var o=e[0],a=e[1],l=0,c=1,h=2;for(e[0]={s:-1,f:o.f+a.f,l:o,r:a};c!=A-1;)o=e[e[l].f<e[h].f?l++:h++],a=e[l!=c&&e[l].f<e[h].f?l++:h++],e[c++]={s:-1,f:o.f+a.f,l:o,r:a};for(var u=s[0].s,i=1;i<A;++i)s[i].s>u&&(u=s[i].s);var d=new he(u+1),f=fn(e[c-1],d,0);if(f>t){var i=0,B=0,p=f-t,R=1<<p;for(s.sort(function(m,M){return d[M.s]-d[m.s]||m.f-M.f});i<A;++i){var P=s[i].s;if(d[P]>t)B+=R-(1<<f-d[P]),d[P]=t;else break}for(B>>=p;B>0;){var y=s[i].s;d[y]<t?B-=1<<t-d[y]++-1:++i}for(;i>=0&&B;--i){var S=s[i].s;d[S]==t&&(--d[S],++B)}f=t}return{t:new Wt(d),l:f}},fn=function(r,t,e){return r.s==-1?Math.max(fn(r.l,t,e+1),fn(r.r,t,e+1)):t[r.s]=e},Cl=function(r){for(var t=r.length;t&&!r[--t];);for(var e=new he(++t),i=0,A=r[0],s=1,n=function(a){e[i++]=a},o=1;o<=t;++o)if(r[o]==A&&o!=t)++s;else{if(!A&&s>2){for(;s>138;s-=138)n(32754);s>2&&(n(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(n(A),--s;s>6;s-=6)n(8304);s>2&&(n(s-3<<5|8208),s=0)}for(;s--;)n(A);s=1,A=r[o]}return{c:e.subarray(0,i),n:t}},NA=function(r,t){for(var e=0,i=0;i<t.length;++i)e+=r[i]*t[i];return e},Ql=function(r,t,e){var i=e.length,A=gn(t+2);r[A]=i&255,r[A+1]=i>>8,r[A+2]=r[A]^255,r[A+3]=r[A+1]^255;for(var s=0;s<i;++s)r[A+s+4]=e[s];return(A+4+i)*8},yl=function(r,t,e,i,A,s,n,o,a,l,c){qe(t,c++,e),++A[256];for(var h=un(A,15),u=h.t,d=h.l,f=un(s,15),B=f.t,p=f.l,R=Cl(u),P=R.c,y=R.n,S=Cl(B),Q=S.c,m=S.n,M=new he(19),k=0;k<P.length;++k)++M[P[k]&31];for(var k=0;k<Q.length;++k)++M[Q[k]&31];for(var W=un(M,7),it=W.t,q=W.l,Y=19;Y>4&&!it[on[Y-1]];--Y);var et=l+5<<3,H=NA(A,oi)+NA(s,PA)+n,L=NA(A,u)+NA(s,B)+n+14+3*Y+NA(M,it)+2*M[16]+3*M[17]+7*M[18];if(a>=0&&et<=H&&et<=L)return Ql(t,c,r.subarray(a,a+l));var rt,O,X,j;if(qe(t,c,1+(L<H)),c+=2,L<H){rt=Me(u,d,0),O=u,X=Me(B,p,0),j=B;var N=Me(it,q,0);qe(t,c,y-257),qe(t,c+5,m-1),qe(t,c+10,Y-4),c+=14;for(var k=0;k<Y;++k)qe(t,c+3*k,it[on[k]]);c+=3*Y;for(var tt=[P,Q],b=0;b<2;++b)for(var D=tt[b],k=0;k<D.length;++k){var F=D[k]&31;qe(t,c,N[F]),c+=it[F],F>15&&(qe(t,c,D[k]>>5&127),c+=D[k]>>12)}}else rt=nd,O=oi,X=ad,j=PA;for(var k=0;k<o;++k){var V=i[k];if(V>255){var F=V>>18&31;UA(t,c,rt[F+257]),c+=O[F+257],F>7&&(qe(t,c,V>>23&31),c+=mr[F]);var At=V&31;UA(t,c,X[At]),c+=j[At],At>3&&(UA(t,c,V>>5&8191),c+=wr[At])}else UA(t,c,rt[V]),c+=O[V]}return UA(t,c,rt[256]),c+O[256]},gd=new nn([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ml=new Wt(0),ud=function(r,t,e,i,A,s){var n=s.z||r.length,o=new Wt(i+n+5*(1+Math.ceil(n/7e3))+A),a=o.subarray(i,o.length-A),l=s.l,c=(s.r||0)&7;if(t){c&&(a[0]=s.r>>3);for(var h=gd[t-1],u=h>>13,d=h&8191,f=(1<<e)-1,B=s.p||new he(32768),p=s.h||new he(f+1),R=Math.ceil(e/3),P=2*R,y=function(Tt){return(r[Tt]^r[Tt+1]<<R^r[Tt+2]<<P)&f},S=new nn(25e3),Q=new he(288),m=new he(32),M=0,k=0,W=s.i||0,it=0,q=s.w||0,Y=0;W+2<n;++W){var et=y(W),H=W&32767,L=p[et];if(B[H]=L,p[et]=H,q<=W){var rt=n-W;if((M>7e3||it>24576)&&(rt>423||!l)){c=yl(r,a,0,S,Q,m,k,it,Y,W-Y,c),it=M=k=0,Y=W;for(var O=0;O<286;++O)Q[O]=0;for(var O=0;O<30;++O)m[O]=0}var X=2,j=0,N=d,tt=H-L&32767;if(rt>2&&et==y(W-tt))for(var b=Math.min(u,rt)-1,D=Math.min(32767,W),F=Math.min(258,rt);tt<=D&&--N&&H!=L;){if(r[W+X]==r[W+X-tt]){for(var V=0;V<F&&r[W+V]==r[W+V-tt];++V);if(V>X){if(X=V,j=tt,V>b)break;for(var At=Math.min(tt,V-2),Z=0,O=0;O<At;++O){var dt=W-tt+O&32767,re=B[dt],se=dt-re&32767;se>Z&&(Z=se,L=dt)}}}H=L,L=B[H],tt+=H-L&32767}if(j){S[it++]=268435456|an[X]<<18|El[j];var Ft=an[X]&31,ct=El[j]&31;k+=mr[Ft]+wr[ct],++Q[257+Ft],++m[ct],q=W+X,++M}else S[it++]=r[W],++Q[r[W]]}}for(W=Math.max(W,q);W<n;++W)S[it++]=r[W],++Q[r[W]];c=yl(r,a,l,S,Q,m,k,it,Y,W-Y,c),l||(s.r=c&7|a[c/8|0]<<3,c-=7,s.h=p,s.p=B,s.i=W,s.w=q)}else{for(var W=s.w||0;W<n+l;W+=65535){var Qt=W+65535;Qt>=n&&(a[c/8|0]=l,Qt=n),c=Ql(a,c+1,r.subarray(W,Qt))}s.i=n}return Bl(o,0,i+gn(c)+A)},wl=function(){var r=1,t=0;return{p:function(e){for(var i=r,A=t,s=e.length|0,n=0;n!=s;){for(var o=Math.min(n+2655,s);n<o;++n)A+=i+=e[n];i=(i&65535)+15*(i>>16),A=(A&65535)+15*(A>>16)}r=i,t=A},d:function(){return r%=65521,t%=65521,(r&255)<<24|(r&65280)<<8|(t&255)<<8|t>>8}}},fd=function(r,t,e,i,A){if(!A&&(A={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),n=new Wt(s.length+r.length);n.set(s),n.set(r,s.length),r=n,A.w=s.length}return ud(r,t.level==null?6:t.level,t.mem==null?A.l?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):20:12+t.mem,e,i,A)},vl=function(r,t,e){for(;e;++t)r[t]=e,e>>>=8},dd=function(r,t){var e=t.level,i=e==0?0:e<6?1:e==9?3:2;if(r[0]=120,r[1]=i<<6|(t.dictionary&&32),r[1]|=31-(r[0]<<8|r[1])%31,t.dictionary){var A=wl();A.p(t.dictionary),vl(r,2,A.d())}},Id=function(r,t){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&me(6,"invalid zlib data"),(r[1]>>5&1)==1&&me(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2};function pd(r,t){t||(t={});var e=wl();e.p(r);var i=fd(r,t,t.dictionary?6:2,4);return dd(i,t),vl(i,i.length-4,e.d()),i}function Ed(r,t){return hd(r.subarray(Id(r),-4),{i:2},t,t)}var Bd=typeof TextDecoder<"u"&&new TextDecoder,Cd=0;try{Bd.decode(ml,{stream:!0}),Cd=1}catch{}const Qd="modern-font";function FA(r,t){if(!r)throw new Error(`[${Qd}] ${t}`)}function yd(r){if("buffer"in r){const t=r.buffer;return r.byteOffset>0||r.byteLength<r.buffer.byteLength?t.slice(r.byteOffset,r.byteOffset+r.byteLength):t}else return r}function Gi(r){return"buffer"in r?new DataView(r.buffer,r.byteOffset,r.byteLength):new DataView(r)}function md(r){let t="";for(let e=0,i=r.length,A;e<i;e++)A=r.charCodeAt(e),A!==0&&(t+=String.fromCharCode(A));return t}function vr(r){r=md(r);const t=[];for(let e=0,i=r.length,A;e<i;e++)A=r.charCodeAt(e),t.push(A>>8),t.push(A&255);return t}function wd(r){let t="";for(let e=0,i=r.length;e<i;e++)r[e]<127?t+=String.fromCharCode(r[e]):t+=`%${(256+r[e]).toString(16).slice(1)}`;return unescape(t)}function vd(r){let t="";for(let e=0,i=r.length;e<i;e+=2)t+=String.fromCharCode((r[e]<<8)+r[e+1]);return t}var _d=Object.defineProperty,qt=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&_d(t,e,A),A};const TA={int8:1,int16:2,int32:4,uint8:1,uint16:2,uint32:4,float32:4,float64:8,fixed:4,longDateTime:8,char:1};function Xt(){return function(r,t){Object.defineProperty(r.constructor.prototype,t,{get(){if(typeof t=="string"){if(t.startsWith("read"))return(...e)=>this.read(t.substring(4).toLowerCase(),...e);if(t.startsWith("write"))return(...e)=>this.write(t.substring(5).toLowerCase(),...e)}},configurable:!0,enumerable:!0})}}class kt extends DataView{constructor(t,e,i,A){super(yd(t),e,i),this.littleEndian=A}cursor=0;readColumn(t){if(t.size){const e=Array.from({length:t.size},(i,A)=>this.read(t.type,t.offset+A));switch(t.type){case"char":return e.join("");default:return e}}else return this.read(t.type,t.offset)}writeColumn(t,e){t.size?Array.from({length:t.size},(i,A)=>{this.write(t.type,e[A],t.offset+A)}):this.write(t.type,e,t.offset)}read(t,e=this.cursor,i=this.littleEndian){switch(t){case"char":return this.readChar(e);case"fixed":return this.readFixed(e,i);case"longDateTime":return this.readLongDateTime(e,i)}const A=`get${t.replace(/^\S/,a=>a.toUpperCase())}`,s=this,o=s[A]?.bind(s)?.(e,i);return this.cursor+=TA[t],o}readUint24(t=this.cursor){const[e,i,A]=this.readBytes(t,3);return(e<<16)+(i<<8)+A}readBytes(t,e){e==null&&(e=t,t=this.cursor);const i=[];for(let A=0;A<e;++A)i.push(this.getUint8(t+A));return this.cursor=t+e,i}readString(t,e){const i=this.readBytes(t,e);let A="";for(let s=0,n=i.length;s<n;s++)A+=String.fromCharCode(i[s]);return A}readFixed(t,e){const i=this.readInt32(t,e)/65536;return Math.ceil(i*1e5)/1e5}readLongDateTime(t=this.cursor,e){const i=this.readUint32(t+4,e),A=new Date;return A.setTime(i*1e3+-20775456e5),A}readChar(t){return this.readString(t,1)}write(t,e,i=this.cursor,A=this.littleEndian){switch(t){case"char":return this.writeChar(e,i);case"fixed":return this.writeFixed(e,i);case"longDateTime":return this.writeLongDateTime(e,i)}const s=`set${t.replace(/^\S/,l=>l.toUpperCase())}`,n=this,a=n[s]?.bind(n)?.(i,e,A);return this.cursor+=TA[t.toLowerCase()],a}writeString(t="",e=this.cursor){const i=t.replace(/[^\x00-\xFF]/g,"11").length;this.seek(e);for(let A=0,s=t.length,n;A<s;++A)n=t.charCodeAt(A)||0,n>127?this.writeUint16(n):this.writeUint8(n);return this.cursor+=i,this}writeChar(t,e){return this.writeString(t,e)}writeFixed(t,e){return this.writeInt32(Math.round(t*65536),e),this}writeLongDateTime(t,e=this.cursor){typeof t>"u"?t=-20775456e5:typeof t.getTime=="function"?t=t.getTime():/^\d+$/.test(t)?t=+t:t=Date.parse(t);const A=Math.round((t- -20775456e5)/1e3);return this.writeUint32(0,e),this.writeUint32(A,e+4),this}writeBytes(t,e=this.cursor){let i;if(Array.isArray(t)){i=t.length;for(let A=0;A<i;++A)this.setUint8(e+A,t[A])}else{const A=Gi(t);i=A.byteLength;for(let s=0;s<i;++s)this.setUint8(e+s,A.getUint8(s))}return this.cursor=e+i,this}seek(t){return this.cursor=t,this}}qt([Xt()],kt.prototype,"readInt8"),qt([Xt()],kt.prototype,"readInt16"),qt([Xt()],kt.prototype,"readInt32"),qt([Xt()],kt.prototype,"readUint8"),qt([Xt()],kt.prototype,"readUint16"),qt([Xt()],kt.prototype,"readUint32"),qt([Xt()],kt.prototype,"readFloat32"),qt([Xt()],kt.prototype,"readFloat64"),qt([Xt()],kt.prototype,"writeInt8"),qt([Xt()],kt.prototype,"writeInt16"),qt([Xt()],kt.prototype,"writeInt32"),qt([Xt()],kt.prototype,"writeUint8"),qt([Xt()],kt.prototype,"writeUint16"),qt([Xt()],kt.prototype,"writeUint32"),qt([Xt()],kt.prototype,"writeFloat32"),qt([Xt()],kt.prototype,"writeFloat64");const _l=new WeakMap;function w(r){const t=typeof r=="object"?r:{type:r},{size:e=1,type:i}=t;return(A,s)=>{if(typeof s!="string")return;let n=_l.get(A);n||(n={columns:[],byteLength:0},_l.set(A,n));const o={...t,name:s,byteLength:e*TA[i],offset:t.offset??n.columns.reduce((a,l)=>a+l.byteLength,0)};n.columns.push(o),n.byteLength=n.columns.reduce((a,l)=>a+TA[l.type]*(l.size??1),0),Object.defineProperty(A.constructor.prototype,s,{get(){return this.view.readColumn(o)},set(a){this.view.writeColumn(o,a)},configurable:!0,enumerable:!0})}}class ge{view;constructor(t,e,i,A){this.view=new kt(t,e,i,A)}}class _r extends ge{get buffer(){return this.view.buffer}toBuffer(){return this.view.buffer.slice(this.view.byteOffset,this.view.byteOffset+this.view.byteLength)}toBlob(){return new Blob([new Uint8Array(this.view.buffer,this.view.byteOffset,this.view.byteLength)],{type:this.mimeType})}toFontFace(t){return new FontFace(t,this.view.buffer)}}var bd=Object.defineProperty,te=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&bd(t,e,A),A};const ee=class Mc extends _r{format="EmbeddedOpenType";mimeType="application/vnd.ms-fontobject";static from(t){const e=t.sfnt,A=e.name.names,s=vr(A.fontFamily||""),n=s.length,o=vr(A.fontStyle||""),a=o.length,l=vr(A.version||""),c=l.length,h=vr(A.fullName||""),u=h.length,d=86+n+4+a+4+c+4+u+2+t.view.byteLength,f=new Mc(new ArrayBuffer(d),0,d,!0);f.EOTSize=f.view.byteLength,f.FontDataSize=t.view.byteLength,f.Version=131073,f.Flags=0,f.Charset=1,f.MagicNumber=20556,f.Padding1=0,f.CheckSumAdjustment=e.head.checkSumAdjustment;const B=e.os2;return B&&(f.FontPANOSE=B.fontPANOSE,f.Italic=B.fsSelection,f.Weight=B.usWeightClass,f.fsType=B.fsType,f.UnicodeRange=B.ulUnicodeRange,f.CodePageRange=B.ulCodePageRange),f.view.writeUint16(n),f.view.writeBytes(s),f.view.writeUint16(0),f.view.writeUint16(a),f.view.writeBytes(o),f.view.writeUint16(0),f.view.writeUint16(c),f.view.writeBytes(l),f.view.writeUint16(0),f.view.writeUint16(u),f.view.writeBytes(h),f.view.writeUint16(0),f.view.writeUint16(0),f.view.writeBytes(t.view),f}};te([w("uint32")],ee.prototype,"EOTSize"),te([w("uint32")],ee.prototype,"FontDataSize"),te([w("uint32")],ee.prototype,"Version"),te([w("uint32")],ee.prototype,"Flags"),te([w({type:"uint8",size:10})],ee.prototype,"FontPANOSE"),te([w("uint8")],ee.prototype,"Charset"),te([w("uint8")],ee.prototype,"Italic"),te([w("uint32")],ee.prototype,"Weight"),te([w("uint16")],ee.prototype,"fsType"),te([w("uint16")],ee.prototype,"MagicNumber"),te([w({type:"uint8",size:16})],ee.prototype,"UnicodeRange"),te([w({type:"uint8",size:8})],ee.prototype,"CodePageRange"),te([w("uint32")],ee.prototype,"CheckSumAdjustment"),te([w({type:"uint8",size:16})],ee.prototype,"Reserved"),te([w("uint16")],ee.prototype,"Padding1");var Dd=Object.defineProperty,br=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Dd(t,e,A),A};class Oi extends ge{constructor(t,e){super(t,e,16)}}br([w({type:"char",size:4})],Oi.prototype,"tag"),br([w("uint32")],Oi.prototype,"checkSum"),br([w("uint32")],Oi.prototype,"offset"),br([w("uint32")],Oi.prototype,"length");const dn=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],xd=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];class In{index;name;isComposite=!1;components=[];pathCommands=[];constructor(t){const e={...t};if(this.index=e.index??0,e.name===".notdef"?e.unicode=void 0:e.name===".null"&&(e.unicode=0),e.unicode===0&&e.name!==".null")throw new Error('The unicode value "0" is reserved for the glyph name ".null" and cannot be used by any other glyph.');this.name=e.name??null,e.unicode&&(this.unicode=e.unicode),e.unicodes?this.unicodes=e.unicodes:e.unicode&&(this.unicodes=[e.unicode])}getPathCommands(t=0,e=0,i=72,A={},s){const n=1/(s?.unitsPerEm??1e3)*i,{xScale:o=n,yScale:a=n}=A,l=this.pathCommands,c=[];for(let h=0,u=l.length;h<u;h+=1){const d=l[h];d.type==="M"?c.push({type:"M",x:t+d.x*o,y:e+-d.y*a}):d.type==="L"?c.push({type:"L",x:t+d.x*o,y:e+-d.y*a}):d.type==="Q"?c.push({type:"Q",x1:t+d.x1*o,y1:e+-d.y1*a,x:t+d.x*o,y:e+-d.y*a}):d.type==="C"?c.push({type:"C",x1:t+d.x1*o,y1:e+-d.y1*a,x2:t+d.x2*o,y2:e+-d.y2*a,x:t+d.x*o,y:e+-d.y*a}):d.type==="Z"&&c.push({type:"Z"})}return c}}class Sd extends In{parse(t,e,i){const A=this,{nominalWidthX:s,defaultWidthX:n,gsubrsBias:o,subrsBias:a}=t,l=t.topDict.paintType,c=this.index;let h,u,d,f;const B=[],p=[];let R=0,P=!1,y=!1,S=n,Q=0,m=0;function M(H,L){B.push({type:"L",x:H,y:L})}function k(H,L,rt,O,X,j){B.push({type:"C",x1:H,y1:L,x2:rt,y2:O,x:X,y:j})}function W(H,L){y&&l!==2&&it(),y=!0,B.push({type:"M",x:H,y:L})}function it(){B.push({type:"Z"})}function q(H){B.push(...H)}function Y(){p.length%2!==0&&!P&&(S=p.shift()+s),R+=p.length>>1,p.length=0,P=!0}function et(H){let L,rt,O,X,j,N,tt,b,D,F,V,At,Z=0;for(;Z<H.length;){let dt=H[Z++];switch(dt){case 1:Y();break;case 3:Y();break;case 4:p.length>1&&!P&&(S=p.shift()+s,P=!0),m+=p.pop(),W(Q,m);break;case 5:for(;p.length>0;)Q+=p.shift(),m+=p.shift(),M(Q,m);break;case 6:for(;p.length>0&&(Q+=p.shift(),M(Q,m),p.length!==0);)m+=p.shift(),M(Q,m);break;case 7:for(;p.length>0&&(m+=p.shift(),M(Q,m),p.length!==0);)Q+=p.shift(),M(Q,m);break;case 8:for(;p.length>0;)h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+p.shift(),k(h,u,d,f,Q,m);break;case 10:j=p.pop()+a,N=t.subrs[j],N&&et(N);break;case 11:return;case 12:switch(dt=H[Z],Z+=1,dt){case 35:h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),tt=d+p.shift(),b=f+p.shift(),D=tt+p.shift(),F=b+p.shift(),V=D+p.shift(),At=F+p.shift(),Q=V+p.shift(),m=At+p.shift(),p.shift(),k(h,u,d,f,tt,b),k(D,F,V,At,Q,m);break;case 34:h=Q+p.shift(),u=m,d=h+p.shift(),f=u+p.shift(),tt=d+p.shift(),b=f,D=tt+p.shift(),F=f,V=D+p.shift(),At=m,Q=V+p.shift(),k(h,u,d,f,tt,b),k(D,F,V,At,Q,m);break;case 36:h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),tt=d+p.shift(),b=f,D=tt+p.shift(),F=f,V=D+p.shift(),At=F+p.shift(),Q=V+p.shift(),k(h,u,d,f,tt,b),k(D,F,V,At,Q,m);break;case 37:h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),tt=d+p.shift(),b=f+p.shift(),D=tt+p.shift(),F=b+p.shift(),V=D+p.shift(),At=F+p.shift(),Math.abs(V-Q)>Math.abs(At-m)?Q=V+p.shift():m=At+p.shift(),k(h,u,d,f,tt,b),k(D,F,V,At,Q,m);break;default:console.warn(`Glyph ${c}: unknown operator ${1200+dt}`),p.length=0}break;case 14:if(p.length>=4){const re=dn[p.pop()],se=dn[p.pop()],Ft=p.pop(),ct=p.pop();if(re&&se){A.isComposite=!0,A.components=[];const Qt=t.charset.indexOf(re),Tt=t.charset.indexOf(se);A.components.push({glyphIndex:Tt,dx:0,dy:0}),A.components.push({glyphIndex:Qt,dx:ct,dy:Ft}),q(i.get(Tt).pathCommands);const Kt=JSON.parse(JSON.stringify(i.get(Qt).pathCommands));for(let _t=0;_t<Kt.length;_t+=1){const $t=Kt[_t];$t.type!=="Z"&&($t.x+=ct,$t.y+=Ft),($t.type==="Q"||$t.type==="C")&&($t.x1+=ct,$t.y1+=Ft),$t.type==="C"&&($t.x2+=ct,$t.y2+=Ft)}q(Kt)}}else p.length>0&&!P&&(S=p.shift()+s,P=!0);y&&l!==2&&(it(),y=!1);break;case 18:Y();break;case 19:case 20:Y(),Z+=R+7>>3;break;case 21:p.length>2&&!P&&(S=p.shift()+s,P=!0),m+=p.pop(),Q+=p.pop(),W(Q,m);break;case 22:p.length>1&&!P&&(S=p.shift()+s,P=!0),Q+=p.pop(),W(Q,m);break;case 23:Y();break;case 24:for(;p.length>2;)h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+p.shift(),k(h,u,d,f,Q,m);Q+=p.shift(),m+=p.shift(),M(Q,m);break;case 25:for(;p.length>6;)Q+=p.shift(),m+=p.shift(),M(Q,m);h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+p.shift(),k(h,u,d,f,Q,m);break;case 26:for(p.length%2&&(Q+=p.shift());p.length>0;)h=Q,u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d,m=f+p.shift(),k(h,u,d,f,Q,m);break;case 27:for(p.length%2&&(m+=p.shift());p.length>0;)h=Q+p.shift(),u=m,d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f,k(h,u,d,f,Q,m);break;case 28:L=H[Z],rt=H[Z+1],p.push((L<<24|rt<<16)>>16),Z+=2;break;case 29:j=p.pop()+o,N=t.gsubrs[j],N&&et(N);break;case 30:for(;p.length>0&&(h=Q,u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+(p.length===1?p.shift():0),k(h,u,d,f,Q,m),p.length!==0);)h=Q+p.shift(),u=m,d=h+p.shift(),f=u+p.shift(),m=f+p.shift(),Q=d+(p.length===1?p.shift():0),k(h,u,d,f,Q,m);break;case 31:for(;p.length>0&&(h=Q+p.shift(),u=m,d=h+p.shift(),f=u+p.shift(),m=f+p.shift(),Q=d+(p.length===1?p.shift():0),k(h,u,d,f,Q,m),p.length!==0);)h=Q,u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+(p.length===1?p.shift():0),k(h,u,d,f,Q,m);break;default:dt<32?console.warn(`Glyph ${c}: unknown operator ${dt}`):dt<247?p.push(dt-139):dt<251?(L=H[Z],Z+=1,p.push((dt-247)*256+L+108)):dt<255?(L=H[Z],Z+=1,p.push(-(dt-251)*256-L-108)):(L=H[Z],rt=H[Z+1],O=H[Z+2],X=H[Z+3],Z+=4,p.push((L<<24|rt<<16|O<<8|X)/65536))}}}et(e),this.pathCommands=B,P&&(this.advanceWidth=S)}}class pn{constructor(t){this._sfnt=t}_items=[];get(t){const e=this._items[t];let i;if(e)i=e;else{i=this._get(t);const A=this._sfnt.hmtx.metrics[t];A&&(i.advanceWidth=i.advanceWidth||A.advanceWidth,i.leftSideBearing=i.leftSideBearing||A.leftSideBearing);const s=this._sfnt.cmap.glyphIndexToUnicodesMap.get(t);s&&(i.unicode??=s[0],i.unicodes??=s),this._items[t]=i}return i}}class Md extends pn{get length(){return this._sfnt.cff.charStringsIndex.offsets.length-1}_get(t){const e=this._sfnt.cff,i=new Sd({index:t});return i.parse(e,e.charStringsIndex.get(t),this),i.name=e.charset[t],i}}var Rd=Object.defineProperty,bl=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Rd(t,e,A),A};class Dr extends ge{_offsets;get offsets(){return this._offsets??=this.readOffsets()}_objects;get objects(){return this._objects??=this.readObjects()}constructor(t,e,i,A){super(t,e,i,A),this._init()}_init(){const t=this.view,e=this.count,i=this.offsetSize;this.objectOffset=(e+1)*i+2,this.endOffset=t.byteOffset+this.objectOffset+this.offsets[e]}readOffsets(){const t=this.view,e=this.count,i=this.offsetSize;t.seek(3);const A=[];for(let s=0,n=e+1;s<n;s++){const o=this.view;let a=0;for(let l=0;l<i;l++)a<<=8,a+=o.readUint8();A.push(a)}return A}readObjects(){const t=[];for(let e=0,i=this.count;e<i;e++)t.push(this.get(e));return t}get(t){const e=this.offsets,i=this.objectOffset,A=i+e[t],n=i+e[t+1]-A;return this._isString?this.view.readString(A,n):this.view.readBytes(A,n)}}bl([w("uint16")],Dr.prototype,"count"),bl([w("uint8")],Dr.prototype,"offsetSize");class xr extends Dr{_isString=!1}class Dl extends Dr{_isString=!0}const kd=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],Pd=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],Ud=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],Nd=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"];function Sr(r,t){return t<=390?kd[t]:r[t-391]}function Et(r,t="number",e){return(i,A)=>{if(typeof A!="string")return;const s={type:t,operator:r,default:e??t==="number"?0:void 0};Object.defineProperty(i.constructor.prototype,A,{get(){return this._getProp(s)},set(n){this._setProp(s,n)},configurable:!0,enumerable:!0})}}class xl extends ge{_dict;get dict(){return this._dict??=this._readDict()}_stringIndex;setStringIndex(t){return this._stringIndex=t,this}_readFloatOperand(){const t=this.view;let e="";const i=15,A=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];for(;;){const s=t.readUint8(),n=s>>4,o=s&15;if(n===i||(e+=A[n],o===i))break;e+=A[o]}return Number.parseFloat(e)}_readOperand(t){const e=this.view;let i,A,s,n;if(t===28)return i=e.readUint8(),A=e.readUint8(),i<<8|A;if(t===29)return i=e.readUint8(),A=e.readUint8(),s=e.readUint8(),n=e.readUint8(),i<<24|A<<16|s<<8|n;if(t===30)return this._readFloatOperand();if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return i=e.readUint8(),(t-247)*256+i+108;if(t>=251&&t<=254)return i=e.readUint8(),-(t-251)*256-i-108;throw new Error(`invalid b0 ${t}, at: ${e.cursor}`)}_readDict(){const t=this.view;t.seek(0);let e=[];const i=t.cursor+t.byteLength,A={};for(;t.cursor<i;){let s=t.readUint8();s<=21?(s===12&&(s=1200+t.readUint8()),A[s]=e,e=[]):e.push(this._readOperand(s))}return A}_getProp(t){const e=this.dict[t.operator]??t.default;switch(t.type){case"number":return e[0];case"string":return Sr(this._stringIndex?.objects??[],e[0]);case"number[]":return e}return e}_setProp(t,e){}}var Fd=Object.defineProperty,En=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Fd(t,e,A),A};class Mr extends xl{}En([Et(19)],Mr.prototype,"subrs"),En([Et(20)],Mr.prototype,"defaultWidthX"),En([Et(21)],Mr.prototype,"nominalWidthX");var Td=Object.defineProperty,vt=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Td(t,e,A),A};class yt extends xl{}vt([Et(0,"string")],yt.prototype,"version"),vt([Et(1,"string")],yt.prototype,"notice"),vt([Et(1200,"string")],yt.prototype,"copyright"),vt([Et(2,"string")],yt.prototype,"fullName"),vt([Et(3,"string")],yt.prototype,"familyName"),vt([Et(4,"string")],yt.prototype,"weight"),vt([Et(1201)],yt.prototype,"isFixedPitch"),vt([Et(1202)],yt.prototype,"italicAngle"),vt([Et(1203,"number",-100)],yt.prototype,"underlinePosition"),vt([Et(1204,"number",50)],yt.prototype,"underlineThickness"),vt([Et(1205)],yt.prototype,"paintType"),vt([Et(1206,"number",2)],yt.prototype,"charstringType"),vt([Et(1207,"number[]",[.001,0,0,.001,0,0])],yt.prototype,"fontMatrix"),vt([Et(13)],yt.prototype,"uniqueId"),vt([Et(5,"number[]",[0,0,0,0])],yt.prototype,"fontBBox"),vt([Et(1208)],yt.prototype,"strokeWidth"),vt([Et(14)],yt.prototype,"xuid"),vt([Et(15)],yt.prototype,"charset"),vt([Et(16)],yt.prototype,"encoding"),vt([Et(17)],yt.prototype,"charStrings"),vt([Et(18,"number[]",[0,0])],yt.prototype,"private");function Ot(r,t=r){return e=>{Re.tableDefinitions.set(r,{tag:r,prop:t,class:e}),Object.defineProperty(Re.prototype,t,{get(){return this.get(r)},set(i){return this.set(r,i)},configurable:!0,enumerable:!0})}}class Re{static tableDefinitions=new Map;tables=new Map;tableViews=new Map;get hasGlyf(){return this.tableViews.has("glyf")}get names(){return this.name.names}get unitsPerEm(){return this.head.unitsPerEm}get ascender(){return this.hhea.ascent}get descender(){return this.hhea.descent}get createdTimestamp(){return this.head.created}get modifiedTimestamp(){return this.head.modified}get numGlyphs(){return this.maxp.numGlyphs}get unicodes(){return this.cmap.glyphIndexToUnicodesMap}get glyphs(){return this.hasGlyf?this.glyf.glyphs:this.cff.glyphs}charToGlyphIndex(t){let e=this.cmap.unicodeToGlyphIndexMap.get(t.codePointAt(0));if(e===void 0&&!this.hasGlyf){const{encoding:i,charset:A}=this.cff;e=A.indexOf(i[t.codePointAt(0)])}return e??0}charToGlyph(t){return this.glyphs.get(this.charToGlyphIndex(t))}textToGlyphIndexes(t){const e=[];for(const i of t)e.push(this.charToGlyphIndex(i));return e}textToGlyphs(t){const e=this.glyphs,i=this.textToGlyphIndexes(t),A=i.length,s=Array.from({length:A}),n=e.get(0);for(let o=0;o<A;o+=1)s[o]=e.get(i[o])||n;return s}getPathCommands(t,e,i,A,s){const n=[];return this.forEachGlyph(t,e,i,A,s,(o,a,l,c,h)=>{n.push(...o.getPathCommands(a,l,c,h,this))}),n}getAdvanceWidth(t,e,i){return this.forEachGlyph(t,0,0,e,i,()=>{})}forEachGlyph(t,e=0,i=0,A=72,s={},n){const o=1/this.unitsPerEm*A,a=this.textToGlyphs(t);for(let l=0;l<a.length;l+=1){const c=a[l];n.call(this,c,e,i,A,s),c.advanceWidth&&(e+=c.advanceWidth*o),s.letterSpacing?e+=s.letterSpacing*A:s.tracking&&(e+=s.tracking/1e3*A)}return e}constructor(t){(t instanceof Map?t:new Map(Object.entries(t))).forEach((i,A)=>{this.tableViews.set(A,new DataView(i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)))})}clone(){return new Re(this.tableViews)}delete(t){const e=Re.tableDefinitions.get(t);return e?(this.tableViews.delete(t),this.tables.delete(e.prop),this):this}set(t,e){const i=Re.tableDefinitions.get(t);return i&&this.tables.set(i.prop,e),this.tableViews.set(t,e.view),this}get(t){const e=Re.tableDefinitions.get(t);if(!e)return;let i=this.tables.get(e.prop);if(!i){const A=e.class;if(A){const s=this.tableViews.get(t);if(!s)return;i=new A(s.buffer,s.byteOffset,s.byteLength).setSFNT(this),this.tables.set(e.prop,i)}}return i}}class jt extends ge{setSFNT(t){return this._sfnt=t,this}getSFNT(){return this._sfnt}}var Ld=Object.defineProperty,Gd=Object.getOwnPropertyDescriptor,LA=(r,t,e,i)=>{for(var A=i>1?void 0:i?Gd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Ld(t,e,A),A};let vi=class extends jt{_glyphs;get glyphs(){return this._glyphs??=new Md(this._sfnt)}get gsubrs(){return this.globalSubrIndex.objects}get gsubrsBias(){return this._calcSubroutineBias(this.globalSubrIndex.objects)}privateDict;subrsIndex;get defaultWidthX(){return this.privateDict?.defaultWidthX??0}get nominalWidthX(){return this.privateDict?.nominalWidthX??0}get subrs(){return this.subrsIndex?.objects??[]}get subrsBias(){return this._calcSubroutineBias(this.subrs)}constructor(r,t,e,i){super(r,t,e,i),this._init()}_init(){const r=this.view,{buffer:t,byteOffset:e}=r,i=e+4;this.nameIndex=new Dl(t,i),this.topDictIndex=new xr(t,this.nameIndex.endOffset),this.stringIndex=new Dl(t,this.topDictIndex.endOffset),this.globalSubrIndex=new xr(t,this.stringIndex.endOffset),this.topDict=new yt(new Uint8Array(this.topDictIndex.objects[0]).buffer).setStringIndex(this.stringIndex);const A=this.topDict.private[0],s=this.topDict.private[1];A&&(this.privateDict=new Mr(t,e+s,A).setStringIndex(this.stringIndex),this.privateDict.subrs&&(this.subrsIndex=new xr(t,e+s+this.privateDict.subrs))),this.charStringsIndex=new xr(t,e+this.topDict.charStrings);const n=this.charStringsIndex.offsets.length-1;this.topDict.charset===0?this.charset=Pd:this.topDict.charset===1?this.charset=Ud:this.topDict.charset===2?this.charset=Nd:this.charset=this._readCharset(e+this.topDict.charset,n,this.stringIndex.objects),this.topDict.encoding===0?this.encoding=dn:this.topDict.encoding===1?this.encoding=xd:this.encoding=this._readEncoding(e+this.topDict.encoding)}_readCharset(r,t,e){const i=this.view;i.seek(r);let A,s,n;t-=1;const o=[".notdef"],a=i.readUint8();if(a===0)for(A=0;A<t;A+=1)s=i.readUint16(),o.push(Sr(e,s));else if(a===1)for(;o.length<=t;)for(s=i.readUint16(),n=i.readUint8(),A=0;A<=n;A+=1)o.push(Sr(e,s)),s+=1;else if(a===2)for(;o.length<=t;)for(s=i.readUint16(),n=i.readUint16(),A=0;A<=n;A+=1)o.push(Sr(e,s)),s+=1;else throw new Error(`Unknown charset format ${a}`);return o}_readEncoding(r){const t=this.view;t.seek(r);let e,i;const A={},s=t.readUint8();if(s===0){const n=t.readUint8();for(e=0;e<n;e+=1)i=t.readUint8(),A[i]=e}else if(s===1){const n=t.readUint8();for(i=1,e=0;e<n;e+=1){const o=t.readUint8(),a=t.readUint8();for(let l=o;l<=o+a;l+=1)A[l]=i,i+=1}}else console.warn(`unknown encoding format:${s}`);return A}_calcSubroutineBias(r){let t;return r.length<1240?t=107:r.length<33900?t=1131:t=32768,t}};LA([w("uint8")],vi.prototype,"majorVersion",2),LA([w("uint8")],vi.prototype,"minorVersion",2),LA([w("uint8")],vi.prototype,"headerSize",2),LA([w("uint8")],vi.prototype,"offsetSize",2),vi=LA([Ot("CFF ","cff")],vi);var Od=Object.defineProperty,Rr=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Od(t,e,A),A};const GA=class Rc extends ge{constructor(t=new ArrayBuffer(262),e){super(t,e,262)}static from(t){const e=new Rc;return e.format=0,e.length=e.view.byteLength,e.language=0,t.forEach((i,A)=>{A<256&&i<256&&e.view.writeUint8(i,6+A)}),e}getUnicodeToGlyphIndexMap(){const t=new Map;return this.glyphIndexArray.forEach((e,i)=>{t.set(i,e)}),t}};Rr([w("uint16")],GA.prototype,"format"),Rr([w("uint16")],GA.prototype,"length"),Rr([w("uint16")],GA.prototype,"language"),Rr([w({type:"uint8",size:256})],GA.prototype,"glyphIndexArray");let Bn=GA;var Hd=Object.defineProperty,Cn=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Hd(t,e,A),A};class OA extends ge{get subHeaderKeys(){return this.view.seek(6),Array.from({length:256},()=>this.view.readUint16()/8)}get maxSubHeaderKey(){return this.subHeaderKeys.reduce((t,e)=>Math.max(t,e),0)}get subHeaders(){const t=this.maxSubHeaderKey;return this.view.seek(6+256*2),Array.from({length:t},(e,i)=>({firstCode:this.view.readUint16(),entryCount:this.view.readUint16(),idDelta:this.view.readUint16(),idRangeOffset:(this.view.readUint16()-(t-i)*8-2)/2}))}get glyphIndexArray(){const t=this.maxSubHeaderKey,e=6+256*2+t*8;this.view.seek(e);const i=(this.view.byteLength-e)/2;return Array.from({length:i},()=>this.view.readUint16())}getUnicodeToGlyphIndexMap(t){const e=new Map,i=this.subHeaderKeys,A=this.maxSubHeaderKey,s=this.subHeaders,n=this.glyphIndexArray,o=i.findIndex(l=>l===A);let a=0;for(let l=0;l<256;l++)if(i[l]===0)l>=o||l<s[0].firstCode||l>=s[0].firstCode+s[0].entryCount||s[0].idRangeOffset+(l-s[0].firstCode)>=n.length?a=0:(a=n[s[0].idRangeOffset+(l-s[0].firstCode)],a!==0&&(a=a+s[0].idDelta)),a!==0&&a<t&&e.set(l,a);else{const c=i[l];for(let h=0,u=s[c].entryCount;h<u;h++)if(s[c].idRangeOffset+h>=n.length?a=0:(a=n[s[c].idRangeOffset+h],a!==0&&(a=a+s[c].idDelta)),a!==0&&a<t){const d=(l<<8|h+s[c].firstCode)%65535;e.set(d,a)}}return e}}Cn([w("uint16")],OA.prototype,"format"),Cn([w("uint16")],OA.prototype,"length"),Cn([w("uint16")],OA.prototype,"language");function Sl(r){return r>32767?r-65536:r<-32767?r+65536:r}function Qn(r,t){let e;const i=[];let A={};return r.forEach((s,n)=>{t&&n>t||((!e||n!==e.unicode+1||s!==e.glyphIndex+1)&&(e?(A.end=e.unicode,i.push(A),A={start:n,startId:s,delta:Sl(s-n)}):(A.start=Number(n),A.startId=s,A.delta=Sl(s-n))),e={unicode:n,glyphIndex:s})}),e&&(A.end=e.unicode,i.push(A)),i}var Jd=Object.defineProperty,_i=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Jd(t,e,A),A};const ai=class kc extends ge{get endCode(){const t=this.segCountX2;return this.view.seek(14),Array.from({length:t/2},()=>this.view.readUint16())}set endCode(t){this.view.seek(14),t.forEach(e=>this.view.writeUint16(e))}get reservedPad(){return this.view.readUint16(14+this.segCountX2)}set reservedPad(t){this.view.writeUint16(t,14+this.segCountX2)}get startCode(){const t=this.segCountX2;return this.view.seek(14+t+2),Array.from({length:t/2},()=>this.view.readUint16())}set startCode(t){this.view.seek(14+this.segCountX2+2),t.forEach(e=>this.view.writeUint16(e))}get idDelta(){const t=this.segCountX2;return this.view.seek(14+t+2+t),Array.from({length:t/2},()=>this.view.readUint16())}set idDelta(t){const e=this.segCountX2;this.view.seek(14+e+2+e),t.forEach(i=>this.view.writeUint16(i))}get idRangeOffsetCursor(){const t=this.segCountX2;return 14+t+2+t*2}get idRangeOffset(){const t=this.segCountX2;return this.view.seek(this.idRangeOffsetCursor),Array.from({length:t/2},()=>this.view.readUint16())}set idRangeOffset(t){this.view.seek(this.idRangeOffsetCursor),t.forEach(e=>this.view.writeUint16(e))}get glyphIndexArrayCursor(){const t=this.segCountX2;return 14+t+2+t*3}get glyphIndexArray(){const t=this.glyphIndexArrayCursor;this.view.seek(t);const e=(this.view.byteLength-t)/2;return Array.from({length:e},()=>this.view.readUint16())}static from(t){const e=Qn(t,65535),i=e.length+1,A=Math.floor(Math.log(i)/Math.LN2),s=2*2**A,n=new kc(new ArrayBuffer(24+e.length*8));return n.format=4,n.length=n.view.byteLength,n.language=0,n.segCountX2=i*2,n.searchRange=s,n.entrySelector=A,n.rangeShift=2*i-s,n.endCode=[...e.map(o=>o.end),65535],n.reservedPad=0,n.startCode=[...e.map(o=>o.start),65535],n.idDelta=[...e.map(o=>o.delta),1],n.idRangeOffset=Array.from({length:i},()=>0),n}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.segCountX2/2,i=(this.glyphIndexArrayCursor-this.idRangeOffsetCursor)/2,A=this.startCode,s=this.endCode,n=this.idRangeOffset,o=this.idDelta,a=this.glyphIndexArray;for(let l=0;l<e;++l)for(let c=A[l],h=s[l];c<=h;++c)if(n[l]===0)t.set(c,(c+o[l])%65536);else{const u=l+n[l]/2+(c-A[l])-i,d=a[u];d!==0?t.set(c,(d+o[l])%65536):t.set(c,0)}return t.delete(65535),t}};_i([w("uint16")],ai.prototype,"format"),_i([w("uint16")],ai.prototype,"length"),_i([w("uint16")],ai.prototype,"language"),_i([w("uint16")],ai.prototype,"segCountX2"),_i([w("uint16")],ai.prototype,"searchRange"),_i([w("uint16")],ai.prototype,"entrySelector"),_i([w("uint16")],ai.prototype,"rangeShift");let yn=ai;var Kd=Object.defineProperty,HA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Kd(t,e,A),A};class bi extends ge{get glyphIndexArray(){return this.view.seek(12),Array.from({length:this.entryCount},()=>this.view.readUint16())}getUnicodeToGlyphIndexMap(){const t=this.glyphIndexArray,e=new Map;return t.forEach((i,A)=>{e.set(A,i)}),e}}HA([w("uint16")],bi.prototype,"format"),HA([w("uint16")],bi.prototype,"length"),HA([w("uint16")],bi.prototype,"language"),HA([w("uint16")],bi.prototype,"firstCode"),HA([w("uint16")],bi.prototype,"entryCount");var Yd=Object.defineProperty,JA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Yd(t,e,A),A};const Hi=class Pc extends ge{get groups(){const t=this.nGroups;return this.view.seek(16),Array.from({length:t},()=>({startCharCode:this.view.readUint32(),endCharCode:this.view.readUint32(),startGlyphCode:this.view.readUint32()}))}static from(t){const e=Qn(t),i=new Pc(new ArrayBuffer(16+e.length*12));return i.format=12,i.reserved=0,i.length=i.view.byteLength,i.language=0,i.nGroups=e.length,e.forEach(A=>{i.view.writeUint32(A.start),i.view.writeUint32(A.end),i.view.writeUint32(A.startId)}),i}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.groups;for(let i=0,A=e.length;i<A;i++){const s=e[i];let n=s.startGlyphCode,o=s.startCharCode;const a=s.endCharCode;for(;o<=a;)t.set(o++,n++)}return t}};JA([w("uint16")],Hi.prototype,"format"),JA([w("uint16")],Hi.prototype,"reserved"),JA([w("uint32")],Hi.prototype,"length"),JA([w("uint32")],Hi.prototype,"language"),JA([w("uint32")],Hi.prototype,"nGroups");let mn=Hi;var Vd=Object.defineProperty,wn=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Vd(t,e,A),A};class KA extends ge{getVarSelectorRecords(){const t=this.numVarSelectorRecords;return this.view.seek(10),Array.from({length:t},()=>{const e={varSelector:this.view.readUint24(),defaultUVSOffset:this.view.readUint32(),unicodeValueRanges:[],nonDefaultUVSOffset:this.view.readUint32(),uVSMappings:[]};if(e.defaultUVSOffset){this.view.seek(e.defaultUVSOffset);const i=this.view.readUint32();e.unicodeValueRanges=Array.from({length:i},()=>({startUnicodeValue:this.view.readUint24(),additionalCount:this.view.readUint8()}))}if(e.nonDefaultUVSOffset){this.view.seek(e.nonDefaultUVSOffset);const i=this.view.readUint32();e.uVSMappings=Array.from({length:i},()=>({unicodeValue:this.view.readUint24(),glyphID:this.view.readUint16()}))}return e})}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.getVarSelectorRecords();for(let i=0,A=e.length;i<A;i++){const{uVSMappings:s}=e[i];s.forEach(n=>{t.set(n.unicodeValue,n.glyphID)})}return t}}wn([w("uint16")],KA.prototype,"format"),wn([w("uint32")],KA.prototype,"length"),wn([w("uint32")],KA.prototype,"numVarSelectorRecords");var zd=Object.defineProperty,Wd=Object.getOwnPropertyDescriptor,vn=(r,t,e,i)=>{for(var A=i>1?void 0:i?Wd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&zd(t,e,A),A};let Ji=class extends jt{static from(r){const t=Array.from(r.keys()).some(c=>c>65535),e=yn.from(r),i=Bn.from(r),A=t?mn.from(r):void 0,s=4+(A?32:24),n=s+e.view.byteLength,o=n+i.view.byteLength,a=[{platformID:0,platformSpecificID:3,offset:s},{platformID:1,platformSpecificID:0,offset:n},{platformID:3,platformSpecificID:1,offset:s},A&&{platformID:3,platformSpecificID:10,offset:o}].filter(Boolean),l=new Ji(new ArrayBuffer(4+8*a.length+e.view.byteLength+i.view.byteLength+(A?.view.byteLength??0)));return l.numberSubtables=a.length,l.view.seek(4),a.forEach(c=>{l.view.writeUint16(c.platformID),l.view.writeUint16(c.platformSpecificID),l.view.writeUint32(c.offset)}),l.view.writeBytes(e.view,s),l.view.writeBytes(i.view,n),A&&l.view.writeBytes(A.view,o),l}_unicodeToGlyphIndexMap;get unicodeToGlyphIndexMap(){return this._unicodeToGlyphIndexMap??=this.readunicodeToGlyphIndexMap()}_glyphIndexToUnicodesMap;get glyphIndexToUnicodesMap(){if(!this._glyphIndexToUnicodesMap){const r=new Map,t=this.unicodeToGlyphIndexMap,e=Array.from(t.keys());for(let i=0,A=e.length;i<A;i++){const s=e[i],n=t.get(s);r.has(n)?r.get(n).push(s):r.set(n,[s])}this._glyphIndexToUnicodesMap=r}return this._glyphIndexToUnicodesMap}readSubtables(){const r=this.numberSubtables;return this.view.seek(4),Array.from({length:r},()=>({platformID:this.view.readUint16(),platformSpecificID:this.view.readUint16(),offset:this.view.readUint32()})).map(t=>{this.view.seek(t.offset);const e=this.view.readUint16();let i;switch(e){case 0:i=new Bn(this.view.buffer,t.offset);break;case 2:i=new OA(this.view.buffer,t.offset,this.view.readUint16());break;case 4:i=new yn(this.view.buffer,t.offset,this.view.readUint16());break;case 6:i=new bi(this.view.buffer,t.offset,this.view.readUint16());break;case 12:i=new mn(this.view.buffer,t.offset,this.view.readUint32(t.offset+4));break;case 14:default:i=new KA(this.view.buffer,t.offset,this.view.readUint32());break}return{...t,format:e,view:i}})}readunicodeToGlyphIndexMap(){const r=this.readSubtables(),t=r.find(n=>n.format===0)?.view,e=r.find(n=>n.platformID===3&&n.platformSpecificID===3&&n.format===2)?.view,i=r.find(n=>n.platformID===3&&n.platformSpecificID===1&&n.format===4)?.view,A=r.find(n=>n.platformID===3&&n.platformSpecificID===10&&n.format===12)?.view,s=r.find(n=>n.platformID===0&&n.platformSpecificID===5&&n.format===14)?.view;return new Map([...t?.getUnicodeToGlyphIndexMap()??[],...e?.getUnicodeToGlyphIndexMap(this._sfnt.maxp.numGlyphs)??[],...i?.getUnicodeToGlyphIndexMap()??[],...A?.getUnicodeToGlyphIndexMap()??[],...s?.getUnicodeToGlyphIndexMap()??[]])}};vn([w("uint16")],Ji.prototype,"version",2),vn([w("uint16")],Ji.prototype,"numberSubtables",2),Ji=vn([Ot("cmap")],Ji);class qd extends In{_parseContours(t){const e=[];let i=[];for(let A=0;A<t.length;A+=1){const s=t[A];i.push(s),s.lastPointOfContour&&(e.push(i),i=[])}return FA(i.length===0,"There are still points left in the current contour."),e}_transformPoints(t,e){const i=[];for(let A=0;A<t.length;A+=1){const s=t[A],n={x:e.xScale*s.x+e.scale10*s.y+e.dx,y:e.scale01*s.x+e.yScale*s.y+e.dy,onCurve:s.onCurve,lastPointOfContour:s.lastPointOfContour};i.push(n)}return i}_parseGlyphCoordinate(t,e,i,A,s){let n;return(e&A)>0?(n=t.view.readUint8(),(e&s)===0&&(n=-n),n=i+n):(e&s)>0?n=i:n=i+t.view.readInt16(),n}parse(t,e,i){t.view.seek(e);const A=this.numberOfContours=t.view.readInt16();if(this.xMin=t.view.readInt16(),this.yMin=t.view.readInt16(),this.xMax=t.view.readInt16(),this.yMax=t.view.readInt16(),A>0){const o=this.endPointIndices=[];for(let B=0;B<A;B++)o.push(t.view.readUint16());const a=this.instructionLength=t.view.readUint16();FA(a<5e3,`Bad instructionLength:${a}`);const l=this.instructions=[];for(let B=0;B<a;++B)l.push(t.view.readUint8());const c=t.view.byteOffset,h=o[o.length-1]+1;FA(h<2e4,`Bad numberOfCoordinates:${c}`);const u=[];let d,f=0;for(;f<h;)if(d=t.view.readUint8(),u.push(d),f++,d&8&&f<h){const B=t.view.readUint8();for(let p=0;p<B;p++)u.push(d),f++}if(FA(u.length===h,`Bad flags length: ${u.length}, numberOfCoordinates: ${h}`),o.length>0){const B=[];let p;if(h>0){for(let y=0;y<h;y+=1)d=u[y],p={},p.onCurve=!!(d&1),p.lastPointOfContour=o.includes(y),B.push(p);let R=0;for(let y=0;y<h;y+=1)d=u[y],p=B[y],p.x=this._parseGlyphCoordinate(t,d,R,2,16),R=p.x;let P=0;for(let y=0;y<h;y+=1)d=u[y],p=B[y],p.y=this._parseGlyphCoordinate(t,d,P,4,32),P=p.y}this.points=B}else this.points=[]}else if(A===0)this.points=[];else{this.isComposite=!0,this.points=[],this.components=[];let o,a=!0;for(;a;){o=t.view.readUint16();const l={glyphIndex:t.view.readUint16(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(o&1)>0?(o&2)>0?(l.dx=t.view.readInt16(),l.dy=t.view.readInt16()):l.matchedPoints=[t.view.readUint16(),t.view.readUint16()]:(o&2)>0?(l.dx=t.view.readInt8(),l.dy=t.view.readInt8()):l.matchedPoints=[t.view.readUint8(),t.view.readUint8()],(o&8)>0?l.xScale=l.yScale=t.view.readInt16()/16384:(o&64)>0?(l.xScale=t.view.readInt16()/16384,l.yScale=t.view.readInt16()/16384):(o&128)>0&&(l.xScale=t.view.readInt16()/16384,l.scale01=t.view.readInt16()/16384,l.scale10=t.view.readInt16()/16384,l.yScale=t.view.readInt16()/16384),this.components.push(l),a=!!(o&32)}if(o&256){this.instructionLength=t.view.readUint16(),this.instructions=[];for(let l=0;l<this.instructionLength;l+=1)this.instructions.push(t.view.readUint8())}}if(this.isComposite)for(let o=0;o<this.components.length;o+=1){const a=this.components[o],l=i.get(a.glyphIndex);if(l.getPathCommands(),l.points){let c;if(a.matchedPoints===void 0)c=this._transformPoints(l.points,a);else{FA(a.matchedPoints[0]>this.points.length-1||a.matchedPoints[1]>l.points.length-1,`Matched points out of range in ${this.name}`);const h=this.points[a.matchedPoints[0]];let u=l.points[a.matchedPoints[1]];const d={xScale:a.xScale,scale01:a.scale01,scale10:a.scale10,yScale:a.yScale,dx:0,dy:0};u=this._transformPoints([u],d)[0],d.dx=h.x-u.x,d.dy=h.y-u.y,c=this._transformPoints(l.points,d)}this.points=this.points.concat(c)}}const s=[],n=this._parseContours(this.points);for(let o=0,a=n.length;o<a;++o){const l=n[o];let c=l[l.length-1],h=l[0];c.onCurve?s.push({type:"M",x:c.x,y:c.y}):h.onCurve?s.push({type:"M",x:h.x,y:h.y}):s.push({type:"M",x:(c.x+h.x)*.5,y:(c.y+h.y)*.5});for(let u=0,d=l.length;u<d;++u)if(c=h,h=l[(u+1)%d],c.onCurve)s.push({type:"L",x:c.x,y:c.y});else{let f=h;h.onCurve||(f={x:(c.x+h.x)*.5,y:(c.y+h.y)*.5}),s.push({type:"Q",x1:c.x,y1:c.y,x:f.x,y:f.y})}s.push({type:"Z"})}this.pathCommands=s}}class Xd extends pn{get length(){return this._sfnt.loca.locations.length}_get(t){const e=this._sfnt.loca.locations,i=e[t],A=new qd({index:t});return i!==e[t+1]&&A.parse(this._sfnt.glyf,i,this),A}}var jd=Object.getOwnPropertyDescriptor,Zd=(r,t,e,i)=>{for(var A=i>1?void 0:i?jd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let kr=class extends jt{static from(r){const t=r.reduce((i,A)=>i+A.byteLength,0),e=new kr(new ArrayBuffer(t));return r.forEach(i=>{e.view.writeBytes(i)}),e}_glyphs;get glyphs(){return this._glyphs??=new Xd(this._sfnt)}};kr=Zd([Ot("glyf")],kr);var $d=Object.getOwnPropertyDescriptor,tI=(r,t,e,i)=>{for(var A=i>1?void 0:i?$d(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let _n=class extends jt{};_n=tI([Ot("GPOS","gpos")],_n);var eI=Object.defineProperty,iI=Object.getOwnPropertyDescriptor,Di=(r,t,e,i)=>{for(var A=i>1?void 0:i?iI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&eI(t,e,A),A};let Xe=class extends jt{};Di([w("uint16")],Xe.prototype,"majorVersion",2),Di([w("uint16")],Xe.prototype,"minorVersion",2),Di([w("uint16")],Xe.prototype,"scriptListOffset",2),Di([w("uint16")],Xe.prototype,"featureListOffset",2),Di([w("uint16")],Xe.prototype,"lookupListOffset",2),Di([w("uint16")],Xe.prototype,"featureVariationsOffset",2),Xe=Di([Ot("GSUB","gsub")],Xe);var AI=Object.defineProperty,rI=Object.getOwnPropertyDescriptor,Pt=(r,t,e,i)=>{for(var A=i>1?void 0:i?rI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&AI(t,e,A),A};let xt=class extends jt{constructor(r=new ArrayBuffer(54),t){super(r,t,Math.min(54,r.byteLength-(t??0)))}};Pt([w("fixed")],xt.prototype,"version",2),Pt([w("fixed")],xt.prototype,"fontRevision",2),Pt([w("uint32")],xt.prototype,"checkSumAdjustment",2),Pt([w("uint32")],xt.prototype,"magickNumber",2),Pt([w("uint16")],xt.prototype,"flags",2),Pt([w("uint16")],xt.prototype,"unitsPerEm",2),Pt([w({type:"longDateTime"})],xt.prototype,"created",2),Pt([w({type:"longDateTime"})],xt.prototype,"modified",2),Pt([w("int16")],xt.prototype,"xMin",2),Pt([w("int16")],xt.prototype,"yMin",2),Pt([w("int16")],xt.prototype,"xMax",2),Pt([w("int16")],xt.prototype,"yMax",2),Pt([w("uint16")],xt.prototype,"macStyle",2),Pt([w("uint16")],xt.prototype,"lowestRecPPEM",2),Pt([w("int16")],xt.prototype,"fontDirectionHint",2),Pt([w("int16")],xt.prototype,"indexToLocFormat",2),Pt([w("int16")],xt.prototype,"glyphDataFormat",2),xt=Pt([Ot("head")],xt);var sI=Object.defineProperty,nI=Object.getOwnPropertyDescriptor,ie=(r,t,e,i)=>{for(var A=i>1?void 0:i?nI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&sI(t,e,A),A};let Ht=class extends jt{constructor(r=new ArrayBuffer(36),t){super(r,t,Math.min(36,r.byteLength-(t??0)))}};ie([w("fixed")],Ht.prototype,"version",2),ie([w("int16")],Ht.prototype,"ascent",2),ie([w("int16")],Ht.prototype,"descent",2),ie([w("int16")],Ht.prototype,"lineGap",2),ie([w("uint16")],Ht.prototype,"advanceWidthMax",2),ie([w("int16")],Ht.prototype,"minLeftSideBearing",2),ie([w("int16")],Ht.prototype,"minRightSideBearing",2),ie([w("int16")],Ht.prototype,"xMaxExtent",2),ie([w("int16")],Ht.prototype,"caretSlopeRise",2),ie([w("int16")],Ht.prototype,"caretSlopeRun",2),ie([w("int16")],Ht.prototype,"caretOffset",2),ie([w({type:"int16",size:4})],Ht.prototype,"reserved",2),ie([w("int16")],Ht.prototype,"metricDataFormat",2),ie([w("uint16")],Ht.prototype,"numOfLongHorMetrics",2),Ht=ie([Ot("hhea")],Ht);var oI=Object.getOwnPropertyDescriptor,aI=(r,t,e,i)=>{for(var A=i>1?void 0:i?oI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let Pr=class extends jt{static from(r){const t=r.length*4,e=new Pr(new ArrayBuffer(t));return r.forEach(i=>{e.view.writeUint16(i.advanceWidth),e.view.writeUint16(i.leftSideBearing)}),e}_metrics;get metrics(){return this._metrics??=this.readMetrics()}readMetrics(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.hhea.numOfLongHorMetrics;let e=0;const i=this.view;return i.seek(0),Array.from({length:r}).map((A,s)=>(s<t&&(e=i.readUint16()),{advanceWidth:e,leftSideBearing:i.readUint16()}))}};Pr=aI([Ot("hmtx")],Pr);var lI=Object.getOwnPropertyDescriptor,cI=(r,t,e,i)=>{for(var A=i>1?void 0:i?lI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let bn=class extends jt{};bn=cI([Ot("kern","kern")],bn);var hI=Object.getOwnPropertyDescriptor,gI=(r,t,e,i)=>{for(var A=i>1?void 0:i?hI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let Ur=class extends jt{static from(r,t=1){const e=r.length*(t?4:2),i=new Ur(new ArrayBuffer(e));return r.forEach(A=>{t?i.view.writeUint32(A):i.view.writeUint16(A/2)}),i}_locations;get locations(){return this._locations??=this.readLocations()}readLocations(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.head.indexToLocFormat,e=this.view;return e.seek(0),Array.from({length:r}).map(()=>t?e.readUint32():e.readUint16()*2)}};Ur=gI([Ot("loca")],Ur);var uI=Object.defineProperty,fI=Object.getOwnPropertyDescriptor,Zt=(r,t,e,i)=>{for(var A=i>1?void 0:i?fI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&uI(t,e,A),A};let Ut=class extends jt{constructor(r=new ArrayBuffer(32),t){super(r,t,Math.min(32,r.byteLength-(t??0)))}};Zt([w("fixed")],Ut.prototype,"version",2),Zt([w("uint16")],Ut.prototype,"numGlyphs",2),Zt([w("uint16")],Ut.prototype,"maxPoints",2),Zt([w("uint16")],Ut.prototype,"maxContours",2),Zt([w("uint16")],Ut.prototype,"maxComponentPoints",2),Zt([w("uint16")],Ut.prototype,"maxComponentContours",2),Zt([w("uint16")],Ut.prototype,"maxZones",2),Zt([w("uint16")],Ut.prototype,"maxTwilightPoints",2),Zt([w("uint16")],Ut.prototype,"maxStorage",2),Zt([w("uint16")],Ut.prototype,"maxFunctionDefs",2),Zt([w("uint16")],Ut.prototype,"maxInstructionDefs",2),Zt([w("uint16")],Ut.prototype,"maxStackElements",2),Zt([w("uint16")],Ut.prototype,"maxSizeOfInstructions",2),Zt([w("uint16")],Ut.prototype,"maxComponentElements",2),Zt([w("uint16")],Ut.prototype,"maxComponentDepth",2),Ut=Zt([Ot("maxp")],Ut);var dI=Object.defineProperty,II=Object.getOwnPropertyDescriptor,Nr=(r,t,e,i)=>{for(var A=i>1?void 0:i?II(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&dI(t,e,A),A};const Ml={0:"copyright",1:"fontFamily",2:"fontSubFamily",3:"uniqueSubFamily",4:"fullName",5:"version",6:"postScriptName",7:"tradeMark",8:"manufacturer",9:"designer",10:"description",11:"urlOfFontVendor",12:"urlOfFontDesigner",13:"licence",14:"urlOfLicence",16:"preferredFamily",17:"preferredSubFamily",18:"compatibleFull",19:"sampleText"},Dn={Macintosh:1,Microsoft:3},pI={Default:0},Rl={UCS2:1};let Ki=class extends jt{_names;get names(){return this._names??=this.readNames()}readNames(){const r=this.count;this.view.seek(6);const t=[];for(let o=0;o<r;++o)t.push({platform:this.view.readUint16(),encoding:this.view.readUint16(),language:this.view.readUint16(),nameId:this.view.readUint16(),length:this.view.readUint16(),offset:this.view.readUint16()});const e=this.stringOffset;for(let o=0;o<r;++o){const a=t[o];a.name=this.view.readBytes(e+a.offset,a.length)}let i=Dn.Macintosh,A=pI.Default,s=0;t.some(o=>o.platform===Dn.Microsoft&&o.encoding===Rl.UCS2&&o.language===1033)&&(i=Dn.Microsoft,A=Rl.UCS2,s=1033);const n={};for(let o=0;o<r;++o){const a=t[o];a.platform===i&&a.encoding===A&&a.language===s&&Ml[a.nameId]&&(n[Ml[a.nameId]]=s===0?wd(a.name):vd(a.name))}return n}};Nr([w("uint16")],Ki.prototype,"format",2),Nr([w("uint16")],Ki.prototype,"count",2),Nr([w("uint16")],Ki.prototype,"stringOffset",2),Ki=Nr([Ot("name")],Ki);var EI=Object.defineProperty,BI=Object.getOwnPropertyDescriptor,at=(r,t,e,i)=>{for(var A=i>1?void 0:i?BI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&EI(t,e,A),A};let ot=class extends jt{get fontPANOSE(){return[this.bFamilyType,this.bSerifStyle,this.bWeight,this.bProportion,this.bContrast,this.bStrokeVariation,this.bArmStyle,this.bLetterform,this.bMidline,this.bXHeight]}};at([w("uint16")],ot.prototype,"version",2),at([w("int16")],ot.prototype,"xAvgCharWidth",2),at([w("uint16")],ot.prototype,"usWeightClass",2),at([w("uint16")],ot.prototype,"usWidthClass",2),at([w("uint16")],ot.prototype,"fsType",2),at([w("uint16")],ot.prototype,"ySubscriptXSize",2),at([w("uint16")],ot.prototype,"ySubscriptYSize",2),at([w("uint16")],ot.prototype,"ySubscriptXOffset",2),at([w("uint16")],ot.prototype,"ySubscriptYOffset",2),at([w("uint16")],ot.prototype,"ySuperscriptXSize",2),at([w("uint16")],ot.prototype,"ySuperscriptYSize",2),at([w("uint16")],ot.prototype,"ySuperscriptXOffset",2),at([w("uint16")],ot.prototype,"ySuperscriptYOffset",2),at([w("uint16")],ot.prototype,"yStrikeoutSize",2),at([w("uint16")],ot.prototype,"yStrikeoutPosition",2),at([w("uint16")],ot.prototype,"sFamilyClass",2),at([w({type:"uint8"})],ot.prototype,"bFamilyType",2),at([w({type:"uint8"})],ot.prototype,"bSerifStyle",2),at([w({type:"uint8"})],ot.prototype,"bWeight",2),at([w({type:"uint8"})],ot.prototype,"bProportion",2),at([w({type:"uint8"})],ot.prototype,"bContrast",2),at([w({type:"uint8"})],ot.prototype,"bStrokeVariation",2),at([w({type:"uint8"})],ot.prototype,"bArmStyle",2),at([w({type:"uint8"})],ot.prototype,"bLetterform",2),at([w({type:"uint8"})],ot.prototype,"bMidline",2),at([w({type:"uint8"})],ot.prototype,"bXHeight",2),at([w({type:"uint8",size:16})],ot.prototype,"ulUnicodeRange",2),at([w({type:"char",size:4})],ot.prototype,"achVendID",2),at([w("uint16")],ot.prototype,"fsSelection",2),at([w("uint16")],ot.prototype,"usFirstCharIndex",2),at([w("uint16")],ot.prototype,"usLastCharIndex",2),at([w("int16")],ot.prototype,"sTypoAscender",2),at([w("int16")],ot.prototype,"sTypoDescender",2),at([w("int16")],ot.prototype,"sTypoLineGap",2),at([w("uint16")],ot.prototype,"usWinAscent",2),at([w("uint16")],ot.prototype,"usWinDescent",2),at([w({offset:72,type:"uint8",size:8})],ot.prototype,"ulCodePageRange",2),at([w({offset:72,type:"int16"})],ot.prototype,"sxHeight",2),at([w("int16")],ot.prototype,"sCapHeight",2),at([w("uint16")],ot.prototype,"usDefaultChar",2),at([w("uint16")],ot.prototype,"usBreakChar",2),at([w("uint16")],ot.prototype,"usMaxContext",2),ot=at([Ot("OS/2","os2")],ot);var CI=Object.defineProperty,QI=Object.getOwnPropertyDescriptor,ke=(r,t,e,i)=>{for(var A=i>1?void 0:i?QI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&CI(t,e,A),A};let pe=class extends jt{constructor(r=new ArrayBuffer(32),t,e){super(r,t,e)}};ke([w("fixed")],pe.prototype,"format",2),ke([w("fixed")],pe.prototype,"italicAngle",2),ke([w("int16")],pe.prototype,"underlinePosition",2),ke([w("int16")],pe.prototype,"underlineThickness",2),ke([w("uint32")],pe.prototype,"isFixedPitch",2),ke([w("uint32")],pe.prototype,"minMemType42",2),ke([w("uint32")],pe.prototype,"maxMemType42",2),ke([w("uint32")],pe.prototype,"minMemType1",2),ke([w("uint32")],pe.prototype,"maxMemType1",2),pe=ke([Ot("post")],pe);var yI=Object.defineProperty,mI=Object.getOwnPropertyDescriptor,Ae=(r,t,e,i)=>{for(var A=i>1?void 0:i?mI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&yI(t,e,A),A};let Jt=class extends jt{constructor(r=new ArrayBuffer(36),t){super(r,t,Math.min(36,r.byteLength-(t??0)))}};Ae([w("fixed")],Jt.prototype,"version",2),Ae([w("int16")],Jt.prototype,"vertTypoAscender",2),Ae([w("int16")],Jt.prototype,"vertTypoDescender",2),Ae([w("int16")],Jt.prototype,"vertTypoLineGap",2),Ae([w("int16")],Jt.prototype,"advanceHeightMax",2),Ae([w("int16")],Jt.prototype,"minTopSideBearing",2),Ae([w("int16")],Jt.prototype,"minBottomSideBearing",2),Ae([w("int16")],Jt.prototype,"yMaxExtent",2),Ae([w("int16")],Jt.prototype,"caretSlopeRise",2),Ae([w("int16")],Jt.prototype,"caretSlopeRun",2),Ae([w("int16")],Jt.prototype,"caretOffset",2),Ae([w({type:"int16",size:4})],Jt.prototype,"reserved",2),Ae([w("int16")],Jt.prototype,"metricDataFormat",2),Ae([w("int16")],Jt.prototype,"numOfLongVerMetrics",2),Jt=Ae([Ot("vhea")],Jt);var wI=Object.getOwnPropertyDescriptor,vI=(r,t,e,i)=>{for(var A=i>1?void 0:i?wI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let Fr=class extends jt{static from(r){const t=r.length*4,e=new Fr(new ArrayBuffer(t));return r.forEach(i=>{e.view.writeUint16(i.advanceHeight),e.view.writeInt16(i.topSideBearing)}),e}_metrics;get metrics(){return this._metrics??=this.readMetrics()}readMetrics(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.vhea?.numOfLongVerMetrics??0,e=this.view;e.seek(0);let i=0;return Array.from({length:r}).map((A,s)=>(s<t&&(i=e.readUint16()),{advanceHeight:i,topSideBearing:e.readUint8()}))}};Fr=vI([Ot("vmtx")],Fr);var _I=Object.defineProperty,YA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&_I(t,e,A),A};class we extends _r{format="TrueType";mimeType="font/ttf";_sfnt;get sfnt(){return this._sfnt||(this._sfnt=this.createSFNT()),this._sfnt}static signature=new Set([65536,1953658213,1954115633]);static is(t){return typeof t=="number"?this.signature.has(t):this.signature.has(Gi(t).getUint32(0))}static checksum(t){const e=Gi(t);let i=e.byteLength;for(;i%4;)i++;let A=0;for(let s=0,n=i/4;s<n;s+=4)s*4<i-4&&(A+=e.getUint32(s*4,!1));return A&4294967295}static from(t){const e=h=>h+3&-4,i=t.tableViews.size,A=Array.from(t.tableViews.values()).reduce((h,u)=>h+e(u.byteLength),0),s=new this(new ArrayBuffer(12+i*16+A));s.scalerType=65536,s.numTables=i;const n=Math.log(2);s.searchRange=Math.floor(Math.log(i)/n)*16,s.entrySelector=Math.floor(s.searchRange/n),s.rangeShift=i*16-s.searchRange;let o=12+i*16,a=0;const l=s.getDirectories();t.tableViews.forEach((h,u)=>{const d=l[a++];d.tag=u,d.checkSum=this.checksum(h),d.offset=o,d.length=h.byteLength,s.view.writeBytes(h,o),o+=e(d.length)});const c=s.createSFNT().head;return c.checkSumAdjustment=0,c.checkSumAdjustment=2981146554-this.checksum(s.view),s}getDirectories(){let t=this.view.byteOffset+12;return Array.from({length:this.numTables},()=>{const e=new Oi(this.view.buffer,t);return t+=e.view.byteLength,e})}createSFNT(){return new Re(this.getDirectories().reduce((t,e)=>(t[e.tag]=new DataView(this.view.buffer,this.view.byteOffset+e.offset,e.length),t),{}))}}YA([w("uint32")],we.prototype,"scalerType"),YA([w("uint16")],we.prototype,"numTables"),YA([w("uint16")],we.prototype,"searchRange"),YA([w("uint16")],we.prototype,"entrySelector"),YA([w("uint16")],we.prototype,"rangeShift");class xn extends we{format="OpenType";mimeType="font/otf";static signature=new Set([1330926671]);static from(t){return super.from(t)}}var bI=Object.defineProperty,VA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&bI(t,e,A),A};class xi extends ge{constructor(t,e){super(t,e,20)}}VA([w({type:"char",size:4})],xi.prototype,"tag"),VA([w("uint32")],xi.prototype,"offset"),VA([w("uint32")],xi.prototype,"compLength"),VA([w("uint32")],xi.prototype,"origLength"),VA([w("uint32")],xi.prototype,"origChecksum");var DI=Object.defineProperty,ue=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&DI(t,e,A),A};const oe=class io extends _r{format="WOFF";mimeType="font/woff";get subfontFormat(){return we.is(this.flavor)?"TrueType":xn.is(this.flavor)?"OpenType":"Open"}_sfnt;get sfnt(){return this._sfnt||(this._sfnt=this.createSFNT()),this._sfnt}static signature=new Set([2001684038]);static is(t){return typeof t=="number"?this.signature.has(t):this.signature.has(Gi(t).getUint32(0))}static checkSum(t){const e=Gi(t),i=e.byteLength,A=Math.floor(i/4);let s=0,n=0;for(;n<A;)s+=e.getUint32(4*n++,!1);let o=i-A*4;if(o){let a=A*4;for(;o>0;)s+=e.getUint8(a)<<o*8,a++,o--}return s%4294967296}static from(t,e=new ArrayBuffer(0)){const i=h=>h+3&-4,A=[];t.tableViews.forEach((h,u)=>{const d=Gi(pd(new Uint8Array(h.buffer,h.byteOffset,h.byteLength)));A.push({tag:u,view:d.byteLength<h.byteLength?d:h,rawView:h})});const s=A.length,n=A.reduce((h,u)=>h+i(u.view.byteLength),0),o=new io(new ArrayBuffer(44+20*s+n+e.byteLength));o.signature=2001684038,o.flavor=65536,o.length=o.view.byteLength,o.numTables=s,o.totalSFNTSize=12+16*s+A.reduce((h,u)=>h+i(u.rawView.byteLength),0);let a=44+s*20,l=0;const c=o.getDirectories();return A.forEach(h=>{const u=c[l++];u.tag=h.tag,u.offset=a,u.compLength=h.view.byteLength,u.origChecksum=io.checkSum(h.rawView),u.origLength=h.rawView.byteLength,o.view.writeBytes(h.view,a),a+=i(u.compLength)}),o.view.writeBytes(e),o}getDirectories(){let t=44;return Array.from({length:this.numTables},()=>{const e=new xi(this.view.buffer,t);return t+=e.view.byteLength,e})}createSFNT(){return new Re(this.getDirectories().reduce((t,e)=>{const i=e.tag,A=this.view.byteOffset+e.offset,s=e.compLength,n=e.origLength,o=A+s;return t[i]=s>=n?new DataView(this.view.buffer,A,s):new DataView(Ed(new Uint8Array(this.view.buffer.slice(A,o))).buffer),t},{}))}};ue([w("uint32")],oe.prototype,"signature"),ue([w("uint32")],oe.prototype,"flavor"),ue([w("uint32")],oe.prototype,"length"),ue([w("uint16")],oe.prototype,"numTables"),ue([w("uint16")],oe.prototype,"reserved"),ue([w("uint32")],oe.prototype,"totalSFNTSize"),ue([w("uint16")],oe.prototype,"majorVersion"),ue([w("uint16")],oe.prototype,"minorVersion"),ue([w("uint32")],oe.prototype,"metaOffset"),ue([w("uint32")],oe.prototype,"metaLength"),ue([w("uint32")],oe.prototype,"metaOrigLength"),ue([w("uint32")],oe.prototype,"privOffset"),ue([w("uint32")],oe.prototype,"privLength");let Tr=oe;function kl(r,t=!0){if(we.is(r))return new we(r);if(xn.is(r))return new xn(r);if(Tr.is(r))return new Tr(r);if(t)throw new Error("Failed to parseFont")}function Pl(r,t=!0){const e=kl(r,!1);if(e)return e;if(t)throw new Error("Failed to parseFont")}class Lr{static defaultRequestInit={cache:"force-cache"};fallbackFont;loading=new Map;loaded=new Map;familyToUrl=new Map;setFallbackFont(t){this.fallbackFont=t}async loadFallbackFont(t,e={}){this.fallbackFont=await this.load(t,e)}_createRequest(t,e){const i=new AbortController;return{url:t,when:fetch(t,{...Lr.defaultRequestInit,...e,signal:i.signal}).then(A=>A.arrayBuffer()),cancel:()=>i.abort()}}injectFontFace(t,e){return document.fonts.add(new FontFace(t,e)),this}injectStyleTag(t,e){const i=document.createElement("style");return i.appendChild(document.createTextNode(`@font-face {
|
|
858
|
+
}`})),bA([_()],g.ZoomBlurEffect.prototype,"center",2),bA([_()],g.ZoomBlurEffect.prototype,"innerRadius",2),bA([_()],g.ZoomBlurEffect.prototype,"radius",2),bA([_()],g.ZoomBlurEffect.prototype,"strength",2),g.ZoomBlurEffect=bA([nt("ZoomBlurEffect")],g.ZoomBlurEffect);var kf=Object.defineProperty,Qe=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&kf(t,e,A),A};class zt extends ti{constructor(t){super(),this.parent=t}_texture;_setProperties(t){return super.setProperties(t)}setProperties(t){return this._setProperties(bt(t)?void 0:Ei(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"color":case"cropRect":case"stretchRect":case"dpi":case"rotateWithShape":case"tile":case"opacity":case"enabled":this.parent.requestRedraw();break;case"image":case"linearGradient":case"radialGradient":this._updateTexture();break}}async loadTexture(){return this.linearGradient||this.radialGradient?new hr(this.linearGradient??this.radialGradient,this.parent.size.width,this.parent.size.height):bt(this.image)?void 0:(this.parent.tree?.log(`load image ${this.image}`),await Ne.texture.load(this.image))}async _updateTexture(){this._texture=await this.loadTexture(),this.parent.requestRedraw()}canDraw(){return!!(this.enabled&&(this._texture||this.color))}_getDrawOptions(){let t=!1;const{width:e,height:i}=this.parent.size,A=new Vt().scale(1/e,1/i);if(this.cropRect){const{left:s=0,top:n=0,right:o=0,bottom:a=0}=this.cropRect;A.scale(Math.abs(1-(s+o)),Math.abs(1-(n+a))).translate(s,n),t=!0}if(this.tile){const{translateX:s=0,translateY:n=0,scaleX:o=1,scaleY:a=1}=this.tile;A.translate(-s/e,-n/i).scale(1/o,1/a),t=!0}else if(this.stretchRect){const{left:s=0,top:n=0,right:o=0,bottom:a=0}=this.stretchRect;A.scale(Math.abs(1-(-s+-o)),Math.abs(1-(-n+-a))).translate(-s,-n),t=!0}return{disableWrapMode:t,uvTransform:A}}draw(){const t=this.parent.context,{uvTransform:e,disableWrapMode:i}=this._getDrawOptions();t.uvTransform=e,t.fillStyle=this._texture??this.color,t.fill({disableWrapMode:i})}}Qe([_({fallback:!0})],zt.prototype,"enabled"),Qe([_()],zt.prototype,"color"),Qe([_()],zt.prototype,"image"),Qe([_()],zt.prototype,"linearGradient"),Qe([_()],zt.prototype,"radialGradient"),Qe([_()],zt.prototype,"cropRect"),Qe([_()],zt.prototype,"stretchRect"),Qe([_()],zt.prototype,"dpi"),Qe([_()],zt.prototype,"rotateWithShape"),Qe([_()],zt.prototype,"tile"),Qe([_()],zt.prototype,"opacity");var Pf=Object.defineProperty,Uf=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Pf(t,e,A),A};class en extends zt{setProperties(t){return super._setProperties(bt(t)?void 0:hh(t))}}Uf([_()],en.prototype,"fillWithShape");var Nf=Object.defineProperty,Ff=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Nf(t,e,A),A};class An extends zt{setProperties(t){return super._setProperties(bt(t)?void 0:uh(t))}}Ff([_()],An.prototype,"fillWithShape");var Tf=Object.defineProperty,rn=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Tf(t,e,A),A};class DA extends zt{setProperties(t){return super._setProperties(bt(t)?void 0:fh(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"width":case"style":case"enabled":this.parent.requestRedraw();break}}canDraw(){return!!(this.enabled&&(this.width||this.color||super.canDraw()))}draw(){const t=this.parent.context,{uvTransform:e,disableWrapMode:i}=this._getDrawOptions();t.lineWidth=this.width||1,t.uvTransform=e,t.strokeStyle=this._texture??this.color,t.stroke({disableWrapMode:i})}}rn([_({fallback:"#00000000"})],DA.prototype,"color"),rn([_({fallback:0})],DA.prototype,"width"),rn([_({fallback:"solid"})],DA.prototype,"style");var Lf=Object.defineProperty,xA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Lf(t,e,A),A};class mi extends ti{constructor(t){super(),this.parent=t}setProperties(t){return super.setProperties(bt(t)?void 0:dh(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"color":case"blur":case"offsetX":case"offsetY":this.updateEffect();break}}updateEffect(){const t="__$shadow";let e=this.parent.getNode(t);this.blur||this.offsetX||this.offsetY?(e||(e=new g.DropShadowEffect({name:t}),this.parent.appendChild(e,"back")),e.setProperties(this.getProperties())):e&&this.parent.removeChild(e)}}xA([_({fallback:!0})],mi.prototype,"enabled"),xA([_({fallback:"#000000FF"})],mi.prototype,"color"),xA([_({fallback:0})],mi.prototype,"blur"),xA([_({fallback:0})],mi.prototype,"offsetY"),xA([_({fallback:0})],mi.prototype,"offsetX");var Gf=Object.defineProperty,SA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Gf(t,e,A),A};class wi extends ti{constructor(t){super(),this.parent=t,this._updatePath2DSet()}_path2DSet=new Ai;setProperties(t){return super.setProperties(bt(t)?void 0:ph(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"svg":case"paths":case"viewBox":case"enabled":this._updatePath2DSet(),this.parent.requestRedraw();break}}_updatePath2DSet(){let t;if(this.svg){const n=Ks(this.svg);this._path2DSet=Vs(n),t=this._path2DSet.viewBox}else this.paths?.forEach((n,o)=>{const{data:a,...l}=n,c=new Rt;c.style=l,c.addData(a),this._path2DSet.paths[o]=c});if(!t){const n=this._path2DSet.getBoundingBox();t=n?[n.x,n.y,n.width,n.height]:[0,0,1,1]}const[e,i,A,s]=t;this._path2DSet.paths.forEach(n=>{n.applyTransform(new Lt().translate(-e,-i).scale(1/A,1/s))})}draw(){if(this.enabled&&this._path2DSet.paths.length){const t=this.parent.context,{width:e,height:i}=this.parent.size;this._path2DSet.paths.forEach(A=>{t.addPath(A.clone().applyTransform(new Lt().scale(e,i)))})}else this.drawRect()}drawRect(){const t=this.parent.context,{width:e,height:i}=this.parent.size,{borderRadius:A}=this.parent.style;e&&i&&(A?t.roundRect(0,0,e,i,A):t.rect(0,0,e,i))}}SA([_({fallback:!0})],wi.prototype,"enabled"),SA([_()],wi.prototype,"preset"),SA([_()],wi.prototype,"svg"),SA([_()],wi.prototype,"viewBox"),SA([_()],wi.prototype,"paths");class MA extends He{constructor(t){super(),this.setProperties(t)}}const gl=_h();for(const r in gl){const t=gl[r];Ar(MA.prototype,r,{fallback:t})}function Gt(r){return r==null||r==="none"}function RA(r,t=0,e=10**t){return Math.round(e*r)/e+0}function sn(r,t=!1){if(typeof r!="object"||!r)return r;if(Array.isArray(r))return t?r.map(i=>sn(i,t)):r;const e={};for(const i in r){const A=r[i];A!=null&&(t?e[i]=sn(A,t):e[i]=A)}return e}function Of(r){let t;return typeof r=="number"?t={r:r>>24&255,g:r>>16&255,b:r>>8&255,a:(r&255)/255}:t=r,Be(t)}function Hf(r){return{r:RA(r.r),g:RA(r.g),b:RA(r.b),a:RA(r.a,3)}}function Br(r){const t=r.toString(16);return t.length<2?`0${t}`:t}const Jf="#000000FF";function kA(r,t=!1){const e=Of(r);if(!e.isValid()){if(typeof r=="string")return r;const o=`Failed to normalizeColor ${r}`;if(t)throw new Error(o);return console.warn(o),Jf}const{r:i,g:A,b:s,a:n}=Hf(e.rgba);return`#${Br(i)}${Br(A)}${Br(s)}${Br(RA(n*255))}`}var Cr=Cr||{};Cr.parse=function(){const r={linearGradient:/^(-(webkit|o|ms|moz)-)?(linear-gradient)/i,repeatingLinearGradient:/^(-(webkit|o|ms|moz)-)?(repeating-linear-gradient)/i,radialGradient:/^(-(webkit|o|ms|moz)-)?(radial-gradient)/i,repeatingRadialGradient:/^(-(webkit|o|ms|moz)-)?(repeating-radial-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest-side|closest-corner|farthest-side|farthest-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?((\d*\.\d+)|(\d+\.?)))px/,percentageValue:/^(-?((\d*\.\d+)|(\d+\.?)))%/,emValue:/^(-?((\d*\.\d+)|(\d+\.?)))em/,angleValue:/^(-?((\d*\.\d+)|(\d+\.?)))deg/,radianValue:/^(-?((\d*\.\d+)|(\d+\.?)))rad/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^#([0-9a-f]+)/i,literalColor:/^([a-z]+)/i,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,varColor:/^var/i,calcValue:/^calc/i,variableName:/^(--[a-z0-9-,\s#]+)/i,number:/^((\d*\.\d+)|(\d+\.?))/,hslColor:/^hsl/i,hslaColor:/^hsla/i};let t="";function e(b){const D=new Error(`${t}: ${b}`);throw D.source=t,D}function i(){const b=A();return t.length>0&&e("Invalid input not EOF"),b}function A(){return y(s)}function s(){return n("linear-gradient",r.linearGradient,a)||n("repeating-linear-gradient",r.repeatingLinearGradient,a)||n("radial-gradient",r.radialGradient,h)||n("repeating-radial-gradient",r.repeatingRadialGradient,h)}function n(b,D,F){return o(D,V=>{const At=F();return At&&(N(r.comma)||e("Missing comma before color stops")),{type:b,orientation:At,colorStops:y(S)}})}function o(b,D){const F=N(b);if(F){N(r.startCall)||e("Missing (");const V=D(F);return N(r.endCall)||e("Missing )"),V}}function a(){const b=l();if(b)return b;const D=j("position-keyword",r.positionKeywords,1);return D?{type:"directional",value:D.value}:c()}function l(){return j("directional",r.sideOrCorner,1)}function c(){return j("angular",r.angleValue,1)||j("angular",r.radianValue,1)}function h(){let b,D=u(),F;return D&&(b=[],b.push(D),F=t,N(r.comma)&&(D=u(),D?b.push(D):t=F)),b}function u(){let b=d()||f();if(b)b.at=p();else{const D=B();if(D){b=D;const F=p();F&&(b.at=F)}else{const F=p();if(F)b={type:"default-radial",at:F};else{const V=R();V&&(b={type:"default-radial",at:V})}}}return b}function d(){const b=j("shape",/^(circle)/i,0);return b&&(b.style=X()||B()),b}function f(){const b=j("shape",/^(ellipse)/i,0);return b&&(b.style=R()||L()||B()),b}function B(){return j("extent-keyword",r.extentKeywords,1)}function p(){if(j("position",/^at/,0)){const b=R();return b||e("Missing positioning value"),b}}function R(){const b=P();if(b.x||b.y)return{type:"position",value:b}}function P(){return{x:L(),y:L()}}function y(b){let D=b();const F=[];if(D)for(F.push(D);N(r.comma);)D=b(),D?F.push(D):e("One extra comma");return F}function S(){const b=Q();return b||e("Expected color definition"),b.length=L(),b}function Q(){return M()||Y()||q()||W()||k()||it()||m()}function m(){return j("literal",r.literalColor,0)}function M(){return j("hex",r.hexColor,1)}function k(){return o(r.rgbColor,()=>({type:"rgb",value:y(H)}))}function W(){return o(r.rgbaColor,()=>({type:"rgba",value:y(H)}))}function it(){return o(r.varColor,()=>({type:"var",value:et()}))}function q(){return o(r.hslColor,()=>{N(r.percentageValue)&&e("HSL hue value must be a number in degrees (0-360) or normalized (-360 to 360), not a percentage");const D=H();N(r.comma);let F=N(r.percentageValue);const V=F?F[1]:null;N(r.comma),F=N(r.percentageValue);const At=F?F[1]:null;return(!V||!At)&&e("Expected percentage value for saturation and lightness in HSL"),{type:"hsl",value:[D,V,At]}})}function Y(){return o(r.hslaColor,()=>{const b=H();N(r.comma);let D=N(r.percentageValue);const F=D?D[1]:null;N(r.comma),D=N(r.percentageValue);const V=D?D[1]:null;N(r.comma);const At=H();return(!F||!V)&&e("Expected percentage value for saturation and lightness in HSLA"),{type:"hsla",value:[b,F,V,At]}})}function et(){return N(r.variableName)[1]}function H(){return N(r.number)[1]}function L(){return j("%",r.percentageValue,1)||rt()||O()||X()}function rt(){return j("position-keyword",r.positionKeywords,1)}function O(){return o(r.calcValue,()=>{let b=1,D=0;for(;b>0&&D<t.length;){const V=t.charAt(D);V==="("?b++:V===")"&&b--,D++}b>0&&e("Missing closing parenthesis in calc() expression");const F=t.substring(0,D-1);return tt(D-1),{type:"calc",value:F}})}function X(){return j("px",r.pixelValue,1)||j("em",r.emValue,1)}function j(b,D,F){const V=N(D);if(V)return{type:b,value:V[F]}}function N(b){let D,F;return F=/^\s+/.exec(t),F&&tt(F[0].length),D=b.exec(t),D&&tt(D[0].length),D}function tt(b){t=t.substr(b)}return function(b){return t=b.toString().trim(),t.endsWith(";")&&(t=t.slice(0,-1)),i()}}(),Cr.parse.bind(Cr);var Qr=Qr||{};Qr.stringify=function(){var r={"visit_linear-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-linear-gradient":function(t){return r.visit_gradient(t)},"visit_radial-gradient":function(t){return r.visit_gradient(t)},"visit_repeating-radial-gradient":function(t){return r.visit_gradient(t)},visit_gradient:function(t){var e=r.visit(t.orientation);return e&&(e+=", "),t.type+"("+e+r.visit(t.colorStops)+")"},visit_shape:function(t){var e=t.value,i=r.visit(t.at),A=r.visit(t.style);return A&&(e+=" "+A),i&&(e+=" at "+i),e},"visit_default-radial":function(t){var e="",i=r.visit(t.at);return i&&(e+=i),e},"visit_extent-keyword":function(t){var e=t.value,i=r.visit(t.at);return i&&(e+=" at "+i),e},"visit_position-keyword":function(t){return t.value},visit_position:function(t){return r.visit(t.value.x)+" "+r.visit(t.value.y)},"visit_%":function(t){return t.value+"%"},visit_em:function(t){return t.value+"em"},visit_px:function(t){return t.value+"px"},visit_calc:function(t){return"calc("+t.value+")"},visit_literal:function(t){return r.visit_color(t.value,t)},visit_hex:function(t){return r.visit_color("#"+t.value,t)},visit_rgb:function(t){return r.visit_color("rgb("+t.value.join(", ")+")",t)},visit_rgba:function(t){return r.visit_color("rgba("+t.value.join(", ")+")",t)},visit_hsl:function(t){return r.visit_color("hsl("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%)",t)},visit_hsla:function(t){return r.visit_color("hsla("+t.value[0]+", "+t.value[1]+"%, "+t.value[2]+"%, "+t.value[3]+")",t)},visit_var:function(t){return r.visit_color("var("+t.value+")",t)},visit_color:function(t,e){var i=t,A=r.visit(e.length);return A&&(i+=" "+A),i},visit_angular:function(t){return t.value+"deg"},visit_directional:function(t){return"to "+t.value},visit_array:function(t){var e="",i=t.length;return t.forEach(function(A,s){e+=r.visit(A),s<i-1&&(e+=", ")}),e},visit_object:function(t){return t.width&&t.height?r.visit(t.width)+" "+r.visit(t.height):""},visit:function(t){if(!t)return"";if(t instanceof Array)return r.visit_array(t);if(typeof t=="object"&&!t.type)return r.visit_object(t);if(t.type){var e=r["visit_"+t.type];if(e)return e(t);throw Error("Missing visitor visit_"+t.type)}else throw Error("Invalid node.")}};return function(t){return r.visit(t)}}(),Qr.stringify.bind(Qr);function Kf(){return{boxShadow:"none"}}function Yf(){return{overflow:"visible",direction:void 0,display:void 0,boxSizing:void 0,width:void 0,height:void 0,maxHeight:void 0,maxWidth:void 0,minHeight:void 0,minWidth:void 0,position:void 0,left:0,top:0,right:void 0,bottom:void 0,borderTop:void 0,borderLeft:void 0,borderRight:void 0,borderBottom:void 0,borderWidth:0,border:void 0,flex:void 0,flexBasis:void 0,flexDirection:void 0,flexGrow:void 0,flexShrink:void 0,flexWrap:void 0,justifyContent:void 0,gap:void 0,alignContent:void 0,alignItems:void 0,alignSelf:void 0,marginTop:void 0,marginLeft:void 0,marginRight:void 0,marginBottom:void 0,margin:void 0,paddingTop:void 0,paddingLeft:void 0,paddingRight:void 0,paddingBottom:void 0,padding:void 0}}function Vf(){return{rotate:0,scaleX:1,scaleY:1,skewX:0,skewY:0,translateX:0,translateY:0,transform:"none",transformOrigin:"center"}}function zf(){return{...Yf(),...Vf(),...Kf(),backgroundImage:"none",backgroundSize:"auto, auto",backgroundColor:"none",backgroundColormap:"none",borderRadius:0,borderColor:"none",borderStyle:"solid",outlineWidth:0,outlineOffset:0,outlineColor:"rgb(0, 0, 0)",outlineStyle:"none",visibility:"visible",filter:"none",opacity:1,pointerEvents:"auto",maskImage:"none"}}function Wf(){return{highlight:{},highlightImage:"none",highlightReferImage:"none",highlightColormap:"none",highlightLine:"none",highlightSize:"cover",highlightThickness:"100%"}}function qf(){return{listStyle:{},listStyleType:"none",listStyleImage:"none",listStyleColormap:"none",listStyleSize:"cover",listStylePosition:"outside"}}function Xf(){return{...Wf(),color:"rgb(0, 0, 0)",verticalAlign:"baseline",letterSpacing:0,wordSpacing:0,fontSize:14,fontWeight:"normal",fontFamily:"",fontStyle:"normal",fontKerning:"normal",textTransform:"none",textOrientation:"mixed",textDecoration:"none"}}function jf(){return{...qf(),writingMode:"horizontal-tb",textWrap:"wrap",textAlign:"start",textIndent:0,lineHeight:1.2}}function Zf(){return{...jf(),...Xf(),textStrokeWidth:0,textStrokeColor:"rgb(0, 0, 0)"}}function yr(r){return sn({...r,color:Gt(r.color)?void 0:kA(r.color),backgroundColor:Gt(r.backgroundColor)?void 0:kA(r.backgroundColor),borderColor:Gt(r.borderColor)?void 0:kA(r.borderColor),outlineColor:Gt(r.outlineColor)?void 0:kA(r.outlineColor),shadowColor:Gt(r.shadowColor)?void 0:kA(r.shadowColor)})}function $f(){return{...zf(),...Zf()}}const td=/\r\n|\n\r|\n|\r/,ed=new RegExp(`^(${td.source})$`),ul=`
|
|
859
|
+
`;function id(r){return ed.test(r)}function Ad(r,t){const e=Array.from(new Set([...Object.keys(r),...Object.keys(t)]));return!e.length||e.every(i=>r[i]===t[i])}function rd(r){const t=[];function e(){return t[t.length-1]}function i(o={}){let a=t[t.length-1];return a?.fragments.length===0?(a={...o,fragments:[]},t[t.length-1]=a):(a={...o,fragments:[]},t.push(a)),a}function A(o="",a={}){Array.from(o).forEach(l=>{if(id(l)){const{fragments:c,...h}=e()||i();c.length||c.push({...a,content:ul}),i(h)}else{const c=e()||i(),h=c.fragments[c.fragments.length-1];if(h){const{content:u,...d}=h;if(Ad(a,d)){h.content=`${u}${l}`;return}}c.fragments.push({...a,content:l})}})}(Array.isArray(r)?r:[r]).forEach(o=>{if(typeof o=="string")i(),A(o);else if("content"in o){const{content:a,...l}=o;i(yr(l)),A(a)}else if("fragments"in o){const{fragments:a,...l}=o;i(yr(l)),a.forEach(c=>{const{content:h,...u}=c;A(h,yr(u))})}else Array.isArray(o)?(i(),o.forEach(a=>{if(typeof a=="string")A(a);else{const{content:l,...c}=a;A(l,yr(c))}})):console.warn("Failed to parse text content",o)});const n=e();return n&&!n.fragments.length&&n.fragments.push({content:ul}),t}var Wt=Uint8Array,he=Uint16Array,nn=Int32Array,mr=new Wt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),wr=new Wt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),on=new Wt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),fl=function(r,t){for(var e=new he(31),i=0;i<31;++i)e[i]=t+=1<<r[i-1];for(var A=new nn(e[30]),i=1;i<30;++i)for(var s=e[i];s<e[i+1];++s)A[s]=s-e[i]<<5|i;return{b:e,r:A}},dl=fl(mr,2),Il=dl.b,an=dl.r;Il[28]=258,an[258]=28;for(var pl=fl(wr,0),sd=pl.b,El=pl.r,ln=new he(32768),pt=0;pt<32768;++pt){var ni=(pt&43690)>>1|(pt&21845)<<1;ni=(ni&52428)>>2|(ni&13107)<<2,ni=(ni&61680)>>4|(ni&3855)<<4,ln[pt]=((ni&65280)>>8|(ni&255)<<8)>>1}for(var Me=function(r,t,e){for(var i=r.length,A=0,s=new he(t);A<i;++A)r[A]&&++s[r[A]-1];var n=new he(t);for(A=1;A<t;++A)n[A]=n[A-1]+s[A-1]<<1;var o;if(e){o=new he(1<<t);var a=15-t;for(A=0;A<i;++A)if(r[A])for(var l=A<<4|r[A],c=t-r[A],h=n[r[A]-1]++<<c,u=h|(1<<c)-1;h<=u;++h)o[ln[h]>>a]=l}else for(o=new he(i),A=0;A<i;++A)r[A]&&(o[A]=ln[n[r[A]-1]++]>>15-r[A]);return o},oi=new Wt(288),pt=0;pt<144;++pt)oi[pt]=8;for(var pt=144;pt<256;++pt)oi[pt]=9;for(var pt=256;pt<280;++pt)oi[pt]=7;for(var pt=280;pt<288;++pt)oi[pt]=8;for(var PA=new Wt(32),pt=0;pt<32;++pt)PA[pt]=5;var nd=Me(oi,9,0),od=Me(oi,9,1),ad=Me(PA,5,0),ld=Me(PA,5,1),cn=function(r){for(var t=r[0],e=1;e<r.length;++e)r[e]>t&&(t=r[e]);return t},ye=function(r,t,e){var i=t/8|0;return(r[i]|r[i+1]<<8)>>(t&7)&e},hn=function(r,t){var e=t/8|0;return(r[e]|r[e+1]<<8|r[e+2]<<16)>>(t&7)},gn=function(r){return(r+7)/8|0},Bl=function(r,t,e){return(e==null||e>r.length)&&(e=r.length),new Wt(r.subarray(t,e))},cd=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],me=function(r,t,e){var i=new Error(t||cd[r]);if(i.code=r,Error.captureStackTrace&&Error.captureStackTrace(i,me),!e)throw i;return i},hd=function(r,t,e,i){var A=r.length,s=0;if(!A||t.f&&!t.l)return e||new Wt(0);var n=!e,o=n||t.i!=2,a=t.i;n&&(e=new Wt(A*3));var l=function(Ft){var ct=e.length;if(Ft>ct){var Qt=new Wt(Math.max(ct*2,Ft));Qt.set(e),e=Qt}},c=t.f||0,h=t.p||0,u=t.b||0,d=t.l,f=t.d,B=t.m,p=t.n,R=A*8;do{if(!d){c=ye(r,h,1);var P=ye(r,h+1,3);if(h+=3,P)if(P==1)d=od,f=ld,B=9,p=5;else if(P==2){var m=ye(r,h,31)+257,M=ye(r,h+10,15)+4,k=m+ye(r,h+5,31)+1;h+=14;for(var W=new Wt(k),it=new Wt(19),q=0;q<M;++q)it[on[q]]=ye(r,h+q*3,7);h+=M*3;for(var Y=cn(it),et=(1<<Y)-1,H=Me(it,Y,1),q=0;q<k;){var L=H[ye(r,h,et)];h+=L&15;var y=L>>4;if(y<16)W[q++]=y;else{var rt=0,O=0;for(y==16?(O=3+ye(r,h,3),h+=2,rt=W[q-1]):y==17?(O=3+ye(r,h,7),h+=3):y==18&&(O=11+ye(r,h,127),h+=7);O--;)W[q++]=rt}}var X=W.subarray(0,m),j=W.subarray(m);B=cn(X),p=cn(j),d=Me(X,B,1),f=Me(j,p,1)}else me(1);else{var y=gn(h)+4,S=r[y-4]|r[y-3]<<8,Q=y+S;if(Q>A){a&&me(0);break}o&&l(u+S),e.set(r.subarray(y,Q),u),t.b=u+=S,t.p=h=Q*8,t.f=c;continue}if(h>R){a&&me(0);break}}o&&l(u+131072);for(var N=(1<<B)-1,tt=(1<<p)-1,b=h;;b=h){var rt=d[hn(r,h)&N],D=rt>>4;if(h+=rt&15,h>R){a&&me(0);break}if(rt||me(2),D<256)e[u++]=D;else if(D==256){b=h,d=null;break}else{var F=D-254;if(D>264){var q=D-257,V=mr[q];F=ye(r,h,(1<<V)-1)+Il[q],h+=V}var At=f[hn(r,h)&tt],Z=At>>4;At||me(3),h+=At&15;var j=sd[Z];if(Z>3){var V=wr[Z];j+=hn(r,h)&(1<<V)-1,h+=V}if(h>R){a&&me(0);break}o&&l(u+131072);var dt=u+F;if(u<j){var re=s-j,se=Math.min(j,dt);for(re+u<0&&me(3);u<se;++u)e[u]=i[re+u]}for(;u<dt;++u)e[u]=e[u-j]}}t.l=d,t.p=b,t.b=u,t.f=c,d&&(c=1,t.m=B,t.d=f,t.n=p)}while(!c);return u!=e.length&&n?Bl(e,0,u):e.subarray(0,u)},We=function(r,t,e){e<<=t&7;var i=t/8|0;r[i]|=e,r[i+1]|=e>>8},UA=function(r,t,e){e<<=t&7;var i=t/8|0;r[i]|=e,r[i+1]|=e>>8,r[i+2]|=e>>16},un=function(r,t){for(var e=[],i=0;i<r.length;++i)r[i]&&e.push({s:i,f:r[i]});var A=e.length,s=e.slice();if(!A)return{t:ml,l:0};if(A==1){var n=new Wt(e[0].s+1);return n[e[0].s]=1,{t:n,l:1}}e.sort(function(Q,m){return Q.f-m.f}),e.push({s:-1,f:25001});var o=e[0],a=e[1],l=0,c=1,h=2;for(e[0]={s:-1,f:o.f+a.f,l:o,r:a};c!=A-1;)o=e[e[l].f<e[h].f?l++:h++],a=e[l!=c&&e[l].f<e[h].f?l++:h++],e[c++]={s:-1,f:o.f+a.f,l:o,r:a};for(var u=s[0].s,i=1;i<A;++i)s[i].s>u&&(u=s[i].s);var d=new he(u+1),f=fn(e[c-1],d,0);if(f>t){var i=0,B=0,p=f-t,R=1<<p;for(s.sort(function(m,M){return d[M.s]-d[m.s]||m.f-M.f});i<A;++i){var P=s[i].s;if(d[P]>t)B+=R-(1<<f-d[P]),d[P]=t;else break}for(B>>=p;B>0;){var y=s[i].s;d[y]<t?B-=1<<t-d[y]++-1:++i}for(;i>=0&&B;--i){var S=s[i].s;d[S]==t&&(--d[S],++B)}f=t}return{t:new Wt(d),l:f}},fn=function(r,t,e){return r.s==-1?Math.max(fn(r.l,t,e+1),fn(r.r,t,e+1)):t[r.s]=e},Cl=function(r){for(var t=r.length;t&&!r[--t];);for(var e=new he(++t),i=0,A=r[0],s=1,n=function(a){e[i++]=a},o=1;o<=t;++o)if(r[o]==A&&o!=t)++s;else{if(!A&&s>2){for(;s>138;s-=138)n(32754);s>2&&(n(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(n(A),--s;s>6;s-=6)n(8304);s>2&&(n(s-3<<5|8208),s=0)}for(;s--;)n(A);s=1,A=r[o]}return{c:e.subarray(0,i),n:t}},NA=function(r,t){for(var e=0,i=0;i<t.length;++i)e+=r[i]*t[i];return e},Ql=function(r,t,e){var i=e.length,A=gn(t+2);r[A]=i&255,r[A+1]=i>>8,r[A+2]=r[A]^255,r[A+3]=r[A+1]^255;for(var s=0;s<i;++s)r[A+s+4]=e[s];return(A+4+i)*8},yl=function(r,t,e,i,A,s,n,o,a,l,c){We(t,c++,e),++A[256];for(var h=un(A,15),u=h.t,d=h.l,f=un(s,15),B=f.t,p=f.l,R=Cl(u),P=R.c,y=R.n,S=Cl(B),Q=S.c,m=S.n,M=new he(19),k=0;k<P.length;++k)++M[P[k]&31];for(var k=0;k<Q.length;++k)++M[Q[k]&31];for(var W=un(M,7),it=W.t,q=W.l,Y=19;Y>4&&!it[on[Y-1]];--Y);var et=l+5<<3,H=NA(A,oi)+NA(s,PA)+n,L=NA(A,u)+NA(s,B)+n+14+3*Y+NA(M,it)+2*M[16]+3*M[17]+7*M[18];if(a>=0&&et<=H&&et<=L)return Ql(t,c,r.subarray(a,a+l));var rt,O,X,j;if(We(t,c,1+(L<H)),c+=2,L<H){rt=Me(u,d,0),O=u,X=Me(B,p,0),j=B;var N=Me(it,q,0);We(t,c,y-257),We(t,c+5,m-1),We(t,c+10,Y-4),c+=14;for(var k=0;k<Y;++k)We(t,c+3*k,it[on[k]]);c+=3*Y;for(var tt=[P,Q],b=0;b<2;++b)for(var D=tt[b],k=0;k<D.length;++k){var F=D[k]&31;We(t,c,N[F]),c+=it[F],F>15&&(We(t,c,D[k]>>5&127),c+=D[k]>>12)}}else rt=nd,O=oi,X=ad,j=PA;for(var k=0;k<o;++k){var V=i[k];if(V>255){var F=V>>18&31;UA(t,c,rt[F+257]),c+=O[F+257],F>7&&(We(t,c,V>>23&31),c+=mr[F]);var At=V&31;UA(t,c,X[At]),c+=j[At],At>3&&(UA(t,c,V>>5&8191),c+=wr[At])}else UA(t,c,rt[V]),c+=O[V]}return UA(t,c,rt[256]),c+O[256]},gd=new nn([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ml=new Wt(0),ud=function(r,t,e,i,A,s){var n=s.z||r.length,o=new Wt(i+n+5*(1+Math.ceil(n/7e3))+A),a=o.subarray(i,o.length-A),l=s.l,c=(s.r||0)&7;if(t){c&&(a[0]=s.r>>3);for(var h=gd[t-1],u=h>>13,d=h&8191,f=(1<<e)-1,B=s.p||new he(32768),p=s.h||new he(f+1),R=Math.ceil(e/3),P=2*R,y=function(Tt){return(r[Tt]^r[Tt+1]<<R^r[Tt+2]<<P)&f},S=new nn(25e3),Q=new he(288),m=new he(32),M=0,k=0,W=s.i||0,it=0,q=s.w||0,Y=0;W+2<n;++W){var et=y(W),H=W&32767,L=p[et];if(B[H]=L,p[et]=H,q<=W){var rt=n-W;if((M>7e3||it>24576)&&(rt>423||!l)){c=yl(r,a,0,S,Q,m,k,it,Y,W-Y,c),it=M=k=0,Y=W;for(var O=0;O<286;++O)Q[O]=0;for(var O=0;O<30;++O)m[O]=0}var X=2,j=0,N=d,tt=H-L&32767;if(rt>2&&et==y(W-tt))for(var b=Math.min(u,rt)-1,D=Math.min(32767,W),F=Math.min(258,rt);tt<=D&&--N&&H!=L;){if(r[W+X]==r[W+X-tt]){for(var V=0;V<F&&r[W+V]==r[W+V-tt];++V);if(V>X){if(X=V,j=tt,V>b)break;for(var At=Math.min(tt,V-2),Z=0,O=0;O<At;++O){var dt=W-tt+O&32767,re=B[dt],se=dt-re&32767;se>Z&&(Z=se,L=dt)}}}H=L,L=B[H],tt+=H-L&32767}if(j){S[it++]=268435456|an[X]<<18|El[j];var Ft=an[X]&31,ct=El[j]&31;k+=mr[Ft]+wr[ct],++Q[257+Ft],++m[ct],q=W+X,++M}else S[it++]=r[W],++Q[r[W]]}}for(W=Math.max(W,q);W<n;++W)S[it++]=r[W],++Q[r[W]];c=yl(r,a,l,S,Q,m,k,it,Y,W-Y,c),l||(s.r=c&7|a[c/8|0]<<3,c-=7,s.h=p,s.p=B,s.i=W,s.w=q)}else{for(var W=s.w||0;W<n+l;W+=65535){var Qt=W+65535;Qt>=n&&(a[c/8|0]=l,Qt=n),c=Ql(a,c+1,r.subarray(W,Qt))}s.i=n}return Bl(o,0,i+gn(c)+A)},wl=function(){var r=1,t=0;return{p:function(e){for(var i=r,A=t,s=e.length|0,n=0;n!=s;){for(var o=Math.min(n+2655,s);n<o;++n)A+=i+=e[n];i=(i&65535)+15*(i>>16),A=(A&65535)+15*(A>>16)}r=i,t=A},d:function(){return r%=65521,t%=65521,(r&255)<<24|(r&65280)<<8|(t&255)<<8|t>>8}}},fd=function(r,t,e,i,A){if(!A&&(A={l:1},t.dictionary)){var s=t.dictionary.subarray(-32768),n=new Wt(s.length+r.length);n.set(s),n.set(r,s.length),r=n,A.w=s.length}return ud(r,t.level==null?6:t.level,t.mem==null?A.l?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):20:12+t.mem,e,i,A)},vl=function(r,t,e){for(;e;++t)r[t]=e,e>>>=8},dd=function(r,t){var e=t.level,i=e==0?0:e<6?1:e==9?3:2;if(r[0]=120,r[1]=i<<6|(t.dictionary&&32),r[1]|=31-(r[0]<<8|r[1])%31,t.dictionary){var A=wl();A.p(t.dictionary),vl(r,2,A.d())}},Id=function(r,t){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&me(6,"invalid zlib data"),(r[1]>>5&1)==1&&me(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2};function pd(r,t){t||(t={});var e=wl();e.p(r);var i=fd(r,t,t.dictionary?6:2,4);return dd(i,t),vl(i,i.length-4,e.d()),i}function Ed(r,t){return hd(r.subarray(Id(r),-4),{i:2},t,t)}var Bd=typeof TextDecoder<"u"&&new TextDecoder,Cd=0;try{Bd.decode(ml,{stream:!0}),Cd=1}catch{}const Qd="modern-font";function FA(r,t){if(!r)throw new Error(`[${Qd}] ${t}`)}function yd(r){if("buffer"in r){const t=r.buffer;return r.byteOffset>0||r.byteLength<r.buffer.byteLength?t.slice(r.byteOffset,r.byteOffset+r.byteLength):t}else return r}function Gi(r){return"buffer"in r?new DataView(r.buffer,r.byteOffset,r.byteLength):new DataView(r)}function md(r){let t="";for(let e=0,i=r.length,A;e<i;e++)A=r.charCodeAt(e),A!==0&&(t+=String.fromCharCode(A));return t}function vr(r){r=md(r);const t=[];for(let e=0,i=r.length,A;e<i;e++)A=r.charCodeAt(e),t.push(A>>8),t.push(A&255);return t}function wd(r){let t="";for(let e=0,i=r.length;e<i;e++)r[e]<127?t+=String.fromCharCode(r[e]):t+=`%${(256+r[e]).toString(16).slice(1)}`;return unescape(t)}function vd(r){let t="";for(let e=0,i=r.length;e<i;e+=2)t+=String.fromCharCode((r[e]<<8)+r[e+1]);return t}var _d=Object.defineProperty,qt=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&_d(t,e,A),A};const TA={int8:1,int16:2,int32:4,uint8:1,uint16:2,uint32:4,float32:4,float64:8,fixed:4,longDateTime:8,char:1};function Xt(){return function(r,t){Object.defineProperty(r.constructor.prototype,t,{get(){if(typeof t=="string"){if(t.startsWith("read"))return(...e)=>this.read(t.substring(4).toLowerCase(),...e);if(t.startsWith("write"))return(...e)=>this.write(t.substring(5).toLowerCase(),...e)}},configurable:!0,enumerable:!0})}}class kt extends DataView{constructor(t,e,i,A){super(yd(t),e,i),this.littleEndian=A}cursor=0;readColumn(t){if(t.size){const e=Array.from({length:t.size},(i,A)=>this.read(t.type,t.offset+A));switch(t.type){case"char":return e.join("");default:return e}}else return this.read(t.type,t.offset)}writeColumn(t,e){t.size?Array.from({length:t.size},(i,A)=>{this.write(t.type,e[A],t.offset+A)}):this.write(t.type,e,t.offset)}read(t,e=this.cursor,i=this.littleEndian){switch(t){case"char":return this.readChar(e);case"fixed":return this.readFixed(e,i);case"longDateTime":return this.readLongDateTime(e,i)}const A=`get${t.replace(/^\S/,a=>a.toUpperCase())}`,s=this,o=s[A]?.bind(s)?.(e,i);return this.cursor+=TA[t],o}readUint24(t=this.cursor){const[e,i,A]=this.readBytes(t,3);return(e<<16)+(i<<8)+A}readBytes(t,e){e==null&&(e=t,t=this.cursor);const i=[];for(let A=0;A<e;++A)i.push(this.getUint8(t+A));return this.cursor=t+e,i}readString(t,e){const i=this.readBytes(t,e);let A="";for(let s=0,n=i.length;s<n;s++)A+=String.fromCharCode(i[s]);return A}readFixed(t,e){const i=this.readInt32(t,e)/65536;return Math.ceil(i*1e5)/1e5}readLongDateTime(t=this.cursor,e){const i=this.readUint32(t+4,e),A=new Date;return A.setTime(i*1e3+-20775456e5),A}readChar(t){return this.readString(t,1)}write(t,e,i=this.cursor,A=this.littleEndian){switch(t){case"char":return this.writeChar(e,i);case"fixed":return this.writeFixed(e,i);case"longDateTime":return this.writeLongDateTime(e,i)}const s=`set${t.replace(/^\S/,l=>l.toUpperCase())}`,n=this,a=n[s]?.bind(n)?.(i,e,A);return this.cursor+=TA[t.toLowerCase()],a}writeString(t="",e=this.cursor){const i=t.replace(/[^\x00-\xFF]/g,"11").length;this.seek(e);for(let A=0,s=t.length,n;A<s;++A)n=t.charCodeAt(A)||0,n>127?this.writeUint16(n):this.writeUint8(n);return this.cursor+=i,this}writeChar(t,e){return this.writeString(t,e)}writeFixed(t,e){return this.writeInt32(Math.round(t*65536),e),this}writeLongDateTime(t,e=this.cursor){typeof t>"u"?t=-20775456e5:typeof t.getTime=="function"?t=t.getTime():/^\d+$/.test(t)?t=+t:t=Date.parse(t);const A=Math.round((t- -20775456e5)/1e3);return this.writeUint32(0,e),this.writeUint32(A,e+4),this}writeBytes(t,e=this.cursor){let i;if(Array.isArray(t)){i=t.length;for(let A=0;A<i;++A)this.setUint8(e+A,t[A])}else{const A=Gi(t);i=A.byteLength;for(let s=0;s<i;++s)this.setUint8(e+s,A.getUint8(s))}return this.cursor=e+i,this}seek(t){return this.cursor=t,this}}qt([Xt()],kt.prototype,"readInt8"),qt([Xt()],kt.prototype,"readInt16"),qt([Xt()],kt.prototype,"readInt32"),qt([Xt()],kt.prototype,"readUint8"),qt([Xt()],kt.prototype,"readUint16"),qt([Xt()],kt.prototype,"readUint32"),qt([Xt()],kt.prototype,"readFloat32"),qt([Xt()],kt.prototype,"readFloat64"),qt([Xt()],kt.prototype,"writeInt8"),qt([Xt()],kt.prototype,"writeInt16"),qt([Xt()],kt.prototype,"writeInt32"),qt([Xt()],kt.prototype,"writeUint8"),qt([Xt()],kt.prototype,"writeUint16"),qt([Xt()],kt.prototype,"writeUint32"),qt([Xt()],kt.prototype,"writeFloat32"),qt([Xt()],kt.prototype,"writeFloat64");const _l=new WeakMap;function w(r){const t=typeof r=="object"?r:{type:r},{size:e=1,type:i}=t;return(A,s)=>{if(typeof s!="string")return;let n=_l.get(A);n||(n={columns:[],byteLength:0},_l.set(A,n));const o={...t,name:s,byteLength:e*TA[i],offset:t.offset??n.columns.reduce((a,l)=>a+l.byteLength,0)};n.columns.push(o),n.byteLength=n.columns.reduce((a,l)=>a+TA[l.type]*(l.size??1),0),Object.defineProperty(A.constructor.prototype,s,{get(){return this.view.readColumn(o)},set(a){this.view.writeColumn(o,a)},configurable:!0,enumerable:!0})}}class ge{view;constructor(t,e,i,A){this.view=new kt(t,e,i,A)}}class _r extends ge{get buffer(){return this.view.buffer}toBuffer(){return this.view.buffer.slice(this.view.byteOffset,this.view.byteOffset+this.view.byteLength)}toBlob(){return new Blob([new Uint8Array(this.view.buffer,this.view.byteOffset,this.view.byteLength)],{type:this.mimeType})}toFontFace(t){return new FontFace(t,this.view.buffer)}}var bd=Object.defineProperty,te=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&bd(t,e,A),A};const ee=class Mc extends _r{format="EmbeddedOpenType";mimeType="application/vnd.ms-fontobject";static from(t){const e=t.sfnt,A=e.name.names,s=vr(A.fontFamily||""),n=s.length,o=vr(A.fontStyle||""),a=o.length,l=vr(A.version||""),c=l.length,h=vr(A.fullName||""),u=h.length,d=86+n+4+a+4+c+4+u+2+t.view.byteLength,f=new Mc(new ArrayBuffer(d),0,d,!0);f.EOTSize=f.view.byteLength,f.FontDataSize=t.view.byteLength,f.Version=131073,f.Flags=0,f.Charset=1,f.MagicNumber=20556,f.Padding1=0,f.CheckSumAdjustment=e.head.checkSumAdjustment;const B=e.os2;return B&&(f.FontPANOSE=B.fontPANOSE,f.Italic=B.fsSelection,f.Weight=B.usWeightClass,f.fsType=B.fsType,f.UnicodeRange=B.ulUnicodeRange,f.CodePageRange=B.ulCodePageRange),f.view.writeUint16(n),f.view.writeBytes(s),f.view.writeUint16(0),f.view.writeUint16(a),f.view.writeBytes(o),f.view.writeUint16(0),f.view.writeUint16(c),f.view.writeBytes(l),f.view.writeUint16(0),f.view.writeUint16(u),f.view.writeBytes(h),f.view.writeUint16(0),f.view.writeUint16(0),f.view.writeBytes(t.view),f}};te([w("uint32")],ee.prototype,"EOTSize"),te([w("uint32")],ee.prototype,"FontDataSize"),te([w("uint32")],ee.prototype,"Version"),te([w("uint32")],ee.prototype,"Flags"),te([w({type:"uint8",size:10})],ee.prototype,"FontPANOSE"),te([w("uint8")],ee.prototype,"Charset"),te([w("uint8")],ee.prototype,"Italic"),te([w("uint32")],ee.prototype,"Weight"),te([w("uint16")],ee.prototype,"fsType"),te([w("uint16")],ee.prototype,"MagicNumber"),te([w({type:"uint8",size:16})],ee.prototype,"UnicodeRange"),te([w({type:"uint8",size:8})],ee.prototype,"CodePageRange"),te([w("uint32")],ee.prototype,"CheckSumAdjustment"),te([w({type:"uint8",size:16})],ee.prototype,"Reserved"),te([w("uint16")],ee.prototype,"Padding1");var Dd=Object.defineProperty,br=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Dd(t,e,A),A};class Oi extends ge{constructor(t,e){super(t,e,16)}}br([w({type:"char",size:4})],Oi.prototype,"tag"),br([w("uint32")],Oi.prototype,"checkSum"),br([w("uint32")],Oi.prototype,"offset"),br([w("uint32")],Oi.prototype,"length");const dn=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],xd=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];class In{index;name;isComposite=!1;components=[];pathCommands=[];constructor(t){const e={...t};if(this.index=e.index??0,e.name===".notdef"?e.unicode=void 0:e.name===".null"&&(e.unicode=0),e.unicode===0&&e.name!==".null")throw new Error('The unicode value "0" is reserved for the glyph name ".null" and cannot be used by any other glyph.');this.name=e.name??null,e.unicode&&(this.unicode=e.unicode),e.unicodes?this.unicodes=e.unicodes:e.unicode&&(this.unicodes=[e.unicode])}getPathCommands(t=0,e=0,i=72,A={},s){const n=1/(s?.unitsPerEm??1e3)*i,{xScale:o=n,yScale:a=n}=A,l=this.pathCommands,c=[];for(let h=0,u=l.length;h<u;h+=1){const d=l[h];d.type==="M"?c.push({type:"M",x:t+d.x*o,y:e+-d.y*a}):d.type==="L"?c.push({type:"L",x:t+d.x*o,y:e+-d.y*a}):d.type==="Q"?c.push({type:"Q",x1:t+d.x1*o,y1:e+-d.y1*a,x:t+d.x*o,y:e+-d.y*a}):d.type==="C"?c.push({type:"C",x1:t+d.x1*o,y1:e+-d.y1*a,x2:t+d.x2*o,y2:e+-d.y2*a,x:t+d.x*o,y:e+-d.y*a}):d.type==="Z"&&c.push({type:"Z"})}return c}}class Sd extends In{parse(t,e,i){const A=this,{nominalWidthX:s,defaultWidthX:n,gsubrsBias:o,subrsBias:a}=t,l=t.topDict.paintType,c=this.index;let h,u,d,f;const B=[],p=[];let R=0,P=!1,y=!1,S=n,Q=0,m=0;function M(H,L){B.push({type:"L",x:H,y:L})}function k(H,L,rt,O,X,j){B.push({type:"C",x1:H,y1:L,x2:rt,y2:O,x:X,y:j})}function W(H,L){y&&l!==2&&it(),y=!0,B.push({type:"M",x:H,y:L})}function it(){B.push({type:"Z"})}function q(H){B.push(...H)}function Y(){p.length%2!==0&&!P&&(S=p.shift()+s),R+=p.length>>1,p.length=0,P=!0}function et(H){let L,rt,O,X,j,N,tt,b,D,F,V,At,Z=0;for(;Z<H.length;){let dt=H[Z++];switch(dt){case 1:Y();break;case 3:Y();break;case 4:p.length>1&&!P&&(S=p.shift()+s,P=!0),m+=p.pop(),W(Q,m);break;case 5:for(;p.length>0;)Q+=p.shift(),m+=p.shift(),M(Q,m);break;case 6:for(;p.length>0&&(Q+=p.shift(),M(Q,m),p.length!==0);)m+=p.shift(),M(Q,m);break;case 7:for(;p.length>0&&(m+=p.shift(),M(Q,m),p.length!==0);)Q+=p.shift(),M(Q,m);break;case 8:for(;p.length>0;)h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+p.shift(),k(h,u,d,f,Q,m);break;case 10:j=p.pop()+a,N=t.subrs[j],N&&et(N);break;case 11:return;case 12:switch(dt=H[Z],Z+=1,dt){case 35:h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),tt=d+p.shift(),b=f+p.shift(),D=tt+p.shift(),F=b+p.shift(),V=D+p.shift(),At=F+p.shift(),Q=V+p.shift(),m=At+p.shift(),p.shift(),k(h,u,d,f,tt,b),k(D,F,V,At,Q,m);break;case 34:h=Q+p.shift(),u=m,d=h+p.shift(),f=u+p.shift(),tt=d+p.shift(),b=f,D=tt+p.shift(),F=f,V=D+p.shift(),At=m,Q=V+p.shift(),k(h,u,d,f,tt,b),k(D,F,V,At,Q,m);break;case 36:h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),tt=d+p.shift(),b=f,D=tt+p.shift(),F=f,V=D+p.shift(),At=F+p.shift(),Q=V+p.shift(),k(h,u,d,f,tt,b),k(D,F,V,At,Q,m);break;case 37:h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),tt=d+p.shift(),b=f+p.shift(),D=tt+p.shift(),F=b+p.shift(),V=D+p.shift(),At=F+p.shift(),Math.abs(V-Q)>Math.abs(At-m)?Q=V+p.shift():m=At+p.shift(),k(h,u,d,f,tt,b),k(D,F,V,At,Q,m);break;default:console.warn(`Glyph ${c}: unknown operator ${1200+dt}`),p.length=0}break;case 14:if(p.length>=4){const re=dn[p.pop()],se=dn[p.pop()],Ft=p.pop(),ct=p.pop();if(re&&se){A.isComposite=!0,A.components=[];const Qt=t.charset.indexOf(re),Tt=t.charset.indexOf(se);A.components.push({glyphIndex:Tt,dx:0,dy:0}),A.components.push({glyphIndex:Qt,dx:ct,dy:Ft}),q(i.get(Tt).pathCommands);const Kt=JSON.parse(JSON.stringify(i.get(Qt).pathCommands));for(let _t=0;_t<Kt.length;_t+=1){const $t=Kt[_t];$t.type!=="Z"&&($t.x+=ct,$t.y+=Ft),($t.type==="Q"||$t.type==="C")&&($t.x1+=ct,$t.y1+=Ft),$t.type==="C"&&($t.x2+=ct,$t.y2+=Ft)}q(Kt)}}else p.length>0&&!P&&(S=p.shift()+s,P=!0);y&&l!==2&&(it(),y=!1);break;case 18:Y();break;case 19:case 20:Y(),Z+=R+7>>3;break;case 21:p.length>2&&!P&&(S=p.shift()+s,P=!0),m+=p.pop(),Q+=p.pop(),W(Q,m);break;case 22:p.length>1&&!P&&(S=p.shift()+s,P=!0),Q+=p.pop(),W(Q,m);break;case 23:Y();break;case 24:for(;p.length>2;)h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+p.shift(),k(h,u,d,f,Q,m);Q+=p.shift(),m+=p.shift(),M(Q,m);break;case 25:for(;p.length>6;)Q+=p.shift(),m+=p.shift(),M(Q,m);h=Q+p.shift(),u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+p.shift(),k(h,u,d,f,Q,m);break;case 26:for(p.length%2&&(Q+=p.shift());p.length>0;)h=Q,u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d,m=f+p.shift(),k(h,u,d,f,Q,m);break;case 27:for(p.length%2&&(m+=p.shift());p.length>0;)h=Q+p.shift(),u=m,d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f,k(h,u,d,f,Q,m);break;case 28:L=H[Z],rt=H[Z+1],p.push((L<<24|rt<<16)>>16),Z+=2;break;case 29:j=p.pop()+o,N=t.gsubrs[j],N&&et(N);break;case 30:for(;p.length>0&&(h=Q,u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+(p.length===1?p.shift():0),k(h,u,d,f,Q,m),p.length!==0);)h=Q+p.shift(),u=m,d=h+p.shift(),f=u+p.shift(),m=f+p.shift(),Q=d+(p.length===1?p.shift():0),k(h,u,d,f,Q,m);break;case 31:for(;p.length>0&&(h=Q+p.shift(),u=m,d=h+p.shift(),f=u+p.shift(),m=f+p.shift(),Q=d+(p.length===1?p.shift():0),k(h,u,d,f,Q,m),p.length!==0);)h=Q,u=m+p.shift(),d=h+p.shift(),f=u+p.shift(),Q=d+p.shift(),m=f+(p.length===1?p.shift():0),k(h,u,d,f,Q,m);break;default:dt<32?console.warn(`Glyph ${c}: unknown operator ${dt}`):dt<247?p.push(dt-139):dt<251?(L=H[Z],Z+=1,p.push((dt-247)*256+L+108)):dt<255?(L=H[Z],Z+=1,p.push(-(dt-251)*256-L-108)):(L=H[Z],rt=H[Z+1],O=H[Z+2],X=H[Z+3],Z+=4,p.push((L<<24|rt<<16|O<<8|X)/65536))}}}et(e),this.pathCommands=B,P&&(this.advanceWidth=S)}}class pn{constructor(t){this._sfnt=t}_items=[];get(t){const e=this._items[t];let i;if(e)i=e;else{i=this._get(t);const A=this._sfnt.hmtx.metrics[t];A&&(i.advanceWidth=i.advanceWidth||A.advanceWidth,i.leftSideBearing=i.leftSideBearing||A.leftSideBearing);const s=this._sfnt.cmap.glyphIndexToUnicodesMap.get(t);s&&(i.unicode??=s[0],i.unicodes??=s),this._items[t]=i}return i}}class Md extends pn{get length(){return this._sfnt.cff.charStringsIndex.offsets.length-1}_get(t){const e=this._sfnt.cff,i=new Sd({index:t});return i.parse(e,e.charStringsIndex.get(t),this),i.name=e.charset[t],i}}var Rd=Object.defineProperty,bl=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Rd(t,e,A),A};class Dr extends ge{_offsets;get offsets(){return this._offsets??=this.readOffsets()}_objects;get objects(){return this._objects??=this.readObjects()}constructor(t,e,i,A){super(t,e,i,A),this._init()}_init(){const t=this.view,e=this.count,i=this.offsetSize;this.objectOffset=(e+1)*i+2,this.endOffset=t.byteOffset+this.objectOffset+this.offsets[e]}readOffsets(){const t=this.view,e=this.count,i=this.offsetSize;t.seek(3);const A=[];for(let s=0,n=e+1;s<n;s++){const o=this.view;let a=0;for(let l=0;l<i;l++)a<<=8,a+=o.readUint8();A.push(a)}return A}readObjects(){const t=[];for(let e=0,i=this.count;e<i;e++)t.push(this.get(e));return t}get(t){const e=this.offsets,i=this.objectOffset,A=i+e[t],n=i+e[t+1]-A;return this._isString?this.view.readString(A,n):this.view.readBytes(A,n)}}bl([w("uint16")],Dr.prototype,"count"),bl([w("uint8")],Dr.prototype,"offsetSize");class xr extends Dr{_isString=!1}class Dl extends Dr{_isString=!0}const kd=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","266 ff","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],Pd=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],Ud=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],Nd=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"];function Sr(r,t){return t<=390?kd[t]:r[t-391]}function Et(r,t="number",e){return(i,A)=>{if(typeof A!="string")return;const s={type:t,operator:r,default:e??t==="number"?0:void 0};Object.defineProperty(i.constructor.prototype,A,{get(){return this._getProp(s)},set(n){this._setProp(s,n)},configurable:!0,enumerable:!0})}}class xl extends ge{_dict;get dict(){return this._dict??=this._readDict()}_stringIndex;setStringIndex(t){return this._stringIndex=t,this}_readFloatOperand(){const t=this.view;let e="";const i=15,A=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];for(;;){const s=t.readUint8(),n=s>>4,o=s&15;if(n===i||(e+=A[n],o===i))break;e+=A[o]}return Number.parseFloat(e)}_readOperand(t){const e=this.view;let i,A,s,n;if(t===28)return i=e.readUint8(),A=e.readUint8(),i<<8|A;if(t===29)return i=e.readUint8(),A=e.readUint8(),s=e.readUint8(),n=e.readUint8(),i<<24|A<<16|s<<8|n;if(t===30)return this._readFloatOperand();if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return i=e.readUint8(),(t-247)*256+i+108;if(t>=251&&t<=254)return i=e.readUint8(),-(t-251)*256-i-108;throw new Error(`invalid b0 ${t}, at: ${e.cursor}`)}_readDict(){const t=this.view;t.seek(0);let e=[];const i=t.cursor+t.byteLength,A={};for(;t.cursor<i;){let s=t.readUint8();s<=21?(s===12&&(s=1200+t.readUint8()),A[s]=e,e=[]):e.push(this._readOperand(s))}return A}_getProp(t){const e=this.dict[t.operator]??t.default;switch(t.type){case"number":return e[0];case"string":return Sr(this._stringIndex?.objects??[],e[0]);case"number[]":return e}return e}_setProp(t,e){}}var Fd=Object.defineProperty,En=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Fd(t,e,A),A};class Mr extends xl{}En([Et(19)],Mr.prototype,"subrs"),En([Et(20)],Mr.prototype,"defaultWidthX"),En([Et(21)],Mr.prototype,"nominalWidthX");var Td=Object.defineProperty,vt=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Td(t,e,A),A};class yt extends xl{}vt([Et(0,"string")],yt.prototype,"version"),vt([Et(1,"string")],yt.prototype,"notice"),vt([Et(1200,"string")],yt.prototype,"copyright"),vt([Et(2,"string")],yt.prototype,"fullName"),vt([Et(3,"string")],yt.prototype,"familyName"),vt([Et(4,"string")],yt.prototype,"weight"),vt([Et(1201)],yt.prototype,"isFixedPitch"),vt([Et(1202)],yt.prototype,"italicAngle"),vt([Et(1203,"number",-100)],yt.prototype,"underlinePosition"),vt([Et(1204,"number",50)],yt.prototype,"underlineThickness"),vt([Et(1205)],yt.prototype,"paintType"),vt([Et(1206,"number",2)],yt.prototype,"charstringType"),vt([Et(1207,"number[]",[.001,0,0,.001,0,0])],yt.prototype,"fontMatrix"),vt([Et(13)],yt.prototype,"uniqueId"),vt([Et(5,"number[]",[0,0,0,0])],yt.prototype,"fontBBox"),vt([Et(1208)],yt.prototype,"strokeWidth"),vt([Et(14)],yt.prototype,"xuid"),vt([Et(15)],yt.prototype,"charset"),vt([Et(16)],yt.prototype,"encoding"),vt([Et(17)],yt.prototype,"charStrings"),vt([Et(18,"number[]",[0,0])],yt.prototype,"private");function Ot(r,t=r){return e=>{Re.tableDefinitions.set(r,{tag:r,prop:t,class:e}),Object.defineProperty(Re.prototype,t,{get(){return this.get(r)},set(i){return this.set(r,i)},configurable:!0,enumerable:!0})}}class Re{static tableDefinitions=new Map;tables=new Map;tableViews=new Map;get hasGlyf(){return this.tableViews.has("glyf")}get names(){return this.name.names}get unitsPerEm(){return this.head.unitsPerEm}get ascender(){return this.hhea.ascent}get descender(){return this.hhea.descent}get createdTimestamp(){return this.head.created}get modifiedTimestamp(){return this.head.modified}get numGlyphs(){return this.maxp.numGlyphs}get unicodes(){return this.cmap.glyphIndexToUnicodesMap}get glyphs(){return this.hasGlyf?this.glyf.glyphs:this.cff.glyphs}charToGlyphIndex(t){let e=this.cmap.unicodeToGlyphIndexMap.get(t.codePointAt(0));if(e===void 0&&!this.hasGlyf){const{encoding:i,charset:A}=this.cff;e=A.indexOf(i[t.codePointAt(0)])}return e??0}charToGlyph(t){return this.glyphs.get(this.charToGlyphIndex(t))}textToGlyphIndexes(t){const e=[];for(const i of t)e.push(this.charToGlyphIndex(i));return e}textToGlyphs(t){const e=this.glyphs,i=this.textToGlyphIndexes(t),A=i.length,s=Array.from({length:A}),n=e.get(0);for(let o=0;o<A;o+=1)s[o]=e.get(i[o])||n;return s}getPathCommands(t,e,i,A,s){const n=[];return this.forEachGlyph(t,e,i,A,s,(o,a,l,c,h)=>{n.push(...o.getPathCommands(a,l,c,h,this))}),n}getAdvanceWidth(t,e,i){return this.forEachGlyph(t,0,0,e,i,()=>{})}forEachGlyph(t,e=0,i=0,A=72,s={},n){const o=1/this.unitsPerEm*A,a=this.textToGlyphs(t);for(let l=0;l<a.length;l+=1){const c=a[l];n.call(this,c,e,i,A,s),c.advanceWidth&&(e+=c.advanceWidth*o),s.letterSpacing?e+=s.letterSpacing*A:s.tracking&&(e+=s.tracking/1e3*A)}return e}constructor(t){(t instanceof Map?t:new Map(Object.entries(t))).forEach((i,A)=>{this.tableViews.set(A,new DataView(i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)))})}clone(){return new Re(this.tableViews)}delete(t){const e=Re.tableDefinitions.get(t);return e?(this.tableViews.delete(t),this.tables.delete(e.prop),this):this}set(t,e){const i=Re.tableDefinitions.get(t);return i&&this.tables.set(i.prop,e),this.tableViews.set(t,e.view),this}get(t){const e=Re.tableDefinitions.get(t);if(!e)return;let i=this.tables.get(e.prop);if(!i){const A=e.class;if(A){const s=this.tableViews.get(t);if(!s)return;i=new A(s.buffer,s.byteOffset,s.byteLength).setSFNT(this),this.tables.set(e.prop,i)}}return i}}class jt extends ge{setSFNT(t){return this._sfnt=t,this}getSFNT(){return this._sfnt}}var Ld=Object.defineProperty,Gd=Object.getOwnPropertyDescriptor,LA=(r,t,e,i)=>{for(var A=i>1?void 0:i?Gd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Ld(t,e,A),A};let vi=class extends jt{_glyphs;get glyphs(){return this._glyphs??=new Md(this._sfnt)}get gsubrs(){return this.globalSubrIndex.objects}get gsubrsBias(){return this._calcSubroutineBias(this.globalSubrIndex.objects)}privateDict;subrsIndex;get defaultWidthX(){return this.privateDict?.defaultWidthX??0}get nominalWidthX(){return this.privateDict?.nominalWidthX??0}get subrs(){return this.subrsIndex?.objects??[]}get subrsBias(){return this._calcSubroutineBias(this.subrs)}constructor(r,t,e,i){super(r,t,e,i),this._init()}_init(){const r=this.view,{buffer:t,byteOffset:e}=r,i=e+4;this.nameIndex=new Dl(t,i),this.topDictIndex=new xr(t,this.nameIndex.endOffset),this.stringIndex=new Dl(t,this.topDictIndex.endOffset),this.globalSubrIndex=new xr(t,this.stringIndex.endOffset),this.topDict=new yt(new Uint8Array(this.topDictIndex.objects[0]).buffer).setStringIndex(this.stringIndex);const A=this.topDict.private[0],s=this.topDict.private[1];A&&(this.privateDict=new Mr(t,e+s,A).setStringIndex(this.stringIndex),this.privateDict.subrs&&(this.subrsIndex=new xr(t,e+s+this.privateDict.subrs))),this.charStringsIndex=new xr(t,e+this.topDict.charStrings);const n=this.charStringsIndex.offsets.length-1;this.topDict.charset===0?this.charset=Pd:this.topDict.charset===1?this.charset=Ud:this.topDict.charset===2?this.charset=Nd:this.charset=this._readCharset(e+this.topDict.charset,n,this.stringIndex.objects),this.topDict.encoding===0?this.encoding=dn:this.topDict.encoding===1?this.encoding=xd:this.encoding=this._readEncoding(e+this.topDict.encoding)}_readCharset(r,t,e){const i=this.view;i.seek(r);let A,s,n;t-=1;const o=[".notdef"],a=i.readUint8();if(a===0)for(A=0;A<t;A+=1)s=i.readUint16(),o.push(Sr(e,s));else if(a===1)for(;o.length<=t;)for(s=i.readUint16(),n=i.readUint8(),A=0;A<=n;A+=1)o.push(Sr(e,s)),s+=1;else if(a===2)for(;o.length<=t;)for(s=i.readUint16(),n=i.readUint16(),A=0;A<=n;A+=1)o.push(Sr(e,s)),s+=1;else throw new Error(`Unknown charset format ${a}`);return o}_readEncoding(r){const t=this.view;t.seek(r);let e,i;const A={},s=t.readUint8();if(s===0){const n=t.readUint8();for(e=0;e<n;e+=1)i=t.readUint8(),A[i]=e}else if(s===1){const n=t.readUint8();for(i=1,e=0;e<n;e+=1){const o=t.readUint8(),a=t.readUint8();for(let l=o;l<=o+a;l+=1)A[l]=i,i+=1}}else console.warn(`unknown encoding format:${s}`);return A}_calcSubroutineBias(r){let t;return r.length<1240?t=107:r.length<33900?t=1131:t=32768,t}};LA([w("uint8")],vi.prototype,"majorVersion",2),LA([w("uint8")],vi.prototype,"minorVersion",2),LA([w("uint8")],vi.prototype,"headerSize",2),LA([w("uint8")],vi.prototype,"offsetSize",2),vi=LA([Ot("CFF ","cff")],vi);var Od=Object.defineProperty,Rr=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Od(t,e,A),A};const GA=class Rc extends ge{constructor(t=new ArrayBuffer(262),e){super(t,e,262)}static from(t){const e=new Rc;return e.format=0,e.length=e.view.byteLength,e.language=0,t.forEach((i,A)=>{A<256&&i<256&&e.view.writeUint8(i,6+A)}),e}getUnicodeToGlyphIndexMap(){const t=new Map;return this.glyphIndexArray.forEach((e,i)=>{t.set(i,e)}),t}};Rr([w("uint16")],GA.prototype,"format"),Rr([w("uint16")],GA.prototype,"length"),Rr([w("uint16")],GA.prototype,"language"),Rr([w({type:"uint8",size:256})],GA.prototype,"glyphIndexArray");let Bn=GA;var Hd=Object.defineProperty,Cn=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Hd(t,e,A),A};class OA extends ge{get subHeaderKeys(){return this.view.seek(6),Array.from({length:256},()=>this.view.readUint16()/8)}get maxSubHeaderKey(){return this.subHeaderKeys.reduce((t,e)=>Math.max(t,e),0)}get subHeaders(){const t=this.maxSubHeaderKey;return this.view.seek(6+256*2),Array.from({length:t},(e,i)=>({firstCode:this.view.readUint16(),entryCount:this.view.readUint16(),idDelta:this.view.readUint16(),idRangeOffset:(this.view.readUint16()-(t-i)*8-2)/2}))}get glyphIndexArray(){const t=this.maxSubHeaderKey,e=6+256*2+t*8;this.view.seek(e);const i=(this.view.byteLength-e)/2;return Array.from({length:i},()=>this.view.readUint16())}getUnicodeToGlyphIndexMap(t){const e=new Map,i=this.subHeaderKeys,A=this.maxSubHeaderKey,s=this.subHeaders,n=this.glyphIndexArray,o=i.findIndex(l=>l===A);let a=0;for(let l=0;l<256;l++)if(i[l]===0)l>=o||l<s[0].firstCode||l>=s[0].firstCode+s[0].entryCount||s[0].idRangeOffset+(l-s[0].firstCode)>=n.length?a=0:(a=n[s[0].idRangeOffset+(l-s[0].firstCode)],a!==0&&(a=a+s[0].idDelta)),a!==0&&a<t&&e.set(l,a);else{const c=i[l];for(let h=0,u=s[c].entryCount;h<u;h++)if(s[c].idRangeOffset+h>=n.length?a=0:(a=n[s[c].idRangeOffset+h],a!==0&&(a=a+s[c].idDelta)),a!==0&&a<t){const d=(l<<8|h+s[c].firstCode)%65535;e.set(d,a)}}return e}}Cn([w("uint16")],OA.prototype,"format"),Cn([w("uint16")],OA.prototype,"length"),Cn([w("uint16")],OA.prototype,"language");function Sl(r){return r>32767?r-65536:r<-32767?r+65536:r}function Qn(r,t){let e;const i=[];let A={};return r.forEach((s,n)=>{t&&n>t||((!e||n!==e.unicode+1||s!==e.glyphIndex+1)&&(e?(A.end=e.unicode,i.push(A),A={start:n,startId:s,delta:Sl(s-n)}):(A.start=Number(n),A.startId=s,A.delta=Sl(s-n))),e={unicode:n,glyphIndex:s})}),e&&(A.end=e.unicode,i.push(A)),i}var Jd=Object.defineProperty,_i=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Jd(t,e,A),A};const ai=class kc extends ge{get endCode(){const t=this.segCountX2;return this.view.seek(14),Array.from({length:t/2},()=>this.view.readUint16())}set endCode(t){this.view.seek(14),t.forEach(e=>this.view.writeUint16(e))}get reservedPad(){return this.view.readUint16(14+this.segCountX2)}set reservedPad(t){this.view.writeUint16(t,14+this.segCountX2)}get startCode(){const t=this.segCountX2;return this.view.seek(14+t+2),Array.from({length:t/2},()=>this.view.readUint16())}set startCode(t){this.view.seek(14+this.segCountX2+2),t.forEach(e=>this.view.writeUint16(e))}get idDelta(){const t=this.segCountX2;return this.view.seek(14+t+2+t),Array.from({length:t/2},()=>this.view.readUint16())}set idDelta(t){const e=this.segCountX2;this.view.seek(14+e+2+e),t.forEach(i=>this.view.writeUint16(i))}get idRangeOffsetCursor(){const t=this.segCountX2;return 14+t+2+t*2}get idRangeOffset(){const t=this.segCountX2;return this.view.seek(this.idRangeOffsetCursor),Array.from({length:t/2},()=>this.view.readUint16())}set idRangeOffset(t){this.view.seek(this.idRangeOffsetCursor),t.forEach(e=>this.view.writeUint16(e))}get glyphIndexArrayCursor(){const t=this.segCountX2;return 14+t+2+t*3}get glyphIndexArray(){const t=this.glyphIndexArrayCursor;this.view.seek(t);const e=(this.view.byteLength-t)/2;return Array.from({length:e},()=>this.view.readUint16())}static from(t){const e=Qn(t,65535),i=e.length+1,A=Math.floor(Math.log(i)/Math.LN2),s=2*2**A,n=new kc(new ArrayBuffer(24+e.length*8));return n.format=4,n.length=n.view.byteLength,n.language=0,n.segCountX2=i*2,n.searchRange=s,n.entrySelector=A,n.rangeShift=2*i-s,n.endCode=[...e.map(o=>o.end),65535],n.reservedPad=0,n.startCode=[...e.map(o=>o.start),65535],n.idDelta=[...e.map(o=>o.delta),1],n.idRangeOffset=Array.from({length:i},()=>0),n}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.segCountX2/2,i=(this.glyphIndexArrayCursor-this.idRangeOffsetCursor)/2,A=this.startCode,s=this.endCode,n=this.idRangeOffset,o=this.idDelta,a=this.glyphIndexArray;for(let l=0;l<e;++l)for(let c=A[l],h=s[l];c<=h;++c)if(n[l]===0)t.set(c,(c+o[l])%65536);else{const u=l+n[l]/2+(c-A[l])-i,d=a[u];d!==0?t.set(c,(d+o[l])%65536):t.set(c,0)}return t.delete(65535),t}};_i([w("uint16")],ai.prototype,"format"),_i([w("uint16")],ai.prototype,"length"),_i([w("uint16")],ai.prototype,"language"),_i([w("uint16")],ai.prototype,"segCountX2"),_i([w("uint16")],ai.prototype,"searchRange"),_i([w("uint16")],ai.prototype,"entrySelector"),_i([w("uint16")],ai.prototype,"rangeShift");let yn=ai;var Kd=Object.defineProperty,HA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Kd(t,e,A),A};class bi extends ge{get glyphIndexArray(){return this.view.seek(12),Array.from({length:this.entryCount},()=>this.view.readUint16())}getUnicodeToGlyphIndexMap(){const t=this.glyphIndexArray,e=new Map;return t.forEach((i,A)=>{e.set(A,i)}),e}}HA([w("uint16")],bi.prototype,"format"),HA([w("uint16")],bi.prototype,"length"),HA([w("uint16")],bi.prototype,"language"),HA([w("uint16")],bi.prototype,"firstCode"),HA([w("uint16")],bi.prototype,"entryCount");var Yd=Object.defineProperty,JA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Yd(t,e,A),A};const Hi=class Pc extends ge{get groups(){const t=this.nGroups;return this.view.seek(16),Array.from({length:t},()=>({startCharCode:this.view.readUint32(),endCharCode:this.view.readUint32(),startGlyphCode:this.view.readUint32()}))}static from(t){const e=Qn(t),i=new Pc(new ArrayBuffer(16+e.length*12));return i.format=12,i.reserved=0,i.length=i.view.byteLength,i.language=0,i.nGroups=e.length,e.forEach(A=>{i.view.writeUint32(A.start),i.view.writeUint32(A.end),i.view.writeUint32(A.startId)}),i}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.groups;for(let i=0,A=e.length;i<A;i++){const s=e[i];let n=s.startGlyphCode,o=s.startCharCode;const a=s.endCharCode;for(;o<=a;)t.set(o++,n++)}return t}};JA([w("uint16")],Hi.prototype,"format"),JA([w("uint16")],Hi.prototype,"reserved"),JA([w("uint32")],Hi.prototype,"length"),JA([w("uint32")],Hi.prototype,"language"),JA([w("uint32")],Hi.prototype,"nGroups");let mn=Hi;var Vd=Object.defineProperty,wn=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Vd(t,e,A),A};class KA extends ge{getVarSelectorRecords(){const t=this.numVarSelectorRecords;return this.view.seek(10),Array.from({length:t},()=>{const e={varSelector:this.view.readUint24(),defaultUVSOffset:this.view.readUint32(),unicodeValueRanges:[],nonDefaultUVSOffset:this.view.readUint32(),uVSMappings:[]};if(e.defaultUVSOffset){this.view.seek(e.defaultUVSOffset);const i=this.view.readUint32();e.unicodeValueRanges=Array.from({length:i},()=>({startUnicodeValue:this.view.readUint24(),additionalCount:this.view.readUint8()}))}if(e.nonDefaultUVSOffset){this.view.seek(e.nonDefaultUVSOffset);const i=this.view.readUint32();e.uVSMappings=Array.from({length:i},()=>({unicodeValue:this.view.readUint24(),glyphID:this.view.readUint16()}))}return e})}getUnicodeToGlyphIndexMap(){const t=new Map,e=this.getVarSelectorRecords();for(let i=0,A=e.length;i<A;i++){const{uVSMappings:s}=e[i];s.forEach(n=>{t.set(n.unicodeValue,n.glyphID)})}return t}}wn([w("uint16")],KA.prototype,"format"),wn([w("uint32")],KA.prototype,"length"),wn([w("uint32")],KA.prototype,"numVarSelectorRecords");var zd=Object.defineProperty,Wd=Object.getOwnPropertyDescriptor,vn=(r,t,e,i)=>{for(var A=i>1?void 0:i?Wd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&zd(t,e,A),A};let Ji=class extends jt{static from(r){const t=Array.from(r.keys()).some(c=>c>65535),e=yn.from(r),i=Bn.from(r),A=t?mn.from(r):void 0,s=4+(A?32:24),n=s+e.view.byteLength,o=n+i.view.byteLength,a=[{platformID:0,platformSpecificID:3,offset:s},{platformID:1,platformSpecificID:0,offset:n},{platformID:3,platformSpecificID:1,offset:s},A&&{platformID:3,platformSpecificID:10,offset:o}].filter(Boolean),l=new Ji(new ArrayBuffer(4+8*a.length+e.view.byteLength+i.view.byteLength+(A?.view.byteLength??0)));return l.numberSubtables=a.length,l.view.seek(4),a.forEach(c=>{l.view.writeUint16(c.platformID),l.view.writeUint16(c.platformSpecificID),l.view.writeUint32(c.offset)}),l.view.writeBytes(e.view,s),l.view.writeBytes(i.view,n),A&&l.view.writeBytes(A.view,o),l}_unicodeToGlyphIndexMap;get unicodeToGlyphIndexMap(){return this._unicodeToGlyphIndexMap??=this.readunicodeToGlyphIndexMap()}_glyphIndexToUnicodesMap;get glyphIndexToUnicodesMap(){if(!this._glyphIndexToUnicodesMap){const r=new Map,t=this.unicodeToGlyphIndexMap,e=Array.from(t.keys());for(let i=0,A=e.length;i<A;i++){const s=e[i],n=t.get(s);r.has(n)?r.get(n).push(s):r.set(n,[s])}this._glyphIndexToUnicodesMap=r}return this._glyphIndexToUnicodesMap}readSubtables(){const r=this.numberSubtables;return this.view.seek(4),Array.from({length:r},()=>({platformID:this.view.readUint16(),platformSpecificID:this.view.readUint16(),offset:this.view.readUint32()})).map(t=>{this.view.seek(t.offset);const e=this.view.readUint16();let i;switch(e){case 0:i=new Bn(this.view.buffer,t.offset);break;case 2:i=new OA(this.view.buffer,t.offset,this.view.readUint16());break;case 4:i=new yn(this.view.buffer,t.offset,this.view.readUint16());break;case 6:i=new bi(this.view.buffer,t.offset,this.view.readUint16());break;case 12:i=new mn(this.view.buffer,t.offset,this.view.readUint32(t.offset+4));break;case 14:default:i=new KA(this.view.buffer,t.offset,this.view.readUint32());break}return{...t,format:e,view:i}})}readunicodeToGlyphIndexMap(){const r=this.readSubtables(),t=r.find(n=>n.format===0)?.view,e=r.find(n=>n.platformID===3&&n.platformSpecificID===3&&n.format===2)?.view,i=r.find(n=>n.platformID===3&&n.platformSpecificID===1&&n.format===4)?.view,A=r.find(n=>n.platformID===3&&n.platformSpecificID===10&&n.format===12)?.view,s=r.find(n=>n.platformID===0&&n.platformSpecificID===5&&n.format===14)?.view;return new Map([...t?.getUnicodeToGlyphIndexMap()??[],...e?.getUnicodeToGlyphIndexMap(this._sfnt.maxp.numGlyphs)??[],...i?.getUnicodeToGlyphIndexMap()??[],...A?.getUnicodeToGlyphIndexMap()??[],...s?.getUnicodeToGlyphIndexMap()??[]])}};vn([w("uint16")],Ji.prototype,"version",2),vn([w("uint16")],Ji.prototype,"numberSubtables",2),Ji=vn([Ot("cmap")],Ji);class qd extends In{_parseContours(t){const e=[];let i=[];for(let A=0;A<t.length;A+=1){const s=t[A];i.push(s),s.lastPointOfContour&&(e.push(i),i=[])}return FA(i.length===0,"There are still points left in the current contour."),e}_transformPoints(t,e){const i=[];for(let A=0;A<t.length;A+=1){const s=t[A],n={x:e.xScale*s.x+e.scale10*s.y+e.dx,y:e.scale01*s.x+e.yScale*s.y+e.dy,onCurve:s.onCurve,lastPointOfContour:s.lastPointOfContour};i.push(n)}return i}_parseGlyphCoordinate(t,e,i,A,s){let n;return(e&A)>0?(n=t.view.readUint8(),(e&s)===0&&(n=-n),n=i+n):(e&s)>0?n=i:n=i+t.view.readInt16(),n}parse(t,e,i){t.view.seek(e);const A=this.numberOfContours=t.view.readInt16();if(this.xMin=t.view.readInt16(),this.yMin=t.view.readInt16(),this.xMax=t.view.readInt16(),this.yMax=t.view.readInt16(),A>0){const o=this.endPointIndices=[];for(let B=0;B<A;B++)o.push(t.view.readUint16());const a=this.instructionLength=t.view.readUint16();FA(a<5e3,`Bad instructionLength:${a}`);const l=this.instructions=[];for(let B=0;B<a;++B)l.push(t.view.readUint8());const c=t.view.byteOffset,h=o[o.length-1]+1;FA(h<2e4,`Bad numberOfCoordinates:${c}`);const u=[];let d,f=0;for(;f<h;)if(d=t.view.readUint8(),u.push(d),f++,d&8&&f<h){const B=t.view.readUint8();for(let p=0;p<B;p++)u.push(d),f++}if(FA(u.length===h,`Bad flags length: ${u.length}, numberOfCoordinates: ${h}`),o.length>0){const B=[];let p;if(h>0){for(let y=0;y<h;y+=1)d=u[y],p={},p.onCurve=!!(d&1),p.lastPointOfContour=o.includes(y),B.push(p);let R=0;for(let y=0;y<h;y+=1)d=u[y],p=B[y],p.x=this._parseGlyphCoordinate(t,d,R,2,16),R=p.x;let P=0;for(let y=0;y<h;y+=1)d=u[y],p=B[y],p.y=this._parseGlyphCoordinate(t,d,P,4,32),P=p.y}this.points=B}else this.points=[]}else if(A===0)this.points=[];else{this.isComposite=!0,this.points=[],this.components=[];let o,a=!0;for(;a;){o=t.view.readUint16();const l={glyphIndex:t.view.readUint16(),xScale:1,scale01:0,scale10:0,yScale:1,dx:0,dy:0};(o&1)>0?(o&2)>0?(l.dx=t.view.readInt16(),l.dy=t.view.readInt16()):l.matchedPoints=[t.view.readUint16(),t.view.readUint16()]:(o&2)>0?(l.dx=t.view.readInt8(),l.dy=t.view.readInt8()):l.matchedPoints=[t.view.readUint8(),t.view.readUint8()],(o&8)>0?l.xScale=l.yScale=t.view.readInt16()/16384:(o&64)>0?(l.xScale=t.view.readInt16()/16384,l.yScale=t.view.readInt16()/16384):(o&128)>0&&(l.xScale=t.view.readInt16()/16384,l.scale01=t.view.readInt16()/16384,l.scale10=t.view.readInt16()/16384,l.yScale=t.view.readInt16()/16384),this.components.push(l),a=!!(o&32)}if(o&256){this.instructionLength=t.view.readUint16(),this.instructions=[];for(let l=0;l<this.instructionLength;l+=1)this.instructions.push(t.view.readUint8())}}if(this.isComposite)for(let o=0;o<this.components.length;o+=1){const a=this.components[o],l=i.get(a.glyphIndex);if(l.getPathCommands(),l.points){let c;if(a.matchedPoints===void 0)c=this._transformPoints(l.points,a);else{FA(a.matchedPoints[0]>this.points.length-1||a.matchedPoints[1]>l.points.length-1,`Matched points out of range in ${this.name}`);const h=this.points[a.matchedPoints[0]];let u=l.points[a.matchedPoints[1]];const d={xScale:a.xScale,scale01:a.scale01,scale10:a.scale10,yScale:a.yScale,dx:0,dy:0};u=this._transformPoints([u],d)[0],d.dx=h.x-u.x,d.dy=h.y-u.y,c=this._transformPoints(l.points,d)}this.points=this.points.concat(c)}}const s=[],n=this._parseContours(this.points);for(let o=0,a=n.length;o<a;++o){const l=n[o];let c=l[l.length-1],h=l[0];c.onCurve?s.push({type:"M",x:c.x,y:c.y}):h.onCurve?s.push({type:"M",x:h.x,y:h.y}):s.push({type:"M",x:(c.x+h.x)*.5,y:(c.y+h.y)*.5});for(let u=0,d=l.length;u<d;++u)if(c=h,h=l[(u+1)%d],c.onCurve)s.push({type:"L",x:c.x,y:c.y});else{let f=h;h.onCurve||(f={x:(c.x+h.x)*.5,y:(c.y+h.y)*.5}),s.push({type:"Q",x1:c.x,y1:c.y,x:f.x,y:f.y})}s.push({type:"Z"})}this.pathCommands=s}}class Xd extends pn{get length(){return this._sfnt.loca.locations.length}_get(t){const e=this._sfnt.loca.locations,i=e[t],A=new qd({index:t});return i!==e[t+1]&&A.parse(this._sfnt.glyf,i,this),A}}var jd=Object.getOwnPropertyDescriptor,Zd=(r,t,e,i)=>{for(var A=i>1?void 0:i?jd(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let kr=class extends jt{static from(r){const t=r.reduce((i,A)=>i+A.byteLength,0),e=new kr(new ArrayBuffer(t));return r.forEach(i=>{e.view.writeBytes(i)}),e}_glyphs;get glyphs(){return this._glyphs??=new Xd(this._sfnt)}};kr=Zd([Ot("glyf")],kr);var $d=Object.getOwnPropertyDescriptor,tI=(r,t,e,i)=>{for(var A=i>1?void 0:i?$d(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let _n=class extends jt{};_n=tI([Ot("GPOS","gpos")],_n);var eI=Object.defineProperty,iI=Object.getOwnPropertyDescriptor,Di=(r,t,e,i)=>{for(var A=i>1?void 0:i?iI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&eI(t,e,A),A};let qe=class extends jt{};Di([w("uint16")],qe.prototype,"majorVersion",2),Di([w("uint16")],qe.prototype,"minorVersion",2),Di([w("uint16")],qe.prototype,"scriptListOffset",2),Di([w("uint16")],qe.prototype,"featureListOffset",2),Di([w("uint16")],qe.prototype,"lookupListOffset",2),Di([w("uint16")],qe.prototype,"featureVariationsOffset",2),qe=Di([Ot("GSUB","gsub")],qe);var AI=Object.defineProperty,rI=Object.getOwnPropertyDescriptor,Pt=(r,t,e,i)=>{for(var A=i>1?void 0:i?rI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&AI(t,e,A),A};let xt=class extends jt{constructor(r=new ArrayBuffer(54),t){super(r,t,Math.min(54,r.byteLength-(t??0)))}};Pt([w("fixed")],xt.prototype,"version",2),Pt([w("fixed")],xt.prototype,"fontRevision",2),Pt([w("uint32")],xt.prototype,"checkSumAdjustment",2),Pt([w("uint32")],xt.prototype,"magickNumber",2),Pt([w("uint16")],xt.prototype,"flags",2),Pt([w("uint16")],xt.prototype,"unitsPerEm",2),Pt([w({type:"longDateTime"})],xt.prototype,"created",2),Pt([w({type:"longDateTime"})],xt.prototype,"modified",2),Pt([w("int16")],xt.prototype,"xMin",2),Pt([w("int16")],xt.prototype,"yMin",2),Pt([w("int16")],xt.prototype,"xMax",2),Pt([w("int16")],xt.prototype,"yMax",2),Pt([w("uint16")],xt.prototype,"macStyle",2),Pt([w("uint16")],xt.prototype,"lowestRecPPEM",2),Pt([w("int16")],xt.prototype,"fontDirectionHint",2),Pt([w("int16")],xt.prototype,"indexToLocFormat",2),Pt([w("int16")],xt.prototype,"glyphDataFormat",2),xt=Pt([Ot("head")],xt);var sI=Object.defineProperty,nI=Object.getOwnPropertyDescriptor,ie=(r,t,e,i)=>{for(var A=i>1?void 0:i?nI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&sI(t,e,A),A};let Ht=class extends jt{constructor(r=new ArrayBuffer(36),t){super(r,t,Math.min(36,r.byteLength-(t??0)))}};ie([w("fixed")],Ht.prototype,"version",2),ie([w("int16")],Ht.prototype,"ascent",2),ie([w("int16")],Ht.prototype,"descent",2),ie([w("int16")],Ht.prototype,"lineGap",2),ie([w("uint16")],Ht.prototype,"advanceWidthMax",2),ie([w("int16")],Ht.prototype,"minLeftSideBearing",2),ie([w("int16")],Ht.prototype,"minRightSideBearing",2),ie([w("int16")],Ht.prototype,"xMaxExtent",2),ie([w("int16")],Ht.prototype,"caretSlopeRise",2),ie([w("int16")],Ht.prototype,"caretSlopeRun",2),ie([w("int16")],Ht.prototype,"caretOffset",2),ie([w({type:"int16",size:4})],Ht.prototype,"reserved",2),ie([w("int16")],Ht.prototype,"metricDataFormat",2),ie([w("uint16")],Ht.prototype,"numOfLongHorMetrics",2),Ht=ie([Ot("hhea")],Ht);var oI=Object.getOwnPropertyDescriptor,aI=(r,t,e,i)=>{for(var A=i>1?void 0:i?oI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let Pr=class extends jt{static from(r){const t=r.length*4,e=new Pr(new ArrayBuffer(t));return r.forEach(i=>{e.view.writeUint16(i.advanceWidth),e.view.writeUint16(i.leftSideBearing)}),e}_metrics;get metrics(){return this._metrics??=this.readMetrics()}readMetrics(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.hhea.numOfLongHorMetrics;let e=0;const i=this.view;return i.seek(0),Array.from({length:r}).map((A,s)=>(s<t&&(e=i.readUint16()),{advanceWidth:e,leftSideBearing:i.readUint16()}))}};Pr=aI([Ot("hmtx")],Pr);var lI=Object.getOwnPropertyDescriptor,cI=(r,t,e,i)=>{for(var A=i>1?void 0:i?lI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let bn=class extends jt{};bn=cI([Ot("kern","kern")],bn);var hI=Object.getOwnPropertyDescriptor,gI=(r,t,e,i)=>{for(var A=i>1?void 0:i?hI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let Ur=class extends jt{static from(r,t=1){const e=r.length*(t?4:2),i=new Ur(new ArrayBuffer(e));return r.forEach(A=>{t?i.view.writeUint32(A):i.view.writeUint16(A/2)}),i}_locations;get locations(){return this._locations??=this.readLocations()}readLocations(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.head.indexToLocFormat,e=this.view;return e.seek(0),Array.from({length:r}).map(()=>t?e.readUint32():e.readUint16()*2)}};Ur=gI([Ot("loca")],Ur);var uI=Object.defineProperty,fI=Object.getOwnPropertyDescriptor,Zt=(r,t,e,i)=>{for(var A=i>1?void 0:i?fI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&uI(t,e,A),A};let Ut=class extends jt{constructor(r=new ArrayBuffer(32),t){super(r,t,Math.min(32,r.byteLength-(t??0)))}};Zt([w("fixed")],Ut.prototype,"version",2),Zt([w("uint16")],Ut.prototype,"numGlyphs",2),Zt([w("uint16")],Ut.prototype,"maxPoints",2),Zt([w("uint16")],Ut.prototype,"maxContours",2),Zt([w("uint16")],Ut.prototype,"maxComponentPoints",2),Zt([w("uint16")],Ut.prototype,"maxComponentContours",2),Zt([w("uint16")],Ut.prototype,"maxZones",2),Zt([w("uint16")],Ut.prototype,"maxTwilightPoints",2),Zt([w("uint16")],Ut.prototype,"maxStorage",2),Zt([w("uint16")],Ut.prototype,"maxFunctionDefs",2),Zt([w("uint16")],Ut.prototype,"maxInstructionDefs",2),Zt([w("uint16")],Ut.prototype,"maxStackElements",2),Zt([w("uint16")],Ut.prototype,"maxSizeOfInstructions",2),Zt([w("uint16")],Ut.prototype,"maxComponentElements",2),Zt([w("uint16")],Ut.prototype,"maxComponentDepth",2),Ut=Zt([Ot("maxp")],Ut);var dI=Object.defineProperty,II=Object.getOwnPropertyDescriptor,Nr=(r,t,e,i)=>{for(var A=i>1?void 0:i?II(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&dI(t,e,A),A};const Ml={0:"copyright",1:"fontFamily",2:"fontSubFamily",3:"uniqueSubFamily",4:"fullName",5:"version",6:"postScriptName",7:"tradeMark",8:"manufacturer",9:"designer",10:"description",11:"urlOfFontVendor",12:"urlOfFontDesigner",13:"licence",14:"urlOfLicence",16:"preferredFamily",17:"preferredSubFamily",18:"compatibleFull",19:"sampleText"},Dn={Macintosh:1,Microsoft:3},pI={Default:0},Rl={UCS2:1};let Ki=class extends jt{_names;get names(){return this._names??=this.readNames()}readNames(){const r=this.count;this.view.seek(6);const t=[];for(let o=0;o<r;++o)t.push({platform:this.view.readUint16(),encoding:this.view.readUint16(),language:this.view.readUint16(),nameId:this.view.readUint16(),length:this.view.readUint16(),offset:this.view.readUint16()});const e=this.stringOffset;for(let o=0;o<r;++o){const a=t[o];a.name=this.view.readBytes(e+a.offset,a.length)}let i=Dn.Macintosh,A=pI.Default,s=0;t.some(o=>o.platform===Dn.Microsoft&&o.encoding===Rl.UCS2&&o.language===1033)&&(i=Dn.Microsoft,A=Rl.UCS2,s=1033);const n={};for(let o=0;o<r;++o){const a=t[o];a.platform===i&&a.encoding===A&&a.language===s&&Ml[a.nameId]&&(n[Ml[a.nameId]]=s===0?wd(a.name):vd(a.name))}return n}};Nr([w("uint16")],Ki.prototype,"format",2),Nr([w("uint16")],Ki.prototype,"count",2),Nr([w("uint16")],Ki.prototype,"stringOffset",2),Ki=Nr([Ot("name")],Ki);var EI=Object.defineProperty,BI=Object.getOwnPropertyDescriptor,at=(r,t,e,i)=>{for(var A=i>1?void 0:i?BI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&EI(t,e,A),A};let ot=class extends jt{get fontPANOSE(){return[this.bFamilyType,this.bSerifStyle,this.bWeight,this.bProportion,this.bContrast,this.bStrokeVariation,this.bArmStyle,this.bLetterform,this.bMidline,this.bXHeight]}};at([w("uint16")],ot.prototype,"version",2),at([w("int16")],ot.prototype,"xAvgCharWidth",2),at([w("uint16")],ot.prototype,"usWeightClass",2),at([w("uint16")],ot.prototype,"usWidthClass",2),at([w("uint16")],ot.prototype,"fsType",2),at([w("uint16")],ot.prototype,"ySubscriptXSize",2),at([w("uint16")],ot.prototype,"ySubscriptYSize",2),at([w("uint16")],ot.prototype,"ySubscriptXOffset",2),at([w("uint16")],ot.prototype,"ySubscriptYOffset",2),at([w("uint16")],ot.prototype,"ySuperscriptXSize",2),at([w("uint16")],ot.prototype,"ySuperscriptYSize",2),at([w("uint16")],ot.prototype,"ySuperscriptXOffset",2),at([w("uint16")],ot.prototype,"ySuperscriptYOffset",2),at([w("uint16")],ot.prototype,"yStrikeoutSize",2),at([w("uint16")],ot.prototype,"yStrikeoutPosition",2),at([w("uint16")],ot.prototype,"sFamilyClass",2),at([w({type:"uint8"})],ot.prototype,"bFamilyType",2),at([w({type:"uint8"})],ot.prototype,"bSerifStyle",2),at([w({type:"uint8"})],ot.prototype,"bWeight",2),at([w({type:"uint8"})],ot.prototype,"bProportion",2),at([w({type:"uint8"})],ot.prototype,"bContrast",2),at([w({type:"uint8"})],ot.prototype,"bStrokeVariation",2),at([w({type:"uint8"})],ot.prototype,"bArmStyle",2),at([w({type:"uint8"})],ot.prototype,"bLetterform",2),at([w({type:"uint8"})],ot.prototype,"bMidline",2),at([w({type:"uint8"})],ot.prototype,"bXHeight",2),at([w({type:"uint8",size:16})],ot.prototype,"ulUnicodeRange",2),at([w({type:"char",size:4})],ot.prototype,"achVendID",2),at([w("uint16")],ot.prototype,"fsSelection",2),at([w("uint16")],ot.prototype,"usFirstCharIndex",2),at([w("uint16")],ot.prototype,"usLastCharIndex",2),at([w("int16")],ot.prototype,"sTypoAscender",2),at([w("int16")],ot.prototype,"sTypoDescender",2),at([w("int16")],ot.prototype,"sTypoLineGap",2),at([w("uint16")],ot.prototype,"usWinAscent",2),at([w("uint16")],ot.prototype,"usWinDescent",2),at([w({offset:72,type:"uint8",size:8})],ot.prototype,"ulCodePageRange",2),at([w({offset:72,type:"int16"})],ot.prototype,"sxHeight",2),at([w("int16")],ot.prototype,"sCapHeight",2),at([w("uint16")],ot.prototype,"usDefaultChar",2),at([w("uint16")],ot.prototype,"usBreakChar",2),at([w("uint16")],ot.prototype,"usMaxContext",2),ot=at([Ot("OS/2","os2")],ot);var CI=Object.defineProperty,QI=Object.getOwnPropertyDescriptor,ke=(r,t,e,i)=>{for(var A=i>1?void 0:i?QI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&CI(t,e,A),A};let pe=class extends jt{constructor(r=new ArrayBuffer(32),t,e){super(r,t,e)}};ke([w("fixed")],pe.prototype,"format",2),ke([w("fixed")],pe.prototype,"italicAngle",2),ke([w("int16")],pe.prototype,"underlinePosition",2),ke([w("int16")],pe.prototype,"underlineThickness",2),ke([w("uint32")],pe.prototype,"isFixedPitch",2),ke([w("uint32")],pe.prototype,"minMemType42",2),ke([w("uint32")],pe.prototype,"maxMemType42",2),ke([w("uint32")],pe.prototype,"minMemType1",2),ke([w("uint32")],pe.prototype,"maxMemType1",2),pe=ke([Ot("post")],pe);var yI=Object.defineProperty,mI=Object.getOwnPropertyDescriptor,Ae=(r,t,e,i)=>{for(var A=i>1?void 0:i?mI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&yI(t,e,A),A};let Jt=class extends jt{constructor(r=new ArrayBuffer(36),t){super(r,t,Math.min(36,r.byteLength-(t??0)))}};Ae([w("fixed")],Jt.prototype,"version",2),Ae([w("int16")],Jt.prototype,"vertTypoAscender",2),Ae([w("int16")],Jt.prototype,"vertTypoDescender",2),Ae([w("int16")],Jt.prototype,"vertTypoLineGap",2),Ae([w("int16")],Jt.prototype,"advanceHeightMax",2),Ae([w("int16")],Jt.prototype,"minTopSideBearing",2),Ae([w("int16")],Jt.prototype,"minBottomSideBearing",2),Ae([w("int16")],Jt.prototype,"yMaxExtent",2),Ae([w("int16")],Jt.prototype,"caretSlopeRise",2),Ae([w("int16")],Jt.prototype,"caretSlopeRun",2),Ae([w("int16")],Jt.prototype,"caretOffset",2),Ae([w({type:"int16",size:4})],Jt.prototype,"reserved",2),Ae([w("int16")],Jt.prototype,"metricDataFormat",2),Ae([w("int16")],Jt.prototype,"numOfLongVerMetrics",2),Jt=Ae([Ot("vhea")],Jt);var wI=Object.getOwnPropertyDescriptor,vI=(r,t,e,i)=>{for(var A=i>1?void 0:i?wI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};let Fr=class extends jt{static from(r){const t=r.length*4,e=new Fr(new ArrayBuffer(t));return r.forEach(i=>{e.view.writeUint16(i.advanceHeight),e.view.writeInt16(i.topSideBearing)}),e}_metrics;get metrics(){return this._metrics??=this.readMetrics()}readMetrics(){const r=this._sfnt.maxp.numGlyphs,t=this._sfnt.vhea?.numOfLongVerMetrics??0,e=this.view;e.seek(0);let i=0;return Array.from({length:r}).map((A,s)=>(s<t&&(i=e.readUint16()),{advanceHeight:i,topSideBearing:e.readUint8()}))}};Fr=vI([Ot("vmtx")],Fr);var _I=Object.defineProperty,YA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&_I(t,e,A),A};class we extends _r{format="TrueType";mimeType="font/ttf";_sfnt;get sfnt(){return this._sfnt||(this._sfnt=this.createSFNT()),this._sfnt}static signature=new Set([65536,1953658213,1954115633]);static is(t){return typeof t=="number"?this.signature.has(t):this.signature.has(Gi(t).getUint32(0))}static checksum(t){const e=Gi(t);let i=e.byteLength;for(;i%4;)i++;let A=0;for(let s=0,n=i/4;s<n;s+=4)s*4<i-4&&(A+=e.getUint32(s*4,!1));return A&4294967295}static from(t){const e=h=>h+3&-4,i=t.tableViews.size,A=Array.from(t.tableViews.values()).reduce((h,u)=>h+e(u.byteLength),0),s=new this(new ArrayBuffer(12+i*16+A));s.scalerType=65536,s.numTables=i;const n=Math.log(2);s.searchRange=Math.floor(Math.log(i)/n)*16,s.entrySelector=Math.floor(s.searchRange/n),s.rangeShift=i*16-s.searchRange;let o=12+i*16,a=0;const l=s.getDirectories();t.tableViews.forEach((h,u)=>{const d=l[a++];d.tag=u,d.checkSum=this.checksum(h),d.offset=o,d.length=h.byteLength,s.view.writeBytes(h,o),o+=e(d.length)});const c=s.createSFNT().head;return c.checkSumAdjustment=0,c.checkSumAdjustment=2981146554-this.checksum(s.view),s}getDirectories(){let t=this.view.byteOffset+12;return Array.from({length:this.numTables},()=>{const e=new Oi(this.view.buffer,t);return t+=e.view.byteLength,e})}createSFNT(){return new Re(this.getDirectories().reduce((t,e)=>(t[e.tag]=new DataView(this.view.buffer,this.view.byteOffset+e.offset,e.length),t),{}))}}YA([w("uint32")],we.prototype,"scalerType"),YA([w("uint16")],we.prototype,"numTables"),YA([w("uint16")],we.prototype,"searchRange"),YA([w("uint16")],we.prototype,"entrySelector"),YA([w("uint16")],we.prototype,"rangeShift");class xn extends we{format="OpenType";mimeType="font/otf";static signature=new Set([1330926671]);static from(t){return super.from(t)}}var bI=Object.defineProperty,VA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&bI(t,e,A),A};class xi extends ge{constructor(t,e){super(t,e,20)}}VA([w({type:"char",size:4})],xi.prototype,"tag"),VA([w("uint32")],xi.prototype,"offset"),VA([w("uint32")],xi.prototype,"compLength"),VA([w("uint32")],xi.prototype,"origLength"),VA([w("uint32")],xi.prototype,"origChecksum");var DI=Object.defineProperty,ue=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&DI(t,e,A),A};const oe=class io extends _r{format="WOFF";mimeType="font/woff";get subfontFormat(){return we.is(this.flavor)?"TrueType":xn.is(this.flavor)?"OpenType":"Open"}_sfnt;get sfnt(){return this._sfnt||(this._sfnt=this.createSFNT()),this._sfnt}static signature=new Set([2001684038]);static is(t){return typeof t=="number"?this.signature.has(t):this.signature.has(Gi(t).getUint32(0))}static checkSum(t){const e=Gi(t),i=e.byteLength,A=Math.floor(i/4);let s=0,n=0;for(;n<A;)s+=e.getUint32(4*n++,!1);let o=i-A*4;if(o){let a=A*4;for(;o>0;)s+=e.getUint8(a)<<o*8,a++,o--}return s%4294967296}static from(t,e=new ArrayBuffer(0)){const i=h=>h+3&-4,A=[];t.tableViews.forEach((h,u)=>{const d=Gi(pd(new Uint8Array(h.buffer,h.byteOffset,h.byteLength)));A.push({tag:u,view:d.byteLength<h.byteLength?d:h,rawView:h})});const s=A.length,n=A.reduce((h,u)=>h+i(u.view.byteLength),0),o=new io(new ArrayBuffer(44+20*s+n+e.byteLength));o.signature=2001684038,o.flavor=65536,o.length=o.view.byteLength,o.numTables=s,o.totalSFNTSize=12+16*s+A.reduce((h,u)=>h+i(u.rawView.byteLength),0);let a=44+s*20,l=0;const c=o.getDirectories();return A.forEach(h=>{const u=c[l++];u.tag=h.tag,u.offset=a,u.compLength=h.view.byteLength,u.origChecksum=io.checkSum(h.rawView),u.origLength=h.rawView.byteLength,o.view.writeBytes(h.view,a),a+=i(u.compLength)}),o.view.writeBytes(e),o}getDirectories(){let t=44;return Array.from({length:this.numTables},()=>{const e=new xi(this.view.buffer,t);return t+=e.view.byteLength,e})}createSFNT(){return new Re(this.getDirectories().reduce((t,e)=>{const i=e.tag,A=this.view.byteOffset+e.offset,s=e.compLength,n=e.origLength,o=A+s;return t[i]=s>=n?new DataView(this.view.buffer,A,s):new DataView(Ed(new Uint8Array(this.view.buffer.slice(A,o))).buffer),t},{}))}};ue([w("uint32")],oe.prototype,"signature"),ue([w("uint32")],oe.prototype,"flavor"),ue([w("uint32")],oe.prototype,"length"),ue([w("uint16")],oe.prototype,"numTables"),ue([w("uint16")],oe.prototype,"reserved"),ue([w("uint32")],oe.prototype,"totalSFNTSize"),ue([w("uint16")],oe.prototype,"majorVersion"),ue([w("uint16")],oe.prototype,"minorVersion"),ue([w("uint32")],oe.prototype,"metaOffset"),ue([w("uint32")],oe.prototype,"metaLength"),ue([w("uint32")],oe.prototype,"metaOrigLength"),ue([w("uint32")],oe.prototype,"privOffset"),ue([w("uint32")],oe.prototype,"privLength");let Tr=oe;function kl(r,t=!0){if(we.is(r))return new we(r);if(xn.is(r))return new xn(r);if(Tr.is(r))return new Tr(r);if(t)throw new Error("Failed to parseFont")}function Pl(r,t=!0){const e=kl(r,!1);if(e)return e;if(t)throw new Error("Failed to parseFont")}class Lr{static defaultRequestInit={cache:"force-cache"};fallbackFont;loading=new Map;loaded=new Map;familyToUrl=new Map;setFallbackFont(t){this.fallbackFont=t}async loadFallbackFont(t,e={}){this.fallbackFont=await this.load(t,e)}_createRequest(t,e){const i=new AbortController;return{url:t,when:fetch(t,{...Lr.defaultRequestInit,...e,signal:i.signal}).then(A=>A.arrayBuffer()),cancel:()=>i.abort()}}injectFontFace(t,e){return document.fonts.add(new FontFace(t,e)),this}injectStyleTag(t,e){const i=document.createElement("style");return i.appendChild(document.createTextNode(`@font-face {
|
|
860
860
|
font-family: "${t}";
|
|
861
861
|
src: url(${e});
|
|
862
|
-
}`)),document.head.appendChild(i),this}_parseUrls(t){const e=Array.from(new Set([...t.split(","),t]));return Array.from(new Set(e.map(i=>this.familyToUrl.get(i.trim())??this.familyToUrl.get(i)??i)))}get(t){let e;return t&&(e=this._parseUrls(t).reduce((A,s)=>A||this.loaded.get(s),void 0)),e??this.fallbackFont}set(t,e){return this.familyToUrl.set(t,e.src),this.loaded.set(e.src,e),this}delete(t){return this._parseUrls(t).forEach(e=>{this.familyToUrl.delete(e),this.loaded.delete(e)}),this}clear(){return this.familyToUrl.clear(),this.loading.clear(),this.loaded.clear(),this}async load(t,e={}){const{cancelOther:i,injectFontFace:A=!0,injectStyleTag:s=!0,...n}=e;let o,a;if(typeof t=="string"?o=t:{src:o,family:a}=t,this.loaded.has(o))return i&&(this.loading.forEach(d=>d.cancel()),this.loading.clear()),h(this.loaded.get(o));let l=this.loading.get(o);return l||(l=this._createRequest(o,n),this.loading.set(o,l)),i&&this.loading.forEach((d,f)=>{d!==l&&(d.cancel(),this.loading.delete(f))}),l.when.then(d=>{if(this.loaded.has(o))return h(this.loaded.get(o));{const f=u(d);return e.noAdd||this.loaded.set(o,f),f.familySet.forEach(B=>{this.familyToUrl.set(B,o),typeof document<"u"&&(A&&this.injectFontFace(B,d),s&&this.injectStyleTag(B,o))}),f}}).catch(d=>{if(d instanceof DOMException&&d.message==="The user aborted a request.")return u();throw d}).finally(()=>{this.loading.delete(o)});function c(){return a?Array.isArray(a)?a:[a]:[]}function h(d){return c().forEach(f=>{d.familySet.add(f)}),d}function u(d=new ArrayBuffer(0)){let f;function B(){return f||(f=d.byteLength?Pl(d,!1):void 0),f}function p(){const R=B();if(R instanceof we||R instanceof Tr)return R.sfnt}return{src:o,family:a,buffer:d,familySet:new Set(c()),getFont:B,getSFNT:p}}}async waitUntilLoad(){await Promise.all(Array.from(this.loading.values()).map(t=>t.when))}}const Ul=new Lr,xI=Object.freeze(Object.defineProperty({__proto__:null,BaseFont:_r,get Cff(){return vi},get Cmap(){return Ji},CmapSubtableFormat0:Bn,CmapSubtableFormat12:mn,CmapSubtableFormat14:KA,CmapSubtableFormat2:OA,CmapSubtableFormat4:yn,CmapSubtableFormat6:bi,FontDataObject:ge,FontDataView:kt,Fonts:Lr,get Glyf(){return kr},Glyph:In,GlyphSet:pn,get Gpos(){return _n},get Gsub(){return Xe},get Head(){return xt},get Hhea(){return Ht},get Hmtx(){return Pr},get Kern(){return bn},get Loca(){return Ur},get Maxp(){return Ut},get Name(){return Ki},get Os2(){return ot},get Post(){return pe},SFNT:Re,TTF:we,TableDirectory:Oi,get Vhea(){return Jt},get Vmtx(){return Fr},WOFF:Tr,WOFFTableDirectoryEntry:xi,createCmapSegments:Qn,dataTypeToByteLength:TA,defineColumn:w,defineSFNTTable:Ot,fonts:Ul,parseFont:Pl,parseSFNTFont:kl},Symbol.toStringTag,{value:"Module"}));function Sn(r,t,e){if(typeof t=="string"&&t.startsWith("linear-gradient")){const{x0:i,y0:A,x1:s,y1:n,stops:o}=SI(t,e.left,e.top,e.width,e.height),a=r.createLinearGradient(i,A,s,n);return o.forEach(l=>a.addColorStop(l.offset,l.color)),a}return t}function Gr(r,t,e){r?.color&&(r.color=Sn(e,r.color,t)),r?.backgroundColor&&(r.backgroundColor=Sn(e,r.backgroundColor,t)),r?.textStrokeColor&&(r.textStrokeColor=Sn(e,r.textStrokeColor,t))}function SI(r,t,e,i,A){const s=r.match(/linear-gradient\((.+)\)$/)?.[1]??"",n=s.split(",")[0],o=n.includes("deg")?n:"0deg",a=s.replace(o,"").matchAll(/(#|rgba|rgb)(.+?) ([\d.]+%)/gi),c=(Number(o.replace("deg",""))||0)*Math.PI/180,h=i*Math.sin(c),u=A*Math.cos(c);return{x0:t+i/2-h,y0:e+A/2+u,x1:t+i/2+h,y1:e+A/2-u,stops:Array.from(a).map(d=>{let f=d[2];return f.startsWith("(")?f=f.split(",").length>3?`rgba${f}`:`rgb${f}`:f=`#${f}`,{offset:Number(d[3].replace("%",""))/100,color:f}})}}function Yi(r){const{ctx:t,path:e,fontSize:i,clipRect:A}=r;t.save(),t.beginPath();const s=e.style,n={...s,fill:r.color??s.fill,stroke:r.textStrokeColor??s.stroke,strokeWidth:r.textStrokeWidth?r.textStrokeWidth*i:s.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round",shadowOffsetX:(r.shadowOffsetX??0)*i,shadowOffsetY:(r.shadowOffsetY??0)*i,shadowBlur:(r.shadowBlur??0)*i,shadowColor:r.shadowColor};A&&(t.rect(A.left,A.top,A.width,A.height),t.clip(),t.beginPath()),e.drawTo(t,n),t.restore()}function MI(r,t,e){const{left:i,top:A,width:s,height:n}=e,o=r.canvas;o.dataset.viewBox=`${i} ${A} ${s} ${n}`,o.dataset.pixelRatio=String(t);const a=s,l=n;o.width=Math.max(1,Math.ceil(a*t)),o.height=Math.max(1,Math.ceil(l*t)),o.style.width=`${a}px`,o.style.height=`${l}px`,r.clearRect(0,0,o.width,o.height),r.scale(t,t),r.translate(-i,-A)}function RI(r,t){const{paragraphs:e,computedStyle:i,glyphBox:A}=t;Gr(i,A,r),e.forEach(s=>{Gr(s.computedStyle,s.lineBox,r),s.fragments.forEach(n=>{Gr(n.computedStyle,n.inlineBox,r)})})}const kI=new Set(["©","®","÷"]),PI=new Set(["—","…","“","”","﹏","﹋","﹌","‘","’","˜"]),UI={1:"italic",32:"bold"},NI={1:"italic",2:"bold"},Nl={100:-.2,200:-.1,300:0,400:0,normal:0,500:.1,600:.2,700:.3,bold:.3,800:.4,900:.5};class FI{constructor(t,e,i){this.content=t,this.index=e,this.parent=i}path=new Rt;lineBox=new lt;inlineBox=new lt;glyphBox;advanceWidth=0;advanceHeight=0;underlinePosition=0;underlineThickness=0;strikeoutPosition=0;strikeoutSize=0;ascender=0;descender=0;typoAscender=0;typoDescender=0;typoLineGap=0;winAscent=0;winDescent=0;xHeight=0;capHeight=0;baseline=0;centerDiviation=0;fontStyle;get compatibleGlyphBox(){const t=this.computedStyle.fontSize*.8;return this.glyphBox??(this.isVertical?new lt(this.lineBox.left+this.lineBox.width/2-t/2,this.lineBox.top,t,this.lineBox.height):new lt(this.lineBox.left,this.lineBox.top+this.lineBox.height/2-t/2,this.lineBox.width,t))}get center(){return this.compatibleGlyphBox.center}get computedStyle(){return this.parent.computedStyle}get isVertical(){return this.computedStyle.writingMode.includes("vertical")}get fontSize(){return this.computedStyle.fontSize}get fontHeight(){return this.fontSize*this.computedStyle.lineHeight}_getFontSFNT(t){const e=this.computedStyle.fontFamily,i=t??Ul;return(e?i.get(e):i.fallbackFont)?.getSFNT()}updateGlyph(t=this._getFontSFNT()){if(!t)return this;const{hhea:e,os2:i,post:A,head:s}=t,n=s.unitsPerEm,o=e.ascent,a=e.descent,{content:l,computedStyle:c,isVertical:h}=this,{fontSize:u}=c,d=n/u,f=t.getAdvanceWidth(l,u),B=(o+Math.abs(a))/d,p=o/d;return this.advanceWidth=f,this.advanceHeight=B,this.inlineBox.width=h?B:f,this.inlineBox.height=h?f:B,this.underlinePosition=(o-A.underlinePosition)/d,this.underlineThickness=A.underlineThickness/d,this.strikeoutPosition=(o-i.yStrikeoutPosition)/d,this.strikeoutSize=i.yStrikeoutSize/d,this.ascender=o/d,this.descender=a/d,this.typoAscender=i.sTypoAscender/d,this.typoDescender=i.sTypoDescender/d,this.typoLineGap=i.sTypoLineGap/d,this.winAscent=i.usWinAscent/d,this.winDescent=i.usWinDescent/d,this.xHeight=i.sxHeight/d,this.capHeight=i.sCapHeight/d,this.baseline=p,this.centerDiviation=B/2-p,this.fontStyle=UI[i.fsSelection]??NI[s.macStyle],this}update(t){const e=this._getFontSFNT(t);if(!e)return this;this.updateGlyph(e);const{isVertical:i,content:A,computedStyle:s,baseline:n,inlineBox:o,ascender:a,descender:l,typoAscender:c,fontStyle:h,advanceWidth:u,advanceHeight:d}=this,{left:f,top:B}=o,p=s.fontStyle==="italic"&&h!=="italic";let R=f,P=B+n,y;const S=new Rt;if(i&&(R+=(d-u)/2,Math.abs(u-d)>.1&&(P-=(a-c)/(a+Math.abs(l))*d),y=void 0),i&&!kI.has(A)&&(A.codePointAt(0)<=256||PI.has(A))){S.addCommands(e.getPathCommands(A,R,B+n-(d-u)/2,s.fontSize));const m={y:B-(d-u)/2+d/2,x:R+u/2};p&&this._italic(S,i?{x:m.x,y:B-(d-u)/2+n}:void 0),S.rotate(90,m)}else y!==void 0?(S.addCommands(e.glyphs.get(y).getPathCommands(R,P,s.fontSize)),p&&this._italic(S,i?{x:R+u/2,y:B+c/(a+Math.abs(l))*d}:void 0)):(S.addCommands(e.getPathCommands(A,R,P,s.fontSize)),p&&this._italic(S,i?{x:R+d/2,y:P}:void 0));const Q=s.fontWeight??400;return Q in Nl&&(Q===700||Q==="bold")&&h!=="bold"&&S.bold(Nl[Q]*s.fontSize*.05),S.style={fill:s.color,stroke:s.textStrokeWidth?s.textStrokeColor:"none",strokeWidth:s.textStrokeWidth?s.textStrokeWidth*s.fontSize*.03:0},this.path=S,this.glyphBox=this.getGlyphBoundingBox(),this}_italic(t,e){t.skew(-.24,0,e||{y:this.inlineBox.top+this.baseline,x:this.inlineBox.left+this.inlineBox.width/2})}getGlyphMinMax(t,e,i){if(this.path.curves[0]?.curves.length)return this.path.getMinMax(t,e,i)}getGlyphBoundingBox(t){const e=this.getGlyphMinMax(void 0,void 0,t);if(!e)return;const{min:i,max:A}=e;return new lt(i.x,i.y,A.x-i.x,A.y-i.y)}drawTo(t,e={}){const i=this.computedStyle,A={ctx:t,path:this.path,fontSize:i.fontSize,color:i.color,...e};if(this.glyphBox)Yi(A);else{t.save(),t.beginPath();const s=this.path.style,n={...s,fill:A.color??s.fill,stroke:A.textStrokeColor??s.stroke,strokeWidth:A.textStrokeWidth?A.textStrokeWidth*A.fontSize:s.strokeWidth,shadowOffsetX:(A.shadowOffsetX??0)*A.fontSize,shadowOffsetY:(A.shadowOffsetY??0)*A.fontSize,shadowBlur:(A.shadowBlur??0)*A.fontSize,shadowColor:A.shadowColor};Hs(t,n),t.font=`${A.fontSize}px ${A.fontFamily}`,this.isVertical?(t.textBaseline="middle",t.fillText(this.content,this.inlineBox.left,this.inlineBox.top+this.inlineBox.height/2)):(t.textBaseline="alphabetic",t.fillText(this.content,this.inlineBox.left,this.inlineBox.top+this.baseline)),t.restore()}}}function Fl(){const r=new Map;async function t(i){if(!r.has(i)){r.set(i,i);try{r.set(i,await fetch(i).then(A=>A.text()))}catch(A){console.warn(A),r.delete(i)}}}function e(i){return i.startsWith("http://")||i.startsWith("https://")||i.startsWith("blob://")}return{loaded:r,needsLoad:e,load:t}}function Tl(r){const t=new Map;function e(i){let A=t.get(i);if(!A){const s=Ks(r.needsLoad(i)?r.loaded.get(i)??i:i),n=Vs(s);A={dom:s,pathSet:n},t.set(i,A)}return A}return{parsed:t,parse:e}}function Mn(r,t){return typeof r=="number"?r:r.endsWith("%")?(r=r.substring(0,r.length-1),Math.ceil(Number(r)/100*t.total)):r.endsWith("rem")?(r=r.substring(0,r.length-3),Number(r)*t.fontSize):r.endsWith("em")?(r=r.substring(0,r.length-2),Number(r)*t.fontSize):Number(r)}function Rn(r){return Gt(r)?{}:r}function TI(r,t){const e=Object.keys(r),i=Object.keys(t);return Array.from(new Set([...e,...i])).every(s=>Vi(r[s],t[s]))}function Vi(r,t){const e=typeof r;return e===typeof t?e==="object"?TI(r,t):r===t:!1}function kn(r){if(!r)return r;const t={};for(const e in r)r[e]!==""&&r[e]!==void 0&&(t[e]=r[e]);return t}class LI{constructor(t,e={},i){this.content=t,this.style=e,this.parent=i,this.updateComputedStyle().initCharacters()}inlineBox=new lt;get computedContent(){const t=this.computedStyle;return t.textTransform==="uppercase"?this.content.toUpperCase():t.textTransform==="lowercase"?this.content.toLowerCase():this.content}updateComputedStyle(){return this.computedStyle={...this.parent.computedStyle,...kn(this.style)},this}initCharacters(){const t=[];let e=0;for(const i of this.computedContent)t.push(new FI(i,e++,this));return this.characters=t,this}}class GI{constructor(t,e){this.style=t,this.parentStyle=e,this.updateComputedStyle()}lineBox=new lt;fragments=[];updateComputedStyle(){return this.computedStyle={...kn(this.parentStyle),...kn(this.style)},this}addFragment(t,e){const i=new LI(t,e,this);return this.fragments.push(i),i}}function JE(r){return r}class Or{static notZeroStyles=new Set(["width","height"]);static pxStyles=new Set(["width","height","fontSize","letterSpacing","textStrokeWidth","textIndent","shadowOffsetX","shadowOffsetY","shadowBlur","margin","marginLeft","marginTop","marginRight","marginBottom","padding","paddingLeft","paddingTop","paddingRight","paddingBottom"]);_toDOMStyle(t){const e={};for(const i in t){const A=t[i];Or.notZeroStyles.has(i)&&A===0||(typeof A=="number"&&Or.pxStyles.has(i)?e[i]=`${A}px`:e[i]=A)}return e}createDOM(t,e){const i=document.createElement("section"),A={...e},s=e.writingMode.includes("horizontal");switch(e.textAlign){case"start":case"left":A.justifyContent="flex-start";break;case"center":A.justifyContent="center";break;case"end":case"right":A.justifyContent="flex-end";break}switch(e.verticalAlign){case"top":A.alignItems="flex-start";break;case"middle":A.alignItems="center";break;case"bottom":A.alignItems="flex-end";break}const n=!!(A.justifyContent||A.alignItems);Object.assign(i.style,{...this._toDOMStyle({...A,boxSizing:A.boxSizing??"border-box",display:A.display??(n?"inline-flex":void 0),width:A.width??"max-content",height:A.height??"max-content"}),whiteSpace:"pre-wrap",wordBreak:"break-all"});const o=document.createElement("ul");return Object.assign(o.style,{verticalAlign:"inherit",listStyleType:"inherit",padding:"0",margin:"0",width:n&&s?"100%":void 0,height:n&&!s?"100%":void 0}),t.forEach(a=>{const l=document.createElement("li");Object.assign(l.style,{verticalAlign:"inherit",...this._toDOMStyle(a.style)}),a.fragments.forEach(c=>{const h=document.createElement("span");Object.assign(h.style,{verticalAlign:"inherit",...this._toDOMStyle(c.style)}),h.appendChild(document.createTextNode(c.content)),l.appendChild(h)}),o.appendChild(l)}),i.appendChild(o),i}measureDOMText(t){const e=document.createRange();e.selectNodeContents(t);const i=t.data??"";let A=0;return Array.from(i).map(s=>{const n=A+=i.substring(A).indexOf(s),o=n+s.length;A+=s.length,e.setStart(t,Math.max(n,0)),e.setEnd(t,o);const a=e.getClientRects?.()??[e.getBoundingClientRect()];let l=a[a.length-1];a.length>1&&l.width<2&&(l=a[a.length-2]);const c=e.toString();if(c!==""&&l&&l.width+l.height!==0)return{content:c,top:l.top,left:l.left,height:l.height,width:l.width}}).filter(Boolean)}measureDOM(t){const e=[],i=[],A=[];return t.querySelectorAll("li").forEach((s,n)=>{const o=s.getBoundingClientRect();e.push({paragraphIndex:n,left:o.left,top:o.top,width:o.width,height:o.height}),s.querySelectorAll(":scope > *").forEach((a,l)=>{const c=a.getBoundingClientRect();i.push({paragraphIndex:n,fragmentIndex:l,left:c.left,top:c.top,width:c.width,height:c.height});let h=0;!a.children.length&&a.firstChild instanceof window.Text?this.measureDOMText(a.firstChild).forEach(u=>{A.push({...u,newParagraphIndex:-1,paragraphIndex:n,fragmentIndex:l,characterIndex:h++,textWidth:-1,textHeight:-1})}):a.querySelectorAll(":scope > *").forEach(u=>{u.firstChild instanceof window.Text&&this.measureDOMText(u.firstChild).forEach(d=>{A.push({...d,newParagraphIndex:-1,paragraphIndex:n,fragmentIndex:l,characterIndex:h++,textWidth:-1,textHeight:-1})})})})}),{paragraphs:e,fragments:i,characters:A}}measureParagraphDOM(t,e){const i=e.getBoundingClientRect(),A=this.measureDOM(e);A.paragraphs.forEach(o=>{const a=t[o.paragraphIndex];a.lineBox.left=o.left-i.left,a.lineBox.top=o.top-i.top,a.lineBox.width=o.width,a.lineBox.height=o.height}),A.fragments.forEach(o=>{const a=t[o.paragraphIndex].fragments[o.fragmentIndex];a.inlineBox.left=o.left-i.left,a.inlineBox.top=o.top-i.top,a.inlineBox.width=o.width,a.inlineBox.height=o.height});const s=[];let n=0;return A.characters.forEach(o=>{const{paragraphIndex:a,fragmentIndex:l,characterIndex:c}=o;s.push({...o,newParagraphIndex:a,left:o.left-i.left,top:o.top-i.top});const h=t[a].fragments[l].characters[c],{fontHeight:u,isVertical:d}=h,f=s[n];h.inlineBox.left=f.left,h.inlineBox.top=f.top,h.inlineBox.width=f.width,h.inlineBox.height=f.height,d?(h.lineBox.left=f.left+(f.width-u)/2,h.lineBox.top=f.top,h.lineBox.width=u,h.lineBox.height=f.height):(h.lineBox.left=f.left,h.lineBox.top=f.top+(f.height-u)/2,h.lineBox.width=f.width,h.lineBox.height=u),n++}),{paragraphs:t,boundingBox:new lt(0,0,i.width,i.height)}}measure(t,e,i){let A;i||(i=this.createDOM(t,e),Object.assign(i.style,{position:"fixed",visibility:"hidden"}),document.body.appendChild(i),A=()=>i?.parentNode?.removeChild(i));const s=this.measureParagraphDOM(t,i);return A?.(),s}}class OI{eventListeners=new Map;addEventListener(t,e,i){const A={value:e,options:i},s=this.eventListeners.get(t);return s?Array.isArray(s)?s.push(A):this.eventListeners.set(t,[s,A]):this.eventListeners.set(t,A),this}removeEventListener(t,e,i){if(!e)return this.eventListeners.delete(t),this;const A=this.eventListeners.get(t);if(!A)return this;if(Array.isArray(A)){const s=[];for(let n=0,o=A.length;n<o;n++){const a=A[n];(a.value!==e||typeof i=="object"&&i?.once&&(typeof a.options=="boolean"||!a.options?.once))&&s.push(a)}s.length?this.eventListeners.set(t,s.length===1?s[0]:s):this.eventListeners.delete(t)}else A.value===e&&(typeof i=="boolean"||!i?.once||typeof A.options=="boolean"||A.options?.once)&&this.eventListeners.delete(t);return this}removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(t){return this.eventListeners.has(t)}dispatchEvent(t,e){const i=this.eventListeners.get(t);if(i){if(Array.isArray(i))for(let A=i.length,s=0;s<A;s++){const n=i[s];typeof n.options=="object"&&n.options?.once&&this.off(t,n.value,n.options),n.value.apply(this,[e])}else typeof i.options=="object"&&i.options?.once&&this.off(t,i.value,i.options),i.value.apply(this,[e]);return!0}else return!1}on(t,e,i){return this.addEventListener(t,e,i)}once(t,e){return this.addEventListener(t,e,{once:!0})}off(t,e,i){return this.removeEventListener(t,e,i)}emit(t,e){this.dispatchEvent(t,e)}}function HI(){const r=new Ai,t=Fl(),e=Tl(t);return{name:"background",pathSet:r,load:async i=>{const{backgroundImage:A}=i.style;A&&t.needsLoad(A)&&await t.load(A)},update:i=>{r.paths.length=0;const{style:A,lineBox:s,isVertical:n}=i,{backgroundImage:o,backgroundSize:a,backgroundColormap:l}=A;if(Gt(o))return;const{pathSet:c}=e.parse(o),h=c.getBoundingBox(!0);let u,d,f,B;n?{x:d,y:u,width:B,height:f}=s:{x:u,y:d,width:f,height:B}=s;const p=Rn(l??"none"),R=c.paths.map(Q=>{const m=Q.clone();return m.style.fill&&m.style.fill in p&&(m.style.fill=p[m.style.fill]),m.style.stroke&&m.style.stroke in p&&(m.style.stroke=p[m.style.stroke]),m});let P,y;if(a==="rigid"){P=Math.max(i.fontSize*5/h.width),y=P;const Q=new J;Q.x=h.width-f/P,Q.y=h.height-B/y,R.forEach(m=>{m.applyTransform(M=>{const k=M.x>h.left+h.width/2,W=M.y>h.top+h.height/2;k&&(M.x-=Q.x),W&&(M.y-=Q.y)})})}else P=f/h.width,y=B/h.height;const S=new Lt;S.translate(-h.x,-h.y),S.scale(P,y),n&&(S.translate(-f/2,-B/2),S.rotate(-Math.PI/2),S.translate(B/2,f/2)),S.translate(u,d),R.forEach(Q=>{Q.applyTransform(m=>{m.applyMatrix3(S)})}),r.paths.push(...R)},renderOrder:-2,render:(i,A)=>{const{boundingBox:s,computedStyle:n}=A;Gt(n.backgroundColor)||(i.fillStyle=n.backgroundColor,i.fillRect(...s.array)),r.paths.forEach(o=>{if(Yi({ctx:i,path:o,fontSize:n.fontSize}),A.debug){const a=new Ai([o]).getBoundingBox();a&&i.strokeRect(a.x,a.y,a.width,a.height)}}),A.paragraphs.forEach(o=>{const{lineBox:a,style:l}=o;Gt(l.backgroundColor)||(i.fillStyle=l.backgroundColor,i.fillRect(...a.array)),o.fragments.forEach(c=>{const{inlineBox:h,style:u}=c;Gt(u.backgroundColor)||(i.fillStyle=u.backgroundColor,i.fillRect(...h.array))})})}}}function Pn(r){const{highlight:t,highlightImage:e,highlightReferImage:i,highlightColormap:A,highlightLine:s,highlightSize:n,highlightThickness:o}=r;return{image:t?.image??e??"none",referImage:t?.referImage??i??"none",colormap:t?.colormap??A??"none",line:t?.line??s??"none",size:t?.size??n??"cover",thickness:t?.thickness??o??"100%"}}function JI(){const r=new Ai,t=[],e=Fl(),i=Tl(e);return{name:"highlight",pathSet:r,load:async A=>{const s=new Set;A.forEachCharacter(n=>{const{computedStyle:o}=n,{image:a,referImage:l}=Pn(o);a&&e.needsLoad(a)&&s.add(a),l&&e.needsLoad(l)&&s.add(l)}),await Promise.all(Array.from(s).map(n=>e.load(n)))},update:A=>{t.length=0,r.paths.length=0;let s=[],n,o;A.forEachCharacter(a=>{const{computedStyle:l}=a,c=Pn(l),{image:h,colormap:u,line:d,size:f,thickness:B}=c;if(Gt(h))n?.length&&(n=[],s.push(n));else{const{inlineBox:p,isVertical:R}=a,{fontSize:P}=l;(!o||Vi(o.image,h)&&Vi(o.colormap,u)&&Vi(o.line,d)&&Vi(o.size,f)&&Vi(o.thickness,B))&&n?.length&&(R?n[0].inlineBox.left===p.left:n[0].inlineBox.top===p.top)&&n[0].fontSize===P?n.push(a):(n=[],n.push(a),s.push(n))}o=c}),s=s.filter(a=>a.length);for(let a=0;a<s.length;a++){const l=s[a],c=l[0],h=lt.from(...l.map(N=>N.compatibleGlyphBox));if(!h.height||!h.width)continue;const{computedStyle:u,isVertical:d,inlineBox:f,compatibleGlyphBox:B,strikeoutPosition:p,underlinePosition:R}=c,{fontSize:P}=u,{image:y,referImage:S,colormap:Q,line:m,size:M,thickness:k}=Pn(u),W=Mn(k,{fontSize:P,total:h.width})/h.width,it=Rn(Q),{pathSet:q,dom:Y}=i.parse(y),et=q.getBoundingBox(!0),H=P/et.width*2,L=new lt().copy(h);d&&(L.width=h.height,L.height=h.width,L.left=h.left+h.width);const rt=Math.floor(L.width);let O=rt;M!=="cover"&&(O=Mn(M,{fontSize:P,total:h.width})||rt,L.width=O);const X=!Gt(S)&&Gt(m);if(X)et.copy(i.parse(S).pathSet.getBoundingBox(!0));else{let N;if(Gt(m))if(et.width/et.height>4){N="underline";const tt=Y.getAttribute("viewBox");if(tt){const[b,D,F,V]=tt.split(" ").map(Z=>Number(Z)),At=D+V/2;et.y<At&&et.y+et.height>At?N="line-through":et.y+et.height<At?N="overline":N="underline"}}else N="outline";else N=m;switch(N){case"outline":{const tt=L.width*.2,b=L.height*.2;d?(L.x-=b/2,L.y-=tt/2,L.x-=L.height):(L.x-=tt/2,L.y-=b/2),L.width+=tt,L.height+=b;break}case"overline":L.height=et.height*H,d?L.x=f.left+f.width:L.y=f.top;break;case"line-through":L.height=et.height*H,d?L.x=f.left+f.width-p+L.height/2:L.y=f.top+p-L.height/2;break;case"underline":L.height=et.height*H,d?L.x=B.left+B.width-R:L.y=f.top+R;break}}const j=new Lt;if(j.translate(-et.x,-et.y),j.scale(L.width/et.width,L.height/et.height),d){const N=L.width/2,tt=L.height/2;X||j.translate(-N,-tt),j.rotate(-Math.PI/2),X||j.translate(tt,N)}j.translate(L.x,L.y);for(let N=0;N<Math.ceil(rt/O);N++){const tt=j.clone();d?tt.translate(0,N*L.width):tt.translate(N*L.width,0),q.paths.forEach(b=>{const D=b.clone().applyTransform(tt);D.style.strokeWidth&&(D.style.strokeWidth*=H*W),D.style.strokeMiterlimit&&(D.style.strokeMiterlimit*=H),D.style.strokeDashoffset&&(D.style.strokeDashoffset*=H),D.style.strokeDasharray&&(D.style.strokeDasharray=D.style.strokeDasharray.map(F=>F*H)),D.style.fill&&D.style.fill in it&&(D.style.fill=it[D.style.fill]),D.style.stroke&&D.style.stroke in it&&(D.style.stroke=it[D.style.stroke]),r.paths.push(D),rt!==O&&(d?t[r.paths.length-1]=new lt(h.left-h.width*2,h.top,h.width*4,h.height):t[r.paths.length-1]=new lt(h.left,h.top-h.height*2,h.width,h.height*4))})}}},renderOrder:-1,getBoundingBox:()=>{const A=[];return r.paths.forEach((s,n)=>{const o=t[n];let a=s.getBoundingBox();if(o){const l=Math.max(a.x,o.x),c=Math.max(a.y,o.y),h=Math.min(a.right,o.right),u=Math.min(a.bottom,o.bottom);a=new lt(l,c,h-l,u-c)}A.push(a)}),lt.from(...A)},render:(A,s)=>{r.paths.forEach((n,o)=>{if(Yi({ctx:A,path:n,fontSize:s.computedStyle.fontSize,clipRect:t[o]}),s.debug){const a=new Ai([n]).getBoundingBox();a&&A.strokeRect(a.x,a.y,a.width,a.height)}})}}}function KI(r,t){return`<svg width="${r*2}" height="${r*2}" xmlns="http://www.w3.org/2000/svg">
|
|
862
|
+
}`)),document.head.appendChild(i),this}_parseUrls(t){const e=Array.from(new Set([...t.split(","),t]));return Array.from(new Set(e.map(i=>this.familyToUrl.get(i.trim())??this.familyToUrl.get(i)??i)))}get(t){let e;return t&&(e=this._parseUrls(t).reduce((A,s)=>A||this.loaded.get(s),void 0)),e??this.fallbackFont}set(t,e){return this.familyToUrl.set(t,e.src),this.loaded.set(e.src,e),this}delete(t){return this._parseUrls(t).forEach(e=>{this.familyToUrl.delete(e),this.loaded.delete(e)}),this}clear(){return this.familyToUrl.clear(),this.loading.clear(),this.loaded.clear(),this}async load(t,e={}){const{cancelOther:i,injectFontFace:A=!0,injectStyleTag:s=!0,...n}=e;let o,a;if(typeof t=="string"?o=t:{src:o,family:a}=t,this.loaded.has(o))return i&&(this.loading.forEach(d=>d.cancel()),this.loading.clear()),h(this.loaded.get(o));let l=this.loading.get(o);return l||(l=this._createRequest(o,n),this.loading.set(o,l)),i&&this.loading.forEach((d,f)=>{d!==l&&(d.cancel(),this.loading.delete(f))}),l.when.then(d=>{if(this.loaded.has(o))return h(this.loaded.get(o));{const f=u(d);return e.noAdd||this.loaded.set(o,f),f.familySet.forEach(B=>{this.familyToUrl.set(B,o),typeof document<"u"&&(A&&this.injectFontFace(B,d),s&&this.injectStyleTag(B,o))}),f}}).catch(d=>{if(d instanceof DOMException&&d.message==="The user aborted a request.")return u();throw d}).finally(()=>{this.loading.delete(o)});function c(){return a?Array.isArray(a)?a:[a]:[]}function h(d){return c().forEach(f=>{d.familySet.add(f)}),d}function u(d=new ArrayBuffer(0)){let f;function B(){return f||(f=d.byteLength?Pl(d,!1):void 0),f}function p(){const R=B();if(R instanceof we||R instanceof Tr)return R.sfnt}return{src:o,family:a,buffer:d,familySet:new Set(c()),getFont:B,getSFNT:p}}}async waitUntilLoad(){await Promise.all(Array.from(this.loading.values()).map(t=>t.when))}}const Ul=new Lr,xI=Object.freeze(Object.defineProperty({__proto__:null,BaseFont:_r,get Cff(){return vi},get Cmap(){return Ji},CmapSubtableFormat0:Bn,CmapSubtableFormat12:mn,CmapSubtableFormat14:KA,CmapSubtableFormat2:OA,CmapSubtableFormat4:yn,CmapSubtableFormat6:bi,FontDataObject:ge,FontDataView:kt,Fonts:Lr,get Glyf(){return kr},Glyph:In,GlyphSet:pn,get Gpos(){return _n},get Gsub(){return qe},get Head(){return xt},get Hhea(){return Ht},get Hmtx(){return Pr},get Kern(){return bn},get Loca(){return Ur},get Maxp(){return Ut},get Name(){return Ki},get Os2(){return ot},get Post(){return pe},SFNT:Re,TTF:we,TableDirectory:Oi,get Vhea(){return Jt},get Vmtx(){return Fr},WOFF:Tr,WOFFTableDirectoryEntry:xi,createCmapSegments:Qn,dataTypeToByteLength:TA,defineColumn:w,defineSFNTTable:Ot,fonts:Ul,parseFont:Pl,parseSFNTFont:kl},Symbol.toStringTag,{value:"Module"}));function Sn(r,t,e){if(typeof t=="string"&&t.startsWith("linear-gradient")){const{x0:i,y0:A,x1:s,y1:n,stops:o}=SI(t,e.left,e.top,e.width,e.height),a=r.createLinearGradient(i,A,s,n);return o.forEach(l=>a.addColorStop(l.offset,l.color)),a}return t}function Gr(r,t,e){r?.color&&(r.color=Sn(e,r.color,t)),r?.backgroundColor&&(r.backgroundColor=Sn(e,r.backgroundColor,t)),r?.textStrokeColor&&(r.textStrokeColor=Sn(e,r.textStrokeColor,t))}function SI(r,t,e,i,A){const s=r.match(/linear-gradient\((.+)\)$/)?.[1]??"",n=s.split(",")[0],o=n.includes("deg")?n:"0deg",a=s.replace(o,"").matchAll(/(#|rgba|rgb)(.+?) ([\d.]+%)/gi),c=(Number(o.replace("deg",""))||0)*Math.PI/180,h=i*Math.sin(c),u=A*Math.cos(c);return{x0:t+i/2-h,y0:e+A/2+u,x1:t+i/2+h,y1:e+A/2-u,stops:Array.from(a).map(d=>{let f=d[2];return f.startsWith("(")?f=f.split(",").length>3?`rgba${f}`:`rgb${f}`:f=`#${f}`,{offset:Number(d[3].replace("%",""))/100,color:f}})}}function Yi(r){const{ctx:t,path:e,fontSize:i,clipRect:A}=r;t.save(),t.beginPath();const s=e.style,n={...s,fill:r.color??s.fill,stroke:r.textStrokeColor??s.stroke,strokeWidth:r.textStrokeWidth?r.textStrokeWidth*i:s.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round",shadowOffsetX:(r.shadowOffsetX??0)*i,shadowOffsetY:(r.shadowOffsetY??0)*i,shadowBlur:(r.shadowBlur??0)*i,shadowColor:r.shadowColor};A&&(t.rect(A.left,A.top,A.width,A.height),t.clip(),t.beginPath()),e.drawTo(t,n),t.restore()}function MI(r,t,e){const{left:i,top:A,width:s,height:n}=e,o=r.canvas;o.dataset.viewBox=`${i} ${A} ${s} ${n}`,o.dataset.pixelRatio=String(t);const a=s,l=n;o.width=Math.max(1,Math.ceil(a*t)),o.height=Math.max(1,Math.ceil(l*t)),o.style.width=`${a}px`,o.style.height=`${l}px`,r.clearRect(0,0,o.width,o.height),r.scale(t,t),r.translate(-i,-A)}function RI(r,t){const{paragraphs:e,computedStyle:i,glyphBox:A}=t;Gr(i,A,r),e.forEach(s=>{Gr(s.computedStyle,s.lineBox,r),s.fragments.forEach(n=>{Gr(n.computedStyle,n.inlineBox,r)})})}const kI=new Set(["©","®","÷"]),PI=new Set(["—","…","“","”","﹏","﹋","﹌","‘","’","˜"]),UI={1:"italic",32:"bold"},NI={1:"italic",2:"bold"},Nl={100:-.2,200:-.1,300:0,400:0,normal:0,500:.1,600:.2,700:.3,bold:.3,800:.4,900:.5};class FI{constructor(t,e,i){this.content=t,this.index=e,this.parent=i}path=new Rt;lineBox=new lt;inlineBox=new lt;glyphBox;advanceWidth=0;advanceHeight=0;underlinePosition=0;underlineThickness=0;strikeoutPosition=0;strikeoutSize=0;ascender=0;descender=0;typoAscender=0;typoDescender=0;typoLineGap=0;winAscent=0;winDescent=0;xHeight=0;capHeight=0;baseline=0;centerDiviation=0;fontStyle;get compatibleGlyphBox(){const t=this.computedStyle.fontSize*.8;return this.glyphBox??(this.isVertical?new lt(this.lineBox.left+this.lineBox.width/2-t/2,this.lineBox.top,t,this.lineBox.height):new lt(this.lineBox.left,this.lineBox.top+this.lineBox.height/2-t/2,this.lineBox.width,t))}get center(){return this.compatibleGlyphBox.center}get computedStyle(){return this.parent.computedStyle}get isVertical(){return this.computedStyle.writingMode.includes("vertical")}get fontSize(){return this.computedStyle.fontSize}get fontHeight(){return this.fontSize*this.computedStyle.lineHeight}_getFontSFNT(t){const e=this.computedStyle.fontFamily,i=t??Ul;return(e?i.get(e):i.fallbackFont)?.getSFNT()}updateGlyph(t=this._getFontSFNT()){if(!t)return this;const{hhea:e,os2:i,post:A,head:s}=t,n=s.unitsPerEm,o=e.ascent,a=e.descent,{content:l,computedStyle:c,isVertical:h}=this,{fontSize:u}=c,d=n/u,f=t.getAdvanceWidth(l,u),B=(o+Math.abs(a))/d,p=o/d;return this.advanceWidth=f,this.advanceHeight=B,this.inlineBox.width=h?B:f,this.inlineBox.height=h?f:B,this.underlinePosition=(o-A.underlinePosition)/d,this.underlineThickness=A.underlineThickness/d,this.strikeoutPosition=(o-i.yStrikeoutPosition)/d,this.strikeoutSize=i.yStrikeoutSize/d,this.ascender=o/d,this.descender=a/d,this.typoAscender=i.sTypoAscender/d,this.typoDescender=i.sTypoDescender/d,this.typoLineGap=i.sTypoLineGap/d,this.winAscent=i.usWinAscent/d,this.winDescent=i.usWinDescent/d,this.xHeight=i.sxHeight/d,this.capHeight=i.sCapHeight/d,this.baseline=p,this.centerDiviation=B/2-p,this.fontStyle=UI[i.fsSelection]??NI[s.macStyle],this}update(t){const e=this._getFontSFNT(t);if(!e)return this;this.updateGlyph(e);const{isVertical:i,content:A,computedStyle:s,baseline:n,inlineBox:o,ascender:a,descender:l,typoAscender:c,fontStyle:h,advanceWidth:u,advanceHeight:d}=this,{left:f,top:B}=o,p=s.fontStyle==="italic"&&h!=="italic";let R=f,P=B+n,y;const S=new Rt;if(i&&(R+=(d-u)/2,Math.abs(u-d)>.1&&(P-=(a-c)/(a+Math.abs(l))*d),y=void 0),i&&!kI.has(A)&&(A.codePointAt(0)<=256||PI.has(A))){S.addCommands(e.getPathCommands(A,R,B+n-(d-u)/2,s.fontSize));const m={y:B-(d-u)/2+d/2,x:R+u/2};p&&this._italic(S,i?{x:m.x,y:B-(d-u)/2+n}:void 0),S.rotate(90,m)}else y!==void 0?(S.addCommands(e.glyphs.get(y).getPathCommands(R,P,s.fontSize)),p&&this._italic(S,i?{x:R+u/2,y:B+c/(a+Math.abs(l))*d}:void 0)):(S.addCommands(e.getPathCommands(A,R,P,s.fontSize)),p&&this._italic(S,i?{x:R+d/2,y:P}:void 0));const Q=s.fontWeight??400;return Q in Nl&&(Q===700||Q==="bold")&&h!=="bold"&&S.bold(Nl[Q]*s.fontSize*.05),S.style={fill:s.color,stroke:s.textStrokeWidth?s.textStrokeColor:"none",strokeWidth:s.textStrokeWidth?s.textStrokeWidth*s.fontSize*.03:0},this.path=S,this.glyphBox=this.getGlyphBoundingBox(),this}_italic(t,e){t.skew(-.24,0,e||{y:this.inlineBox.top+this.baseline,x:this.inlineBox.left+this.inlineBox.width/2})}getGlyphMinMax(t,e,i){if(this.path.curves[0]?.curves.length)return this.path.getMinMax(t,e,i)}getGlyphBoundingBox(t){const e=this.getGlyphMinMax(void 0,void 0,t);if(!e)return;const{min:i,max:A}=e;return new lt(i.x,i.y,A.x-i.x,A.y-i.y)}drawTo(t,e={}){const i=this.computedStyle,A={ctx:t,path:this.path,fontSize:i.fontSize,color:i.color,...e};if(this.glyphBox)Yi(A);else{t.save(),t.beginPath();const s=this.path.style,n={...s,fill:A.color??s.fill,stroke:A.textStrokeColor??s.stroke,strokeWidth:A.textStrokeWidth?A.textStrokeWidth*A.fontSize:s.strokeWidth,shadowOffsetX:(A.shadowOffsetX??0)*A.fontSize,shadowOffsetY:(A.shadowOffsetY??0)*A.fontSize,shadowBlur:(A.shadowBlur??0)*A.fontSize,shadowColor:A.shadowColor};Hs(t,n),t.font=`${A.fontSize}px ${A.fontFamily}`,this.isVertical?(t.textBaseline="middle",t.fillText(this.content,this.inlineBox.left,this.inlineBox.top+this.inlineBox.height/2)):(t.textBaseline="alphabetic",t.fillText(this.content,this.inlineBox.left,this.inlineBox.top+this.baseline)),t.restore()}}}function Fl(){const r=new Map;async function t(i){if(!r.has(i)){r.set(i,i);try{r.set(i,await fetch(i).then(A=>A.text()))}catch(A){console.warn(A),r.delete(i)}}}function e(i){return i.startsWith("http://")||i.startsWith("https://")||i.startsWith("blob://")}return{loaded:r,needsLoad:e,load:t}}function Tl(r){const t=new Map;function e(i){let A=t.get(i);if(!A){const s=Ks(r.needsLoad(i)?r.loaded.get(i)??i:i),n=Vs(s);A={dom:s,pathSet:n},t.set(i,A)}return A}return{parsed:t,parse:e}}function Mn(r,t){return typeof r=="number"?r:r.endsWith("%")?(r=r.substring(0,r.length-1),Math.ceil(Number(r)/100*t.total)):r.endsWith("rem")?(r=r.substring(0,r.length-3),Number(r)*t.fontSize):r.endsWith("em")?(r=r.substring(0,r.length-2),Number(r)*t.fontSize):Number(r)}function Rn(r){return Gt(r)?{}:r}function TI(r,t){const e=Object.keys(r),i=Object.keys(t);return Array.from(new Set([...e,...i])).every(s=>Vi(r[s],t[s]))}function Vi(r,t){const e=typeof r;return e===typeof t?e==="object"?TI(r,t):r===t:!1}function kn(r){if(!r)return r;const t={};for(const e in r)r[e]!==""&&r[e]!==void 0&&(t[e]=r[e]);return t}class LI{constructor(t,e={},i){this.content=t,this.style=e,this.parent=i,this.updateComputedStyle().initCharacters()}inlineBox=new lt;get computedContent(){const t=this.computedStyle;return t.textTransform==="uppercase"?this.content.toUpperCase():t.textTransform==="lowercase"?this.content.toLowerCase():this.content}updateComputedStyle(){return this.computedStyle={...this.parent.computedStyle,...kn(this.style)},this}initCharacters(){const t=[];let e=0;for(const i of this.computedContent)t.push(new FI(i,e++,this));return this.characters=t,this}}class GI{constructor(t,e){this.style=t,this.parentStyle=e,this.updateComputedStyle()}lineBox=new lt;fragments=[];updateComputedStyle(){return this.computedStyle={...kn(this.parentStyle),...kn(this.style)},this}addFragment(t,e){const i=new LI(t,e,this);return this.fragments.push(i),i}}function JE(r){return r}class Or{static notZeroStyles=new Set(["width","height"]);static pxStyles=new Set(["width","height","fontSize","letterSpacing","textStrokeWidth","textIndent","shadowOffsetX","shadowOffsetY","shadowBlur","margin","marginLeft","marginTop","marginRight","marginBottom","padding","paddingLeft","paddingTop","paddingRight","paddingBottom"]);_toDOMStyle(t){const e={};for(const i in t){const A=t[i];Or.notZeroStyles.has(i)&&A===0||(typeof A=="number"&&Or.pxStyles.has(i)?e[i]=`${A}px`:e[i]=A)}return e}createDOM(t,e){const i=document.createElement("section"),A={...e},s=e.writingMode.includes("horizontal");switch(e.textAlign){case"start":case"left":A.justifyContent="flex-start";break;case"center":A.justifyContent="center";break;case"end":case"right":A.justifyContent="flex-end";break}switch(e.verticalAlign){case"top":A.alignItems="flex-start";break;case"middle":A.alignItems="center";break;case"bottom":A.alignItems="flex-end";break}const n=!!(A.justifyContent||A.alignItems);Object.assign(i.style,{...this._toDOMStyle({...A,boxSizing:A.boxSizing??"border-box",display:A.display??(n?"inline-flex":void 0),width:A.width??"max-content",height:A.height??"max-content"}),whiteSpace:"pre-wrap",wordBreak:"break-all"});const o=document.createElement("ul");return Object.assign(o.style,{verticalAlign:"inherit",listStyleType:"inherit",padding:"0",margin:"0",width:n&&s?"100%":void 0,height:n&&!s?"100%":void 0}),t.forEach(a=>{const l=document.createElement("li");Object.assign(l.style,{verticalAlign:"inherit",...this._toDOMStyle(a.style)}),a.fragments.forEach(c=>{const h=document.createElement("span");Object.assign(h.style,{verticalAlign:"inherit",...this._toDOMStyle(c.style)}),h.appendChild(document.createTextNode(c.content)),l.appendChild(h)}),o.appendChild(l)}),i.appendChild(o),i}measureDOMText(t){const e=document.createRange();e.selectNodeContents(t);const i=t.data??"";let A=0;return Array.from(i).map(s=>{const n=A+=i.substring(A).indexOf(s),o=n+s.length;A+=s.length,e.setStart(t,Math.max(n,0)),e.setEnd(t,o);const a=e.getClientRects?.()??[e.getBoundingClientRect()];let l=a[a.length-1];a.length>1&&l.width<2&&(l=a[a.length-2]);const c=e.toString();if(c!==""&&l&&l.width+l.height!==0)return{content:c,top:l.top,left:l.left,height:l.height,width:l.width}}).filter(Boolean)}measureDOM(t){const e=[],i=[],A=[];return t.querySelectorAll("li").forEach((s,n)=>{const o=s.getBoundingClientRect();e.push({paragraphIndex:n,left:o.left,top:o.top,width:o.width,height:o.height}),s.querySelectorAll(":scope > *").forEach((a,l)=>{const c=a.getBoundingClientRect();i.push({paragraphIndex:n,fragmentIndex:l,left:c.left,top:c.top,width:c.width,height:c.height});let h=0;!a.children.length&&a.firstChild instanceof window.Text?this.measureDOMText(a.firstChild).forEach(u=>{A.push({...u,newParagraphIndex:-1,paragraphIndex:n,fragmentIndex:l,characterIndex:h++,textWidth:-1,textHeight:-1})}):a.querySelectorAll(":scope > *").forEach(u=>{u.firstChild instanceof window.Text&&this.measureDOMText(u.firstChild).forEach(d=>{A.push({...d,newParagraphIndex:-1,paragraphIndex:n,fragmentIndex:l,characterIndex:h++,textWidth:-1,textHeight:-1})})})})}),{paragraphs:e,fragments:i,characters:A}}measureParagraphDOM(t,e){const i=e.getBoundingClientRect(),A=this.measureDOM(e);A.paragraphs.forEach(o=>{const a=t[o.paragraphIndex];a.lineBox.left=o.left-i.left,a.lineBox.top=o.top-i.top,a.lineBox.width=o.width,a.lineBox.height=o.height}),A.fragments.forEach(o=>{const a=t[o.paragraphIndex].fragments[o.fragmentIndex];a.inlineBox.left=o.left-i.left,a.inlineBox.top=o.top-i.top,a.inlineBox.width=o.width,a.inlineBox.height=o.height});const s=[];let n=0;return A.characters.forEach(o=>{const{paragraphIndex:a,fragmentIndex:l,characterIndex:c}=o;s.push({...o,newParagraphIndex:a,left:o.left-i.left,top:o.top-i.top});const h=t[a].fragments[l].characters[c],{fontHeight:u,isVertical:d}=h,f=s[n];h.inlineBox.left=f.left,h.inlineBox.top=f.top,h.inlineBox.width=f.width,h.inlineBox.height=f.height,d?(h.lineBox.left=f.left+(f.width-u)/2,h.lineBox.top=f.top,h.lineBox.width=u,h.lineBox.height=f.height):(h.lineBox.left=f.left,h.lineBox.top=f.top+(f.height-u)/2,h.lineBox.width=f.width,h.lineBox.height=u),n++}),{paragraphs:t,boundingBox:new lt(0,0,i.width,i.height)}}measure(t,e,i){let A;i||(i=this.createDOM(t,e),Object.assign(i.style,{position:"fixed",visibility:"hidden"}),document.body.appendChild(i),A=()=>i?.parentNode?.removeChild(i));const s=this.measureParagraphDOM(t,i);return A?.(),s}}class OI{eventListeners=new Map;addEventListener(t,e,i){const A={value:e,options:i},s=this.eventListeners.get(t);return s?Array.isArray(s)?s.push(A):this.eventListeners.set(t,[s,A]):this.eventListeners.set(t,A),this}removeEventListener(t,e,i){if(!e)return this.eventListeners.delete(t),this;const A=this.eventListeners.get(t);if(!A)return this;if(Array.isArray(A)){const s=[];for(let n=0,o=A.length;n<o;n++){const a=A[n];(a.value!==e||typeof i=="object"&&i?.once&&(typeof a.options=="boolean"||!a.options?.once))&&s.push(a)}s.length?this.eventListeners.set(t,s.length===1?s[0]:s):this.eventListeners.delete(t)}else A.value===e&&(typeof i=="boolean"||!i?.once||typeof A.options=="boolean"||A.options?.once)&&this.eventListeners.delete(t);return this}removeAllListeners(){return this.eventListeners.clear(),this}hasEventListener(t){return this.eventListeners.has(t)}dispatchEvent(t,e){const i=this.eventListeners.get(t);if(i){if(Array.isArray(i))for(let A=i.length,s=0;s<A;s++){const n=i[s];typeof n.options=="object"&&n.options?.once&&this.off(t,n.value,n.options),n.value.apply(this,[e])}else typeof i.options=="object"&&i.options?.once&&this.off(t,i.value,i.options),i.value.apply(this,[e]);return!0}else return!1}on(t,e,i){return this.addEventListener(t,e,i)}once(t,e){return this.addEventListener(t,e,{once:!0})}off(t,e,i){return this.removeEventListener(t,e,i)}emit(t,e){this.dispatchEvent(t,e)}}function HI(){const r=new Ai,t=Fl(),e=Tl(t);return{name:"background",pathSet:r,load:async i=>{const{backgroundImage:A}=i.style;A&&t.needsLoad(A)&&await t.load(A)},update:i=>{r.paths.length=0;const{style:A,lineBox:s,isVertical:n}=i,{backgroundImage:o,backgroundSize:a,backgroundColormap:l}=A;if(Gt(o))return;const{pathSet:c}=e.parse(o),h=c.getBoundingBox(!0);let u,d,f,B;n?{x:d,y:u,width:B,height:f}=s:{x:u,y:d,width:f,height:B}=s;const p=Rn(l??"none"),R=c.paths.map(Q=>{const m=Q.clone();return m.style.fill&&m.style.fill in p&&(m.style.fill=p[m.style.fill]),m.style.stroke&&m.style.stroke in p&&(m.style.stroke=p[m.style.stroke]),m});let P,y;if(a==="rigid"){P=Math.max(i.fontSize*5/h.width),y=P;const Q=new J;Q.x=h.width-f/P,Q.y=h.height-B/y,R.forEach(m=>{m.applyTransform(M=>{const k=M.x>h.left+h.width/2,W=M.y>h.top+h.height/2;k&&(M.x-=Q.x),W&&(M.y-=Q.y)})})}else P=f/h.width,y=B/h.height;const S=new Lt;S.translate(-h.x,-h.y),S.scale(P,y),n&&(S.translate(-f/2,-B/2),S.rotate(-Math.PI/2),S.translate(B/2,f/2)),S.translate(u,d),R.forEach(Q=>{Q.applyTransform(m=>{m.applyMatrix3(S)})}),r.paths.push(...R)},renderOrder:-2,render:(i,A)=>{const{boundingBox:s,computedStyle:n}=A;Gt(n.backgroundColor)||(i.fillStyle=n.backgroundColor,i.fillRect(...s.array)),r.paths.forEach(o=>{if(Yi({ctx:i,path:o,fontSize:n.fontSize}),A.debug){const a=new Ai([o]).getBoundingBox();a&&i.strokeRect(a.x,a.y,a.width,a.height)}}),A.paragraphs.forEach(o=>{const{lineBox:a,style:l}=o;Gt(l.backgroundColor)||(i.fillStyle=l.backgroundColor,i.fillRect(...a.array)),o.fragments.forEach(c=>{const{inlineBox:h,style:u}=c;Gt(u.backgroundColor)||(i.fillStyle=u.backgroundColor,i.fillRect(...h.array))})})}}}function Pn(r){const{highlight:t,highlightImage:e,highlightReferImage:i,highlightColormap:A,highlightLine:s,highlightSize:n,highlightThickness:o}=r;return{image:t?.image??e??"none",referImage:t?.referImage??i??"none",colormap:t?.colormap??A??"none",line:t?.line??s??"none",size:t?.size??n??"cover",thickness:t?.thickness??o??"100%"}}function JI(){const r=new Ai,t=[],e=Fl(),i=Tl(e);return{name:"highlight",pathSet:r,load:async A=>{const s=new Set;A.forEachCharacter(n=>{const{computedStyle:o}=n,{image:a,referImage:l}=Pn(o);a&&e.needsLoad(a)&&s.add(a),l&&e.needsLoad(l)&&s.add(l)}),await Promise.all(Array.from(s).map(n=>e.load(n)))},update:A=>{t.length=0,r.paths.length=0;let s=[],n,o;A.forEachCharacter(a=>{const{computedStyle:l}=a,c=Pn(l),{image:h,colormap:u,line:d,size:f,thickness:B}=c;if(Gt(h))n?.length&&(n=[],s.push(n));else{const{inlineBox:p,isVertical:R}=a,{fontSize:P}=l;(!o||Vi(o.image,h)&&Vi(o.colormap,u)&&Vi(o.line,d)&&Vi(o.size,f)&&Vi(o.thickness,B))&&n?.length&&(R?n[0].inlineBox.left===p.left:n[0].inlineBox.top===p.top)&&n[0].fontSize===P?n.push(a):(n=[],n.push(a),s.push(n))}o=c}),s=s.filter(a=>a.length);for(let a=0;a<s.length;a++){const l=s[a],c=l[0],h=lt.from(...l.map(N=>N.compatibleGlyphBox));if(!h.height||!h.width)continue;const{computedStyle:u,isVertical:d,inlineBox:f,compatibleGlyphBox:B,strikeoutPosition:p,underlinePosition:R}=c,{fontSize:P}=u,{image:y,referImage:S,colormap:Q,line:m,size:M,thickness:k}=Pn(u),W=Mn(k,{fontSize:P,total:h.width})/h.width,it=Rn(Q),{pathSet:q,dom:Y}=i.parse(y),et=q.getBoundingBox(!0),H=P/et.width*2,L=new lt().copy(h);d&&(L.width=h.height,L.height=h.width,L.left=h.left+h.width);const rt=Math.floor(L.width);let O=rt;M!=="cover"&&(O=Mn(M,{fontSize:P,total:h.width})||rt,L.width=O);const X=!Gt(S)&&Gt(m);if(X)et.copy(i.parse(S).pathSet.getBoundingBox(!0));else{let N;if(Gt(m))if(et.width/et.height>4){N="underline";const tt=Y.getAttribute("viewBox");if(tt){const[b,D,F,V]=tt.split(" ").map(Z=>Number(Z)),At=D+V/2;et.y<At&&et.y+et.height>At?N="line-through":et.y+et.height<At?N="overline":N="underline"}}else N="outline";else N=m;switch(N){case"outline":{const tt=L.width*.2,b=L.height*.2;d?(L.x-=b/2,L.y-=tt/2,L.x-=L.height):(L.x-=tt/2,L.y-=b/2),L.width+=tt,L.height+=b;break}case"overline":L.height=et.height*H,d?L.x=f.left+f.width:L.y=f.top;break;case"line-through":L.height=et.height*H,d?L.x=f.left+f.width-p+L.height/2:L.y=f.top+p-L.height/2;break;case"underline":L.height=et.height*H,d?L.x=B.left+B.width-R:L.y=f.top+R;break}}const j=new Lt;if(j.translate(-et.x,-et.y),j.scale(L.width/et.width,L.height/et.height),d){const N=L.width/2,tt=L.height/2;X||j.translate(-N,-tt),j.rotate(-Math.PI/2),X||j.translate(tt,N)}j.translate(L.x,L.y);for(let N=0;N<Math.ceil(rt/O);N++){const tt=j.clone();d?tt.translate(0,N*L.width):tt.translate(N*L.width,0),q.paths.forEach(b=>{const D=b.clone().applyTransform(tt);D.style.strokeWidth&&(D.style.strokeWidth*=H*W),D.style.strokeMiterlimit&&(D.style.strokeMiterlimit*=H),D.style.strokeDashoffset&&(D.style.strokeDashoffset*=H),D.style.strokeDasharray&&(D.style.strokeDasharray=D.style.strokeDasharray.map(F=>F*H)),D.style.fill&&D.style.fill in it&&(D.style.fill=it[D.style.fill]),D.style.stroke&&D.style.stroke in it&&(D.style.stroke=it[D.style.stroke]),r.paths.push(D),rt!==O&&(d?t[r.paths.length-1]=new lt(h.left-h.width*2,h.top,h.width*4,h.height):t[r.paths.length-1]=new lt(h.left,h.top-h.height*2,h.width,h.height*4))})}}},renderOrder:-1,getBoundingBox:()=>{const A=[];return r.paths.forEach((s,n)=>{const o=t[n];let a=s.getBoundingBox();if(o){const l=Math.max(a.x,o.x),c=Math.max(a.y,o.y),h=Math.min(a.right,o.right),u=Math.min(a.bottom,o.bottom);a=new lt(l,c,h-l,u-c)}A.push(a)}),lt.from(...A)},render:(A,s)=>{r.paths.forEach((n,o)=>{if(Yi({ctx:A,path:n,fontSize:s.computedStyle.fontSize,clipRect:t[o]}),s.debug){const a=new Ai([n]).getBoundingBox();a&&A.strokeRect(a.x,a.y,a.width,a.height)}})}}}function KI(r,t){return`<svg width="${r*2}" height="${r*2}" xmlns="http://www.w3.org/2000/svg">
|
|
863
863
|
<circle cx="${r}" cy="${r}" r="${r}" fill="${t}" />
|
|
864
|
-
</svg>`}function YI(){const r=new Ai;return{name:"listStyle",pathSet:r,update:t=>{r.paths.length=0;const{paragraphs:e,isVertical:i,fontSize:A}=t,s=A*.45;e.forEach(n=>{const{computedStyle:o}=n,{color:a,listStyleImage:l,listStyleColormap:c,listStyleSize:h,listStyleType:u}=o,d=Rn(c);let f=h,B;if(!Gt(l))B=l;else if(!Gt(u)){const m=A*.38/2;switch(f=f==="cover"?m*2:f,u){case"disc":B=KI(m,String(a));break}}if(!B)return;const p=Vs(B),R=p.getBoundingBox(),P=n.fragments[0]?.characters[0];if(!P)return;const{inlineBox:y}=P,S=f==="cover"?1:Mn(f,{total:A,fontSize:A})/A,Q=new Lt;if(i){const m=A/R.height*S;Q.translate(-R.left,-R.top).rotate(Math.PI/2).scale(m,m).translate(y.left+(y.width-R.height*m)/2,y.top-s)}else{const m=A/R.height*S;Q.translate(-R.left,-R.top).scale(m,m).translate(y.left-R.width*m-s,y.top+(y.height-R.height*m)/2)}r.paths.push(...p.paths.map(m=>{const M=m.clone();return M.applyTransform(Q),M.style.fill&&M.style.fill in d&&(M.style.fill=d[M.style.fill]),M.style.stroke&&M.style.stroke in d&&(M.style.stroke=d[M.style.stroke]),M}))})}}}function VI(){return{name:"outline"}}const li=new J,zi=new Lt,ci=new Lt;function zI(){return{name:"render",getBoundingBox:r=>{const{characters:t,fontSize:e,effects:i}=r,A=[];return t.forEach(s=>{i?.forEach(n=>{if(!s.glyphBox)return;const o=s.glyphBox.clone(),a=Un(r,n);li.set(o.left,o.top),li.applyMatrix3(a),o.left=li.x,o.top=li.y,li.set(o.right,o.bottom),li.applyMatrix3(a),o.width=li.x-o.left,o.height=li.y-o.top;const l=(n.shadowOffsetX??0)*e,c=(n.shadowOffsetY??0)*e,h=Math.max(.1,n.textStrokeWidth??0)*e;o.left+=l-h,o.top+=c-h,o.width+=h*2,o.height+=h*2,A.push(o)})}),A.length?lt.from(...A):void 0},render:(r,t)=>{const{paragraphs:e,glyphBox:i,effects:A}=t;A?A.forEach(s=>{Gr(s,i,r),r.save();const[n,o,a,l,c,h]=Un(t,s).transpose().elements;r.transform(n,l,o,c,a,h),t.forEachCharacter(u=>{u.drawTo(r,s)}),r.restore()}):e.forEach(s=>{s.fragments.forEach(n=>{n.characters.forEach(o=>{o.drawTo(r)})})}),t.debug&&e.forEach(s=>{r.strokeRect(s.lineBox.x,s.lineBox.y,s.lineBox.width,s.lineBox.height)})}}}function Un(r,t){const{fontSize:e,glyphBox:i}=r,A=(t.translateX??0)*e,s=(t.translateY??0)*e,n=Math.PI*2,o=(t.skewX??0)/360*n,a=(t.skewY??0)/360*n,{left:l,top:c,width:h,height:u}=i,d=l+h/2,f=c+u/2;return zi.identity(),ci.makeTranslation(A,s),zi.multiply(ci),ci.makeTranslation(d,f),zi.multiply(ci),ci.set(1,Math.tan(o),0,Math.tan(a),1,0,0,0,1),zi.multiply(ci),ci.makeTranslation(-d,-f),zi.multiply(ci),zi.clone()}function WI(){const r=new Ai;return{name:"textDecoration",pathSet:r,update:t=>{r.paths.length=0;const e=[];let i,A;t.forEachCharacter(s=>{const{computedStyle:n,isVertical:o,inlineBox:a,underlinePosition:l,underlineThickness:c,strikeoutPosition:h,strikeoutSize:u}=s,{color:d,textDecoration:f,writingMode:B}=n;if(Gt(f))A=void 0;else{let p=!1;if(A?.textDecoration===f&&A?.writingMode===B&&A?.color===d&&(o?i[0].inlineBox.left===a.left:i[0].inlineBox.top===a.top))switch(f){case"underline":i[0].underlinePosition===l&&i[0].underlineThickness===c&&(p=!0);break;case"line-through":i[0].strikeoutPosition===h&&i[0].strikeoutSize===u&&(p=!0);break}p?i.push(s):(i=[],i.push(s),e.push(i)),A=n}}),e.forEach(s=>{const{computedStyle:n,isVertical:o,underlinePosition:a,underlineThickness:l,strikeoutPosition:c,strikeoutSize:h}=s[0],{color:u,textDecoration:d}=n,f=lt.from(...s.map(M=>M.inlineBox)),{left:B,top:p,width:R,height:P}=f;let y=o?B+R:p;const S=o?-1:1;let Q=0;switch(d){case"overline":Q=l*2;break;case"underline":y+=S*a,Q=l*2;break;case"line-through":y+=S*c,Q=h*2;break}y-=Q;let m;o?m=new Rt([{type:"M",x:y,y:p},{type:"L",x:y,y:p+P},{type:"L",x:y+Q,y:p+P},{type:"L",x:y+Q,y:p},{type:"Z"}],{fill:u}):m=new Rt([{type:"M",x:B,y},{type:"L",x:B+R,y},{type:"L",x:B+R,y:y+Q},{type:"L",x:B,y:y+Q},{type:"Z"}],{fill:u}),r.paths.push(m)})},render:(t,e)=>{const{effects:i,computedStyle:A}=e;i?i.forEach(s=>{t.save();const[n,o,a,l,c,h]=Un(e,s).transpose().elements;t.transform(n,l,o,c,a,h),r.paths.forEach(u=>{Yi({ctx:t,path:u,fontSize:A.fontSize,...s})}),t.restore()}):r.paths.forEach(s=>{Yi({ctx:t,path:s,fontSize:A.fontSize})})}}}const Nn=$f();class Ll extends OI{debug;content;style;effects;measureDOM;needsUpdate=!0;computedStyle={...Nn};paragraphs=[];lineBox=new lt;rawGlyphBox=new lt;glyphBox=new lt;pathBox=new lt;boundingBox=new lt;measurer=new Or;plugins=new Map;fonts;get fontSize(){return this.computedStyle.fontSize}get isVertical(){return this.computedStyle.writingMode.includes("vertical")}get characters(){return this.paragraphs.flatMap(t=>t.fragments.flatMap(e=>e.characters))}constructor(t={}){super(),this.set(t)}set(t={}){this.debug=t.debug??!1,this.content=rd(t.content??""),this.style=t.style??{},this.measureDOM=t.measureDOM,this.effects=t.effects,this.fonts=t.fonts,this.use(HI()).use(VI()).use(YI()).use(WI()).use(JI()).use(zI()),(t.plugins??[]).forEach(e=>{this.use(e)}),this.updateParagraphs()}use(t){return this.plugins.set(t.name,t),this}forEachCharacter(t){return this.paragraphs.forEach((e,i)=>{e.fragments.forEach((A,s)=>{A.characters.forEach((n,o)=>{t(n,{paragraphIndex:i,fragmentIndex:s,characterIndex:o})})})}),this}async load(){await Promise.all(Array.from(this.plugins.values()).map(t=>t.load?.(this)))}updateParagraphs(){this.computedStyle={...Nn,...this.style};const{content:t,computedStyle:e}=this,i=[];return t.forEach(A=>{const{fragments:s,...n}=A,o=new GI(n,e);s.forEach(a=>{const{content:l,...c}=a;l!==void 0&&o.addFragment(l,c)}),i.push(o)}),this.paragraphs=i,this}createDOM(){return this.updateParagraphs(),this.measurer.createDOM(this.paragraphs,this.computedStyle)}measure(t=this.measureDOM){const e={paragraphs:this.paragraphs,lineBox:this.lineBox,rawGlyphBox:this.rawGlyphBox,glyphBox:this.glyphBox,pathBox:this.pathBox,boundingBox:this.boundingBox};this.updateParagraphs();const i=this.measurer.measure(this.paragraphs,this.computedStyle,t);this.paragraphs=i.paragraphs,this.lineBox=i.boundingBox,this.characters.forEach(A=>{A.update(this.fonts)}),this.rawGlyphBox=this.getGlyphBox(),Array.from(this.plugins.values()).sort((A,s)=>(A.updateOrder??0)-(s.updateOrder??0)).forEach(A=>{A.update?.(this)}),this.glyphBox=this.getGlyphBox(),this.updatePathBox().updateBoundingBox();for(const A in e)i[A]=this[A],this[A]=e[A];return this.emit("measure",{text:this,result:i}),i}getGlyphBox(){const t=J.MAX,e=J.MIN;return this.characters.forEach(i=>{if(!i.getGlyphMinMax(t,e)){const{inlineBox:A}=i,{left:s,top:n,width:o,height:a}=A,l=new J(s,n),c=new J(s+o,n+a);t.min(l,c),e.max(l,c)}}),new lt(t.x,t.y,e.x-t.x,e.y-t.y)}updatePathBox(){return this.pathBox=lt.from(this.glyphBox,...Array.from(this.plugins.values()).map(t=>t.getBoundingBox?t.getBoundingBox(this):t.pathSet?.getBoundingBox()).filter(Boolean)),this}updateBoundingBox(){return this.boundingBox=lt.from(this.rawGlyphBox,this.lineBox,this.pathBox),this}requestUpdate(){return this.needsUpdate=!0,this}update(t=this.measureDOM){const e=this.measure(t);for(const i in e)this[i]=e[i];return this.emit("update",{text:this}),this.needsUpdate=!1,this}render(t){const{view:e,pixelRatio:i=2}=t,A=e.getContext("2d");A&&(this.needsUpdate&&this.update(),MI(A,i,this.boundingBox),RI(A,this),Array.from(this.plugins.values()).sort((s,n)=>(s.renderOrder??0)-(n.renderOrder??0)).forEach(s=>{if(s.render)s.render?.(A,this);else if(s.pathSet){const n=this.computedStyle;s.pathSet.paths.forEach(o=>{Yi({ctx:A,path:o,fontSize:n.fontSize})})}}),this.emit("render",{text:this,view:e,pixelRatio:i}),t.onContext?.(A))}toString(){return this.content.flatMap(t=>t.fragments.map(e=>e.content)).join("")}}var qI=Object.defineProperty,zA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&qI(t,e,A),A};class Si extends ei{constructor(t){super(),this.parent=t}base=new Ll;measureResult;setProperties(t){return super.setProperties(bt(t)?void 0:Mh(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"content":case"effects":case"measureDOM":case"fonts":case"split":case"enabled":this.parent.requestRedraw();break}}_updateText(){this.base.style={justifyContent:"center",alignItems:"center",textAlign:"center",...this.parent.style.toJSON()},this.base.requestUpdate()}measure(){return this._updateText(),this.base.measure()}updateMeasure(){return this.measureResult=this.measure(),this}canDraw(){return!!(this.enabled&&!/^\s*$/.test(this.base.toString()))}draw(){const t=this.parent.context;this.base.update(),this.base.paragraphs.forEach(e=>{e.fragments.forEach(i=>{i.characters.forEach(A=>{t.fillStyle=A.computedStyle.color,t.addPath(A.path),t.style.fillRule="evenodd",t.closePath(),t.fill()})})})}}zA([_({fallback:!0})],Si.prototype,"enabled"),zA([_({alias:"base.content",fallback:()=>[]})],Si.prototype,"content"),zA([_({alias:"base.effects"})],Si.prototype,"effects"),zA([_({protected:!0,alias:"base.measureDOM"})],Si.prototype,"measureDOM"),zA([_({protected:!0,alias:"base.fonts"})],Si.prototype,"fonts");var XI=Object.defineProperty,jI=Object.getOwnPropertyDescriptor,Fn=(r,t,e,i)=>{for(var A=i>1?void 0:i?jI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&XI(t,e,A),A};g.Node2D=class extends g.CanvasItem{position=new le().on("update",()=>this.updateGlobalTransform());scale=new le(1,1).on("update",()=>this.updateGlobalTransform());skew=new le().on("update",()=>this.updateGlobalTransform());transform=new Vt;globalPosition=new le;globalScale=new le;globalSkew=new le;globalTransform=new Vt;_parentTransformDirtyId;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"rotation":this.updateGlobalTransform();break}}getTransformOrigin(){return new le(0,0)}getTransform(t){const e=this.getTransformOrigin(),i=new Vt;return i.translate(-e.x,-e.y).scale(this.scale.x,this.scale.y).skew(this.skew.x,this.skew.y).rotate(this.rotation),t?.(i),i.translate(this.position.x,this.position.y).translate(e.x,e.y),i}updateTransform(){this.transform.copy(this.getTransform())}updateGlobalTransform(){this.updateTransform();const t=this.getParent();t?.globalTransform?(this._parentTransformDirtyId=t.globalTransform.dirtyId,this.globalScale.set(t.globalScale.x*this.scale.x,t.globalScale.y*this.scale.y),this.globalRotation=t.globalRotation+this.rotation,t.globalTransform.multiply(this.transform,this.globalTransform)):(this.globalScale.copy(this.scale),this.globalRotation=this.rotation,this.globalTransform.copy(this.transform));const[e,i,A,s,n,o]=this.globalTransform.toArray();this.globalPosition.set(A,o),this.globalSkew.x=Math.atan2(i,e)-this.globalRotation,this.globalSkew.y=Math.atan2(s,n)-this.globalRotation,this.requestRelayout()}_transformVertices(t,e){let i,A,s,n,o,a;if(e){const c=this.globalTransform.clone();c.multiply(typeof e=="function"?e?.():e),[i,A,s,n,o,a]=c.toArray()}else[i,A,s,n,o,a]=this.globalTransform.toArray();const l=t.slice();for(let c=t.length,h=0;h<c;h+=2){const u=t[h],d=t[h+1];l[h]=i*u+A*d+s,l[h+1]=n*u+o*d+a}return l}_relayout(t){return this.updateGlobalTransform(),super._relayout(t).map(e=>({...e,vertices:this._transformVertices(e.vertices,e.vertTransform)}))}_process(t){super._process(t);const e=this.getParent();e?.globalTransform&&this._parentTransformDirtyId!==e?.globalTransform?.dirtyId&&this.requestRelayout()}},Fn([_({protected:!0,fallback:0})],g.Node2D.prototype,"rotation",2),Fn([_({protected:!0,fallback:0})],g.Node2D.prototype,"globalRotation",2),g.Node2D=Fn([nt("Node2D")],g.Node2D);var ZI=Object.getOwnPropertyDescriptor,$I=(r,t,e,i)=>{for(var A=i>1?void 0:i?ZI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.BaseElement2D=class extends g.Node2D{size=new le().on("update",()=>this.updateGlobalTransform());get style(){return this._style}set style(t){const e=(...i)=>{this.emit("updateStyleProperty",...i),this._updateStyleProperty(i[0],i[1],i[2],i[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}_background=new en(this);get background(){return this._background}set background(t){this._background.resetProperties().setProperties(t)}_shape=new wi(this);get shape(){return this._shape}set shape(t){this._shape.resetProperties().setProperties(t)}_fill=new zt(this);get fill(){return this._fill}set fill(t){this._fill.resetProperties().setProperties(t)}_outline=new DA(this);get outline(){return this._outline}set outline(t){this._outline.resetProperties().setProperties(t)}_foreground=new An(this);get foreground(){return this._foreground}set foreground(t){this._foreground.resetProperties().setProperties(t)}_text=new Si(this);get text(){return this._text}set text(t){this._text.resetProperties().setProperties(t)}_shadow=new mi(this);get shadow(){return this._shadow}set shadow(t){this._shadow.resetProperties().setProperties(t)}constructor(t,e=[]){super(),this._updateStyleProperty=this._updateStyleProperty.bind(this),this.style=new MA,this.setProperties(t).append(e)}setProperties(t){if(t){const{style:e,text:i,shape:A,background:s,fill:n,outline:o,foreground:a,shadow:l,...c}=t;e&&this.style.setProperties(e),s&&this.background.setProperties(s),A&&this.shape.setProperties(A),n&&this.fill.setProperties(n),o&&this.outline.setProperties(o),i&&this.text.setProperties(i),a&&this.foreground.setProperties(a),l&&this.shadow.setProperties(l),super.setProperties(c)}return this}_updateStyleProperty(t,e,i,A){switch(t){case"width":case"height":this.mask instanceof g.BaseElement2D&&(this.mask.size.x=this.size.x,this.mask.size.y=this.size.y);break}switch(t){case"rotate":this.rotation=this.style.rotate*Oo;break;case"scaleX":this.scale.x=this.style.scaleX;break;case"scaleY":this.scale.y=this.style.scaleY;break;case"skewX":this.skew.x=this.style.skewX;break;case"skewY":this.skew.y=this.style.skewY;break;case"transform":case"transformOrigin":this.updateGlobalTransform();break;case"opacity":this.opacity=this.style.opacity;break;case"visibility":this.visible=this.style.visibility==="visible";break;case"filter":this.requestRepaint();break;case"maskImage":this._updateMaskImage();break;case"borderRadius":this.requestRedraw();break;case"backgroundColor":this.background.color=this.style.backgroundColor;break;case"backgroundImage":this.background.image=this.style.backgroundImage;break;case"borderStyle":case"outlineStyle":this.outline.style=e;break;case"borderWidth":case"outlineWidth":this.outline.width=e;break;case"borderColor":case"outlineColor":this.outline.color=e;break}}_updateMaskImage(){const t="__$style.maskImage",e=this.style.maskImage;if(e&&e!=="none"){const i=this.getNode(t);i?i.src=e:this.appendChild(new g.MaskEffect({name:t,src:e}),"back")}else{const i=this.getNode(t);i&&this.removeChild(i)}}getTransformOrigin(){const{width:t,height:e}=this.size,[i,A]=la(this.style.transformOrigin);return new le(i*t,A*e)}getTransform(t){const{width:e,height:i}=this.size;return super.getTransform(A=>{aa(this.style.transform??"",e,i,A),t?.(A)})}updateGlobalTransform(){super.updateGlobalTransform(),this._updateOverflow()}getRect(){const{width:t,height:e}=this.size,i=0,A=0,s=i+t,n=A+e,[o,a,l,c,h,u]=this.globalTransform.toArray(),d=[[i,A],[i,n],[s,A],[s,n]].map(S=>[o*S[0]+a*S[1]+l,c*S[0]+h*S[1]+u]),f=d.map(S=>S[0]),B=d.map(S=>S[1]),p=Math.min(...f),R=Math.max(...f),P=Math.min(...B),y=Math.max(...B);return new Ms(p,P,R-p,y-P)}_updateOverflow(){if(this.style.overflow==="hidden"){const t=this.getRect();this.mask={x:t.x,y:t.y,width:t.width,height:t.height}}else this.mask=void 0}_draw(){super._draw(),this._text.canDraw()&&this._text.updateMeasure(),this._background.canDraw()&&(this._tree?.log(this.name,"background drawing"),this._shape.drawRect(),this._background.draw()),this._fill.canDraw()&&(this._tree?.log(this.name,"fill drawing"),this._shape.draw(),this._fill.draw()),this._outline.canDraw()&&(this._tree?.log(this.name,"outline drawing"),this._shape.draw(),this._outline.draw()),this._foreground.canDraw()&&(this._tree?.log(this.name,"foreground drawing"),this._shape.drawRect(),this._foreground.draw()),this._text.canDraw()&&(this._tree?.log(this.name,"text drawing"),this._text.draw()),this._drawContent()}_drawContent(){}_repaint(t){const e=oa(this.style.filter);return super._repaint(t).map(i=>({...i,colorMatrix:e.toMatrix4().toArray(!0),colorMatrixOffset:e.toVector4().toArray()}))}canPointerEvents(){return this.style.pointerEvents!=="none"}input(t,e){for(let i=this._children.length-1;i>=0;i--)this._children[i].input(t,e);this.isVisibleInTree()&&this._input(t,e)}_pointerInput(t,e){const{width:i,height:A}=this.size;return t.x>=0&&t.x<i&&t.y>=0&&t.y<A}_input(t,e){switch(e){case"pointerdown":case"pointermove":case"pointerup":{if(this.canPointerEvents()){const{screenX:i,screenY:A}=t;if(i&&A){const[s,n]=this.globalTransform.inverse().applyToPoint(i,A);this._pointerInput({x:s,y:n},e)&&(t.target||(t.target=this),this.emit(e,t))}}break}}}toJSON(){const t=e=>Object.keys(e).length>0?e:void 0;return nA({...super.toJSON(),style:t(this.style.toJSON()),background:t(this.background.toJSON()),shape:t(this.shape.toJSON()),fill:t(this.fill.toJSON()),outline:t(this.outline.toJSON()),text:t(this.text.toJSON()),foreground:t(this.foreground.toJSON()),shadow:t(this.shadow.toJSON())})}},g.BaseElement2D=$I([nt("BaseElement2D")],g.BaseElement2D);class Tn extends MA{constructor(t){super(),this.setProperties(t)}}const Gl={left:0,top:0,width:0,height:0};for(const r in Gl)Ar(Tn.prototype,r,{fallback:Gl[r]});var tp=Object.getOwnPropertyDescriptor,ep=(r,t,e,i)=>{for(var A=i>1?void 0:i?tp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.Element2D=class extends g.BaseElement2D{get style(){return this._style}set style(t){const e=(...i)=>{this.emit("updateStyleProperty",...i),this._updateStyleProperty(i[0],i[1],i[2],i[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}constructor(t,e=[]){super(),this.style=new Tn,this.setProperties(t).append(e)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"left":this.position.x=Number(e);break;case"top":this.position.y=Number(e);break;case"width":this.size.width=Number(e);break;case"height":this.size.height=Number(e);break}}},g.Element2D=ep([nt("Element2D")],g.Element2D);var ip=(()=>{var r=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:pi&&pi.tagName.toUpperCase()==="SCRIPT"&&pi.src||new URL("index.js",document.baseURI).href;return function(t){t=t||{};var e;e||(e=typeof t<"u"?t:{});var i,A;e.ready=new Promise(function(I,E){i=I,A=E});var s=Object.assign({},e),n="";typeof document<"u"&&document.currentScript&&(n=document.currentScript.src),r&&(n=r),n.indexOf("blob:")!==0?n=n.substr(0,n.replace(/[?#].*/,"").lastIndexOf("/")+1):n="";var o=e.print||console.log.bind(console),a=e.printErr||console.warn.bind(console);Object.assign(e,s),s=null;var l;e.wasmBinary&&(l=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&H("no native wasm support detected");var c,h=!1;function u(I,E,C){C=E+C;for(var v="";!(E>=C);){var x=I[E++];if(!x)break;if(x&128){var U=I[E++]&63;if((x&224)==192)v+=String.fromCharCode((x&31)<<6|U);else{var T=I[E++]&63;x=(x&240)==224?(x&15)<<12|U<<6|T:(x&7)<<18|U<<12|T<<6|I[E++]&63,65536>x?v+=String.fromCharCode(x):(x-=65536,v+=String.fromCharCode(55296|x>>10,56320|x&1023))}}else v+=String.fromCharCode(x)}return v}var d,f,B,p,R,P,y,S,Q;function m(){var I=c.buffer;d=I,e.HEAP8=f=new Int8Array(I),e.HEAP16=p=new Int16Array(I),e.HEAP32=P=new Int32Array(I),e.HEAPU8=B=new Uint8Array(I),e.HEAPU16=R=new Uint16Array(I),e.HEAPU32=y=new Uint32Array(I),e.HEAPF32=S=new Float32Array(I),e.HEAPF64=Q=new Float64Array(I)}var M,k=[],W=[],it=[];function q(){var I=e.preRun.shift();k.unshift(I)}var Y=0,et=null;function H(I){throw e.onAbort&&e.onAbort(I),I="Aborted("+I+")",a(I),h=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),A(I),I}function L(I){return I.startsWith("data:application/octet-stream;base64,")}var rt;if(rt="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByANayIHIA5B/////wdzIhhKDQcgAARAIAAgDSAHECYLIAcNBiAIIAE2AkwgAUEBaiEHQX8hEgJAIAEsAAEiChBXRQ0AIAEtAAJBJEcNACABQQNqIQcgCkEwayESQQEhFQsgCCAHNgJMQQAhDAJAIAcsAAAiCUEgayIBQR9LBEAgByEKDAELIAchCkEBIAF0IgFBidEEcUUNAANAIAggB0EBaiIKNgJMIAEgDHIhDCAHLAABIglBIGsiAUEgTw0BIAohB0EBIAF0IgFBidEEcQ0ACwsCQCAJQSpGBEACfwJAIAosAAEiARBXRQ0AIAotAAJBJEcNACABQQJ0IARqQcABa0EKNgIAIApBA2ohCUEBIRUgCiwAAUEDdCADakGAA2soAgAMAQsgFQ0GIApBAWohCSAARQRAIAggCTYCTEEAIRVBACETDAMLIAIgAigCACIBQQRqNgIAQQAhFSABKAIACyETIAggCTYCTCATQQBODQFBACATayETIAxBgMAAciEMDAELIAhBzABqEIkBIhNBAEgNCCAIKAJMIQkLQQAhB0F/IQsCfyAJLQAAQS5HBEAgCSEBQQAMAQsgCS0AAUEqRgRAAn8CQCAJLAACIgEQV0UNACAJLQADQSRHDQAgAUECdCAEakHAAWtBCjYCACAJQQRqIQEgCSwAAkEDdCADakGAA2soAgAMAQsgFQ0GIAlBAmohAUEAIABFDQAaIAIgAigCACIKQQRqNgIAIAooAgALIQsgCCABNgJMIAtBf3NBH3YMAQsgCCAJQQFqNgJMIAhBzABqEIkBIQsgCCgCTCEBQQELIQ8DQCAHIRFBHCEKIAEiECwAACIHQfsAa0FGSQ0JIBBBAWohASAHIBFBOmxqQf8qai0AACIHQQFrQQhJDQALIAggATYCTAJAAkAgB0EbRwRAIAdFDQsgEkEATgRAIAQgEkECdGogBzYCACAIIAMgEkEDdGopAwA3A0AMAgsgAEUNCCAIQUBrIAcgAiAGEIcBDAILIBJBAE4NCgtBACEHIABFDQcLIAxB//97cSIJIAwgDEGAwABxGyEMQQAhEkGPCSEWIBQhCgJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAkACQAJAIBAsAAAiB0FfcSAHIAdBD3FBA0YbIAcgERsiB0HYAGsOIQQUFBQUFBQUFA4UDwYODg4UBhQUFBQCBQMUFAkUARQUBAALAkAgB0HBAGsOBw4UCxQODg4ACyAHQdMARg0JDBMLIAgpA0AhGUGPCQwFC0EAIQcCQAJAAkACQAJAAkACQCARQf8BcQ4IAAECAwQaBQYaCyAIKAJAIA42AgAMGQsgCCgCQCAONgIADBgLIAgoAkAgDqw3AwAMFwsgCCgCQCAOOwEADBYLIAgoAkAgDjoAAAwVCyAIKAJAIA42AgAMFAsgCCgCQCAOrDcDAAwTC0EIIAsgC0EITRshCyAMQQhyIQxB+AAhBwsgFCENIAgpA0AiGVBFBEAgB0EgcSEQA0AgDUEBayINIBmnQQ9xQZAvai0AACAQcjoAACAZQg9WIQkgGUIEiCEZIAkNAAsLIAxBCHFFIAgpA0BQcg0DIAdBBHZBjwlqIRZBAiESDAMLIBQhByAIKQNAIhlQRQRAA0AgB0EBayIHIBmnQQdxQTByOgAAIBlCB1YhDSAZQgOIIRkgDQ0ACwsgByENIAxBCHFFDQIgCyAUIA1rIgdBAWogByALSBshCwwCCyAIKQNAIhlCAFMEQCAIQgAgGX0iGTcDQEEBIRJBjwkMAQsgDEGAEHEEQEEBIRJBkAkMAQtBkQlBjwkgDEEBcSISGwshFiAZIBQQRyENCyAPQQAgC0EASBsNDiAMQf//e3EgDCAPGyEMIAgpA0AiGUIAUiALckUEQCAUIQ1BACELDAwLIAsgGVAgFCANa2oiByAHIAtIGyELDAsLQQAhDAJ/Qf////8HIAsgC0H/////B08bIgoiEUEARyEQAkACfwJAAkAgCCgCQCIHQY4lIAcbIg0iD0EDcUUgEUVyDQADQCAPLQAAIgxFDQIgEUEBayIRQQBHIRAgD0EBaiIPQQNxRQ0BIBENAAsLIBBFDQICQCAPLQAARSARQQRJckUEQANAIA8oAgAiB0F/cyAHQYGChAhrcUGAgYKEeHENAiAPQQRqIQ8gEUEEayIRQQNLDQALCyARRQ0DC0EADAELQQELIRADQCAQRQRAIA8tAAAhDEEBIRAMAQsgDyAMRQ0CGiAPQQFqIQ8gEUEBayIRRQ0BQQAhEAwACwALQQALIgcgDWsgCiAHGyIHIA1qIQogC0EATgRAIAkhDCAHIQsMCwsgCSEMIAchCyAKLQAADQ0MCgsgCwRAIAgoAkAMAgtBACEHIABBICATQQAgDBApDAILIAhBADYCDCAIIAgpA0A+AgggCCAIQQhqIgc2AkBBfyELIAcLIQlBACEHAkADQCAJKAIAIg1FDQEgCEEEaiANEIYBIgpBAEgiDSAKIAsgB2tLckUEQCAJQQRqIQkgCyAHIApqIgdLDQEMAgsLIA0NDQtBPSEKIAdBAEgNCyAAQSAgEyAHIAwQKSAHRQRAQQAhBwwBC0EAIQogCCgCQCEJA0AgCSgCACINRQ0BIAhBBGogDRCGASINIApqIgogB0sNASAAIAhBBGogDRAmIAlBBGohCSAHIApLDQALCyAAQSAgEyAHIAxBgMAAcxApIBMgByAHIBNIGyEHDAgLIA9BACALQQBIGw0IQT0hCiAAIAgrA0AgEyALIAwgByAFERwAIgdBAE4NBwwJCyAIIAgpA0A8ADdBASELIBchDSAJIQwMBAsgBy0AASEJIAdBAWohBwwACwALIAANByAVRQ0CQQEhBwNAIAQgB0ECdGooAgAiAARAIAMgB0EDdGogACACIAYQhwFBASEOIAdBAWoiB0EKRw0BDAkLC0EBIQ4gB0EKTw0HA0AgBCAHQQJ0aigCAA0BIAdBAWoiB0EKRw0ACwwHC0EcIQoMBAsgCyAKIA1rIhAgCyAQShsiCSASQf////8Hc0oNAkE9IQogEyAJIBJqIgsgCyATSBsiByAYSg0DIABBICAHIAsgDBApIAAgFiASECYgAEEwIAcgCyAMQYCABHMQKSAAQTAgCSAQQQAQKSAAIA0gEBAmIABBICAHIAsgDEGAwABzECkMAQsLQQAhDgwDC0E9IQoLQfw7IAo2AgALQX8hDgsgCEHQAGokACAOC9kCAQR/IwBB0AFrIgUkACAFIAI2AswBIAVBoAFqIgJBAEEoECoaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAIgAyAEEIoBQQBIBEBBfyEEDAELQQEgBiAAKAJMQQBOGyEGIAAoAgAhByAAKAJIQQBMBEAgACAHQV9xNgIACwJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQggACAFNgIsDAELIAAoAhANAQtBfyAAEJ0BDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEIoBCyECIAgEQCAAQQBBACAAKAIkEQYAGiAAQQA2AjAgACAINgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAHQSBxcjYCAEF/IAIgAEEgcRshBCAGRQ0ACyAFQdABaiQAIAQLfwIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQjAEhACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwsVACAARQRAQQAPC0H8OyAANgIAQX8LzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBxABqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC9EDAEHUO0GoHBAcQdU7QYoWQQFBAUEAEBtB1jtB/RJBAUGAf0H/ABAEQdc7QfYSQQFBgH9B/wAQBEHYO0H0EkEBQQBB/wEQBEHZO0GUCkECQYCAfkH//wEQBEHaO0GLCkECQQBB//8DEARB2ztBsQpBBEGAgICAeEH/////BxAEQdw7QagKQQRBAEF/EARB3TtB+BhBBEGAgICAeEH/////BxAEQd47Qe8YQQRBAEF/EARB3ztBjxBCgICAgICAgICAf0L///////////8AEIQBQeA7QY4QQgBCfxCEAUHhO0GIEEEEEA1B4jtB9BtBCBANQeM7QaQZEA5B5DtBmSIQDkHlO0EEQZcZEAhB5jtBAkGwGRAIQec7QQRBvxkQCEHoO0GPFhAaQek7QQBB1CEQAUHqO0EAQboiEAFB6ztBAUHyIRABQew7QQJB5B4QAUHtO0EDQYMfEAFB7jtBBEGrHxABQe87QQVByB8QAUHwO0EEQd8iEAFB8TtBBUH9IhABQeo7QQBBriAQAUHrO0EBQY0gEAFB7DtBAkHwIBABQe07QQNBziAQAUHuO0EEQbMhEAFB7ztBBUGRIRABQfI7QQZB7h8QAUHzO0EHQaQjEAELJQAgAEH0JjYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAsDAAALJQAgAEHsJzYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEGjOyAAQeI7QfooQcEBIAJB4jtB/ihBwgEgAxAHCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRBQALOQEBfyABIAAoAgQiBEEBdWohASAAKAIAIQAgASACIAMgBEEBcQR/IAEoAgAgAGooAgAFIAALEQMACwkAIAEgABEAAAsHACAAEQ4ACzUBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAIAEgAkEBcQR/IAEoAgAgAGooAgAFIAALEQAACzABAX8jAEEQayICJAAgAiABNgIIIAJBCGogABECACEAIAIoAggQBiACQRBqJAAgAAsMACABIAAoAgARAAALCQAgAEEBOgAEC9coAQJ/QaA7QaE7QaI7QQBBjCZBB0GPJkEAQY8mQQBB2RZBkSZBCBAFQQgQHiIAQoiAgIAQNwMAQaA7QZcbQQZBoCZBuCZBCSAAQQEQAEGkO0GlO0GmO0GgO0GMJkEKQYwmQQtBjCZBDEG4EUGRJkENEAVBBBAeIgBBDjYCAEGkO0HoFEECQcAmQcgmQQ8gAEEAEABBoDtBowxBAkHMJkHUJkEQQREQA0GgO0GAHEEDQaQnQbAnQRJBExADQbg7Qbk7Qbo7QQBBjCZBFEGPJkEAQY8mQQBB6RZBkSZBFRAFQQgQHiIAQoiAgIAQNwMAQbg7QegcQQJBuCdByCZBFiAAQQEQAEG7O0G8O0G9O0G4O0GMJkEXQYwmQRhBjCZBGUHPEUGRJkEaEAVBBBAeIgBBGzYCAEG7O0HoFEECQcAnQcgmQRwgAEEAEABBuDtBowxBAkHIJ0HUJkEdQR4QA0G4O0GAHEEDQaQnQbAnQRJBHxADQb47Qb87QcA7QQBBjCZBIEGPJkEAQY8mQQBB2hpBkSZBIRAFQb47QQFB+CdBjCZBIkEjEA9BvjtBkBtBAUH4J0GMJkEiQSMQA0G+O0HpCEECQfwnQcgmQSRBJRADQQgQHiIAQQA2AgQgAEEmNgIAQb47Qa0cQQRBkChBoChBJyAAQQAQAEEIEB4iAEEANgIEIABBKDYCAEG+O0GkEUEDQagoQbQoQSkgAEEAEABBCBAeIgBBADYCBCAAQSo2AgBBvjtByB1BA0G8KEHIKEErIABBABAAQQgQHiIAQQA2AgQgAEEsNgIAQb47QaYQQQNB0ChByChBLSAAQQAQAEEIEB4iAEEANgIEIABBLjYCAEG+O0HLHEEDQdwoQbAnQS8gAEEAEABBCBAeIgBBADYCBCAAQTA2AgBBvjtB0h1BAkHoKEHUJkExIABBABAAQQgQHiIAQQA2AgQgAEEyNgIAQb47QZcQQQJB8ChB1CZBMyAAQQAQAEHBO0GECkH4KEE0QZEmQTUQCkHiD0EAEEhB6g5BCBBIQYITQRAQSEHxFUEYEEhBgxdBIBBIQfAOQSgQSEHBOxAJQaM7Qf8aQfgoQTZBkSZBNxAKQYMXQQAQkwFB8A5BCBCTAUGjOxAJQcI7QYobQfgoQThBkSZBORAKQQQQHiIAQQg2AgBBBBAeIgFBCDYCAEHCO0GEG0HiO0H6KEE6IABB4jtB/ihBOyABEAdBBBAeIgBBADYCAEEEEB4iAUEANgIAQcI7QeUOQds7QdQmQTwgAEHbO0HIKEE9IAEQB0HCOxAJQcM7QcQ7QcU7QQBBjCZBPkGPJkEAQY8mQQBB+xtBkSZBPxAFQcM7QQFBhClBjCZBwABBwQAQD0HDO0HXDkEBQYQpQYwmQcAAQcEAEANBwztB0BpBAkGIKUHUJkHCAEHDABADQcM7QekIQQJBkClByCZBxABBxQAQA0EIEB4iAEEANgIEIABBxgA2AgBBwztB9w9BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABByAA2AgBBwztB6htBA0GYKUHIKEHJACAAQQAQAEEIEB4iAEEANgIEIABBygA2AgBBwztBnxtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABBzAA2AgBBwztB0BRBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzgA2AgBBwztBiA1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzwA2AgBBwztB3RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0AA2AgBBwztB+QtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0QA2AgBBwztBuBBBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0gA2AgBBwztB5RpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0wA2AgBBwztB/BRBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1AA2AgBBwztBlRNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1QA2AgBBwztBtQpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1gA2AgBBwztBuBVBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB1wA2AgBBwztBmw1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB2AA2AgBBwztB7RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2QA2AgBBwztBxAlBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2gA2AgBBwztB8QhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2wA2AgBBwztBhwlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3QA2AgBBwztB1BBBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3gA2AgBBwztB5gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3wA2AgBBwztBzBNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB4AA2AgBBwztBrAlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4QA2AgBBwztBnxZBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4gA2AgBBwztBoRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4wA2AgBBwztBvw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5AA2AgBBwztB+xNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB5QA2AgBBwztBkQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5gA2AgBBwztBwQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5wA2AgBBwztBvhNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB6AA2AgBBwztBsxdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6QA2AgBBwztBzw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6gA2AgBBwztBpQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6wA2AgBBwztB0gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7AA2AgBBwztBiRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7QA2AgBBwztBrA1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7gA2AgBBwztB9w5BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7wA2AgBBwztBrQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8AA2AgBBwztB/RhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB8QA2AgBBwztBshRBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8gA2AgBBwztBlBJBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB8wA2AgBBwztBzhlBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9AA2AgBBwztB4g1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9QA2AgBBwztBrRNBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9gA2AgBBwztB+gxBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9wA2AgBBwztBnhVBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB+AA2AgBBwztBrxtBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB+gA2AgBBwztB3BRBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABB/AA2AgBBwztBiQxBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/QA2AgBBwztBxhBBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/gA2AgBBwztB8hpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/wA2AgBBwztBjRVBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgAE2AgBBwztBoRNBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgQE2AgBBwztBxwpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBggE2AgBBwztBwhVBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBgwE2AgBBwztB4RBBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBhQE2AgBBwztBuAlBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBhwE2AgBBwztBrRZBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBiAE2AgBBwztBqhdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiQE2AgBBwztBmw9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBigE2AgBBwztBvxdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiwE2AgBBwztBsg9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjAE2AgBBwztBlRdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjQE2AgBBwztBhA9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjgE2AgBBwztBihlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBjwE2AgBBwztBwRRBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBkAE2AgBBwztBnhJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBkgE2AgBBwztB0AlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBkwE2AgBBwztB/AhBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBlAE2AgBBwztB2RlBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBlQE2AgBBwztBtBNBA0GMKkGYKkGWASAAQQAQAEEIEB4iAEEANgIEIABBlwE2AgBBwztBhxxBBEGgKkGgKEGYASAAQQAQAEEIEB4iAEEANgIEIABBmQE2AgBBwztBnBxBA0GwKkHIKEGaASAAQQAQAEEIEB4iAEEANgIEIABBmwE2AgBBwztBmgpBAkG8KkHUJkGcASAAQQAQAEEIEB4iAEEANgIEIABBnQE2AgBBwztBmQxBAkHEKkHUJkGeASAAQQAQAEEIEB4iAEEANgIEIABBnwE2AgBBwztBkxxBA0HMKkGwJ0GgASAAQQAQAEEIEB4iAEEANgIEIABBoQE2AgBBwztBuxZBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBowE2AgBBwztBvxtBAkHkKkHUJkGkASAAQQAQAEEIEB4iAEEANgIEIABBpQE2AgBBwztB0xtBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBpgE2AgBBwztBqB1BA0HsKkHIKEGnASAAQQAQAEEIEB4iAEEANgIEIABBqAE2AgBBwztBph1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBqQE2AgBBwztBuR1BA0H4KkHIKEGqASAAQQAQAEEIEB4iAEEANgIEIABBqwE2AgBBwztBtx1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrAE2AgBBwztB3whBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrQE2AgBBwztB1whBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBrwE2AgBBwztB3hVBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBsAE2AgBBwztB3AlBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBsQE2AgBBwztB6QlBBUGQK0GkK0GyASAAQQAQAEEIEB4iAEEANgIEIABBswE2AgBBwztB5w9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtAE2AgBBwztB0Q9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtQE2AgBBwztBhhNBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtgE2AgBBwztB+BVBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtwE2AgBBwztByxdBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuAE2AgBBwztBvw9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuQE2AgBBwztB+QlBAkGsK0HUJkG6ASAAQQAQAEEIEB4iAEEANgIEIABBuwE2AgBBwztBzBVBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvAE2AgBBwztBqBJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvQE2AgBBwztB5BlBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvgE2AgBBwztBqxVBAkHUKUHUJkH5ACAAQQAQAAtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAtHAAJAIAFBA00EfyAAIAFBAnRqQQRqBSABQQRrIgEgACgCGCIAKAIEIAAoAgAiAGtBAnVPDQEgACABQQJ0agsoAgAPCxACAAs4AQF/IAFBAEgEQBACAAsgAUEBa0EFdkEBaiIBQQJ0EB4hAiAAIAE2AgggAEEANgIEIAAgAjYCAAvSBQEJfyAAIAEvAQA7AQAgACABKQIENwIEIAAgASkCDDcCDCAAIAEoAhQ2AhQCQAJAIAEoAhgiA0UNAEEYEB4iBUEANgIIIAVCADcCACADKAIEIgEgAygCACICRwRAIAEgAmsiAkEASA0CIAUgAhAeIgE2AgAgBSABIAJqNgIIIAMoAgAiAiADKAIEIgZHBEADQCABIAIoAgA2AgAgAUEEaiEBIAJBBGoiAiAGRw0ACwsgBSABNgIECyAFQgA3AgwgBUEANgIUIAMoAhAiAUUNACAFQQxqIAEQnwEgAygCDCEGIAUgBSgCECIEIAMoAhAiAkEfcWogAkFgcWoiATYCEAJAAkAgBEUEQCABQQFrIQMMAQsgAUEBayIDIARBAWtzQSBJDQELIAUoAgwgA0EFdkEAIAFBIU8bQQJ0akEANgIACyAFKAIMIARBA3ZB/P///wFxaiEBIARBH3EiA0UEQCACQQBMDQEgAkEgbSEDIAJBH2pBP08EQCABIAYgA0ECdBAzGgsgAiADQQV0ayICQQBMDQEgASADQQJ0IgNqIgEgASgCAEF/QSAgAmt2IgFBf3NxIAMgBmooAgAgAXFyNgIADAELIAJBAEwNAEF/IAN0IQhBICADayEEIAJBIE4EQCAIQX9zIQkgASgCACEHA0AgASAHIAlxIAYoAgAiByADdHI2AgAgASABKAIEIAhxIAcgBHZyIgc2AgQgBkEEaiEGIAFBBGohASACQT9LIQogAkEgayECIAoNAAsgAkEATA0BCyABIAEoAgBBfyAEIAQgAiACIARKGyIEa3YgCHFBf3NxIAYoAgBBf0EgIAJrdnEiBiADdHI2AgAgAiAEayICQQBMDQAgASADIARqQQN2Qfz///8BcWoiASABKAIAQX9BICACa3ZBf3NxIAYgBHZyNgIACyAAKAIYIQEgACAFNgIYIAEEQCABEFsLDwsQAgALvQMBB38gAARAIwBBIGsiBiQAIAAoAgAiASgC5AMiAwRAIAMgARBvGiABQQA2AuQDCyABKALsAyICIAEoAugDIgNHBEBBASACIANrQQJ1IgIgAkEBTRshBEEAIQIDQCADIAJBAnRqKAIAQQA2AuQDIAJBAWoiAiAERw0ACwsgASADNgLsAwJAIAMgAUHwA2oiAigCAEYNACAGQQhqQQBBACACEEoiAigCBCABKALsAyABKALoAyIEayIFayIDIAQgBRAzIQUgASgC6AMhBCABIAU2AugDIAIgBDYCBCABKALsAyEFIAEgAigCCDYC7AMgAiAFNgIIIAEoAvADIQcgASACKAIMNgLwAyACIAQ2AgAgAiAHNgIMIAQgBUcEQCACIAUgBCAFa0EDakF8cWo2AggLIARFDQAgBBAnIAEoAugDIQMLIAMEQCABIAM2AuwDIAMQJwsgASgClAEhAyABQQA2ApQBIAMEQCADEFsLIAEQJyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgQhASAAQQA2AgQgAQRAIAEgASgCACgCBBEAAAsgBkEgaiQAIAAQIwsLtQEBAX8jAEEQayICJAACfyABBEAgASgCACEBQYgEEB4gARBcIAENARogAkH3GTYCACACEHIQJAALQZQ7LQAARQRAQfg6QQM2AgBBiDtCgICAgICAgMA/NwIAQYA7QgA3AgBBlDtBAToAAEH8OkH8Oi0AAEH+AXE6AABB9DpBADYCAEGQO0EANgIAC0GIBBAeQfQ6EFwLIQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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",!L(rt)){var O=rt;rt=e.locateFile?e.locateFile(O,n):n+O}function X(){var I=rt;try{if(I==rt&&l)return new Uint8Array(l);if(L(I))try{var E=GE(I.slice(37)),C=new Uint8Array(E.length);for(I=0;I<E.length;++I)C[I]=E.charCodeAt(I);var v=C}catch{throw Error("Converting base64 string to bytes failed.")}else v=void 0;var x=v;if(x)return x;throw"both async and sync fetching of the wasm failed"}catch(U){H(U)}}function j(){return l||typeof fetch!="function"?Promise.resolve().then(function(){return X()}):fetch(rt,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+rt+"'";return I.arrayBuffer()}).catch(function(){return X()})}function N(I){for(;0<I.length;)I.shift()(e)}function tt(I){if(I===void 0)return"_unknown";I=I.replace(/[^a-zA-Z0-9_]/g,"$");var E=I.charCodeAt(0);return 48<=E&&57>=E?"_"+I:I}function b(I,E){return I=tt(I),function(){return E.apply(this,arguments)}}var D=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function V(I){var E=Error,C=b(I,function(v){this.name=I,this.message=v,v=Error(v).stack,v!==void 0&&(this.stack=this.toString()+`
|
|
865
|
-
`+v.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(E.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},C}var At=void 0;function Z(I){throw new At(I)}var dt=I=>(I||Z("Cannot use deleted val. handle = "+I),D[I].value),re=I=>{switch(I){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var E=F.length?F.pop():D.length;return D[E]={ga:1,value:I},E}},se=void 0,Ft=void 0;function ct(I){for(var E="";B[I];)E+=Ft[B[I++]];return E}var Qt=[];function Tt(){for(;Qt.length;){var I=Qt.pop();I.M.$=!1,I.delete()}}var Kt=void 0,_t={};function $t(I,E){for(E===void 0&&Z("ptr should not be undefined");I.R;)E=I.ba(E),I=I.R;return E}var Te={};function jr(I){I=_c(I);var E=ct(I);return $e(I),E}function Kn(I,E){var C=Te[I];return C===void 0&&Z(E+" has unknown type "+jr(I)),C}function Zr(){}var Yn=!1;function Ec(I){--I.count.value,I.count.value===0&&(I.T?I.U.W(I.T):I.P.N.W(I.O))}function Bc(I,E,C){return E===C?I:C.R===void 0?null:(I=Bc(I,E,C.R),I===null?null:C.na(I))}var Cc={};function CE(I,E){return E=$t(I,E),_t[E]}var Qc=void 0;function $r(I){throw new Qc(I)}function ts(I,E){return E.P&&E.O||$r("makeClassHandle requires ptr and ptrType"),!!E.U!=!!E.T&&$r("Both smartPtrType and smartPtr must be specified"),E.count={value:1},AA(Object.create(I,{M:{value:E}}))}function AA(I){return typeof FinalizationRegistry>"u"?(AA=E=>E,I):(Yn=new FinalizationRegistry(E=>{Ec(E.M)}),AA=E=>{var C=E.M;return C.T&&Yn.register(E,{M:C},E),E},Zr=E=>{Yn.unregister(E)},AA(I))}var es={};function Vn(I){for(;I.length;){var E=I.pop();I.pop()(E)}}function jA(I){return this.fromWireType(P[I>>2])}var rA={},is={};function di(I,E,C){function v(G){G=C(G),G.length!==I.length&&$r("Mismatched type converter count");for(var z=0;z<I.length;++z)je(I[z],G[z])}I.forEach(function(G){is[G]=E});var x=Array(E.length),U=[],T=0;E.forEach((G,z)=>{Te.hasOwnProperty(G)?x[z]=Te[G]:(U.push(G),rA.hasOwnProperty(G)||(rA[G]=[]),rA[G].push(()=>{x[z]=Te[G],++T,T===U.length&&v(x)}))}),U.length===0&&v(x)}function zn(I){switch(I){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+I)}}function je(I,E,C={}){if(!("argPackAdvance"in E))throw new TypeError("registerType registeredInstance requires argPackAdvance");var v=E.name;if(I||Z('type "'+v+'" must have a positive integer typeid pointer'),Te.hasOwnProperty(I)){if(C.ua)return;Z("Cannot register type '"+v+"' twice")}Te[I]=E,delete is[I],rA.hasOwnProperty(I)&&(E=rA[I],delete rA[I],E.forEach(x=>x()))}function Wn(I){Z(I.M.P.N.name+" instance already deleted")}function Ii(){}function qn(I,E,C){if(I[E].S===void 0){var v=I[E];I[E]=function(){return I[E].S.hasOwnProperty(arguments.length)||Z("Function '"+C+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+I[E].S+")!"),I[E].S[arguments.length].apply(this,arguments)},I[E].S=[],I[E].S[v.Z]=v}}function QE(I,E){e.hasOwnProperty(I)?(Z("Cannot register public name '"+I+"' twice"),qn(e,I,I),e.hasOwnProperty(void 0)&&Z("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),e[I].S[void 0]=E):e[I]=E}function yE(I,E,C,v,x,U,T,G){this.name=I,this.constructor=E,this.X=C,this.W=v,this.R=x,this.pa=U,this.ba=T,this.na=G,this.ja=[]}function Xn(I,E,C){for(;E!==C;)E.ba||Z("Expected null or instance of "+C.name+", got an instance of "+E.name),I=E.ba(I),E=E.R;return I}function mE(I,E){return E===null?(this.ea&&Z("null is not a valid "+this.name),0):(E.M||Z('Cannot pass "'+to(E)+'" as a '+this.name),E.M.O||Z("Cannot pass deleted object as a pointer of type "+this.name),Xn(E.M.O,E.M.P.N,this.N))}function wE(I,E){if(E===null){if(this.ea&&Z("null is not a valid "+this.name),this.da){var C=this.fa();return I!==null&&I.push(this.W,C),C}return 0}if(E.M||Z('Cannot pass "'+to(E)+'" as a '+this.name),E.M.O||Z("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&E.M.P.ca&&Z("Cannot convert argument of type "+(E.M.U?E.M.U.name:E.M.P.name)+" to parameter type "+this.name),C=Xn(E.M.O,E.M.P.N,this.N),this.da)switch(E.M.T===void 0&&Z("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:E.M.U===this?C=E.M.T:Z("Cannot convert argument of type "+(E.M.U?E.M.U.name:E.M.P.name)+" to parameter type "+this.name);break;case 1:C=E.M.T;break;case 2:if(E.M.U===this)C=E.M.T;else{var v=E.clone();C=this.xa(C,re(function(){v.delete()})),I!==null&&I.push(this.W,C)}break;default:Z("Unsupporting sharing policy")}return C}function vE(I,E){return E===null?(this.ea&&Z("null is not a valid "+this.name),0):(E.M||Z('Cannot pass "'+to(E)+'" as a '+this.name),E.M.O||Z("Cannot pass deleted object as a pointer of type "+this.name),E.M.P.ca&&Z("Cannot convert argument of type "+E.M.P.name+" to parameter type "+this.name),Xn(E.M.O,E.M.P.N,this.N))}function Ze(I,E,C,v){this.name=I,this.N=E,this.ea=C,this.ca=v,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,E.R!==void 0?this.toWireType=wE:(this.toWireType=v?mE:vE,this.V=null)}function _E(I,E){e.hasOwnProperty(I)||$r("Replacing nonexistant public symbol"),e[I]=E,e[I].Z=void 0}function bE(I,E){var C=[];return function(){if(C.length=0,Object.assign(C,arguments),I.includes("j")){var v=e["dynCall_"+I];v=C&&C.length?v.apply(null,[E].concat(C)):v.call(null,E)}else v=M.get(E).apply(null,C);return v}}function ve(I,E){I=ct(I);var C=I.includes("j")?bE(I,E):M.get(E);return typeof C!="function"&&Z("unknown function pointer with signature "+I+": "+E),C}var yc=void 0;function As(I,E){function C(U){x[U]||Te[U]||(is[U]?is[U].forEach(C):(v.push(U),x[U]=!0))}var v=[],x={};throw E.forEach(C),new yc(I+": "+v.map(jr).join([", "]))}function jn(I,E,C,v,x){var U=E.length;2>U&&Z("argTypes array size mismatch! Must at least get return value and 'this' types!");var T=E[1]!==null&&C!==null,G=!1;for(C=1;C<E.length;++C)if(E[C]!==null&&E[C].V===void 0){G=!0;break}var z=E[0].name!=="void",K=U-2,$=Array(K),st=[],ht=[];return function(){if(arguments.length!==K&&Z("function "+I+" called with "+arguments.length+" arguments, expected "+K+" args!"),ht.length=0,st.length=T?2:1,st[0]=x,T){var St=E[1].toWireType(ht,this);st[1]=St}for(var ut=0;ut<K;++ut)$[ut]=E[ut+2].toWireType(ht,arguments[ut]),st.push($[ut]);if(ut=v.apply(null,st),G)Vn(ht);else for(var fe=T?1:2;fe<E.length;fe++){var _e=fe===1?St:$[fe-2];E[fe].V!==null&&E[fe].V(_e)}return St=z?E[0].fromWireType(ut):void 0,St}}function Zn(I,E){for(var C=[],v=0;v<I;v++)C.push(y[E+4*v>>2]);return C}function $n(I){4<I&&--D[I].ga===0&&(D[I]=void 0,F.push(I))}function to(I){if(I===null)return"null";var E=typeof I;return E==="object"||E==="array"||E==="function"?I.toString():""+I}function DE(I,E){switch(E){case 2:return function(C){return this.fromWireType(S[C>>2])};case 3:return function(C){return this.fromWireType(Q[C>>3])};default:throw new TypeError("Unknown float type: "+I)}}function xE(I,E,C){switch(E){case 0:return C?function(v){return f[v]}:function(v){return B[v]};case 1:return C?function(v){return p[v>>1]}:function(v){return R[v>>1]};case 2:return C?function(v){return P[v>>2]}:function(v){return y[v>>2]};default:throw new TypeError("Unknown integer type: "+I)}}function SE(I,E){for(var C="",v=0;!(v>=E/2);++v){var x=p[I+2*v>>1];if(x==0)break;C+=String.fromCharCode(x)}return C}function ME(I,E,C){if(C===void 0&&(C=2147483647),2>C)return 0;C-=2;var v=E;C=C<2*I.length?C/2:I.length;for(var x=0;x<C;++x)p[E>>1]=I.charCodeAt(x),E+=2;return p[E>>1]=0,E-v}function RE(I){return 2*I.length}function kE(I,E){for(var C=0,v="";!(C>=E/4);){var x=P[I+4*C>>2];if(x==0)break;++C,65536<=x?(x-=65536,v+=String.fromCharCode(55296|x>>10,56320|x&1023)):v+=String.fromCharCode(x)}return v}function PE(I,E,C){if(C===void 0&&(C=2147483647),4>C)return 0;var v=E;C=v+C-4;for(var x=0;x<I.length;++x){var U=I.charCodeAt(x);if(55296<=U&&57343>=U){var T=I.charCodeAt(++x);U=65536+((U&1023)<<10)|T&1023}if(P[E>>2]=U,E+=4,E+4>C)break}return P[E>>2]=0,E-v}function UE(I){for(var E=0,C=0;C<I.length;++C){var v=I.charCodeAt(C);55296<=v&&57343>=v&&++C,E+=4}return E}var NE={};function mc(I){var E=NE[I];return E===void 0?ct(I):E}var rs=[];function FE(I){var E=rs.length;return rs.push(I),E}function TE(I,E){for(var C=Array(I),v=0;v<I;++v)C[v]=Kn(y[E+4*v>>2],"parameter "+v);return C}var wc=[],LE=[null,[],[]];At=e.BindingError=V("BindingError"),e.count_emval_handles=function(){for(var I=0,E=5;E<D.length;++E)D[E]!==void 0&&++I;return I},e.get_first_emval=function(){for(var I=5;I<D.length;++I)if(D[I]!==void 0)return D[I];return null},se=e.PureVirtualError=V("PureVirtualError");for(var vc=Array(256),ss=0;256>ss;++ss)vc[ss]=String.fromCharCode(ss);Ft=vc,e.getInheritedInstanceCount=function(){return Object.keys(_t).length},e.getLiveInheritedInstances=function(){var I=[],E;for(E in _t)_t.hasOwnProperty(E)&&I.push(_t[E]);return I},e.flushPendingDeletes=Tt,e.setDelayFunction=function(I){Kt=I,Qt.length&&Kt&&Kt(Tt)},Qc=e.InternalError=V("InternalError"),Ii.prototype.isAliasOf=function(I){if(!(this instanceof Ii&&I instanceof Ii))return!1;var E=this.M.P.N,C=this.M.O,v=I.M.P.N;for(I=I.M.O;E.R;)C=E.ba(C),E=E.R;for(;v.R;)I=v.ba(I),v=v.R;return E===v&&C===I},Ii.prototype.clone=function(){if(this.M.O||Wn(this),this.M.aa)return this.M.count.value+=1,this;var I=AA,E=Object,C=E.create,v=Object.getPrototypeOf(this),x=this.M;return I=I(C.call(E,v,{M:{value:{count:x.count,$:x.$,aa:x.aa,O:x.O,P:x.P,T:x.T,U:x.U}}})),I.M.count.value+=1,I.M.$=!1,I},Ii.prototype.delete=function(){this.M.O||Wn(this),this.M.$&&!this.M.aa&&Z("Object already scheduled for deletion"),Zr(this),Ec(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Ii.prototype.isDeleted=function(){return!this.M.O},Ii.prototype.deleteLater=function(){return this.M.O||Wn(this),this.M.$&&!this.M.aa&&Z("Object already scheduled for deletion"),Qt.push(this),Qt.length===1&&Kt&&Kt(Tt),this.M.$=!0,this},Ze.prototype.qa=function(I){return this.ka&&(I=this.ka(I)),I},Ze.prototype.ha=function(I){this.W&&this.W(I)},Ze.prototype.argPackAdvance=8,Ze.prototype.readValueFromPointer=jA,Ze.prototype.deleteObject=function(I){I!==null&&I.delete()},Ze.prototype.fromWireType=function(I){function E(){return this.da?ts(this.N.X,{P:this.wa,O:C,U:this,T:I}):ts(this.N.X,{P:this,O:I})}var C=this.qa(I);if(!C)return this.ha(I),null;var v=CE(this.N,C);if(v!==void 0)return v.M.count.value===0?(v.M.O=C,v.M.T=I,v.clone()):(v=v.clone(),this.ha(I),v);if(v=this.N.pa(C),v=Cc[v],!v)return E.call(this);v=this.ca?v.la:v.pointerType;var x=Bc(C,this.N,v.N);return x===null?E.call(this):this.da?ts(v.N.X,{P:v,O:x,U:this,T:I}):ts(v.N.X,{P:v,O:x})},yc=e.UnboundTypeError=V("UnboundTypeError");var GE=typeof atob=="function"?atob:function(I){var E="",C=0;I=I.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(C++)),x="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(C++)),U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(C++)),T="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(C++));v=v<<2|x>>4,x=(x&15)<<4|U>>2;var G=(U&3)<<6|T;E+=String.fromCharCode(v),U!==64&&(E+=String.fromCharCode(x)),T!==64&&(E+=String.fromCharCode(G))}while(C<I.length);return E},OE={l:function(I,E,C,v){H("Assertion failed: "+(I?u(B,I):"")+", at: "+[E?E?u(B,E):"":"unknown filename",C,v?v?u(B,v):"":"unknown function"])},q:function(I,E,C){I=ct(I),E=Kn(E,"wrapper"),C=dt(C);var v=[].slice,x=E.N,U=x.X,T=x.R.X,G=x.R.constructor;I=b(I,function(){x.R.ja.forEach((function(K){if(this[K]===T[K])throw new se("Pure virtual function "+K+" must be implemented in JavaScript")}).bind(this)),Object.defineProperty(this,"__parent",{value:U}),this.__construct.apply(this,v.call(arguments))}),U.__construct=function(){this===U&&Z("Pass correct 'this' to __construct");var K=G.implement.apply(void 0,[this].concat(v.call(arguments)));Zr(K);var $=K.M;K.notifyOnDestruction(),$.aa=!0,Object.defineProperties(this,{M:{value:$}}),AA(this),K=$.O,K=$t(x,K),_t.hasOwnProperty(K)?Z("Tried to register registered instance: "+K):_t[K]=this},U.__destruct=function(){this===U&&Z("Pass correct 'this' to __destruct"),Zr(this);var K=this.M.O;K=$t(x,K),_t.hasOwnProperty(K)?delete _t[K]:Z("Tried to unregister unregistered instance: "+K)},I.prototype=Object.create(U);for(var z in C)I.prototype[z]=C[z];return re(I)},j:function(I){var E=es[I];delete es[I];var C=E.fa,v=E.W,x=E.ia,U=x.map(T=>T.ta).concat(x.map(T=>T.za));di([I],U,T=>{var G={};return x.forEach((z,K)=>{var $=T[K],st=z.ra,ht=z.sa,St=T[K+x.length],ut=z.ya,fe=z.Aa;G[z.oa]={read:_e=>$.fromWireType(st(ht,_e)),write:(_e,ZA)=>{var ti=[];ut(fe,_e,St.toWireType(ti,ZA)),Vn(ti)}}}),[{name:E.name,fromWireType:function(z){var K={},$;for($ in G)K[$]=G[$].read(z);return v(z),K},toWireType:function(z,K){for(var $ in G)if(!($ in K))throw new TypeError('Missing field: "'+$+'"');var st=C();for($ in G)G[$].write(st,K[$]);return z!==null&&z.push(v,st),st},argPackAdvance:8,readValueFromPointer:jA,V:v}]})},v:function(){},B:function(I,E,C,v,x){var U=zn(C);E=ct(E),je(I,{name:E,fromWireType:function(T){return!!T},toWireType:function(T,G){return G?v:x},argPackAdvance:8,readValueFromPointer:function(T){if(C===1)var G=f;else if(C===2)G=p;else if(C===4)G=P;else throw new TypeError("Unknown boolean type size: "+E);return this.fromWireType(G[T>>U])},V:null})},f:function(I,E,C,v,x,U,T,G,z,K,$,st,ht){$=ct($),U=ve(x,U),G&&(G=ve(T,G)),K&&(K=ve(z,K)),ht=ve(st,ht);var St=tt($);QE(St,function(){As("Cannot construct "+$+" due to unbound types",[v])}),di([I,E,C],v?[v]:[],function(ut){if(ut=ut[0],v)var fe=ut.N,_e=fe.X;else _e=Ii.prototype;ut=b(St,function(){if(Object.getPrototypeOf(this)!==ZA)throw new At("Use 'new' to construct "+$);if(ti.Y===void 0)throw new At($+" has no accessible constructor");var xc=ti.Y[arguments.length];if(xc===void 0)throw new At("Tried to invoke ctor of "+$+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(ti.Y).toString()+") parameters instead!");return xc.apply(this,arguments)});var ZA=Object.create(_e,{constructor:{value:ut}});ut.prototype=ZA;var ti=new yE($,ut,ZA,ht,fe,U,G,K);fe=new Ze($,ti,!0,!1),_e=new Ze($+"*",ti,!1,!1);var Dc=new Ze($+" const*",ti,!1,!0);return Cc[I]={pointerType:_e,la:Dc},_E(St,ut),[fe,_e,Dc]})},d:function(I,E,C,v,x,U,T){var G=Zn(C,v);E=ct(E),U=ve(x,U),di([],[I],function(z){function K(){As("Cannot call "+$+" due to unbound types",G)}z=z[0];var $=z.name+"."+E;E.startsWith("@@")&&(E=Symbol[E.substring(2)]);var st=z.N.constructor;return st[E]===void 0?(K.Z=C-1,st[E]=K):(qn(st,E,$),st[E].S[C-1]=K),di([],G,function(ht){return ht=jn($,[ht[0],null].concat(ht.slice(1)),null,U,T),st[E].S===void 0?(ht.Z=C-1,st[E]=ht):st[E].S[C-1]=ht,[]}),[]})},p:function(I,E,C,v,x,U){0<E||H();var T=Zn(E,C);x=ve(v,x),di([],[I],function(G){G=G[0];var z="constructor "+G.name;if(G.N.Y===void 0&&(G.N.Y=[]),G.N.Y[E-1]!==void 0)throw new At("Cannot register multiple constructors with identical number of parameters ("+(E-1)+") for class '"+G.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return G.N.Y[E-1]=()=>{As("Cannot construct "+G.name+" due to unbound types",T)},di([],T,function(K){return K.splice(1,0,null),G.N.Y[E-1]=jn(z,K,null,x,U),[]}),[]})},a:function(I,E,C,v,x,U,T,G){var z=Zn(C,v);E=ct(E),U=ve(x,U),di([],[I],function(K){function $(){As("Cannot call "+st+" due to unbound types",z)}K=K[0];var st=K.name+"."+E;E.startsWith("@@")&&(E=Symbol[E.substring(2)]),G&&K.N.ja.push(E);var ht=K.N.X,St=ht[E];return St===void 0||St.S===void 0&&St.className!==K.name&&St.Z===C-2?($.Z=C-2,$.className=K.name,ht[E]=$):(qn(ht,E,st),ht[E].S[C-2]=$),di([],z,function(ut){return ut=jn(st,ut,K,U,T),ht[E].S===void 0?(ut.Z=C-2,ht[E]=ut):ht[E].S[C-2]=ut,[]}),[]})},A:function(I,E){E=ct(E),je(I,{name:E,fromWireType:function(C){var v=dt(C);return $n(C),v},toWireType:function(C,v){return re(v)},argPackAdvance:8,readValueFromPointer:jA,V:null})},n:function(I,E,C){C=zn(C),E=ct(E),je(I,{name:E,fromWireType:function(v){return v},toWireType:function(v,x){return x},argPackAdvance:8,readValueFromPointer:DE(E,C),V:null})},e:function(I,E,C,v,x){E=ct(E),x===-1&&(x=4294967295),x=zn(C);var U=G=>G;if(v===0){var T=32-8*C;U=G=>G<<T>>>T}C=E.includes("unsigned")?function(G,z){return z>>>0}:function(G,z){return z},je(I,{name:E,fromWireType:U,toWireType:C,argPackAdvance:8,readValueFromPointer:xE(E,x,v!==0),V:null})},b:function(I,E,C){function v(U){U>>=2;var T=y;return new x(d,T[U+1],T[U])}var x=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][E];C=ct(C),je(I,{name:C,fromWireType:v,argPackAdvance:8,readValueFromPointer:v},{ua:!0})},o:function(I,E){E=ct(E);var C=E==="std::string";je(I,{name:E,fromWireType:function(v){var x=y[v>>2],U=v+4;if(C)for(var T=U,G=0;G<=x;++G){var z=U+G;if(G==x||B[z]==0){if(T=T?u(B,T,z-T):"",K===void 0)var K=T;else K+="\0",K+=T;T=z+1}}else{for(K=Array(x),G=0;G<x;++G)K[G]=String.fromCharCode(B[U+G]);K=K.join("")}return $e(v),K},toWireType:function(v,x){x instanceof ArrayBuffer&&(x=new Uint8Array(x));var U,T=typeof x=="string";if(T||x instanceof Uint8Array||x instanceof Uint8ClampedArray||x instanceof Int8Array||Z("Cannot pass non-string to std::string"),C&&T){var G=0;for(U=0;U<x.length;++U){var z=x.charCodeAt(U);127>=z?G++:2047>=z?G+=2:55296<=z&&57343>=z?(G+=4,++U):G+=3}U=G}else U=x.length;if(G=eo(4+U+1),z=G+4,y[G>>2]=U,C&&T){if(T=z,z=U+1,U=B,0<z){z=T+z-1;for(var K=0;K<x.length;++K){var $=x.charCodeAt(K);if(55296<=$&&57343>=$){var st=x.charCodeAt(++K);$=65536+(($&1023)<<10)|st&1023}if(127>=$){if(T>=z)break;U[T++]=$}else{if(2047>=$){if(T+1>=z)break;U[T++]=192|$>>6}else{if(65535>=$){if(T+2>=z)break;U[T++]=224|$>>12}else{if(T+3>=z)break;U[T++]=240|$>>18,U[T++]=128|$>>12&63}U[T++]=128|$>>6&63}U[T++]=128|$&63}}U[T]=0}}else if(T)for(T=0;T<U;++T)K=x.charCodeAt(T),255<K&&($e(z),Z("String has UTF-16 code units that do not fit in 8 bits")),B[z+T]=K;else for(T=0;T<U;++T)B[z+T]=x[T];return v!==null&&v.push($e,G),G},argPackAdvance:8,readValueFromPointer:jA,V:function(v){$e(v)}})},i:function(I,E,C){if(C=ct(C),E===2)var v=SE,x=ME,U=RE,T=()=>R,G=1;else E===4&&(v=kE,x=PE,U=UE,T=()=>y,G=2);je(I,{name:C,fromWireType:function(z){for(var K=y[z>>2],$=T(),st,ht=z+4,St=0;St<=K;++St){var ut=z+4+St*E;(St==K||$[ut>>G]==0)&&(ht=v(ht,ut-ht),st===void 0?st=ht:(st+="\0",st+=ht),ht=ut+E)}return $e(z),st},toWireType:function(z,K){typeof K!="string"&&Z("Cannot pass non-string to C++ string type "+C);var $=U(K),st=eo(4+$+E);return y[st>>2]=$>>G,x(K,st+4,$+E),z!==null&&z.push($e,st),st},argPackAdvance:8,readValueFromPointer:jA,V:function(z){$e(z)}})},k:function(I,E,C,v,x,U){es[I]={name:ct(E),fa:ve(C,v),W:ve(x,U),ia:[]}},h:function(I,E,C,v,x,U,T,G,z,K){es[I].ia.push({oa:ct(E),ta:C,ra:ve(v,x),sa:U,za:T,ya:ve(G,z),Aa:K})},C:function(I,E){E=ct(E),je(I,{va:!0,name:E,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(I,E,C,v,x){I=rs[I],E=dt(E),C=mc(C);var U=[];return y[v>>2]=re(U),I(E,C,U,x)},t:function(I,E,C,v){I=rs[I],E=dt(E),C=mc(C),I(E,C,null,v)},g:$n,m:function(I,E){var C=TE(I,E),v=C[0];E=v.name+"_$"+C.slice(1).map(function(T){return T.name}).join("_")+"$";var x=wc[E];if(x!==void 0)return x;var U=Array(I-1);return x=FE((T,G,z,K)=>{for(var $=0,st=0;st<I-1;++st)U[st]=C[st+1].readValueFromPointer(K+$),$+=C[st+1].argPackAdvance;for(T=T[G].apply(T,U),st=0;st<I-1;++st)C[st+1].ma&&C[st+1].ma(U[st]);if(!v.va)return v.toWireType(z,T)}),wc[E]=x},D:function(I){4<I&&(D[I].ga+=1)},r:function(I){var E=dt(I);Vn(E),$n(I)},c:function(){H("")},x:function(I,E,C){B.copyWithin(I,E,E+C)},w:function(I){var E=B.length;if(I>>>=0,2147483648<I)return!1;for(var C=1;4>=C;C*=2){var v=E*(1+.2/C);v=Math.min(v,I+100663296);var x=Math;v=Math.max(I,v),x=x.min.call(x,2147483648,v+(65536-v%65536)%65536);t:{try{c.grow(x-d.byteLength+65535>>>16),m();var U=1;break t}catch{}U=void 0}if(U)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(I,E,C,v){for(var x=0,U=0;U<C;U++){var T=y[E>>2],G=y[E+4>>2];E+=8;for(var z=0;z<G;z++){var K=B[T+z],$=LE[I];K===0||K===10?((I===1?o:a)(u($,0)),$.length=0):$.push(K)}x+=G}return y[v>>2]=x,0}};(function(){function I(x){e.asm=x.exports,c=e.asm.E,m(),M=e.asm.J,W.unshift(e.asm.F),Y--,e.monitorRunDependencies&&e.monitorRunDependencies(Y),Y==0&&et&&(x=et,et=null,x())}function E(x){I(x.instance)}function C(x){return j().then(function(U){return WebAssembly.instantiate(U,v)}).then(function(U){return U}).then(x,function(U){a("failed to asynchronously prepare wasm: "+U),H(U)})}var v={a:OE};if(Y++,e.monitorRunDependencies&&e.monitorRunDependencies(Y),e.instantiateWasm)try{return e.instantiateWasm(v,I)}catch(x){a("Module.instantiateWasm callback failed with error: "+x),A(x)}return function(){return l||typeof WebAssembly.instantiateStreaming!="function"||L(rt)||typeof fetch!="function"?C(E):fetch(rt,{credentials:"same-origin"}).then(function(x){return WebAssembly.instantiateStreaming(x,v).then(E,function(U){return a("wasm streaming compile failed: "+U),a("falling back to ArrayBuffer instantiation"),C(E)})})}().catch(A),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.F).apply(null,arguments)};var _c=e.___getTypeName=function(){return(_c=e.___getTypeName=e.asm.G).apply(null,arguments)};e.__embind_initialize_bindings=function(){return(e.__embind_initialize_bindings=e.asm.H).apply(null,arguments)};var eo=e._malloc=function(){return(eo=e._malloc=e.asm.I).apply(null,arguments)},$e=e._free=function(){return($e=e._free=e.asm.K).apply(null,arguments)};e.dynCall_jiji=function(){return(e.dynCall_jiji=e.asm.L).apply(null,arguments)};var ns;et=function I(){ns||bc(),ns||(et=I)};function bc(){function I(){if(!ns&&(ns=!0,e.calledRun=!0,!h)){if(N(W),i(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var E=e.postRun.shift();it.unshift(E)}N(it)}}if(!(0<Y)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)q();N(k),0<Y||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),I()},1)):I())}}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return bc(),t.ready}})();let Nt=function(r){return r[r.Auto=0]="Auto",r[r.FlexStart=1]="FlexStart",r[r.Center=2]="Center",r[r.FlexEnd=3]="FlexEnd",r[r.Stretch=4]="Stretch",r[r.Baseline=5]="Baseline",r[r.SpaceBetween=6]="SpaceBetween",r[r.SpaceAround=7]="SpaceAround",r[r.SpaceEvenly=8]="SpaceEvenly",r}({}),Hr=function(r){return r[r.BorderBox=0]="BorderBox",r[r.ContentBox=1]="ContentBox",r}({}),Ol=function(r){return r[r.Width=0]="Width",r[r.Height=1]="Height",r}({}),hi=function(r){return r[r.Inherit=0]="Inherit",r[r.LTR=1]="LTR",r[r.RTL=2]="RTL",r}({}),Wi=function(r){return r[r.Flex=0]="Flex",r[r.None=1]="None",r[r.Contents=2]="Contents",r}({}),ft=function(r){return r[r.Left=0]="Left",r[r.Top=1]="Top",r[r.Right=2]="Right",r[r.Bottom=3]="Bottom",r[r.Start=4]="Start",r[r.End=5]="End",r[r.Horizontal=6]="Horizontal",r[r.Vertical=7]="Vertical",r[r.All=8]="All",r}({}),qi=function(r){return r[r.None=0]="None",r[r.StretchFlexBasis=1]="StretchFlexBasis",r[r.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",r[r.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",r[r.All=2147483647]="All",r[r.Classic=2147483646]="Classic",r}({}),Ap=function(r){return r[r.WebFlexBasis=0]="WebFlexBasis",r}({}),gi=function(r){return r[r.Column=0]="Column",r[r.ColumnReverse=1]="ColumnReverse",r[r.Row=2]="Row",r[r.RowReverse=3]="RowReverse",r}({}),Jr=function(r){return r[r.Column=0]="Column",r[r.Row=1]="Row",r[r.All=2]="All",r}({}),Ee=function(r){return r[r.FlexStart=0]="FlexStart",r[r.Center=1]="Center",r[r.FlexEnd=2]="FlexEnd",r[r.SpaceBetween=3]="SpaceBetween",r[r.SpaceAround=4]="SpaceAround",r[r.SpaceEvenly=5]="SpaceEvenly",r}({}),Xi=function(r){return r[r.Error=0]="Error",r[r.Warn=1]="Warn",r[r.Info=2]="Info",r[r.Debug=3]="Debug",r[r.Verbose=4]="Verbose",r[r.Fatal=5]="Fatal",r}({}),Ln=function(r){return r[r.Undefined=0]="Undefined",r[r.Exactly=1]="Exactly",r[r.AtMost=2]="AtMost",r}({}),Hl=function(r){return r[r.Default=0]="Default",r[r.Text=1]="Text",r}({}),ji=function(r){return r[r.Visible=0]="Visible",r[r.Hidden=1]="Hidden",r[r.Scroll=2]="Scroll",r}({}),Zi=function(r){return r[r.Static=0]="Static",r[r.Relative=1]="Relative",r[r.Absolute=2]="Absolute",r}({}),Pe=function(r){return r[r.Undefined=0]="Undefined",r[r.Point=1]="Point",r[r.Percent=2]="Percent",r[r.Auto=3]="Auto",r}({}),$i=function(r){return r[r.NoWrap=0]="NoWrap",r[r.Wrap=1]="Wrap",r[r.WrapReverse=2]="WrapReverse",r}({});const rp={ALIGN_AUTO:Nt.Auto,ALIGN_FLEX_START:Nt.FlexStart,ALIGN_CENTER:Nt.Center,ALIGN_FLEX_END:Nt.FlexEnd,ALIGN_STRETCH:Nt.Stretch,ALIGN_BASELINE:Nt.Baseline,ALIGN_SPACE_BETWEEN:Nt.SpaceBetween,ALIGN_SPACE_AROUND:Nt.SpaceAround,ALIGN_SPACE_EVENLY:Nt.SpaceEvenly,BOX_SIZING_BORDER_BOX:Hr.BorderBox,BOX_SIZING_CONTENT_BOX:Hr.ContentBox,DIMENSION_WIDTH:Ol.Width,DIMENSION_HEIGHT:Ol.Height,DIRECTION_INHERIT:hi.Inherit,DIRECTION_LTR:hi.LTR,DIRECTION_RTL:hi.RTL,DISPLAY_FLEX:Wi.Flex,DISPLAY_NONE:Wi.None,DISPLAY_CONTENTS:Wi.Contents,EDGE_LEFT:ft.Left,EDGE_TOP:ft.Top,EDGE_RIGHT:ft.Right,EDGE_BOTTOM:ft.Bottom,EDGE_START:ft.Start,EDGE_END:ft.End,EDGE_HORIZONTAL:ft.Horizontal,EDGE_VERTICAL:ft.Vertical,EDGE_ALL:ft.All,ERRATA_NONE:qi.None,ERRATA_STRETCH_FLEX_BASIS:qi.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:qi.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:qi.AbsolutePercentAgainstInnerSize,ERRATA_ALL:qi.All,ERRATA_CLASSIC:qi.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Ap.WebFlexBasis,FLEX_DIRECTION_COLUMN:gi.Column,FLEX_DIRECTION_COLUMN_REVERSE:gi.ColumnReverse,FLEX_DIRECTION_ROW:gi.Row,FLEX_DIRECTION_ROW_REVERSE:gi.RowReverse,GUTTER_COLUMN:Jr.Column,GUTTER_ROW:Jr.Row,GUTTER_ALL:Jr.All,JUSTIFY_FLEX_START:Ee.FlexStart,JUSTIFY_CENTER:Ee.Center,JUSTIFY_FLEX_END:Ee.FlexEnd,JUSTIFY_SPACE_BETWEEN:Ee.SpaceBetween,JUSTIFY_SPACE_AROUND:Ee.SpaceAround,JUSTIFY_SPACE_EVENLY:Ee.SpaceEvenly,LOG_LEVEL_ERROR:Xi.Error,LOG_LEVEL_WARN:Xi.Warn,LOG_LEVEL_INFO:Xi.Info,LOG_LEVEL_DEBUG:Xi.Debug,LOG_LEVEL_VERBOSE:Xi.Verbose,LOG_LEVEL_FATAL:Xi.Fatal,MEASURE_MODE_UNDEFINED:Ln.Undefined,MEASURE_MODE_EXACTLY:Ln.Exactly,MEASURE_MODE_AT_MOST:Ln.AtMost,NODE_TYPE_DEFAULT:Hl.Default,NODE_TYPE_TEXT:Hl.Text,OVERFLOW_VISIBLE:ji.Visible,OVERFLOW_HIDDEN:ji.Hidden,OVERFLOW_SCROLL:ji.Scroll,POSITION_TYPE_STATIC:Zi.Static,POSITION_TYPE_RELATIVE:Zi.Relative,POSITION_TYPE_ABSOLUTE:Zi.Absolute,UNIT_UNDEFINED:Pe.Undefined,UNIT_POINT:Pe.Point,UNIT_PERCENT:Pe.Percent,UNIT_AUTO:Pe.Auto,WRAP_NO_WRAP:$i.NoWrap,WRAP_WRAP:$i.Wrap,WRAP_WRAP_REVERSE:$i.WrapReverse};function sp(r){function t(A,s,n){const o=A[s];A[s]=function(){for(var a=arguments.length,l=new Array(a),c=0;c<a;c++)l[c]=arguments[c];return n.call(this,o,...l)}}for(const A of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[Pe.Point]:r.Node.prototype[A],[Pe.Percent]:r.Node.prototype[`${A}Percent`],[Pe.Auto]:r.Node.prototype[`${A}Auto`]};t(r.Node.prototype,A,function(n){for(var o=arguments.length,a=new Array(o>1?o-1:0),l=1;l<o;l++)a[l-1]=arguments[l];const c=a.pop();let h,u;if(c==="auto")h=Pe.Auto,u=void 0;else if(typeof c=="object")h=c.unit,u=c.valueOf();else if(h=typeof c=="string"&&c.endsWith("%")?Pe.Percent:Pe.Point,u=parseFloat(c),c!==void 0&&!Number.isNaN(c)&&Number.isNaN(u))throw new Error(`Invalid value ${c} for ${A}`);if(!s[h])throw new Error(`Failed to execute "${A}": Unsupported unit '${c}'`);return u!==void 0?s[h].call(this,...a,u):s[h].call(this,...a)})}function e(A){return r.MeasureCallback.implement({measure:function(){const{width:s,height:n}=A(...arguments);return{width:s??NaN,height:n??NaN}}})}t(r.Node.prototype,"setMeasureFunc",function(A,s){return s?A.call(this,e(s)):this.unsetMeasureFunc()});function i(A){return r.DirtiedCallback.implement({dirtied:A})}return t(r.Node.prototype,"setDirtiedFunc",function(A,s){A.call(this,i(s))}),t(r.Config.prototype,"free",function(){r.Config.destroy(this)}),t(r.Node,"create",(A,s)=>s?r.Node.createWithConfig(s):r.Node.createDefault()),t(r.Node.prototype,"free",function(){r.Node.destroy(this)}),t(r.Node.prototype,"freeRecursive",function(){for(let A=0,s=this.getChildCount();A<s;++A)this.getChild(0).freeRecursive();this.free()}),t(r.Node.prototype,"calculateLayout",function(A){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:hi.LTR;return A.call(this,s,n,o)}),{Config:r.Config,Node:r.Node,...rp}}async function np(){return sp(await ip())}class Jl extends MA{constructor(t){super(),this.setProperties(t)}}const tA={auto:Nt.Auto,"flex-start":Nt.FlexStart,center:Nt.Center,"flex-end":Nt.FlexEnd,stretch:Nt.Stretch,baseline:Nt.Baseline,"space-between":Nt.SpaceBetween,"space-around":Nt.SpaceAround,"space-evenly":Nt.SpaceEvenly},Kl={none:Wi.None,flex:Wi.Flex,contents:Wi.Contents},Yl={inherit:hi.Inherit,ltr:hi.LTR,rtl:hi.RTL},Vl={column:gi.Column,"column-reverse":gi.ColumnReverse,row:gi.Row,"row-reverse":gi.RowReverse},zl={"no-wrap":$i.NoWrap,wrap:$i.Wrap,"Wrap-reverse":$i.WrapReverse},Wl={"flex-start":Ee.FlexStart,center:Ee.Center,"flex-end":Ee.FlexEnd,"space-between":Ee.SpaceBetween,"space-around":Ee.SpaceAround,"space-evenly":Ee.SpaceEvenly},ql={visible:ji.Visible,hidden:ji.Hidden,scroll:ji.Scroll},Xl={static:Zi.Static,relative:Zi.Relative,absolute:Zi.Absolute},jl={"border-box":Hr.BorderBox,"content-box":Hr.ContentBox};class Kr{constructor(t){this._element=t}static _yoga;static async load(){this._yoga=await np()}_node=Kr._yoga.Node.create();get _style(){return this._element.style}get offsetLeft(){return this._node.getComputedLeft()}get offsetTop(){return this._node.getComputedTop()}get offsetWidth(){return this._node.getComputedWidth()}get offsetHeight(){return this._node.getComputedHeight()}calculateLayout(t,e,i){return this._node.calculateLayout(t,e,i)}getComputedLayout(){return this._node.getComputedLayout()}updateStyleProperty(t,e,i,A){switch(t){case"alignContent":this._node.setAlignContent(e?tA[e]:tA["flex-start"]);break;case"alignItems":this._node.setAlignItems(e?tA[e]:tA["flex-start"]);break;case"alignSelf":this._node.setAlignSelf(e?tA[e]:tA["flex-start"]);break;case"aspectRatio":this._node.setAspectRatio(e);break;case"borderTop":this._node.setBorder(ft.Top,this._style.borderWidth);break;case"borderBottom":this._node.setBorder(ft.Bottom,this._style.borderWidth);break;case"borderLeft":this._node.setBorder(ft.Left,this._style.borderWidth);break;case"borderRight":this._node.setBorder(ft.Right,this._style.borderWidth);break;case"border":this._node.setBorder(ft.All,this._style.borderWidth);break;case"direction":this._node.setDirection(e?Yl[e]:Yl.inherit);break;case"display":this._node.setDisplay(e?Kl[e]:Kl.flex);break;case"flex":this._node.setFlex(this._style.flex);break;case"flexBasis":this._node.setFlexBasis(this._style.flexBasis);break;case"flexDirection":this._node.setFlexDirection(e?Vl[e]:Vl.row);break;case"flexGrow":this._node.setFlexGrow(this._style.flexGrow);break;case"flexShrink":this._node.setFlexShrink(this._style.flexShrink);break;case"flexWrap":this._node.setFlexWrap(e?zl[e]:zl.wrap);break;case"height":this._node.setHeight(this._style.height);break;case"justifyContent":this._node.setJustifyContent(e?Wl[e]:Wl["flex-start"]);break;case"gap":e!==void 0&&this._node.setGap(Jr.All,e);break;case"marginTop":this._node.setMargin(ft.Top,e);break;case"marginBottom":this._node.setMargin(ft.Top,e);break;case"marginLeft":this._node.setMargin(ft.Left,e);break;case"marginRight":this._node.setMargin(ft.Top,e);break;case"margin":this._node.setMargin(ft.All,e);break;case"maxHeight":this._node.setMaxHeight(e);break;case"maxWidth":this._node.setMaxWidth(e);break;case"minHeight":this._node.setMinHeight(this._style.minHeight);break;case"minWidth":this._node.setMinWidth(this._style.minWidth);break;case"overflow":this._node.setOverflow(e?ql[e]:ql.visible);break;case"paddingTop":this._node.setPadding(ft.Top,this._style.paddingTop);break;case"paddingBottom":this._node.setPadding(ft.Bottom,this._style.paddingBottom);break;case"paddingLeft":this._node.setPadding(ft.Left,this._style.paddingLeft);break;case"paddingRight":this._node.setPadding(ft.Right,this._style.paddingRight);break;case"padding":this._node.setPadding(ft.All,this._style.padding);break;case"top":this._node.setPosition(ft.Top,this._style.top);break;case"bottom":this._node.setPosition(ft.Bottom,this._style.bottom);break;case"left":this._node.setPosition(ft.Left,this._style.left);break;case"right":this._node.setPosition(ft.Right,this._style.right);break;case"position":this._node.setPositionType(e?Xl[e]:Xl.static);break;case"boxSizing":this._node.setBoxSizing(e?jl[e]:jl["content-box"]);break;case"width":this._node.setWidth(this._style.width);break}}}var op=Object.getOwnPropertyDescriptor,ap=(r,t,e,i)=>{for(var A=i>1?void 0:i?op(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.FlexElement2D=class extends g.BaseElement2D{get style(){return this._style}set style(t){const e=(...i)=>{this.emit("updateStyleProperty",...i),this._updateStyleProperty(i[0],i[1],i[2],i[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}_layout=new Kr(this);get offsetLeft(){return this._layout.offsetLeft}get offsetTop(){return this._layout.offsetTop}get offsetWidth(){return this._layout.offsetWidth}get offsetHeight(){return this._layout.offsetHeight}constructor(t,e=[]){super(),this.style=new Jl,this.setProperties(t).append(e)}_parented(t){super._parented(t),t._layout&&this._layout._node&&t._layout._node.insertChild(this._layout._node,t._layout._node.getChildCount())}_unparented(t){super._unparented(t),t._layout?._node&&t._layout._node.removeChild(this._layout._node)}_updateStyleProperty(t,e,i,A){super._updateStyleProperty(t,e,i,A),this._layout.updateStyleProperty(t,e,i,A),this._layout._node.isDirty()&&this.requestRelayout()}updateTransform(){this.calculateLayout(void 0,void 0,hi.LTR);const{left:t,top:e,width:i,height:A}=this._layout.getComputedLayout();this.position.x=t,this.position.y=e,this.size.x=i,this.size.y=A,super.updateTransform()}calculateLayout(t,e,i){const A=this.getParent();A?._layout?.calculateLayout?A?._layout.calculateLayout(t,e,i):this._layout.calculateLayout(t,e,i)}},g.FlexElement2D=ap([nt("FlexElement2D")],g.FlexElement2D);var lp=Object.defineProperty,cp=Object.getOwnPropertyDescriptor,WA=(r,t,e,i)=>{for(var A=i>1?void 0:i?cp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&lp(t,e,A),A};g.Image2D=class extends g.Element2D{get currentFrameTexture(){return this.texture?.frames[this._frameIndex]?.texture}get textureDuration(){return this.texture?.duration??0}get naturalWidth(){return this.currentFrameTexture?.realWidth??0}get naturalHeight(){return this.currentFrameTexture?.realHeight??0}get complete(){return this._complete}_frameIndex=0;_complete=!1;_wait=Promise.resolve();constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"src":this._wait=this._load(e);break;case"srcRect":this.requestRedraw();break}}decode(){return this._wait}setResource(t){let e;if(t instanceof cr?e=t:e=new cr(t),this.texture=e.updateDuration(),this.currentFrameTexture&&(!this.style.width||!this.style.height)){const i=this.currentFrameTexture;this.style.width=i.realWidth,this.style.height=i.realHeight}return this}async _load(t){if(this._complete=!1,t)try{this.setResource(this.gif||t?.includes(".gif")?await Ne.gif.load(t):await Ne.texture.load(t)),this.requestRedraw(),this.emit("load")}catch(e){console.warn(e),this.emit("error",e)}else this.texture=void 0;this._complete=!0}_getFrameCurrentTime(){const t=this.textureDuration;if(!t||!this._tree)return 0;const e=this._currentTime;return e<0?0:e%t}_updateFrameIndex(){if(!this.texture)return this;const t=this._getFrameCurrentTime(),e=this.texture.frames,i=e.length;if(i<=1&&this._frameIndex===0)return this;let A=i-1;for(let s=0,n=0;n<i;n++)if(s+=e[n].duration??0,s>=t){A=n;break}return this._frameIndex!==A&&(this._frameIndex=A,this.requestRedraw()),this}_process(t){this._updateFrameIndex(),super._process(t)}_drawContent(){const t=this.currentFrameTexture;if(t?.valid){const{left:e=0,top:i=0,right:A=0,bottom:s=0}=this.srcRect??{},{width:n,height:o}=this.size;this.context.fillStyle=t;const a=Math.abs(1+(e+A))*n,l=Math.abs(1+(i+s))*o,c=1/a,h=1/l,u=e*n*c,d=i*o*h;this.context.uvTransform=new Vt().scale(c,h).translate(u,d),this.shape.draw(),this.context.fill()}}_repaint(t){return super._repaint(t).map(e=>({...e,disableWrapMode:!0}))}},WA([_({protected:!0})],g.Image2D.prototype,"texture",2),WA([_({fallback:""})],g.Image2D.prototype,"src",2),WA([_()],g.Image2D.prototype,"srcRect",2),WA([_({fallback:!1})],g.Image2D.prototype,"gif",2),g.Image2D=WA([nt("Image2D")],g.Image2D);class Yr extends g.Element2D{texture;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_drawContent(){if(this.texture?.valid){const{width:t,height:e}=this.size;this.context.fillStyle=this.texture,this.context.uvTransform=new Vt().scale(1/t,1/e),this.shape.drawRect(),this.context.fill()}}}var hp=Object.defineProperty,gp=Object.getOwnPropertyDescriptor,Zl=(r,t,e,i)=>{for(var A=i>1?void 0:i?gp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&hp(t,e,A),A};g.Lottie2D=class extends Yr{texture=new uA;animation;constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"src":this._load();break}}_updateStyleProperty(t,e,i){switch(super._updateStyleProperty(t,e,i),t){case"width":this.texture.width=this.style.width;break;case"height":this.texture.height=this.style.height;break}}async _load(){this.animation=await Ne.lottie.load(this.src,this.texture.source),this.duration=this.animation.getDuration(!1)*1e3,this.texture.requestUpload(),this.requestRedraw()}_process(t){this.animation?.goToAndStop(this.currentTime,!1),this.texture.requestUpload(),this.requestRedraw(),super._process(t)}},Zl([_({fallback:""})],g.Lottie2D.prototype,"src",2),g.Lottie2D=Zl([nt("Lottie2D")],g.Lottie2D);var up=Object.defineProperty,fp=Object.getOwnPropertyDescriptor,eA=(r,t,e,i)=>{for(var A=i>1?void 0:i?fp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&up(t,e,A),A};const dp=new Set(Object.keys(Nn));g.Text2D=class extends Yr{texture=new uA;base=new Ll;measureResult;_subTextsCount=0;constructor(t,e=[]){super(),this.setProperties(t),this.append(e),t?.plugins&&t.plugins.forEach(i=>{this.base.use(i)})}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"content":case"effects":case"measureDOM":case"fonts":case"split":this._updateSplit(),this.requestRedraw();break}this._subTextsCount&&t==="effects"&&this._getSubTexts().forEach(s=>{s.setProperties({[t]:e})})}_updateBase(){this.base.style=this.style.toJSON(),this.emit("updateBase",this.base),this.base.requestUpdate()}_updateStyleProperty(t,e,i){switch(t){case"left":case"top":case"width":case"height":this.requestRedraw();break;default:super._updateStyleProperty(t,e,i);break}switch(t){case"width":this.split&&this._updateSubTexts();break}typeof t=="string"&&dp.has(t)&&(this._subTextsCount&&t!=="width"&&t!=="height"&&this._getSubTexts().forEach(A=>{A.style.setProperties({[t]:e})}),this.requestRedraw())}_getSubTexts(){return this.children.front.filter(t=>t instanceof g.Text2D)}_updateSubTexts(){const t=this._getSubTexts();let e=0;this.split&&this.updateMeasure().measureResult?.paragraphs.forEach(i=>{i.fragments.forEach(A=>{A.characters.forEach(s=>{const n=t[e];n&&(n.style.left=s.inlineBox.left,n.style.top=s.inlineBox.top),e++})})})}measure(){return this._updateBase(),this.base.measure()}updateMeasure(){this.measureResult=this.measure();const{boundingBox:t}=this.measureResult,{left:e,top:i}=this.style;return this.position.x=e+Math.min(0,t.left),this.position.y=i+Math.min(0,t.top),this.size.width=t.width,this.size.height=t.height,this}_updateSplit(){this._subTextsCount&&(this.children.front.forEach(t=>this.removeChild(t)),this._subTextsCount=0),this.split&&this.measure().paragraphs.forEach(t=>{t.fragments.forEach(e=>{e.characters.forEach(i=>{this.append(new g.Text2D({internalMode:"front",style:{...i.computedStyle,left:i.inlineBox.x,top:i.inlineBox.y,width:0,height:0},content:i.content,effects:this.effects,fonts:this.fonts})),this._subTextsCount++})})})}_redraw(){return this.updateMeasure(),super._redraw()}_drawContent(){this.split||(this.base.render({pixelRatio:this.texture.pixelRatio,view:this.texture.source}),this.texture.requestUpload(),super._drawContent())}},eA([_({fallback:!1})],g.Text2D.prototype,"split",2),eA([_({alias:"base.content"})],g.Text2D.prototype,"content",2),eA([_({alias:"base.effects"})],g.Text2D.prototype,"effects",2),eA([_({protected:!0,alias:"base.measureDOM"})],g.Text2D.prototype,"measureDOM",2),eA([_({protected:!0,alias:"base.fonts"})],g.Text2D.prototype,"fonts",2),g.Text2D=eA([nt("Text2D")],g.Text2D);var Ip=Object.defineProperty,pp=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Ip(t,e,A),A};class Gn extends g.Element2D{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":case"height":this.requestRedraw();break}}_drawCircle(t,e){this.context.arc(t,e,this.handleSize,0,Math.PI*2,!0),this.context.fillStyle=mt.WHITE,this.context.fill(),this.context.arc(t,e,this.handleSize,0,Math.PI*2,!0),this.context.strokeStyle="rgba(0, 0, 0, 0.2)",this.context.stroke()}_drawEllipse(t,e){this.context.roundRect(t-this.handleSize,e-this.handleSize*2,this.handleSize*2,this.handleSize*4,this.handleSize),this.context.fillStyle=mt.WHITE,this.context.fill(),this.context.roundRect(t-this.handleSize,e-this.handleSize*2,this.handleSize*2,this.handleSize*4,this.handleSize),this.context.strokeStyle="rgba(0, 0, 0, 0.2)",this.context.stroke()}_draw(){const{width:t,height:e}=this.getRect();this.context.rect(0,0,t,e),this.context.strokeStyle="#00FF00",this.context.stroke(),this._drawCircle(0,0),this._drawCircle(t,e),this._drawCircle(0,e),this._drawEllipse(0,e/2),this._drawCircle(t,0),this._drawEllipse(t,e/2)}}pp([_({fallback:6})],Gn.prototype,"handleSize");var Ep=Object.defineProperty,Bp=Object.getOwnPropertyDescriptor,$l=(r,t,e,i)=>{for(var A=i>1?void 0:i?Bp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Ep(t,e,A),A};g.Video2D=class extends Yr{get videoDuration(){return(this.texture?.duration??0)*1e3}_wait=Promise.resolve();constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"src":this._wait=this._load(e);break}}waitLoad(){return this._wait}async _load(t){this.texture=await Ne.video.load(t),(!this.style.width||!this.style.height)&&(this.style.width=this.texture.width,this.style.height=this.texture.height),this.requestRedraw()}_updateVideoCurrentTime(){let t=this._currentTime;if(t<0)return;const e=this.texture;if(!e)return;const i=e.duration;t=i?t%(i*1e3):0,!e.isPlaying&&!e.seeking&&(t=~~t/1e3,e.currentTime!==t&&(e.currentTime=t))}_process(t){this._updateVideoCurrentTime(),super._process(t)}},$l([_({fallback:""})],g.Video2D.prototype,"src",2),g.Video2D=$l([nt("Video2D")],g.Video2D);var Cp=Object.defineProperty,Qp=Object.getOwnPropertyDescriptor,qA=(r,t,e,i)=>{for(var A=i>1?void 0:i?Qp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Cp(t,e,A),A};const tc=r=>r,ec=iA(.25,.1,.25,1),ic=iA(.42,0,1,1),Ac=iA(0,0,.58,1),rc=iA(.42,0,.58,1);function iA(r,t,e,i){const s=3*r-3*e+1,n=3*e-6*r,o=3*r,a=3*t-3*i+1,l=3*i-6*t,c=3*t,h=B=>(3*s*B+2*n)*B+o,u=B=>((s*B+n)*B+o)*B,d=B=>((a*B+l)*B+c)*B;function f(B){let p=B,R,P;for(let Q=0;Q<8;Q++){if(P=u(p)-B,Math.abs(P)<1e-6)return p;if(R=h(p),Math.abs(R)<1e-6)break;p-=P/R}let y=1,S=0;for(p=B;y>S;){if(P=u(p)-B,Math.abs(P)<1e-6)return p;P>0?y=p:S=p,p=(y+S)/2}return p}return B=>d(f(B))}const Vr={linear:tc,ease:ec,easeIn:ic,easeOut:Ac,easeInOut:rc};g.Animation=class extends g.TimelineNode{_keyframes=[];_isFirstUpdatePosition=!1;_cachedProps=new uo;_stoped=!1;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_parented(t){super._parented(t),this._updateCachedProps()}_unparented(t){super._unparented(t),this.cancel()}_process(){this.canProcess()&&this.commitStyles()}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"effectMode":case"keyframes":this._updateKeyframes();break}}_getTargets(){let t;switch(this.effectMode){case"sibling":t=this.getParent()?.children.internal.filter(e=>e instanceof g.CanvasItem)??[];break;case"parent":default:t=[this.getParent()].filter(Boolean);break}return t.map(e=>e.style)}_updateKeyframes(){const t=[],e=this.keyframes;for(let s=e.length,n=0;n<s;n++){const{offset:o=n===0?0:n/(s-1),easing:a="linear",...l}=e[n];t.push({offset:o,easing:this._parseEasing(a),props:l})}const i=t[0],A=t[t.length-1];i&&i.offset!==0&&t.unshift({offset:0,easing:this._parseEasing("linear"),props:{}}),A&&A.offset!==1&&t.push({offset:1,easing:this._parseEasing("linear"),props:{}}),this._keyframes=t,this._updateCachedProps()}commitStyles(){if(!this.keyframes.length)return;if(this._updateCurrentTime(),this.isInsideTimeRange())this._isFirstUpdatePosition||(this._isFirstUpdatePosition=!0,this._updateCachedProps());else{if(!this._isFirstUpdatePosition)return;this._isFirstUpdatePosition=!1}const t=this._getTargets(),e=1/t.length,i=this.currentTimeProgress;t.forEach((A,s)=>{const n=e===1?i:Ke(0,Math.max(0,i-e*s)/e,1),o=this._cachedProps.get(A);if(!o)return;const a=this._parseKeyframes(n,o);a?.length&&this._commitStyle(n,A,o,a[0],a[1])})}_updateCachedProps(){this.cancel(),this._getTargets().forEach(t=>{const e=new Map,i=this._keyframes;for(let A=i.length,s=0;s<A;s++)Object.keys(i[s].props).forEach(n=>{e.set(n,t[n])});this._cachedProps.set(t,e)})}_parseEasing(t){if(!t)return Vr.linear;if(t in Vr)return Vr[t];const e=t.replace(/cubic-bezier\((.+)\)/,"$1").split(",").map(i=>Number(i));return iA(e[0],e[1],e[2],e[3])}_parseKeyframes(t,e){let i;const A=this._keyframes;for(let s=A.length,n=0;n<s;n++){const o=A[n],{offset:a,easing:l}=o,c={...o.props};if(i&&t<=a){const{offset:h,easing:u}=i,d={...i.props};return e.forEach((f,B)=>{(!(B in d)||d[B]===null)&&(d[B]=f),(!(B in c)||c[B]===null)&&(c[B]=f)}),[{offset:h,easing:u,props:d},{offset:a,easing:l,props:c}]}i=o}return null}_commitStyle(t,e,i,A,s){const{offset:n,easing:o,props:a}=A,{offset:l,props:c}=s,h=l-n,u=o((t-n)/h),d={width:e.width,height:e.height,fontSize:e.fontSize};i.forEach((f,B)=>{e[B]=this._getDiffValue(B,a[B],c[B],u,d)})}_getDiffValue(t,e,i,A,s){let n,o;if(e==="none"&&(e=void 0),i==="none"&&(i=void 0),e===void 0||i===void 0)if(e!==void 0)n=aA(t,String(e),s),o=Cs(n);else if(i!==void 0)o=aA(t,String(i),s),n=Cs(o);else return;else n=aA(t,String(e),s),o=aA(t,String(i),s);if(Array.isArray(n)&&Array.isArray(o)){const a=new Set,l={},c={};n.forEach(({name:u,args:d})=>{l[u]=d,a.add(u)}),o.forEach(({name:u,args:d})=>{c[u]=d,a.add(u)});let h="";return a.forEach(u=>{const d=Math.max(l[u]?.length??0,c[u]?.length??0),f=l[u],B=c[u];h+=`${u}(${Array.from({length:d},(p,R)=>{const P=f?.[R],y=B?.[R],S=P?.normalizedIntValue??0,Q=y?.normalizedIntValue??0;return Number.isNaN(S)||Number.isNaN(Q)?y?.value??0:Dt(S,Q,A)}).join(", ")}) `}),h}else if(!Array.isArray(n)&&!Array.isArray(o))return Number.isNaN(n.normalizedIntValue)||Number.isNaN(o.normalizedIntValue)?o.value:Dt(n.normalizedIntValue,o.normalizedIntValue,A)}isPlaying(){return!this.paused&&this.isInsideTimeRange()}play(){return this._stoped?(this._stoped=!1,this.startTime=this.timelineCurrentTime):this.startTime=this.timelineCurrentTime-this.currentTime,this.paused=!1,!0}pause(){return this.paused=!0,!0}stop(){return this._stoped=!0,this.paused=!0,this._currentTime=0,!0}cancel(){this._getTargets().forEach(t=>{this._cachedProps.get(t)?.forEach((e,i)=>{t[i]=e}),this._cachedProps.delete(t)})}},qA([_()],g.Animation.prototype,"effectMode",2),qA([_()],g.Animation.prototype,"loop",2),qA([_()],g.Animation.prototype,"keyframes",2),qA([_()],g.Animation.prototype,"easing",2),g.Animation=qA([nt("Animation",{renderMode:"disabled",processMode:"pausable",processSortMode:"parent_before",duration:2e3})],g.Animation);class zr extends Ge{static _instance;static get instance(){return this._instance||(this._instance=new zr),this._instance}playbackRate=1;muted=!1;volume=1;paused=!1;refresh(){this.emit("refresh")}refreshPaused(){this.emit("refreshPaused")}get processors(){return console.warn("HTML Audio does not support processors"),[]}set processors(t){console.warn("HTML Audio does not support processors")}get audioContext(){return console.warn("HTML Audio does not support audioContext"),null}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this.paused}free(){this.removeAllListeners()}}class XA extends Ge{static PADDING=.1;_source=null;_audio=null;_end=0;_pausedReal=!1;_duration=0;_start=0;_playing=!1;get progress(){return(this._source?.currentTime??0)/this._duration}_paused=!1;get paused(){return this._paused}set paused(t){this._paused!==t&&(this._paused=t,this.refreshPaused())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh())}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}set(t,e){if(this[t]===void 0)throw new Error(`Property with name ${t} does not exist.`);switch(t){case"playbackRate":this.playbackRate=e;break;case"volume":this.volume=e;break;case"paused":this.paused=e;break;case"loop":this.loop=e;break;case"muted":this.muted=e;break}return this}_onPlay(){this._playing=!0}_onPause(){this._playing=!1}init(t){this._playing=!1,this._duration=t.source.duration;const e=this._source=t.source.cloneNode(!1);return e.src=t.parent.src,e.onplay=this._onPlay.bind(this),e.onpause=this._onPause.bind(this),t.context.on("refresh",this.refresh),t.context.on("refreshPaused",this.refreshPaused),this._audio=t,this}_stop(){this._source&&this._playing&&(this._source.onended=null,this._source.pause())}stop(){this._stop(),this._source&&this.emit("stop")}get processors(){return console.warn("HTML Audio does not support processors"),[]}set processors(t){console.warn("HTML Audio does not support processors")}refresh(){if(!this._audio||!this._source)return;const t=this._audio.context,e=this._audio.parent;this._source.loop=this._loop||e.loop;const i=t.volume*(t.muted?0:1),A=e.volume*(e.muted?0:1),s=this._volume*(this._muted?0:1);this._source.volume=s*i*A,this._source.playbackRate=this._playbackRate*t.playbackRate*e.playbackRate}refreshPaused(){if(!this._source||!this._audio)return;const t=this._paused||this._audio.parent.paused||this._audio.context.paused;t!==this._pausedReal&&(this._pausedReal=t,t?(this._stop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._source.currentTime,end:this._end,volume:this._volume,playbackRate:this._playbackRate,loop:this._loop})),this.emit("pause",t))}play(t={}){if(!this._source)return;const{start:e=0,end:i=0}=t;i&&console.assert(i>e,"End time is before start time"),t.playbackRate!==void 0&&(this._playbackRate=t.playbackRate),t.volume!==void 0&&(this._volume=t.volume),t.loop!==void 0&&(this._loop=t.loop),t.muted!==void 0&&(this._muted=t.muted),this.refresh(),this.loop&&i!==null&&(console.warn('Looping not support when specifying an "end" time'),this.loop=!1),this._start=e,this._end=i||this._duration,this._start=Math.max(0,this._start-XA.PADDING),this._end=Math.min(this._end+XA.PADDING,this._duration),this._source.onloadedmetadata=()=>{this._source&&(this._source.currentTime=e,this._source.onloadedmetadata=null,this.emit("progress",e,this._duration),Yt.on(this._onUpdate))},this._source.onended=this._onComplete.bind(this),this._source.play(),this.emit("start")}_onUpdate=()=>{this._source&&(this.emit("progress",this.progress,this._duration),this._source.currentTime>=this._end&&!this._source.loop&&this._onComplete())};_onComplete(){Yt.off(this._onUpdate),this._stop(),this.emit("progress",1,this._duration),this.emit("end",this)}free(){Yt.off(this._onUpdate),this.removeAllListeners();const t=this._source;t&&(t.onended=null,t.onplay=null,t.onpause=null,this._stop()),this._source=null,this._playbackRate=1,this._volume=1,this._loop=!1,this._end=0,this._start=0,this._duration=0,this._playing=!1,this._pausedReal=!1,this._paused=!1,this._muted=!1,this._audio&&(this._audio.context.off("refresh",this.refresh),this._audio.context.off("refreshPaused",this.refreshPaused),this._audio=null)}}class sc{constructor(t){this.parent=t}source=new globalThis.Audio;_src="";get src(){return this._src}set src(t){this._src!==t&&(this._src=t,this.load())}get duration(){return this.source.duration}get isPlayable(){return!!this.source&&this.source.readyState===4}get context(){return zr.instance}async load(){return new Promise(t=>{this.source.onload=()=>t(this),this.source.src=this._src,this.source.load()})}createSound(){return new XA}}class On extends Ge{constructor(t,e){super(),this._input=t,this._output=e}_processers=[];get processors(){return this._processers}set processors(t){if(this._processers.forEach(e=>e.disconnect()),this._processers.length=0,this._input.connect(this._output),t.length){this._processers=t.slice(0),this._input.disconnect();let e;t.forEach(i=>{e?e.connect(i.destination):this._input.connect(i.destination),e=i}),e.connect(this._output)}}get destination(){return this._input}}class yp{constructor(t,e=null){this.destination=t,this.source=e}connect(t){this.source?.connect(t)}disconnect(){this.source?.disconnect()}}function mp(){if(ys)return new AudioContext;if(ms){const r=globalThis.webkitAudioContext;return new r}else throw new Error("Failed to createAudioContext")}function wp(r,t,e){if(ws)return new OfflineAudioContext(r,t,e);if(xo){const i=globalThis.webkitOfflineAudioContext;return new i(r,t,e)}else throw new Error("Failed to createOfflineAudioContext")}class ui extends On{static _instance;static get instance(){return this._instance||(this._instance=new ui),this._instance}static get audioContext(){return this.instance.audioContext}static get offlineContext(){return this.instance.offlineContext}static setParamValue(t,e){this.instance.setParamValue(t,e)}static decode(t){return this.instance.decode(t)}_context;_offlineContext;get audioContext(){return this._context}get offlineContext(){return this._offlineContext}_locked;muted=!1;volume=1;playbackRate=1;autoPause=!0;_paused=!1;_pausedOnBlur=!1;get paused(){return this._paused}set paused(t){t&&this._context.state==="running"?this._context.suspend():!t&&this._context.state==="suspended"&&this._context.resume(),this._paused=t}_compressor;_analyser;constructor(){const t=mp(),e=wp(1,2,ws?Math.max(8e3,Math.min(96e3,t.sampleRate)):44100),i=t.createDynamicsCompressor(),A=t.createAnalyser();A.connect(i),i.connect(t.destination),super(A,i),this._context=t,this._offlineContext=e,this._compressor=i,this._analyser=A,this._locked=t.state==="suspended"&&(Oe||Do),cA&&(this._locked&&(this._unlock(),document.addEventListener("mousedown",this._unlock,!0),document.addEventListener("touchstart",this._unlock,!0),document.addEventListener("touchend",this._unlock,!0)),globalThis.addEventListener("focus",this._onFocus),globalThis.addEventListener("blur",this._onBlur))}_onFocus(){if(!this.autoPause)return;const t=this._context.state;(t==="suspended"||t==="interrupted"||!this._locked)&&(this.paused=this._pausedOnBlur,this.refreshPaused())}_onBlur(){this.autoPause&&(this._locked||(this._pausedOnBlur=this._paused,this.paused=!0,this.refreshPaused()))}_unlock=()=>{this._locked&&(this.playEmptySound(),this._context.state==="running"&&(document.removeEventListener("mousedown",this._unlock,!0),document.removeEventListener("touchend",this._unlock,!0),document.removeEventListener("touchstart",this._unlock,!0),this._locked=!1))};playEmptySound(){const t=this._context.createBufferSource();t.buffer=this._context.createBuffer(1,1,22050),t.connect(this._context.destination),t.start(0,0,0),t.context.state==="suspended"&&t.context.resume()}refresh(){this.emit("refresh")}refreshPaused(){this.emit("refreshPaused")}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this._paused}decode(t){return new Promise((e,i)=>{const A=n=>{i(new Error(n?.message||"Unable to decode file"))},s=this._offlineContext.decodeAudioData(t,e,A);s&&s.catch(A)})}setParamValue(t,e){t.setValueAtTime?t.setValueAtTime(e,this._context.currentTime):t.value=e}}class nc extends Ge{_audio=null;_sourceNode=null;_gain=null;_progress=0;get progress(){return this._progress}_pausedReal=!1;_paused=!1;get paused(){return this._paused}set paused(t){this._paused!==t&&(this._paused=t,this.refreshPaused())}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh(),this._update(!0))}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}_duration=0;_end=0;_elapsed=0;_lastUpdate=this._now();_processors=[];init(t){return this._audio=t,t.context.on("refresh",this.refresh),t.context.on("refreshPaused",this.refreshPaused),this}_now(){return this._audio?.context.audioContext.currentTime??0}play(t={}){if(!this._audio)return;const{end:e=0,start:i=0}=t;e&&console.assert(e>i,"End time is before start time"),this._end=e,this._elapsed=i,t.volume!==void 0&&(this._volume=t.volume),t.playbackRate!==void 0&&(this._playbackRate=t.playbackRate),t.muted!==void 0&&(this._muted=t.muted),t.loop!==void 0&&(this._loop=t.loop),t.processors!==void 0&&(this._processors=t.processors),this._paused=!1;const{source:A,gain:s}=this._audio.cloneSource();this._sourceNode=A,this._gain=s,this.refresh(),A.onended=this._onComplete.bind(this),this._duration=A.buffer?.duration??0,this._lastUpdate=this._now(),this._loop?(A.loopStart=i,A.loopEnd=e,A.start(0,i)):e?A.start(0,i,e-i):A.start(0,i),this.emit("start"),this._update(!0),this._enableTicker(!0)}_stop(){if(this._sourceNode){this._enableTicker(!1),this._sourceNode.onended=null,this._sourceNode.stop(0),this._sourceNode.disconnect();try{this._sourceNode.buffer=null}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t)}this._sourceNode=null}}stop(){this._sourceNode&&(this._stop(),this.emit("stop"))}_update(t=!1){if(this._sourceNode){const e=this._now(),i=e-this._lastUpdate;if(i>0||t){this._elapsed+=i*this._sourceNode.playbackRate.value,this._lastUpdate=e;const A=this._duration;let s;if(this._sourceNode.loopStart){const n=this._sourceNode.loopEnd-this._sourceNode.loopStart;s=(this._sourceNode.loopStart+this._elapsed%n)/A}else s=this._elapsed%A/A;this._progress=s,this.emit("progress",s,A)}}}refresh(){if(!this._audio||!this._sourceNode)return;const t=this._audio.context,e=this._audio.parent;this._sourceNode.loop=this._loop||e.loop,t.setParamValue(this._gain.gain,this._volume*(this._muted?0:1)*e.volume*(e.muted?0:1)*t.volume*(t.muted?0:1)),t.setParamValue(this._sourceNode.playbackRate,this._playbackRate*e.playbackRate*t.playbackRate),this.applyProcessors()}applyProcessors(){if(this._sourceNode&&this._processors.length){this._sourceNode.disconnect();let t=this._sourceNode;this._processors.forEach(e=>{t.connect(e.destination),t=e}),t.connect(this._gain)}}refreshPaused(){if(!this._audio)return;const t=this._paused||this._audio.parent.paused||this._audio.context.paused;t!==this._pausedReal&&(this._pausedReal=t,t?(this._stop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._elapsed%this._duration,end:this._end,playbackRate:this._playbackRate,loop:this._loop,volume:this._volume})),this.emit("pause",t))}_onComplete=()=>{if(this._sourceNode){this._enableTicker(!1),this._sourceNode.onended=null,this._sourceNode.disconnect();try{this._sourceNode.buffer=null}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t)}}this._sourceNode=null,this._progress=1,this.emit("progress",1,this._duration),this.emit("end",this)};_updateListener=()=>this._update();_enableTicker(t){Yt.off(this._updateListener),t&&Yt.on(this._updateListener)}free(){this.removeAllListeners(),this._stop(),this._gain?.disconnect(),this._gain=null,this._audio?.context.off("refresh",this.refresh),this._audio?.context.off("refreshPaused",this.refreshPaused),this._audio=null,this._processors.forEach(t=>t.disconnect()),this._processors.length=0,this._end=0,this._playbackRate=1,this._volume=1,this._loop=!1,this._elapsed=0,this._duration=0,this._paused=!1,this._muted=!1,this._pausedReal=!1}}class oc extends On{constructor(t){const e=ui.audioContext,i=e.createBufferSource(),A=e.createGain(),s=e.createAnalyser();i.connect(s),s.connect(A),A.connect(ui.instance.destination),super(s,A),this.parent=t,this._sourceNode=i,this.gain=A,this.analyser=s}_sourceBuffer;_sourceNode;_sourceLoad;gain;analyser;get context(){return ui.instance}get isPlayable(){return!!this._sourceNode.buffer}get duration(){return this._sourceNode.buffer?.duration??0}get buffer(){return this._sourceNode.buffer}set buffer(t){this._sourceNode.buffer=t}async load(){return this._sourceLoad||(this._sourceLoad=new Promise(t=>{this._sourceBuffer?this._decode(this._sourceBuffer).then(()=>t(this)):this.parent.src?this._loadUrl(this.parent.src).then(()=>t(this)):t(this)})),this._sourceLoad}_loadUrl(t){return new Promise(e=>{fetch(t).then(i=>i.arrayBuffer()).then(i=>this._decode(i)).finally(()=>e(this))})}_decode(t){return Promise.resolve(t instanceof AudioBuffer?t:ui.decode(t)).then(e=>(this.parent.isLoaded=!0,this.buffer=e,e))}cloneSource(){const t=this.context,e=this._sourceNode,i=t.audioContext.createBufferSource(),A=t.audioContext.createGain();return i.buffer=e.buffer,i.loop=e.loop,t.setParamValue(i.playbackRate,e.playbackRate.value),i.connect(A),A.connect(this.destination),{source:i,gain:A}}createSound(){return new nc}}var vp=Object.defineProperty,_p=Object.getOwnPropertyDescriptor,bp=(r,t,e)=>t in r?vp(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Dp=(r,t,e,i)=>{for(var A=i>1?void 0:i?_p(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A},xp=(r,t,e)=>bp(r,t+"",e);g.Audio=class extends g.TimelineNode{_sounds=[];_platformAudio=So?new oc(this):new sc(this);get platformAudio(){return this._platformAudio}_src;get src(){return this._src}set src(t){this._src!==t&&(this._src=t,this.load())}isLoaded=!1;get isPlayable(){return this.isLoaded&&this._platformAudio.isPlayable}get audioDuration(){return this._platformAudio.duration*1e3}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh())}_isPlaying=!1;get isPlaying(){return this._isPlaying}multiple=!1;start=0;end=0;constructor(t=""){super(),this.src=t}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"paused":this.refreshPaused();break}}async load(){return await this._platformAudio.load(),this}pause(){return this._isPlaying=!1,this.paused=!0,this}resume(){return this._isPlaying=this._sounds.length>0,this.paused=!1,this}stop(){if(!this.isPlayable)return this;this._isPlaying=!1;for(let t=this._sounds.length-1;t>=0;t--)this._sounds[t].stop();return this}play(t={}){if(!this.isLoaded)return;this.multiple||this._removeSounds(),this._isPlaying=!0;const e=this._createSound();this._sounds.push(e),e.once("end",()=>{t.complete?.(),this._onComplete(e)}),e.once("stop",()=>this._onComplete(e));const i=(t?.start??this.start)/1e3,A=(t?.end??this.end)/1e3;return e.play({...t,start:i,end:A}),e}_removeSounds(){for(let t=this._sounds.length-1;t>=0;t--)this._recycleSound(this._sounds[t]);this._sounds.length=0}_createSound(){return g.Audio._soundPool.length>0?g.Audio._soundPool.pop().init(this._platformAudio):this._platformAudio.createSound().init(this._platformAudio)}refresh(){for(let t=this._sounds.length,e=0;e<t;e++)this._sounds[e].refresh()}refreshPaused(){for(let t=this._sounds.length,e=0;e<t;e++)this._sounds[e].refreshPaused()}_onComplete=t=>{if(this._sounds){const e=this._sounds.indexOf(t);e>-1&&this._sounds.splice(e,1),this._isPlaying=this._sounds.length>0}this._recycleSound(t)};_recycleSound(t){t.free(),g.Audio._soundPool.includes(t)||g.Audio._soundPool.push(t)}_prevTime=0;_timer=0;_process(t){if(super._process(t),this.canProcess()){const e=this._tree?.timeline.currentTime??0;e-this._prevTime>0&&(this._timer||(this._setTimeStop(),this.play({start:this.start+(e-this.delay)%this.duration})),this._isPlaying&&this._setTimeStop()),this._prevTime=e}}_setTimeStop(){this._timer&&clearTimeout(this._timer),this._timer=setTimeout(()=>{this.stop(),this._timer=0},100)}},xp(g.Audio,"_soundPool",[]),g.Audio=Dp([nt("Audio")],g.Audio);class Sp extends g.Node2D{}var Mp=Object.defineProperty,Rp=Object.getOwnPropertyDescriptor,Wr=(r,t,e,i)=>{for(var A=i>1?void 0:i?Rp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Mp(t,e,A),A};g.AudioWaveform=class extends g.Element2D{_audioBuffer;_src=cA?new mt(document.createElement("canvas")):void 0;_needsUpdateTexture=!1;constructor(t={}){super(),this.setProperties(t)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"src":this._loadSrc(e);break;case"gap":case"color":case"width":case"height":this._needsUpdateTexture=!0;break}}async _loadSrc(t){await globalThis.fetch(t).then(e=>e.arrayBuffer()).then(e=>ui.decode(e)).then(e=>{this._audioBuffer=e,this.syncTexture(!0)})}syncTexture(t=!1){const e=this._audioBuffer;if(!e||!t&&!this._needsUpdateTexture)return;this._needsUpdateTexture=!1;const i=this._src?.source;if(!i)return;const{width:A=0,height:s=0}=this.style;i.width=A,i.height=s;const n=i.getContext("2d");if(!n){console.warn("Failed to getContext('2d') in syncTexture");return}n.fillStyle=this.color;const o=e.getChannelData(0),a=Math.ceil(o.length/A),l=s/2;for(let c=1,h=-1,u=0;u<A;u++){for(let d=0;d<a;d++){const f=o[u*a+d];f<c&&(c=f),f>h&&(h=f)}if(!this.gap||u%(this.gap*2)===0){const d=u,f=(1+c)*l,B=this.gap||1,p=Math.max(1,(h-c)*l);n.fillRect(d,f,B,p),c=1,h=-1}}this._src?.requestUpload(),this.requestRedraw()}_process(t){this.syncTexture(),super._process(t)}_drawSrc(){const t=this._src;t?.valid&&(this.context.fillStyle=t,this.context.uvTransform=new Vt().scale(1/this.style.width,1/this.style.height))}},Wr([_()],g.AudioWaveform.prototype,"src",2),Wr([_()],g.AudioWaveform.prototype,"gap",2),Wr([_()],g.AudioWaveform.prototype,"color",2),g.AudioWaveform=Wr([nt("AudioWaveform")],g.AudioWaveform);var kp=Object.getOwnPropertyDescriptor,Pp=(r,t,e,i)=>{for(var A=i>1?void 0:i?kp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.Control=class extends g.Element2D{constructor(t,e=[]){super(),this._parentUpdateRect=this._parentUpdateRect.bind(this),this.setProperties(t),this.append(e)}_parented(t){super._parented(t),t.on("updateRect",this._parentUpdateRect)}_unparented(t){super._unparented(t),t.off("updateRect",this._parentUpdateRect)}_parentUpdateRect(){const t=this._parent.getRect();this.style.left=t.left,this.style.top=t.top,this.style.width=t.width,this.style.height=t.height}_input(t,e){super._input(t,e),this._guiInput(t,e)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":case"height":case"left":case"top":this.emit("updateRect");break}}_guiInput(t,e){}},g.Control=Pp([nt("Control")],g.Control);var Up=Object.defineProperty,Np=Object.getOwnPropertyDescriptor,fi=(r,t,e,i)=>{for(var A=i>1?void 0:i?Np(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Up(t,e,A),A};g.Range=class extends g.Control{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"allowGreater":case"allowLesser":case"page":case"minValue":case"maxValue":case"step":case"value":this.requestRedraw();break}}},fi([_({fallback:!1})],g.Range.prototype,"allowGreater",2),fi([_({fallback:!1})],g.Range.prototype,"allowLesser",2),fi([_({fallback:1})],g.Range.prototype,"page",2),fi([_({fallback:0})],g.Range.prototype,"minValue",2),fi([_({fallback:100})],g.Range.prototype,"maxValue",2),fi([_({fallback:.01})],g.Range.prototype,"step",2),fi([_({fallback:0})],g.Range.prototype,"value",2),g.Range=fi([nt("Range")],g.Range);var Fp=Object.defineProperty,Tp=Object.getOwnPropertyDescriptor,Ue=(r,t,e,i)=>{for(var A=i>1?void 0:i?Tp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Fp(t,e,A),A};g.Ruler=class extends g.Control{texture=new uA;constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"offsetX":case"offsetY":case"thickness":case"markHeight":case"color":case"markBackgroundColor":case"markColor":case"gap":case"scale":this.requestRedraw();break}}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":case"height":this.texture[t]=e,this.requestRedraw();break}}_drawTexture(){const{width:t,height:e}=this.size,{offsetX:i,offsetY:A,thickness:s,markHeight:n,markBackgroundColor:o,markColor:a,color:l,gap:c,gapScale:h}=this,d=this.texture.source.getContext("2d");d.reset(),d.scale(this.texture.pixelRatio,this.texture.pixelRatio);const f=Math.round(i),B=Math.round(A);d.beginPath(),d.fillStyle=o||"#EEE",d.fillRect(0,0,t,s),d.fillRect(0,0,s,e),d.fill(),d.strokeStyle=a||"#000",d.moveTo(s,0),d.lineTo(s,e),d.moveTo(0,s),d.lineTo(t,s),d.stroke();const p=c,R=c*h;let P,y,S,Q,m;for(p>=R?(P=p/R,y=Math.floor(P)*p/20,S=p/20*Math.floor(P)/P):(P=R/p,y=Math.floor(p/20/P),y>=2?y=Math.floor(y/2)*2:y=1,S=y*P),d.fillStyle=d.strokeStyle,Q=f,m=0;Q<t;m++,Q+=S)d.moveTo(Q,s-(m%5?n:2*n)),d.lineTo(Q,s);for(Q=f,m=0;Q>s;m++,Q-=S)d.moveTo(Q,s-(m%5?n:2*n)),d.lineTo(Q,s);let M=0;for(Q=B,m=0;Q>s;m++,Q-=S)d.moveTo(s-(m%5?n:2*n),Q),d.lineTo(s,Q);for(Q=B,m=0;Q<e;m++,Q+=S)d.moveTo(s-(m%5?n:2*n),Q),d.lineTo(s,Q);for(d.save(),d.fillStyle=l,d.scale(.8,.8),M=s-8,Q=f,m=0;Q<t;m++,Q+=S)m%10===0&&d.fillText(String(Math.ceil(y*m)),Q*1.25-3,M*1.25);for(Q=f,m=0;Q>s;m++,Q-=S)m%10===0&&d.fillText(String(Math.ceil(-y*m)),Q*1.25-3,M*1.25);for(M=0,Q=B,m=0;Q>s;m++,Q-=S)m%10===0&&d.fillText(String(Math.ceil(y*m)),M*1.25,Q*1.25+3);for(Q=B,m=0;Q<e;m++,Q+=S)m%10===0&&d.fillText(String(Math.ceil(-y*m)),M*1.25,Q*1.25+3);d.restore(),d.stroke(),this.texture.requestUpload()}_draw(){this._drawTexture();const t=this.texture;t?.valid&&(this.context.fillStyle=t,this.context.uvTransform=new Vt().scale(1/this.size.width,1/this.size.height),this.context.rect(0,0,t.width,t.height),this.context.fill())}},Ue([_({fallback:0})],g.Ruler.prototype,"offsetX",2),Ue([_({fallback:0})],g.Ruler.prototype,"offsetY",2),Ue([_({fallback:20})],g.Ruler.prototype,"thickness",2),Ue([_({fallback:3})],g.Ruler.prototype,"markHeight",2),Ue([_({fallback:"#b2b6bc"})],g.Ruler.prototype,"color",2),Ue([_({fallback:"#f9f9fa"})],g.Ruler.prototype,"markBackgroundColor",2),Ue([_({fallback:"#b2b6bc"})],g.Ruler.prototype,"markColor",2),Ue([_({fallback:300})],g.Ruler.prototype,"gap",2),Ue([_({fallback:1})],g.Ruler.prototype,"gapScale",2),g.Ruler=Ue([nt("Ruler")],g.Ruler);var Lp=Object.defineProperty,Gp=Object.getOwnPropertyDescriptor,ac=(r,t,e,i)=>{for(var A=i>1?void 0:i?Gp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Lp(t,e,A),A};g.ScrollBar=class extends g.Range{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":case"height":case"left":case"top":this.requestRedraw();break}}_rect(){const{size:t,position:e}=this;let i,A,s,n,o;return this.direction==="vertical"?(s=10,n=t.height*(this.page/(this.maxValue-this.minValue)),i=e.left+t.width-s,A=t.height*(this.value/(this.maxValue-this.minValue)),o=s/2):(s=t.width*(this.page/(this.maxValue-this.minValue)),n=10,i=t.width*(this.value/(this.maxValue-this.minValue)),A=e.top+t.height-n,o=n/2),{left:i,top:A,width:s,height:n,radii:o}}_draw(){const{left:t,top:e,width:i,height:A,radii:s}=this._rect();this.context.roundRect(t,e,i,A,s),this.context.fillStyle=34,this.context.fill()}_pointerInput(t,e){const{left:i,top:A,width:s,height:n}=this._rect(),o=t.x>=i&&t.x<i+s&&t.y>=A&&t.y<A+n;switch(e){case"pointerdown":case"pointermove":o?this._tree?.input.setCursor("pointer"):this._tree?.input.setCursor(void 0);break}return!1}},ac([_({fallback:"vertical"})],g.ScrollBar.prototype,"direction",2),g.ScrollBar=ac([nt("ScrollBar")],g.ScrollBar);var Op=Object.getOwnPropertyDescriptor,Hp=(r,t,e,i)=>{for(var A=i>1?void 0:i?Op(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.XScrollBar=class extends g.ScrollBar{constructor(t,e=[]){super(),this.setProperties(t).append(e)}},g.XScrollBar=Hp([nt("XScrollBar",{direction:"horizontal"})],g.XScrollBar);var Jp=Object.getOwnPropertyDescriptor,Kp=(r,t,e,i)=>{for(var A=i>1?void 0:i?Jp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.YScrollBar=class extends g.ScrollBar{constructor(t,e=[]){super(),this.setProperties(t).append(e)}},g.YScrollBar=Kp([nt("YScrollBar",{direction:"vertical"})],g.YScrollBar);var Yp=Object.defineProperty,Vp=Object.getOwnPropertyDescriptor,qr=(r,t,e,i)=>{for(var A=i>1?void 0:i?Vp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Yp(t,e,A),A};g.Scaler=class extends g.Node{get target(){if(this.parent?.style)return this.parent}constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"value":case"min":case"max":{this.value=Ke(this.minValue,this.value,this.maxValue),this._updateScale();break}}}_updateScale(){const t=this.target;t&&(t.style.scaleX=this.value,t.style.scaleY=this.value,this.emit("updateScale",this.value))}_onWheel(t){if(!this.target)return;if(t.preventDefault(),!(t.wheelDeltaY?Math.abs(Math.abs(t.wheelDeltaY)-Math.abs(3*t.deltaY))<3:t.deltaMode===0)&&t.ctrlKey){t.preventDefault();let A=t.deltaY/(t.ctrlKey?1:100);A*=-.015,this.value+=A}}_input(t,e){switch(super._input(t,e),e){case"wheel":this._onWheel(t);break}}},qr([_()],g.Scaler.prototype,"value",2),qr([_()],g.Scaler.prototype,"minValue",2),qr([_()],g.Scaler.prototype,"maxValue",2),g.Scaler=qr([nt("Scaler",{processMode:"disabled",renderMode:"disabled"})],g.Scaler);var zp=Object.defineProperty,Wp=Object.getOwnPropertyDescriptor,qp=(r,t,e)=>t in r?zp(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Xp=(r,t,e,i)=>{for(var A=i>1?void 0:i?Wp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A},jp=(r,t,e)=>qp(r,t+"",e);g.KawaseTransition=class extends g.Transition{blur=10;quality=10;apply(t,e){const i=this.currentTimeProgress;let A,s;i<.5?(A=0,s=(.5-i)/.5):(A=1,s=(i-.5)/.5);const n=this.blur,o=this.quality,a=e.width,l=e.height,c=[],h=[n];if(n>0){let R=n;const P=n/o;for(let y=1;y<o;y++)R-=P,h.push(R)}const u=1/a,d=1/l,f=[];let B;const p=o-1;for(let R=0;R<p;R++)B=h[R]+.5,f[0]=B*u,f[1]=B*d,c.push({offset:f});B=h[p]+.5,f[0]=B*u,f[1]=B*d,c.push({offset:f}),c.forEach(R=>{gt.draw(t,g.KawaseTransition.material,{sampler:A,progress:s,...R})})}},jp(g.KawaseTransition,"material",new Bt({vert:`attribute vec2 position;
|
|
864
|
+
</svg>`}function YI(){const r=new Ai;return{name:"listStyle",pathSet:r,update:t=>{r.paths.length=0;const{paragraphs:e,isVertical:i,fontSize:A}=t,s=A*.45;e.forEach(n=>{const{computedStyle:o}=n,{color:a,listStyleImage:l,listStyleColormap:c,listStyleSize:h,listStyleType:u}=o,d=Rn(c);let f=h,B;if(!Gt(l))B=l;else if(!Gt(u)){const m=A*.38/2;switch(f=f==="cover"?m*2:f,u){case"disc":B=KI(m,String(a));break}}if(!B)return;const p=Vs(B),R=p.getBoundingBox(),P=n.fragments[0]?.characters[0];if(!P)return;const{inlineBox:y}=P,S=f==="cover"?1:Mn(f,{total:A,fontSize:A})/A,Q=new Lt;if(i){const m=A/R.height*S;Q.translate(-R.left,-R.top).rotate(Math.PI/2).scale(m,m).translate(y.left+(y.width-R.height*m)/2,y.top-s)}else{const m=A/R.height*S;Q.translate(-R.left,-R.top).scale(m,m).translate(y.left-R.width*m-s,y.top+(y.height-R.height*m)/2)}r.paths.push(...p.paths.map(m=>{const M=m.clone();return M.applyTransform(Q),M.style.fill&&M.style.fill in d&&(M.style.fill=d[M.style.fill]),M.style.stroke&&M.style.stroke in d&&(M.style.stroke=d[M.style.stroke]),M}))})}}}function VI(){return{name:"outline"}}const li=new J,zi=new Lt,ci=new Lt;function zI(){return{name:"render",getBoundingBox:r=>{const{characters:t,fontSize:e,effects:i}=r,A=[];return t.forEach(s=>{i?.forEach(n=>{if(!s.glyphBox)return;const o=s.glyphBox.clone(),a=Un(r,n);li.set(o.left,o.top),li.applyMatrix3(a),o.left=li.x,o.top=li.y,li.set(o.right,o.bottom),li.applyMatrix3(a),o.width=li.x-o.left,o.height=li.y-o.top;const l=(n.shadowOffsetX??0)*e,c=(n.shadowOffsetY??0)*e,h=Math.max(.1,n.textStrokeWidth??0)*e;o.left+=l-h,o.top+=c-h,o.width+=h*2,o.height+=h*2,A.push(o)})}),A.length?lt.from(...A):void 0},render:(r,t)=>{const{paragraphs:e,glyphBox:i,effects:A}=t;A?A.forEach(s=>{Gr(s,i,r),r.save();const[n,o,a,l,c,h]=Un(t,s).transpose().elements;r.transform(n,l,o,c,a,h),t.forEachCharacter(u=>{u.drawTo(r,s)}),r.restore()}):e.forEach(s=>{s.fragments.forEach(n=>{n.characters.forEach(o=>{o.drawTo(r)})})}),t.debug&&e.forEach(s=>{r.strokeRect(s.lineBox.x,s.lineBox.y,s.lineBox.width,s.lineBox.height)})}}}function Un(r,t){const{fontSize:e,glyphBox:i}=r,A=(t.translateX??0)*e,s=(t.translateY??0)*e,n=Math.PI*2,o=(t.skewX??0)/360*n,a=(t.skewY??0)/360*n,{left:l,top:c,width:h,height:u}=i,d=l+h/2,f=c+u/2;return zi.identity(),ci.makeTranslation(A,s),zi.multiply(ci),ci.makeTranslation(d,f),zi.multiply(ci),ci.set(1,Math.tan(o),0,Math.tan(a),1,0,0,0,1),zi.multiply(ci),ci.makeTranslation(-d,-f),zi.multiply(ci),zi.clone()}function WI(){const r=new Ai;return{name:"textDecoration",pathSet:r,update:t=>{r.paths.length=0;const e=[];let i,A;t.forEachCharacter(s=>{const{computedStyle:n,isVertical:o,inlineBox:a,underlinePosition:l,underlineThickness:c,strikeoutPosition:h,strikeoutSize:u}=s,{color:d,textDecoration:f,writingMode:B}=n;if(Gt(f))A=void 0;else{let p=!1;if(A?.textDecoration===f&&A?.writingMode===B&&A?.color===d&&(o?i[0].inlineBox.left===a.left:i[0].inlineBox.top===a.top))switch(f){case"underline":i[0].underlinePosition===l&&i[0].underlineThickness===c&&(p=!0);break;case"line-through":i[0].strikeoutPosition===h&&i[0].strikeoutSize===u&&(p=!0);break}p?i.push(s):(i=[],i.push(s),e.push(i)),A=n}}),e.forEach(s=>{const{computedStyle:n,isVertical:o,underlinePosition:a,underlineThickness:l,strikeoutPosition:c,strikeoutSize:h}=s[0],{color:u,textDecoration:d}=n,f=lt.from(...s.map(M=>M.inlineBox)),{left:B,top:p,width:R,height:P}=f;let y=o?B+R:p;const S=o?-1:1;let Q=0;switch(d){case"overline":Q=l*2;break;case"underline":y+=S*a,Q=l*2;break;case"line-through":y+=S*c,Q=h*2;break}y-=Q;let m;o?m=new Rt([{type:"M",x:y,y:p},{type:"L",x:y,y:p+P},{type:"L",x:y+Q,y:p+P},{type:"L",x:y+Q,y:p},{type:"Z"}],{fill:u}):m=new Rt([{type:"M",x:B,y},{type:"L",x:B+R,y},{type:"L",x:B+R,y:y+Q},{type:"L",x:B,y:y+Q},{type:"Z"}],{fill:u}),r.paths.push(m)})},render:(t,e)=>{const{effects:i,computedStyle:A}=e;i?i.forEach(s=>{t.save();const[n,o,a,l,c,h]=Un(e,s).transpose().elements;t.transform(n,l,o,c,a,h),r.paths.forEach(u=>{Yi({ctx:t,path:u,fontSize:A.fontSize,...s})}),t.restore()}):r.paths.forEach(s=>{Yi({ctx:t,path:s,fontSize:A.fontSize})})}}}const Nn=$f();class Ll extends OI{debug;content;style;effects;measureDOM;needsUpdate=!0;computedStyle={...Nn};paragraphs=[];lineBox=new lt;rawGlyphBox=new lt;glyphBox=new lt;pathBox=new lt;boundingBox=new lt;measurer=new Or;plugins=new Map;fonts;get fontSize(){return this.computedStyle.fontSize}get isVertical(){return this.computedStyle.writingMode.includes("vertical")}get characters(){return this.paragraphs.flatMap(t=>t.fragments.flatMap(e=>e.characters))}constructor(t={}){super(),this.set(t)}set(t={}){this.debug=t.debug??!1,this.content=rd(t.content??""),this.style=t.style??{},this.measureDOM=t.measureDOM,this.effects=t.effects,this.fonts=t.fonts,this.use(HI()).use(VI()).use(YI()).use(WI()).use(JI()).use(zI()),(t.plugins??[]).forEach(e=>{this.use(e)}),this.updateParagraphs()}use(t){return this.plugins.set(t.name,t),this}forEachCharacter(t){return this.paragraphs.forEach((e,i)=>{e.fragments.forEach((A,s)=>{A.characters.forEach((n,o)=>{t(n,{paragraphIndex:i,fragmentIndex:s,characterIndex:o})})})}),this}async load(){await Promise.all(Array.from(this.plugins.values()).map(t=>t.load?.(this)))}updateParagraphs(){this.computedStyle={...Nn,...this.style};const{content:t,computedStyle:e}=this,i=[];return t.forEach(A=>{const{fragments:s,...n}=A,o=new GI(n,e);s.forEach(a=>{const{content:l,...c}=a;l!==void 0&&o.addFragment(l,c)}),i.push(o)}),this.paragraphs=i,this}createDOM(){return this.updateParagraphs(),this.measurer.createDOM(this.paragraphs,this.computedStyle)}measure(t=this.measureDOM){const e={paragraphs:this.paragraphs,lineBox:this.lineBox,rawGlyphBox:this.rawGlyphBox,glyphBox:this.glyphBox,pathBox:this.pathBox,boundingBox:this.boundingBox};this.updateParagraphs();const i=this.measurer.measure(this.paragraphs,this.computedStyle,t);this.paragraphs=i.paragraphs,this.lineBox=i.boundingBox,this.characters.forEach(A=>{A.update(this.fonts)}),this.rawGlyphBox=this.getGlyphBox(),Array.from(this.plugins.values()).sort((A,s)=>(A.updateOrder??0)-(s.updateOrder??0)).forEach(A=>{A.update?.(this)}),this.glyphBox=this.getGlyphBox(),this.updatePathBox().updateBoundingBox();for(const A in e)i[A]=this[A],this[A]=e[A];return this.emit("measure",{text:this,result:i}),i}getGlyphBox(){const t=J.MAX,e=J.MIN;return this.characters.forEach(i=>{if(!i.getGlyphMinMax(t,e)){const{inlineBox:A}=i,{left:s,top:n,width:o,height:a}=A,l=new J(s,n),c=new J(s+o,n+a);t.min(l,c),e.max(l,c)}}),new lt(t.x,t.y,e.x-t.x,e.y-t.y)}updatePathBox(){return this.pathBox=lt.from(this.glyphBox,...Array.from(this.plugins.values()).map(t=>t.getBoundingBox?t.getBoundingBox(this):t.pathSet?.getBoundingBox()).filter(Boolean)),this}updateBoundingBox(){return this.boundingBox=lt.from(this.rawGlyphBox,this.lineBox,this.pathBox),this}requestUpdate(){return this.needsUpdate=!0,this}update(t=this.measureDOM){const e=this.measure(t);for(const i in e)this[i]=e[i];return this.emit("update",{text:this}),this.needsUpdate=!1,this}render(t){const{view:e,pixelRatio:i=2}=t,A=e.getContext("2d");A&&(this.needsUpdate&&this.update(),MI(A,i,this.boundingBox),RI(A,this),Array.from(this.plugins.values()).sort((s,n)=>(s.renderOrder??0)-(n.renderOrder??0)).forEach(s=>{if(s.render)s.render?.(A,this);else if(s.pathSet){const n=this.computedStyle;s.pathSet.paths.forEach(o=>{Yi({ctx:A,path:o,fontSize:n.fontSize})})}}),this.emit("render",{text:this,view:e,pixelRatio:i}),t.onContext?.(A))}toString(){return this.content.flatMap(t=>t.fragments.map(e=>e.content)).join("")}}var qI=Object.defineProperty,zA=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&qI(t,e,A),A};class Si extends ti{constructor(t){super(),this.parent=t}base=new Ll;measureResult;setProperties(t){return super.setProperties(bt(t)?void 0:Mh(t))}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"content":case"effects":case"measureDOM":case"fonts":case"split":case"enabled":this.parent.requestRedraw();break}}_updateText(){this.base.style={justifyContent:"center",alignItems:"center",textAlign:"center",...this.parent.style.toJSON()},this.base.requestUpdate()}measure(){return this._updateText(),this.base.measure()}updateMeasure(){return this.measureResult=this.measure(),this}canDraw(){return!!(this.enabled&&!/^\s*$/.test(this.base.toString()))}draw(){const t=this.parent.context;this.base.update(),this.base.paragraphs.forEach(e=>{e.fragments.forEach(i=>{i.characters.forEach(A=>{t.fillStyle=A.computedStyle.color,t.addPath(A.path),t.style.fillRule="evenodd",t.closePath(),t.fill()})})})}}zA([_({fallback:!0})],Si.prototype,"enabled"),zA([_({alias:"base.content",fallback:()=>[]})],Si.prototype,"content"),zA([_({alias:"base.effects"})],Si.prototype,"effects"),zA([_({protected:!0,alias:"base.measureDOM"})],Si.prototype,"measureDOM"),zA([_({protected:!0,alias:"base.fonts"})],Si.prototype,"fonts");var XI=Object.defineProperty,jI=Object.getOwnPropertyDescriptor,Fn=(r,t,e,i)=>{for(var A=i>1?void 0:i?jI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&XI(t,e,A),A};g.Node2D=class extends g.CanvasItem{position=new le().on("update",()=>this.updateGlobalTransform());scale=new le(1,1).on("update",()=>this.updateGlobalTransform());skew=new le().on("update",()=>this.updateGlobalTransform());transform=new Vt;globalPosition=new le;globalScale=new le;globalSkew=new le;globalTransform=new Vt;_parentTransformDirtyId;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"rotation":this.updateGlobalTransform();break}}getTransformOrigin(){return new le(0,0)}getTransform(t){const e=this.getTransformOrigin(),i=new Vt;return i.translate(-e.x,-e.y).scale(this.scale.x,this.scale.y).skew(this.skew.x,this.skew.y).rotate(this.rotation),t?.(i),i.translate(this.position.x,this.position.y).translate(e.x,e.y),i}updateTransform(){this.transform.copy(this.getTransform())}updateGlobalTransform(){this.updateTransform();const t=this.getParent();t?.globalTransform?(this._parentTransformDirtyId=t.globalTransform.dirtyId,this.globalScale.set(t.globalScale.x*this.scale.x,t.globalScale.y*this.scale.y),this.globalRotation=t.globalRotation+this.rotation,t.globalTransform.multiply(this.transform,this.globalTransform)):(this.globalScale.copy(this.scale),this.globalRotation=this.rotation,this.globalTransform.copy(this.transform));const[e,i,A,s,n,o]=this.globalTransform.toArray();this.globalPosition.set(A,o),this.globalSkew.x=Math.atan2(i,e)-this.globalRotation,this.globalSkew.y=Math.atan2(s,n)-this.globalRotation,this.requestRelayout()}_transformVertices(t,e){let i,A,s,n,o,a;if(e){const c=this.globalTransform.clone();c.multiply(typeof e=="function"?e?.():e),[i,A,s,n,o,a]=c.toArray()}else[i,A,s,n,o,a]=this.globalTransform.toArray();const l=t.slice();for(let c=t.length,h=0;h<c;h+=2){const u=t[h],d=t[h+1];l[h]=i*u+A*d+s,l[h+1]=n*u+o*d+a}return l}_relayout(t){return this.updateGlobalTransform(),super._relayout(t).map(e=>({...e,vertices:this._transformVertices(e.vertices,e.vertTransform)}))}_process(t){super._process(t);const e=this.getParent();e?.globalTransform&&this._parentTransformDirtyId!==e?.globalTransform?.dirtyId&&this.requestRelayout()}},Fn([_({protected:!0,fallback:0})],g.Node2D.prototype,"rotation",2),Fn([_({protected:!0,fallback:0})],g.Node2D.prototype,"globalRotation",2),g.Node2D=Fn([nt("Node2D")],g.Node2D);var ZI=Object.getOwnPropertyDescriptor,$I=(r,t,e,i)=>{for(var A=i>1?void 0:i?ZI(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.BaseElement2D=class extends g.Node2D{size=new le().on("update",()=>{this.updateGlobalTransform(),this.requestRedraw()});get style(){return this._style}set style(t){const e=(...i)=>{this.emit("updateStyleProperty",...i),this._updateStyleProperty(i[0],i[1],i[2],i[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}_background=new en(this);get background(){return this._background}set background(t){this._background.resetProperties().setProperties(t)}_shape=new wi(this);get shape(){return this._shape}set shape(t){this._shape.resetProperties().setProperties(t)}_fill=new zt(this);get fill(){return this._fill}set fill(t){this._fill.resetProperties().setProperties(t)}_outline=new DA(this);get outline(){return this._outline}set outline(t){this._outline.resetProperties().setProperties(t)}_foreground=new An(this);get foreground(){return this._foreground}set foreground(t){this._foreground.resetProperties().setProperties(t)}_text=new Si(this);get text(){return this._text}set text(t){this._text.resetProperties().setProperties(t)}_shadow=new mi(this);get shadow(){return this._shadow}set shadow(t){this._shadow.resetProperties().setProperties(t)}constructor(t,e=[]){super(),this._updateStyleProperty=this._updateStyleProperty.bind(this),this.style=new MA,this.setProperties(t).append(e)}setProperties(t){if(t){const{style:e,text:i,shape:A,background:s,fill:n,outline:o,foreground:a,shadow:l,...c}=t;e&&this.style.setProperties(e),s&&this.background.setProperties(s),A&&this.shape.setProperties(A),n&&this.fill.setProperties(n),o&&this.outline.setProperties(o),i&&this.text.setProperties(i),a&&this.foreground.setProperties(a),l&&this.shadow.setProperties(l),super.setProperties(c)}return this}_updateStyleProperty(t,e,i,A){switch(t){case"rotate":this.rotation=this.style.rotate*Oo;break;case"scaleX":this.scale.x=this.style.scaleX;break;case"scaleY":this.scale.y=this.style.scaleY;break;case"skewX":this.skew.x=this.style.skewX;break;case"skewY":this.skew.y=this.style.skewY;break;case"transform":case"transformOrigin":this.updateGlobalTransform();break;case"opacity":this.opacity=this.style.opacity;break;case"visibility":this.visible=this.style.visibility==="visible";break;case"filter":this.requestRepaint();break;case"maskImage":this._updateMaskImage();break;case"borderRadius":this.requestRedraw();break;case"backgroundColor":this.background.color=this.style.backgroundColor;break;case"backgroundImage":this.background.image=this.style.backgroundImage;break;case"borderStyle":case"outlineStyle":this.outline.style=e;break;case"borderWidth":case"outlineWidth":this.outline.width=e;break;case"borderColor":case"outlineColor":this.outline.color=e;break}}_updateMaskImage(){const t="__$style.maskImage",e=this.style.maskImage;if(e&&e!=="none"){const i=this.getNode(t);i?i.src=e:this.appendChild(new g.MaskEffect({name:t,src:e}),"back")}else{const i=this.getNode(t);i&&this.removeChild(i)}}getTransformOrigin(){const{width:t,height:e}=this.size,[i,A]=la(this.style.transformOrigin);return new le(i*t,A*e)}getTransform(t){const{width:e,height:i}=this.size;return super.getTransform(A=>{aa(this.style.transform??"",e,i,A),t?.(A)})}updateGlobalTransform(){super.updateGlobalTransform(),this._updateOverflow()}getRect(){const{width:t,height:e}=this.size,i=0,A=0,s=i+t,n=A+e,[o,a,l,c,h,u]=this.globalTransform.toArray(),d=[[i,A],[i,n],[s,A],[s,n]].map(S=>[o*S[0]+a*S[1]+l,c*S[0]+h*S[1]+u]),f=d.map(S=>S[0]),B=d.map(S=>S[1]),p=Math.min(...f),R=Math.max(...f),P=Math.min(...B),y=Math.max(...B);return new Ms(p,P,R-p,y-P)}_updateOverflow(){if(this.style.overflow==="hidden"){const t=this.getRect();this.mask={x:t.x,y:t.y,width:t.width,height:t.height}}else this.mask=void 0}_draw(){super._draw(),this._text.canDraw()&&this._text.updateMeasure(),this._background.canDraw()&&(this._tree?.log(this.name,"background drawing"),this._shape.drawRect(),this._background.draw()),this._fill.canDraw()&&(this._tree?.log(this.name,"fill drawing"),this._shape.draw(),this._fill.draw()),this._outline.canDraw()&&(this._tree?.log(this.name,"outline drawing"),this._shape.draw(),this._outline.draw()),this._foreground.canDraw()&&(this._tree?.log(this.name,"foreground drawing"),this._shape.drawRect(),this._foreground.draw()),this._text.canDraw()&&(this._tree?.log(this.name,"text drawing"),this._text.draw()),this._drawContent()}_drawContent(){}_repaint(t){const e=oa(this.style.filter);return super._repaint(t).map(i=>({...i,colorMatrix:e.toMatrix4().toArray(!0),colorMatrixOffset:e.toVector4().toArray()}))}canPointerEvents(){return this.style.pointerEvents!=="none"}input(t,e){for(let i=this._children.length-1;i>=0;i--)this._children[i].input(t,e);this.isVisibleInTree()&&this._input(t,e)}_pointerInput(t,e){const{width:i,height:A}=this.size;return t.x>=0&&t.x<i&&t.y>=0&&t.y<A}_input(t,e){switch(e){case"pointerdown":case"pointermove":case"pointerup":{if(this.canPointerEvents()){const{screenX:i,screenY:A}=t;if(i&&A){const[s,n]=this.globalTransform.inverse().applyToPoint(i,A);this._pointerInput({x:s,y:n},e)&&(t.target||(t.target=this),this.emit(e,t))}}break}}}toJSON(){const t=e=>Object.keys(e).length>0?e:void 0;return nA({...super.toJSON(),style:t(this.style.toJSON()),background:t(this.background.toJSON()),shape:t(this.shape.toJSON()),fill:t(this.fill.toJSON()),outline:t(this.outline.toJSON()),text:t(this.text.toJSON()),foreground:t(this.foreground.toJSON()),shadow:t(this.shadow.toJSON())})}},g.BaseElement2D=$I([nt("BaseElement2D")],g.BaseElement2D);class Tn extends MA{constructor(t){super(),this.setProperties(t)}}const Gl={left:0,top:0,width:0,height:0};for(const r in Gl)Ar(Tn.prototype,r,{fallback:Gl[r]});var tp=Object.getOwnPropertyDescriptor,ep=(r,t,e,i)=>{for(var A=i>1?void 0:i?tp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.Element2D=class extends g.BaseElement2D{get style(){return this._style}set style(t){const e=(...i)=>{this.emit("updateStyleProperty",...i),this._updateStyleProperty(i[0],i[1],i[2],i[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}constructor(t,e=[]){super(),this.style=new Tn,this.setProperties(t).append(e)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"left":this.position.x=Number(e);break;case"top":this.position.y=Number(e);break;case"width":this.size.width=Number(e);break;case"height":this.size.height=Number(e);break}switch(t){case"width":case"height":this.mask instanceof g.BaseElement2D&&(this.mask.size.width=this.size.width,this.mask.size.height=this.size.height);break}}},g.Element2D=ep([nt("Element2D")],g.Element2D);var ip=(()=>{var r=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:pi&&pi.tagName.toUpperCase()==="SCRIPT"&&pi.src||new URL("index.js",document.baseURI).href;return function(t){t=t||{};var e;e||(e=typeof t<"u"?t:{});var i,A;e.ready=new Promise(function(I,E){i=I,A=E});var s=Object.assign({},e),n="";typeof document<"u"&&document.currentScript&&(n=document.currentScript.src),r&&(n=r),n.indexOf("blob:")!==0?n=n.substr(0,n.replace(/[?#].*/,"").lastIndexOf("/")+1):n="";var o=e.print||console.log.bind(console),a=e.printErr||console.warn.bind(console);Object.assign(e,s),s=null;var l;e.wasmBinary&&(l=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&H("no native wasm support detected");var c,h=!1;function u(I,E,C){C=E+C;for(var v="";!(E>=C);){var x=I[E++];if(!x)break;if(x&128){var U=I[E++]&63;if((x&224)==192)v+=String.fromCharCode((x&31)<<6|U);else{var T=I[E++]&63;x=(x&240)==224?(x&15)<<12|U<<6|T:(x&7)<<18|U<<12|T<<6|I[E++]&63,65536>x?v+=String.fromCharCode(x):(x-=65536,v+=String.fromCharCode(55296|x>>10,56320|x&1023))}}else v+=String.fromCharCode(x)}return v}var d,f,B,p,R,P,y,S,Q;function m(){var I=c.buffer;d=I,e.HEAP8=f=new Int8Array(I),e.HEAP16=p=new Int16Array(I),e.HEAP32=P=new Int32Array(I),e.HEAPU8=B=new Uint8Array(I),e.HEAPU16=R=new Uint16Array(I),e.HEAPU32=y=new Uint32Array(I),e.HEAPF32=S=new Float32Array(I),e.HEAPF64=Q=new Float64Array(I)}var M,k=[],W=[],it=[];function q(){var I=e.preRun.shift();k.unshift(I)}var Y=0,et=null;function H(I){throw e.onAbort&&e.onAbort(I),I="Aborted("+I+")",a(I),h=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),A(I),I}function L(I){return I.startsWith("data:application/octet-stream;base64,")}var rt;if(rt="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIAIAELBQBBpDsLaQECfyMAQRBrIgYkACABIAAoAgQiB0EBdWohASAAKAIAIQAgBiABIAIgAyAEIAUgB0EBcQR/IAEoAgAgAGooAgAFIAALERAAQRAQHiIAIAYpAwg3AwggACAGKQMANwMAIAZBEGokACAACwUAQaA7Cx0AIAAoAgAiACAALQAAQfcBcUEIQQAgARtyOgAAC6oBAgJ/AX0jAEEQayICJAAgACgCACEAIAFB/wFxIgNBBkkEQAJ/AkACQAJAIANBBGsOAgABAgsgAEHUA2ogAC0AiANBA3FBAkYNAhogAEHMA2oMAgsgAEHMA2ogAC0AiANBA3FBAkYNARogAEHUA2oMAQsgACABQf8BcUECdGpBzANqCyoCACEEIAJBEGokACAEuw8LIAJB7hA2AgAgAEEFQdglIAIQLBAkAAuqAQICfwF9IwBBEGsiAiQAIAAoAgAhACABQf8BcSIDQQZJBEACfwJAAkACQCADQQRrDgIAAQILIABBxANqIAAtAIgDQQNxQQJGDQIaIABBvANqDAILIABBvANqIAAtAIgDQQNxQQJGDQEaIABBxANqDAELIAAgAUH/AXFBAnRqQbwDagsqAgAhBCACQRBqJAAgBLsPCyACQe4QNgIAIABBBUHYJSACECwQJAALqgECAn8BfSMAQRBrIgIkACAAKAIAIQAgAUH/AXEiA0EGSQRAAn8CQAJAAkAgA0EEaw4CAAECCyAAQbQDaiAALQCIA0EDcUECRg0CGiAAQawDagwCCyAAQawDaiAALQCIA0EDcUECRg0BGiAAQbQDagwBCyAAIAFB/wFxQQJ0akGsA2oLKgIAIQQgAkEQaiQAIAS7DwsgAkHuEDYCACAAQQVB2CUgAhAsECQAC08AIAAgASgCACIBKgKcA7s5AwAgACABKgKkA7s5AwggACABKgKgA7s5AxAgACABKgKoA7s5AxggACABKgKMA7s5AyAgACABKgKQA7s5AygLDAAgACgCACoCkAO7CwwAIAAoAgAqAowDuwsMACAAKAIAKgKoA7sLDAAgACgCACoCoAO7CwwAIAAoAgAqAqQDuwsMACAAKAIAKgKcA7sL6AMCBH0FfyMAQUBqIgokACAAKAIAIQAgCkEIakEAQTgQKhpB8DpB8DooAgBBAWo2AgAgABB4IAAtABRBA3EiCCADQQEgA0H/AXEbIAgbIQkgAEEUaiEIIAG2IQQgACoC+AMhBQJ9AkACQAJAIAAtAPwDQQFrDgIBAAILIAUgBJRDCtcjPJQhBQsgBUMAAAAAYEUNACAAIAlB/wFxQQAgBCAEEDEgCEECQQEgBBAiIAhBAkEBIAQQIZKSDAELIAggCUH/AXFBACAEIAQQLSIFIAVbBEBBAiELIAggCUH/AXFBACAEIAQQLQwBCyAEIARcIQsgBAshByACtiEFIAAqAoAEIQYgACAHAn0CQAJAAkAgAC0AhARBAWsOAgEAAgsgBiAFlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgCUH/AXFBASAFIAQQMSAIQQBBASAEECIgCEEAQQEgBBAhkpIMAQsgCCAJQf8BcSIJQQEgBSAEEC0iBiAGWwRAQQIhDCAIIAlBASAFIAQQLQwBCyAFIAVcIQwgBQsgA0H/AXEgCyAMIAQgBUEBQQAgCkEIakEAQfA6KAIAED0EQCAAIAAtAIgDQQNxIAQgBRB2IABEAAAAAAAAAABEAAAAAAAAAAAQcwsgCkFAayQACw0AIAAoAgAtAABBAXELFQAgACgCACIAIAAtAABB/gFxOgAACxAAIAAoAgAtAABBBHFBAnYLegECfyMAQRBrIgEkACAAKAIAIgAoAggEQANAIAAtAAAiAkEEcUUEQCAAIAJBBHI6AAAgACgCECICBEAgACACEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyABQRBqJAAPCyABQYAINgIAIABBBUHYJSABECwQJAALLgEBfyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgBBADYCEAsXACAAKAIEKAIIIgAgACgCACgCCBEAAAsuAQF/IAAoAgghAiAAIAE2AgggAgRAIAIgAigCACgCBBEAAAsgACgCAEEFNgIQCz4BAX8gACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIAIgBBADYCCCAAIAAtAABB7wFxOgAAC0kBAX8jAEEQayIGJAAgBiABKAIEKAIEIgEgAiADIAQgBSABKAIAKAIIERAAIAAgBisDALY4AgAgACAGKwMItjgCBCAGQRBqJAALcwECfyMAQRBrIgIkACAAKAIEIQMgACABNgIEIAMEQCADIAMoAgAoAgQRAAALIAAoAgAiACgC6AMgACgC7ANHBEAgAkH5IzYCACAAQQVB2CUgAhAsECQACyAAQQQ2AgggACAALQAAQRByOgAAIAJBEGokAAs8AQF/AkAgACgCACIAKALsAyAAKALoAyIAa0ECdSABTQ0AIAAgAUECdGooAgAiAEUNACAAKAIEIQILIAILGQAgACgCACgC5AMiAEUEQEEADwsgACgCBAsXACAAKAIAIgAoAuwDIAAoAugDa0ECdQuOAwEDfyMAQdACayICJAACQCAAKAIAIgAoAuwDIAAoAugDRg0AIAEoAgAiAygC5AMhASAAIAMQb0UNACAAIAFGBEAgAkEIakEAQcQCECoaIAJBADoAGCACQgA3AxAgAkGAgID+BzYCDCACQRxqQQBBxAEQKhogAkHgAWohBCACQSBqIQEDQCABQoCAgPyLgIDAv383AhAgAUKBgICAEDcCCCABQoCAgPyLgIDAv383AgAgAUEYaiIBIARHDQALIAJCgICA/IuAgMC/fzcD8AEgAkKBgICAEDcD6AEgAkKAgID8i4CAwL9/NwPgASACQoCAgP6HgIDg/wA3AoQCIAJCgICA/oeAgOD/ADcC/AEgAiACLQD4AUH4AXE6APgBIAJBjAJqQQBBwAAQKhogA0GYAWogAkEIakHEAhArGiADQQA2AuQDCwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIAJB0AJqJAAL4AcBCH8jAEHQAGsiByQAIAAoAgAhAAJAAkAgASgCACIIKALkA0UEQCAAKAIIDQEgCC0AF0EQdEGAgDBxQYCAIEYEQCAAIAAoAuADQQFqNgLgAwsgACgC6AMiASACQQJ0aiEGAkAgACgC7AMiBCAAQfADaiIDKAIAIgVJBEAgBCAGRgRAIAYgCDYCACAAIAZBBGo2AuwDDAILIAQgBCICQQRrIgFLBEADQCACIAEoAgA2AgAgAkEEaiECIAFBBGoiASAESQ0ACwsgACACNgLsAyAGQQRqIgEgBEcEQCAEIAQgAWsiAUF8cWsgBiABEDMaCyAGIAg2AgAMAQsgBCABa0ECdUEBaiIEQYCAgIAETw0DAkAgB0EgakH/////AyAFIAFrIgFBAXUiBSAEIAQgBUkbIAFB/P///wdPGyACIAMQSiIDKAIIIgIgAygCDEcNACADKAIEIgEgAygCACIESwRAIAMgASABIARrQQJ1QQFqQX5tQQJ0IgRqIAEgAiABayIBEDMgAWoiAjYCCCADIAMoAgQgBGo2AgQMAQsgB0E4akEBIAIgBGtBAXUgAiAERhsiASABQQJ2IAMoAhAQSiIFKAIIIQQCfyADKAIIIgIgAygCBCIBRgRAIAQhAiABDAELIAQgAiABa2ohAgNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIAJHDQALIAMoAgghASADKAIECyEEIAMoAgAhCSADIAUoAgA2AgAgBSAJNgIAIAMgBSgCBDYCBCAFIAQ2AgQgAyACNgIIIAUgATYCCCADKAIMIQogAyAFKAIMNgIMIAUgCjYCDCABIARHBEAgBSABIAQgAWtBA2pBfHFqNgIICyAJRQ0AIAkQIyADKAIIIQILIAIgCDYCACADIAMoAghBBGo2AgggAyADKAIEIAYgACgC6AMiAWsiAmsgASACEDM2AgQgAygCCCAGIAAoAuwDIAZrIgQQMyEGIAAoAugDIQEgACADKAIENgLoAyADIAE2AgQgACgC7AMhAiAAIAQgBmo2AuwDIAMgAjYCCCAAKALwAyEEIAAgAygCDDYC8AMgAyABNgIAIAMgBDYCDCABIAJHBEAgAyACIAEgAmtBA2pBfHFqNgIICyABRQ0AIAEQIwsgCCAANgLkAwNAIAAtAAAiAUEEcUUEQCAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyAHQdAAaiQADwsgB0HEIzYCECAAQQVB2CUgB0EQahAsECQACyAHQckkNgIAIABBBUHYJSAHECwQJAALEAIACxAAIAAoAgAtAABBAnFBAXYLWQIBfwF9IwBBEGsiAiQAIAJBCGogACgCACIAQfwAaiAAIAFB/wFxQQF0ai8BaBAfQwAAwH8hAwJAAkAgAi0ADA4EAQAAAQALIAIqAgghAwsgAkEQaiQAIAMLTgEBfyMAQRBrIgMkACADQQhqIAEoAgAiAUH8AGogASACQf8BcUEBdGovAUQQHyADLQAMIQEgACADKgIIuzkDCCAAIAE2AgAgA0EQaiQAC14CAX8BfCMAQRBrIgIkACACQQhqIAAoAgAiAEH8AGogACABQf8BcUEBdGovAVYQH0QAAAAAAAD4fyEDAkACQCACLQAMDgQBAAABAAsgAioCCLshAwsgAkEQaiQAIAMLJAEBfUMAAMB/IAAoAgAiAEH8AGogAC8BehAgIgEgASABXBu7C0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXgQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXYQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXQQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXIQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXAQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAW4QHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0gCAX8BfQJ9IAAoAgAiAEH8AGoiASAALwEcECAiAiACXARAQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsMAQsgASAALwEcECALuws2AgF/AX0gACgCACIAQfwAaiIBIAAvARoQICICIAJcBEBEAAAAAAAAAAAPCyABIAAvARoQILsLRAEBfyMAQRBrIgIkACACQQhqIAEoAgAiAUH8AGogAS8BHhAfIAItAAwhASAAIAIqAgi7OQMIIAAgATYCACACQRBqJAALEAAgACgCAC0AF0ECdkEDcQsNACAAKAIALQAXQQNxC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEgEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALQAUQQR2QQdxCw0AIAAoAgAvABVBDnYLDQAgACgCAC0AFEEDcQsQACAAKAIALQAUQQJ2QQNxCw0AIAAoAgAvABZBD3ELEAAgACgCAC8AFUEEdkEPcQsNACAAKAIALwAVQQ9xC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEyEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALwAVQQx2QQNxCxAAIAAoAgAtABdBBHZBAXELgQECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEIgBIANBEGokAAt5AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQiAEgBEEQaiQAC3EBAX8CQCAAKAIAIgAtAAAiAkECcUEBdiABRg0AIAAgAkH9AXFBAkEAIAEbcjoAAANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC4EBAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxCOASADQRBqJAALeQIBfQJ/IwBBEGsiBCQAIAAoAgAhBSAEAn8gArYiAyADXARAQwAAwH8hA0EADAELQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgAbIQMgAEULOgAMIAQgAzgCCCAEIAQpAwg3AwAgBSABQf8BcSAEEI4BIARBEGokAAv5AQICfQR/IwBBEGsiBSQAIAAoAgAhAAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIGGyEDIAZFCyEGQQEhByAFQQhqIABB/ABqIgggACABQf8BcUEBdGpB1gBqIgEvAQAQHwJAAkAgAyAFKgIIIgRcBH8gBCAEWw0BIAMgA1wFIAcLRQ0AIAUtAAwgBkYNAQsgCCABIAMgBhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgBUEQaiQAC7UBAgN/An0CQCAAKAIAIgBB/ABqIgMgAEH6AGoiAi8BABAgIgYgAbYiBVsNACAFIAVbIgRFIAYgBlxxDQACQCAEIAVDAAAAAFsgBYtDAACAf1tyRXFFBEAgAiACLwEAQfj/A3E7AQAMAQsgAyACIAVBAxBMCwNAIAAtAAAiAkEEcQ0BIAAgAkEEcjoAACAAKAIQIgIEQCAAIAIRAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQVSACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQVSADQRBqJAALfAIDfwF9IwBBEGsiAiQAIAAoAgAhAwJ9IAG2IgUgBVwEQEEAIQBDAADAfwwBC0EAQQIgBUMAAIB/WyAFQwAAgP9bciIEGyEAQwAAwH8gBSAEGwshBSACIAA6AAwgAiAFOAIIIAIgAikDCDcDACADQQAgAhBVIAJBEGokAAt0AgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEQQAgAxBVIANBEGokAAt8AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIANBASACEFYgAkEQaiQAC3QCAX0CfyMAQRBrIgMkACAAKAIAIQQgAwJ/IAG2IgIgAlwEQEMAAMB/IQJBAAwBC0MAAMB/IAIgAkMAAIB/WyACQwAAgP9bciIAGyECIABFCzoADCADIAI4AgggAyADKQMINwMAIARBASADEFYgA0EQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQViACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQViADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBASABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQRiADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBACABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQRiADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRxqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRpqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLPQEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIAAgARBrIAFBEGokAAt6AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIAMgAhBrIAJBEGokAAtyAgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEIAMQayADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRhqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLkAEBAX8CQCAAKAIAIgBBF2otAAAiAkECdkEDcSABQf8BcUYNACAAIAAvABUgAkEQdHIiAjsAFSAAIAJB///PB3EgAUEDcUESdHJBEHY6ABcDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuNAQEBfwJAIAAoAgAiAEEXai0AACICQQNxIAFB/wFxRg0AIAAgAC8AFSACQRB0ciICOwAVIAAgAkH///MHcSABQQNxQRB0ckEQdjoAFwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC0MBAX8jAEEQayICJAAgACgCACEAIAJBAzoADCACQYCAgP4HNgIIIAIgAikDCDcDACAAIAFB/wFxIAIQZSACQRBqJAALgAECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEGUgA0EQaiQAC3gCAX0CfyMAQRBrIgQkACAAKAIAIQUgBAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIAGyEDIABFCzoADCAEIAM4AgggBCAEKQMINwMAIAUgAUH/AXEgBBBlIARBEGokAAt3AQF/AkAgACgCACIALQAUIgJBBHZBB3EgAUH/AXFGDQAgACACQY8BcSABQQR0QfAAcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuJAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSICQQ52Rg0AIABBF2ogAiAALQAXQRB0ciICQRB2OgAAIAAgAkH//wBxIAFBDnRyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLcAEBfwJAIAAoAgAiAC0AFCICQQNxIAFB/wFxRg0AIAAgAkH8AXEgAUEDcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwt2AQF/AkAgACgCACIALQAUIgJBAnZBA3EgAUH/AXFGDQAgACACQfMBcSABQQJ0QQxxcjoAFANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC48BAQF/AkAgACgCACIALwAVIgJBCHZBD3EgAUH/AXFGDQAgAEEXaiACIAAtABdBEHRyIgJBEHY6AAAgACACQf/hA3EgAUEPcUEIdHI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuPAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSAAQRdqLQAAQRB0ciICQfABcUEEdkYNACAAIAJBEHY6ABcgACACQY/+A3EgAUEEdEHwAXFyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLhwEBAX8CQCAAKAIAIgAvABUgAEEXai0AAEEQdHIiAkEPcSABQf8BcUYNACAAIAJBEHY6ABcgACACQfD/A3EgAUEPcXI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwtDAQF/IwBBEGsiAiQAIAAoAgAhACACQQM6AAwgAkGAgID+BzYCCCACIAIpAwg3AwAgACABQf8BcSACEGcgAkEQaiQAC4ABAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxBnIANBEGokAAt4AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQZyAEQRBqJAALjwEBAX8CQCAAKAIAIgAvABUiAkEMdkEDcSABQf8BcUYNACAAQRdqIAIgAC0AF0EQdHIiAkEQdjoAACAAIAJB/58DcSABQQNxQQx0cjsAFQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC5ABAQF/AkAgACgCACIAQRdqLQAAIgJBBHZBAXEgAUH/AXFGDQAgACAALwAVIAJBEHRyIgI7ABUgACACQf//vwdxIAFBAXFBFHRyQRB2OgAXA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsL9g0CCH8CfSMAQRBrIgIkAAJAAkAgASgCACIFLQAUIAAoAgAiAS0AFHNB/wBxDQAgBS8AFSAFLQAXQRB0ciABLwAVIAEtABdBEHRyc0H//z9xDQAgBUH8AGohByABQfwAaiEIAkAgAS8AGCIAQQdxRQRAIAUtABhBB3FFDQELIAggABAgIgogByAFLwAYECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AGiIAQQdxRQRAIAUtABpBB3FFDQELIAggABAgIgogByAFLwAaECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHCIAQQdxRQRAIAUtABxBB3FFDQELIAggABAgIgogByAFLwAcECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHiIAQQdxRQRAIAUtAB5BB3FFDQELIAJBCGogCCAAEB8gAiAHIAUvAB4QH0EBIQAgAioCCCIKIAIqAgAiC1wEfyAKIApbDQIgCyALXAUgAAtFDQEgAi0ADCACLQAERw0BCyAFQSBqIQAgAUEgaiEGA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUEyaiEAIAFBMmohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EJRw0ACyAFQcQAaiEAIAFBxABqIQZBACEDA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUHWAGohACABQdYAaiEGQQAhAwNAAkAgBiADQQF0ai8AACIEQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAEEB8gAiAHIAAvAAAQH0EBIQQgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgBAtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQAgA0EBaiIDQQlHDQALIAVB6ABqIQAgAUHoAGohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EDRw0ACyAFQe4AaiEAIAFB7gBqIQlBACEEQQAhAwNAAkAgCSADQQF0ai8AACIGQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAGEB8gAiAHIAAvAAAQH0EBIQMgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgAwtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQBBASEDIAQhBkEBIQQgBkUNAAsgBUHyAGohACABQfIAaiEJQQAhBEEAIQMDQAJAIAkgA0EBdGovAAAiBkEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBhAfIAIgByAALwAAEB9BASEDIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAMLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAQQEhAyAEIQZBASEEIAZFDQALIAVB9gBqIQAgAUH2AGohCUEAIQRBACEDA0ACQCAJIANBAXRqLwAAIgZBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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",!L(rt)){var O=rt;rt=e.locateFile?e.locateFile(O,n):n+O}function X(){var I=rt;try{if(I==rt&&l)return new Uint8Array(l);if(L(I))try{var E=GE(I.slice(37)),C=new Uint8Array(E.length);for(I=0;I<E.length;++I)C[I]=E.charCodeAt(I);var v=C}catch{throw Error("Converting base64 string to bytes failed.")}else v=void 0;var x=v;if(x)return x;throw"both async and sync fetching of the wasm failed"}catch(U){H(U)}}function j(){return l||typeof fetch!="function"?Promise.resolve().then(function(){return X()}):fetch(rt,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+rt+"'";return I.arrayBuffer()}).catch(function(){return X()})}function N(I){for(;0<I.length;)I.shift()(e)}function tt(I){if(I===void 0)return"_unknown";I=I.replace(/[^a-zA-Z0-9_]/g,"$");var E=I.charCodeAt(0);return 48<=E&&57>=E?"_"+I:I}function b(I,E){return I=tt(I),function(){return E.apply(this,arguments)}}var D=[{},{value:void 0},{value:null},{value:!0},{value:!1}],F=[];function V(I){var E=Error,C=b(I,function(v){this.name=I,this.message=v,v=Error(v).stack,v!==void 0&&(this.stack=this.toString()+`
|
|
865
|
+
`+v.replace(/^Error(:[^\n]*)?\n/,""))});return C.prototype=Object.create(E.prototype),C.prototype.constructor=C,C.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},C}var At=void 0;function Z(I){throw new At(I)}var dt=I=>(I||Z("Cannot use deleted val. handle = "+I),D[I].value),re=I=>{switch(I){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var E=F.length?F.pop():D.length;return D[E]={ga:1,value:I},E}},se=void 0,Ft=void 0;function ct(I){for(var E="";B[I];)E+=Ft[B[I++]];return E}var Qt=[];function Tt(){for(;Qt.length;){var I=Qt.pop();I.M.$=!1,I.delete()}}var Kt=void 0,_t={};function $t(I,E){for(E===void 0&&Z("ptr should not be undefined");I.R;)E=I.ba(E),I=I.R;return E}var Te={};function jr(I){I=_c(I);var E=ct(I);return Ze(I),E}function Kn(I,E){var C=Te[I];return C===void 0&&Z(E+" has unknown type "+jr(I)),C}function Zr(){}var Yn=!1;function Ec(I){--I.count.value,I.count.value===0&&(I.T?I.U.W(I.T):I.P.N.W(I.O))}function Bc(I,E,C){return E===C?I:C.R===void 0?null:(I=Bc(I,E,C.R),I===null?null:C.na(I))}var Cc={};function CE(I,E){return E=$t(I,E),_t[E]}var Qc=void 0;function $r(I){throw new Qc(I)}function ts(I,E){return E.P&&E.O||$r("makeClassHandle requires ptr and ptrType"),!!E.U!=!!E.T&&$r("Both smartPtrType and smartPtr must be specified"),E.count={value:1},AA(Object.create(I,{M:{value:E}}))}function AA(I){return typeof FinalizationRegistry>"u"?(AA=E=>E,I):(Yn=new FinalizationRegistry(E=>{Ec(E.M)}),AA=E=>{var C=E.M;return C.T&&Yn.register(E,{M:C},E),E},Zr=E=>{Yn.unregister(E)},AA(I))}var es={};function Vn(I){for(;I.length;){var E=I.pop();I.pop()(E)}}function jA(I){return this.fromWireType(P[I>>2])}var rA={},is={};function di(I,E,C){function v(G){G=C(G),G.length!==I.length&&$r("Mismatched type converter count");for(var z=0;z<I.length;++z)Xe(I[z],G[z])}I.forEach(function(G){is[G]=E});var x=Array(E.length),U=[],T=0;E.forEach((G,z)=>{Te.hasOwnProperty(G)?x[z]=Te[G]:(U.push(G),rA.hasOwnProperty(G)||(rA[G]=[]),rA[G].push(()=>{x[z]=Te[G],++T,T===U.length&&v(x)}))}),U.length===0&&v(x)}function zn(I){switch(I){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+I)}}function Xe(I,E,C={}){if(!("argPackAdvance"in E))throw new TypeError("registerType registeredInstance requires argPackAdvance");var v=E.name;if(I||Z('type "'+v+'" must have a positive integer typeid pointer'),Te.hasOwnProperty(I)){if(C.ua)return;Z("Cannot register type '"+v+"' twice")}Te[I]=E,delete is[I],rA.hasOwnProperty(I)&&(E=rA[I],delete rA[I],E.forEach(x=>x()))}function Wn(I){Z(I.M.P.N.name+" instance already deleted")}function Ii(){}function qn(I,E,C){if(I[E].S===void 0){var v=I[E];I[E]=function(){return I[E].S.hasOwnProperty(arguments.length)||Z("Function '"+C+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+I[E].S+")!"),I[E].S[arguments.length].apply(this,arguments)},I[E].S=[],I[E].S[v.Z]=v}}function QE(I,E){e.hasOwnProperty(I)?(Z("Cannot register public name '"+I+"' twice"),qn(e,I,I),e.hasOwnProperty(void 0)&&Z("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),e[I].S[void 0]=E):e[I]=E}function yE(I,E,C,v,x,U,T,G){this.name=I,this.constructor=E,this.X=C,this.W=v,this.R=x,this.pa=U,this.ba=T,this.na=G,this.ja=[]}function Xn(I,E,C){for(;E!==C;)E.ba||Z("Expected null or instance of "+C.name+", got an instance of "+E.name),I=E.ba(I),E=E.R;return I}function mE(I,E){return E===null?(this.ea&&Z("null is not a valid "+this.name),0):(E.M||Z('Cannot pass "'+to(E)+'" as a '+this.name),E.M.O||Z("Cannot pass deleted object as a pointer of type "+this.name),Xn(E.M.O,E.M.P.N,this.N))}function wE(I,E){if(E===null){if(this.ea&&Z("null is not a valid "+this.name),this.da){var C=this.fa();return I!==null&&I.push(this.W,C),C}return 0}if(E.M||Z('Cannot pass "'+to(E)+'" as a '+this.name),E.M.O||Z("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&E.M.P.ca&&Z("Cannot convert argument of type "+(E.M.U?E.M.U.name:E.M.P.name)+" to parameter type "+this.name),C=Xn(E.M.O,E.M.P.N,this.N),this.da)switch(E.M.T===void 0&&Z("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:E.M.U===this?C=E.M.T:Z("Cannot convert argument of type "+(E.M.U?E.M.U.name:E.M.P.name)+" to parameter type "+this.name);break;case 1:C=E.M.T;break;case 2:if(E.M.U===this)C=E.M.T;else{var v=E.clone();C=this.xa(C,re(function(){v.delete()})),I!==null&&I.push(this.W,C)}break;default:Z("Unsupporting sharing policy")}return C}function vE(I,E){return E===null?(this.ea&&Z("null is not a valid "+this.name),0):(E.M||Z('Cannot pass "'+to(E)+'" as a '+this.name),E.M.O||Z("Cannot pass deleted object as a pointer of type "+this.name),E.M.P.ca&&Z("Cannot convert argument of type "+E.M.P.name+" to parameter type "+this.name),Xn(E.M.O,E.M.P.N,this.N))}function je(I,E,C,v){this.name=I,this.N=E,this.ea=C,this.ca=v,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,E.R!==void 0?this.toWireType=wE:(this.toWireType=v?mE:vE,this.V=null)}function _E(I,E){e.hasOwnProperty(I)||$r("Replacing nonexistant public symbol"),e[I]=E,e[I].Z=void 0}function bE(I,E){var C=[];return function(){if(C.length=0,Object.assign(C,arguments),I.includes("j")){var v=e["dynCall_"+I];v=C&&C.length?v.apply(null,[E].concat(C)):v.call(null,E)}else v=M.get(E).apply(null,C);return v}}function ve(I,E){I=ct(I);var C=I.includes("j")?bE(I,E):M.get(E);return typeof C!="function"&&Z("unknown function pointer with signature "+I+": "+E),C}var yc=void 0;function As(I,E){function C(U){x[U]||Te[U]||(is[U]?is[U].forEach(C):(v.push(U),x[U]=!0))}var v=[],x={};throw E.forEach(C),new yc(I+": "+v.map(jr).join([", "]))}function jn(I,E,C,v,x){var U=E.length;2>U&&Z("argTypes array size mismatch! Must at least get return value and 'this' types!");var T=E[1]!==null&&C!==null,G=!1;for(C=1;C<E.length;++C)if(E[C]!==null&&E[C].V===void 0){G=!0;break}var z=E[0].name!=="void",K=U-2,$=Array(K),st=[],ht=[];return function(){if(arguments.length!==K&&Z("function "+I+" called with "+arguments.length+" arguments, expected "+K+" args!"),ht.length=0,st.length=T?2:1,st[0]=x,T){var St=E[1].toWireType(ht,this);st[1]=St}for(var ut=0;ut<K;++ut)$[ut]=E[ut+2].toWireType(ht,arguments[ut]),st.push($[ut]);if(ut=v.apply(null,st),G)Vn(ht);else for(var fe=T?1:2;fe<E.length;fe++){var _e=fe===1?St:$[fe-2];E[fe].V!==null&&E[fe].V(_e)}return St=z?E[0].fromWireType(ut):void 0,St}}function Zn(I,E){for(var C=[],v=0;v<I;v++)C.push(y[E+4*v>>2]);return C}function $n(I){4<I&&--D[I].ga===0&&(D[I]=void 0,F.push(I))}function to(I){if(I===null)return"null";var E=typeof I;return E==="object"||E==="array"||E==="function"?I.toString():""+I}function DE(I,E){switch(E){case 2:return function(C){return this.fromWireType(S[C>>2])};case 3:return function(C){return this.fromWireType(Q[C>>3])};default:throw new TypeError("Unknown float type: "+I)}}function xE(I,E,C){switch(E){case 0:return C?function(v){return f[v]}:function(v){return B[v]};case 1:return C?function(v){return p[v>>1]}:function(v){return R[v>>1]};case 2:return C?function(v){return P[v>>2]}:function(v){return y[v>>2]};default:throw new TypeError("Unknown integer type: "+I)}}function SE(I,E){for(var C="",v=0;!(v>=E/2);++v){var x=p[I+2*v>>1];if(x==0)break;C+=String.fromCharCode(x)}return C}function ME(I,E,C){if(C===void 0&&(C=2147483647),2>C)return 0;C-=2;var v=E;C=C<2*I.length?C/2:I.length;for(var x=0;x<C;++x)p[E>>1]=I.charCodeAt(x),E+=2;return p[E>>1]=0,E-v}function RE(I){return 2*I.length}function kE(I,E){for(var C=0,v="";!(C>=E/4);){var x=P[I+4*C>>2];if(x==0)break;++C,65536<=x?(x-=65536,v+=String.fromCharCode(55296|x>>10,56320|x&1023)):v+=String.fromCharCode(x)}return v}function PE(I,E,C){if(C===void 0&&(C=2147483647),4>C)return 0;var v=E;C=v+C-4;for(var x=0;x<I.length;++x){var U=I.charCodeAt(x);if(55296<=U&&57343>=U){var T=I.charCodeAt(++x);U=65536+((U&1023)<<10)|T&1023}if(P[E>>2]=U,E+=4,E+4>C)break}return P[E>>2]=0,E-v}function UE(I){for(var E=0,C=0;C<I.length;++C){var v=I.charCodeAt(C);55296<=v&&57343>=v&&++C,E+=4}return E}var NE={};function mc(I){var E=NE[I];return E===void 0?ct(I):E}var rs=[];function FE(I){var E=rs.length;return rs.push(I),E}function TE(I,E){for(var C=Array(I),v=0;v<I;++v)C[v]=Kn(y[E+4*v>>2],"parameter "+v);return C}var wc=[],LE=[null,[],[]];At=e.BindingError=V("BindingError"),e.count_emval_handles=function(){for(var I=0,E=5;E<D.length;++E)D[E]!==void 0&&++I;return I},e.get_first_emval=function(){for(var I=5;I<D.length;++I)if(D[I]!==void 0)return D[I];return null},se=e.PureVirtualError=V("PureVirtualError");for(var vc=Array(256),ss=0;256>ss;++ss)vc[ss]=String.fromCharCode(ss);Ft=vc,e.getInheritedInstanceCount=function(){return Object.keys(_t).length},e.getLiveInheritedInstances=function(){var I=[],E;for(E in _t)_t.hasOwnProperty(E)&&I.push(_t[E]);return I},e.flushPendingDeletes=Tt,e.setDelayFunction=function(I){Kt=I,Qt.length&&Kt&&Kt(Tt)},Qc=e.InternalError=V("InternalError"),Ii.prototype.isAliasOf=function(I){if(!(this instanceof Ii&&I instanceof Ii))return!1;var E=this.M.P.N,C=this.M.O,v=I.M.P.N;for(I=I.M.O;E.R;)C=E.ba(C),E=E.R;for(;v.R;)I=v.ba(I),v=v.R;return E===v&&C===I},Ii.prototype.clone=function(){if(this.M.O||Wn(this),this.M.aa)return this.M.count.value+=1,this;var I=AA,E=Object,C=E.create,v=Object.getPrototypeOf(this),x=this.M;return I=I(C.call(E,v,{M:{value:{count:x.count,$:x.$,aa:x.aa,O:x.O,P:x.P,T:x.T,U:x.U}}})),I.M.count.value+=1,I.M.$=!1,I},Ii.prototype.delete=function(){this.M.O||Wn(this),this.M.$&&!this.M.aa&&Z("Object already scheduled for deletion"),Zr(this),Ec(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Ii.prototype.isDeleted=function(){return!this.M.O},Ii.prototype.deleteLater=function(){return this.M.O||Wn(this),this.M.$&&!this.M.aa&&Z("Object already scheduled for deletion"),Qt.push(this),Qt.length===1&&Kt&&Kt(Tt),this.M.$=!0,this},je.prototype.qa=function(I){return this.ka&&(I=this.ka(I)),I},je.prototype.ha=function(I){this.W&&this.W(I)},je.prototype.argPackAdvance=8,je.prototype.readValueFromPointer=jA,je.prototype.deleteObject=function(I){I!==null&&I.delete()},je.prototype.fromWireType=function(I){function E(){return this.da?ts(this.N.X,{P:this.wa,O:C,U:this,T:I}):ts(this.N.X,{P:this,O:I})}var C=this.qa(I);if(!C)return this.ha(I),null;var v=CE(this.N,C);if(v!==void 0)return v.M.count.value===0?(v.M.O=C,v.M.T=I,v.clone()):(v=v.clone(),this.ha(I),v);if(v=this.N.pa(C),v=Cc[v],!v)return E.call(this);v=this.ca?v.la:v.pointerType;var x=Bc(C,this.N,v.N);return x===null?E.call(this):this.da?ts(v.N.X,{P:v,O:x,U:this,T:I}):ts(v.N.X,{P:v,O:x})},yc=e.UnboundTypeError=V("UnboundTypeError");var GE=typeof atob=="function"?atob:function(I){var E="",C=0;I=I.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(C++)),x="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(C++)),U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(C++)),T="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(C++));v=v<<2|x>>4,x=(x&15)<<4|U>>2;var G=(U&3)<<6|T;E+=String.fromCharCode(v),U!==64&&(E+=String.fromCharCode(x)),T!==64&&(E+=String.fromCharCode(G))}while(C<I.length);return E},OE={l:function(I,E,C,v){H("Assertion failed: "+(I?u(B,I):"")+", at: "+[E?E?u(B,E):"":"unknown filename",C,v?v?u(B,v):"":"unknown function"])},q:function(I,E,C){I=ct(I),E=Kn(E,"wrapper"),C=dt(C);var v=[].slice,x=E.N,U=x.X,T=x.R.X,G=x.R.constructor;I=b(I,function(){x.R.ja.forEach((function(K){if(this[K]===T[K])throw new se("Pure virtual function "+K+" must be implemented in JavaScript")}).bind(this)),Object.defineProperty(this,"__parent",{value:U}),this.__construct.apply(this,v.call(arguments))}),U.__construct=function(){this===U&&Z("Pass correct 'this' to __construct");var K=G.implement.apply(void 0,[this].concat(v.call(arguments)));Zr(K);var $=K.M;K.notifyOnDestruction(),$.aa=!0,Object.defineProperties(this,{M:{value:$}}),AA(this),K=$.O,K=$t(x,K),_t.hasOwnProperty(K)?Z("Tried to register registered instance: "+K):_t[K]=this},U.__destruct=function(){this===U&&Z("Pass correct 'this' to __destruct"),Zr(this);var K=this.M.O;K=$t(x,K),_t.hasOwnProperty(K)?delete _t[K]:Z("Tried to unregister unregistered instance: "+K)},I.prototype=Object.create(U);for(var z in C)I.prototype[z]=C[z];return re(I)},j:function(I){var E=es[I];delete es[I];var C=E.fa,v=E.W,x=E.ia,U=x.map(T=>T.ta).concat(x.map(T=>T.za));di([I],U,T=>{var G={};return x.forEach((z,K)=>{var $=T[K],st=z.ra,ht=z.sa,St=T[K+x.length],ut=z.ya,fe=z.Aa;G[z.oa]={read:_e=>$.fromWireType(st(ht,_e)),write:(_e,ZA)=>{var $e=[];ut(fe,_e,St.toWireType($e,ZA)),Vn($e)}}}),[{name:E.name,fromWireType:function(z){var K={},$;for($ in G)K[$]=G[$].read(z);return v(z),K},toWireType:function(z,K){for(var $ in G)if(!($ in K))throw new TypeError('Missing field: "'+$+'"');var st=C();for($ in G)G[$].write(st,K[$]);return z!==null&&z.push(v,st),st},argPackAdvance:8,readValueFromPointer:jA,V:v}]})},v:function(){},B:function(I,E,C,v,x){var U=zn(C);E=ct(E),Xe(I,{name:E,fromWireType:function(T){return!!T},toWireType:function(T,G){return G?v:x},argPackAdvance:8,readValueFromPointer:function(T){if(C===1)var G=f;else if(C===2)G=p;else if(C===4)G=P;else throw new TypeError("Unknown boolean type size: "+E);return this.fromWireType(G[T>>U])},V:null})},f:function(I,E,C,v,x,U,T,G,z,K,$,st,ht){$=ct($),U=ve(x,U),G&&(G=ve(T,G)),K&&(K=ve(z,K)),ht=ve(st,ht);var St=tt($);QE(St,function(){As("Cannot construct "+$+" due to unbound types",[v])}),di([I,E,C],v?[v]:[],function(ut){if(ut=ut[0],v)var fe=ut.N,_e=fe.X;else _e=Ii.prototype;ut=b(St,function(){if(Object.getPrototypeOf(this)!==ZA)throw new At("Use 'new' to construct "+$);if($e.Y===void 0)throw new At($+" has no accessible constructor");var xc=$e.Y[arguments.length];if(xc===void 0)throw new At("Tried to invoke ctor of "+$+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys($e.Y).toString()+") parameters instead!");return xc.apply(this,arguments)});var ZA=Object.create(_e,{constructor:{value:ut}});ut.prototype=ZA;var $e=new yE($,ut,ZA,ht,fe,U,G,K);fe=new je($,$e,!0,!1),_e=new je($+"*",$e,!1,!1);var Dc=new je($+" const*",$e,!1,!0);return Cc[I]={pointerType:_e,la:Dc},_E(St,ut),[fe,_e,Dc]})},d:function(I,E,C,v,x,U,T){var G=Zn(C,v);E=ct(E),U=ve(x,U),di([],[I],function(z){function K(){As("Cannot call "+$+" due to unbound types",G)}z=z[0];var $=z.name+"."+E;E.startsWith("@@")&&(E=Symbol[E.substring(2)]);var st=z.N.constructor;return st[E]===void 0?(K.Z=C-1,st[E]=K):(qn(st,E,$),st[E].S[C-1]=K),di([],G,function(ht){return ht=jn($,[ht[0],null].concat(ht.slice(1)),null,U,T),st[E].S===void 0?(ht.Z=C-1,st[E]=ht):st[E].S[C-1]=ht,[]}),[]})},p:function(I,E,C,v,x,U){0<E||H();var T=Zn(E,C);x=ve(v,x),di([],[I],function(G){G=G[0];var z="constructor "+G.name;if(G.N.Y===void 0&&(G.N.Y=[]),G.N.Y[E-1]!==void 0)throw new At("Cannot register multiple constructors with identical number of parameters ("+(E-1)+") for class '"+G.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return G.N.Y[E-1]=()=>{As("Cannot construct "+G.name+" due to unbound types",T)},di([],T,function(K){return K.splice(1,0,null),G.N.Y[E-1]=jn(z,K,null,x,U),[]}),[]})},a:function(I,E,C,v,x,U,T,G){var z=Zn(C,v);E=ct(E),U=ve(x,U),di([],[I],function(K){function $(){As("Cannot call "+st+" due to unbound types",z)}K=K[0];var st=K.name+"."+E;E.startsWith("@@")&&(E=Symbol[E.substring(2)]),G&&K.N.ja.push(E);var ht=K.N.X,St=ht[E];return St===void 0||St.S===void 0&&St.className!==K.name&&St.Z===C-2?($.Z=C-2,$.className=K.name,ht[E]=$):(qn(ht,E,st),ht[E].S[C-2]=$),di([],z,function(ut){return ut=jn(st,ut,K,U,T),ht[E].S===void 0?(ut.Z=C-2,ht[E]=ut):ht[E].S[C-2]=ut,[]}),[]})},A:function(I,E){E=ct(E),Xe(I,{name:E,fromWireType:function(C){var v=dt(C);return $n(C),v},toWireType:function(C,v){return re(v)},argPackAdvance:8,readValueFromPointer:jA,V:null})},n:function(I,E,C){C=zn(C),E=ct(E),Xe(I,{name:E,fromWireType:function(v){return v},toWireType:function(v,x){return x},argPackAdvance:8,readValueFromPointer:DE(E,C),V:null})},e:function(I,E,C,v,x){E=ct(E),x===-1&&(x=4294967295),x=zn(C);var U=G=>G;if(v===0){var T=32-8*C;U=G=>G<<T>>>T}C=E.includes("unsigned")?function(G,z){return z>>>0}:function(G,z){return z},Xe(I,{name:E,fromWireType:U,toWireType:C,argPackAdvance:8,readValueFromPointer:xE(E,x,v!==0),V:null})},b:function(I,E,C){function v(U){U>>=2;var T=y;return new x(d,T[U+1],T[U])}var x=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][E];C=ct(C),Xe(I,{name:C,fromWireType:v,argPackAdvance:8,readValueFromPointer:v},{ua:!0})},o:function(I,E){E=ct(E);var C=E==="std::string";Xe(I,{name:E,fromWireType:function(v){var x=y[v>>2],U=v+4;if(C)for(var T=U,G=0;G<=x;++G){var z=U+G;if(G==x||B[z]==0){if(T=T?u(B,T,z-T):"",K===void 0)var K=T;else K+="\0",K+=T;T=z+1}}else{for(K=Array(x),G=0;G<x;++G)K[G]=String.fromCharCode(B[U+G]);K=K.join("")}return Ze(v),K},toWireType:function(v,x){x instanceof ArrayBuffer&&(x=new Uint8Array(x));var U,T=typeof x=="string";if(T||x instanceof Uint8Array||x instanceof Uint8ClampedArray||x instanceof Int8Array||Z("Cannot pass non-string to std::string"),C&&T){var G=0;for(U=0;U<x.length;++U){var z=x.charCodeAt(U);127>=z?G++:2047>=z?G+=2:55296<=z&&57343>=z?(G+=4,++U):G+=3}U=G}else U=x.length;if(G=eo(4+U+1),z=G+4,y[G>>2]=U,C&&T){if(T=z,z=U+1,U=B,0<z){z=T+z-1;for(var K=0;K<x.length;++K){var $=x.charCodeAt(K);if(55296<=$&&57343>=$){var st=x.charCodeAt(++K);$=65536+(($&1023)<<10)|st&1023}if(127>=$){if(T>=z)break;U[T++]=$}else{if(2047>=$){if(T+1>=z)break;U[T++]=192|$>>6}else{if(65535>=$){if(T+2>=z)break;U[T++]=224|$>>12}else{if(T+3>=z)break;U[T++]=240|$>>18,U[T++]=128|$>>12&63}U[T++]=128|$>>6&63}U[T++]=128|$&63}}U[T]=0}}else if(T)for(T=0;T<U;++T)K=x.charCodeAt(T),255<K&&(Ze(z),Z("String has UTF-16 code units that do not fit in 8 bits")),B[z+T]=K;else for(T=0;T<U;++T)B[z+T]=x[T];return v!==null&&v.push(Ze,G),G},argPackAdvance:8,readValueFromPointer:jA,V:function(v){Ze(v)}})},i:function(I,E,C){if(C=ct(C),E===2)var v=SE,x=ME,U=RE,T=()=>R,G=1;else E===4&&(v=kE,x=PE,U=UE,T=()=>y,G=2);Xe(I,{name:C,fromWireType:function(z){for(var K=y[z>>2],$=T(),st,ht=z+4,St=0;St<=K;++St){var ut=z+4+St*E;(St==K||$[ut>>G]==0)&&(ht=v(ht,ut-ht),st===void 0?st=ht:(st+="\0",st+=ht),ht=ut+E)}return Ze(z),st},toWireType:function(z,K){typeof K!="string"&&Z("Cannot pass non-string to C++ string type "+C);var $=U(K),st=eo(4+$+E);return y[st>>2]=$>>G,x(K,st+4,$+E),z!==null&&z.push(Ze,st),st},argPackAdvance:8,readValueFromPointer:jA,V:function(z){Ze(z)}})},k:function(I,E,C,v,x,U){es[I]={name:ct(E),fa:ve(C,v),W:ve(x,U),ia:[]}},h:function(I,E,C,v,x,U,T,G,z,K){es[I].ia.push({oa:ct(E),ta:C,ra:ve(v,x),sa:U,za:T,ya:ve(G,z),Aa:K})},C:function(I,E){E=ct(E),Xe(I,{va:!0,name:E,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(I,E,C,v,x){I=rs[I],E=dt(E),C=mc(C);var U=[];return y[v>>2]=re(U),I(E,C,U,x)},t:function(I,E,C,v){I=rs[I],E=dt(E),C=mc(C),I(E,C,null,v)},g:$n,m:function(I,E){var C=TE(I,E),v=C[0];E=v.name+"_$"+C.slice(1).map(function(T){return T.name}).join("_")+"$";var x=wc[E];if(x!==void 0)return x;var U=Array(I-1);return x=FE((T,G,z,K)=>{for(var $=0,st=0;st<I-1;++st)U[st]=C[st+1].readValueFromPointer(K+$),$+=C[st+1].argPackAdvance;for(T=T[G].apply(T,U),st=0;st<I-1;++st)C[st+1].ma&&C[st+1].ma(U[st]);if(!v.va)return v.toWireType(z,T)}),wc[E]=x},D:function(I){4<I&&(D[I].ga+=1)},r:function(I){var E=dt(I);Vn(E),$n(I)},c:function(){H("")},x:function(I,E,C){B.copyWithin(I,E,E+C)},w:function(I){var E=B.length;if(I>>>=0,2147483648<I)return!1;for(var C=1;4>=C;C*=2){var v=E*(1+.2/C);v=Math.min(v,I+100663296);var x=Math;v=Math.max(I,v),x=x.min.call(x,2147483648,v+(65536-v%65536)%65536);t:{try{c.grow(x-d.byteLength+65535>>>16),m();var U=1;break t}catch{}U=void 0}if(U)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(I,E,C,v){for(var x=0,U=0;U<C;U++){var T=y[E>>2],G=y[E+4>>2];E+=8;for(var z=0;z<G;z++){var K=B[T+z],$=LE[I];K===0||K===10?((I===1?o:a)(u($,0)),$.length=0):$.push(K)}x+=G}return y[v>>2]=x,0}};(function(){function I(x){e.asm=x.exports,c=e.asm.E,m(),M=e.asm.J,W.unshift(e.asm.F),Y--,e.monitorRunDependencies&&e.monitorRunDependencies(Y),Y==0&&et&&(x=et,et=null,x())}function E(x){I(x.instance)}function C(x){return j().then(function(U){return WebAssembly.instantiate(U,v)}).then(function(U){return U}).then(x,function(U){a("failed to asynchronously prepare wasm: "+U),H(U)})}var v={a:OE};if(Y++,e.monitorRunDependencies&&e.monitorRunDependencies(Y),e.instantiateWasm)try{return e.instantiateWasm(v,I)}catch(x){a("Module.instantiateWasm callback failed with error: "+x),A(x)}return function(){return l||typeof WebAssembly.instantiateStreaming!="function"||L(rt)||typeof fetch!="function"?C(E):fetch(rt,{credentials:"same-origin"}).then(function(x){return WebAssembly.instantiateStreaming(x,v).then(E,function(U){return a("wasm streaming compile failed: "+U),a("falling back to ArrayBuffer instantiation"),C(E)})})}().catch(A),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.F).apply(null,arguments)};var _c=e.___getTypeName=function(){return(_c=e.___getTypeName=e.asm.G).apply(null,arguments)};e.__embind_initialize_bindings=function(){return(e.__embind_initialize_bindings=e.asm.H).apply(null,arguments)};var eo=e._malloc=function(){return(eo=e._malloc=e.asm.I).apply(null,arguments)},Ze=e._free=function(){return(Ze=e._free=e.asm.K).apply(null,arguments)};e.dynCall_jiji=function(){return(e.dynCall_jiji=e.asm.L).apply(null,arguments)};var ns;et=function I(){ns||bc(),ns||(et=I)};function bc(){function I(){if(!ns&&(ns=!0,e.calledRun=!0,!h)){if(N(W),i(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var E=e.postRun.shift();it.unshift(E)}N(it)}}if(!(0<Y)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)q();N(k),0<Y||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),I()},1)):I())}}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return bc(),t.ready}})();let Nt=function(r){return r[r.Auto=0]="Auto",r[r.FlexStart=1]="FlexStart",r[r.Center=2]="Center",r[r.FlexEnd=3]="FlexEnd",r[r.Stretch=4]="Stretch",r[r.Baseline=5]="Baseline",r[r.SpaceBetween=6]="SpaceBetween",r[r.SpaceAround=7]="SpaceAround",r[r.SpaceEvenly=8]="SpaceEvenly",r}({}),Hr=function(r){return r[r.BorderBox=0]="BorderBox",r[r.ContentBox=1]="ContentBox",r}({}),Ol=function(r){return r[r.Width=0]="Width",r[r.Height=1]="Height",r}({}),hi=function(r){return r[r.Inherit=0]="Inherit",r[r.LTR=1]="LTR",r[r.RTL=2]="RTL",r}({}),Wi=function(r){return r[r.Flex=0]="Flex",r[r.None=1]="None",r[r.Contents=2]="Contents",r}({}),ft=function(r){return r[r.Left=0]="Left",r[r.Top=1]="Top",r[r.Right=2]="Right",r[r.Bottom=3]="Bottom",r[r.Start=4]="Start",r[r.End=5]="End",r[r.Horizontal=6]="Horizontal",r[r.Vertical=7]="Vertical",r[r.All=8]="All",r}({}),qi=function(r){return r[r.None=0]="None",r[r.StretchFlexBasis=1]="StretchFlexBasis",r[r.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",r[r.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",r[r.All=2147483647]="All",r[r.Classic=2147483646]="Classic",r}({}),Ap=function(r){return r[r.WebFlexBasis=0]="WebFlexBasis",r}({}),gi=function(r){return r[r.Column=0]="Column",r[r.ColumnReverse=1]="ColumnReverse",r[r.Row=2]="Row",r[r.RowReverse=3]="RowReverse",r}({}),Jr=function(r){return r[r.Column=0]="Column",r[r.Row=1]="Row",r[r.All=2]="All",r}({}),Ee=function(r){return r[r.FlexStart=0]="FlexStart",r[r.Center=1]="Center",r[r.FlexEnd=2]="FlexEnd",r[r.SpaceBetween=3]="SpaceBetween",r[r.SpaceAround=4]="SpaceAround",r[r.SpaceEvenly=5]="SpaceEvenly",r}({}),Xi=function(r){return r[r.Error=0]="Error",r[r.Warn=1]="Warn",r[r.Info=2]="Info",r[r.Debug=3]="Debug",r[r.Verbose=4]="Verbose",r[r.Fatal=5]="Fatal",r}({}),Ln=function(r){return r[r.Undefined=0]="Undefined",r[r.Exactly=1]="Exactly",r[r.AtMost=2]="AtMost",r}({}),Hl=function(r){return r[r.Default=0]="Default",r[r.Text=1]="Text",r}({}),ji=function(r){return r[r.Visible=0]="Visible",r[r.Hidden=1]="Hidden",r[r.Scroll=2]="Scroll",r}({}),Zi=function(r){return r[r.Static=0]="Static",r[r.Relative=1]="Relative",r[r.Absolute=2]="Absolute",r}({}),Pe=function(r){return r[r.Undefined=0]="Undefined",r[r.Point=1]="Point",r[r.Percent=2]="Percent",r[r.Auto=3]="Auto",r}({}),$i=function(r){return r[r.NoWrap=0]="NoWrap",r[r.Wrap=1]="Wrap",r[r.WrapReverse=2]="WrapReverse",r}({});const rp={ALIGN_AUTO:Nt.Auto,ALIGN_FLEX_START:Nt.FlexStart,ALIGN_CENTER:Nt.Center,ALIGN_FLEX_END:Nt.FlexEnd,ALIGN_STRETCH:Nt.Stretch,ALIGN_BASELINE:Nt.Baseline,ALIGN_SPACE_BETWEEN:Nt.SpaceBetween,ALIGN_SPACE_AROUND:Nt.SpaceAround,ALIGN_SPACE_EVENLY:Nt.SpaceEvenly,BOX_SIZING_BORDER_BOX:Hr.BorderBox,BOX_SIZING_CONTENT_BOX:Hr.ContentBox,DIMENSION_WIDTH:Ol.Width,DIMENSION_HEIGHT:Ol.Height,DIRECTION_INHERIT:hi.Inherit,DIRECTION_LTR:hi.LTR,DIRECTION_RTL:hi.RTL,DISPLAY_FLEX:Wi.Flex,DISPLAY_NONE:Wi.None,DISPLAY_CONTENTS:Wi.Contents,EDGE_LEFT:ft.Left,EDGE_TOP:ft.Top,EDGE_RIGHT:ft.Right,EDGE_BOTTOM:ft.Bottom,EDGE_START:ft.Start,EDGE_END:ft.End,EDGE_HORIZONTAL:ft.Horizontal,EDGE_VERTICAL:ft.Vertical,EDGE_ALL:ft.All,ERRATA_NONE:qi.None,ERRATA_STRETCH_FLEX_BASIS:qi.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:qi.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:qi.AbsolutePercentAgainstInnerSize,ERRATA_ALL:qi.All,ERRATA_CLASSIC:qi.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Ap.WebFlexBasis,FLEX_DIRECTION_COLUMN:gi.Column,FLEX_DIRECTION_COLUMN_REVERSE:gi.ColumnReverse,FLEX_DIRECTION_ROW:gi.Row,FLEX_DIRECTION_ROW_REVERSE:gi.RowReverse,GUTTER_COLUMN:Jr.Column,GUTTER_ROW:Jr.Row,GUTTER_ALL:Jr.All,JUSTIFY_FLEX_START:Ee.FlexStart,JUSTIFY_CENTER:Ee.Center,JUSTIFY_FLEX_END:Ee.FlexEnd,JUSTIFY_SPACE_BETWEEN:Ee.SpaceBetween,JUSTIFY_SPACE_AROUND:Ee.SpaceAround,JUSTIFY_SPACE_EVENLY:Ee.SpaceEvenly,LOG_LEVEL_ERROR:Xi.Error,LOG_LEVEL_WARN:Xi.Warn,LOG_LEVEL_INFO:Xi.Info,LOG_LEVEL_DEBUG:Xi.Debug,LOG_LEVEL_VERBOSE:Xi.Verbose,LOG_LEVEL_FATAL:Xi.Fatal,MEASURE_MODE_UNDEFINED:Ln.Undefined,MEASURE_MODE_EXACTLY:Ln.Exactly,MEASURE_MODE_AT_MOST:Ln.AtMost,NODE_TYPE_DEFAULT:Hl.Default,NODE_TYPE_TEXT:Hl.Text,OVERFLOW_VISIBLE:ji.Visible,OVERFLOW_HIDDEN:ji.Hidden,OVERFLOW_SCROLL:ji.Scroll,POSITION_TYPE_STATIC:Zi.Static,POSITION_TYPE_RELATIVE:Zi.Relative,POSITION_TYPE_ABSOLUTE:Zi.Absolute,UNIT_UNDEFINED:Pe.Undefined,UNIT_POINT:Pe.Point,UNIT_PERCENT:Pe.Percent,UNIT_AUTO:Pe.Auto,WRAP_NO_WRAP:$i.NoWrap,WRAP_WRAP:$i.Wrap,WRAP_WRAP_REVERSE:$i.WrapReverse};function sp(r){function t(A,s,n){const o=A[s];A[s]=function(){for(var a=arguments.length,l=new Array(a),c=0;c<a;c++)l[c]=arguments[c];return n.call(this,o,...l)}}for(const A of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[Pe.Point]:r.Node.prototype[A],[Pe.Percent]:r.Node.prototype[`${A}Percent`],[Pe.Auto]:r.Node.prototype[`${A}Auto`]};t(r.Node.prototype,A,function(n){for(var o=arguments.length,a=new Array(o>1?o-1:0),l=1;l<o;l++)a[l-1]=arguments[l];const c=a.pop();let h,u;if(c==="auto")h=Pe.Auto,u=void 0;else if(typeof c=="object")h=c.unit,u=c.valueOf();else if(h=typeof c=="string"&&c.endsWith("%")?Pe.Percent:Pe.Point,u=parseFloat(c),c!==void 0&&!Number.isNaN(c)&&Number.isNaN(u))throw new Error(`Invalid value ${c} for ${A}`);if(!s[h])throw new Error(`Failed to execute "${A}": Unsupported unit '${c}'`);return u!==void 0?s[h].call(this,...a,u):s[h].call(this,...a)})}function e(A){return r.MeasureCallback.implement({measure:function(){const{width:s,height:n}=A(...arguments);return{width:s??NaN,height:n??NaN}}})}t(r.Node.prototype,"setMeasureFunc",function(A,s){return s?A.call(this,e(s)):this.unsetMeasureFunc()});function i(A){return r.DirtiedCallback.implement({dirtied:A})}return t(r.Node.prototype,"setDirtiedFunc",function(A,s){A.call(this,i(s))}),t(r.Config.prototype,"free",function(){r.Config.destroy(this)}),t(r.Node,"create",(A,s)=>s?r.Node.createWithConfig(s):r.Node.createDefault()),t(r.Node.prototype,"free",function(){r.Node.destroy(this)}),t(r.Node.prototype,"freeRecursive",function(){for(let A=0,s=this.getChildCount();A<s;++A)this.getChild(0).freeRecursive();this.free()}),t(r.Node.prototype,"calculateLayout",function(A){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:hi.LTR;return A.call(this,s,n,o)}),{Config:r.Config,Node:r.Node,...rp}}async function np(){return sp(await ip())}class Jl extends MA{constructor(t){super(),this.setProperties(t)}}const tA={auto:Nt.Auto,"flex-start":Nt.FlexStart,center:Nt.Center,"flex-end":Nt.FlexEnd,stretch:Nt.Stretch,baseline:Nt.Baseline,"space-between":Nt.SpaceBetween,"space-around":Nt.SpaceAround,"space-evenly":Nt.SpaceEvenly},Kl={none:Wi.None,flex:Wi.Flex,contents:Wi.Contents},Yl={inherit:hi.Inherit,ltr:hi.LTR,rtl:hi.RTL},Vl={column:gi.Column,"column-reverse":gi.ColumnReverse,row:gi.Row,"row-reverse":gi.RowReverse},zl={"no-wrap":$i.NoWrap,wrap:$i.Wrap,"Wrap-reverse":$i.WrapReverse},Wl={"flex-start":Ee.FlexStart,center:Ee.Center,"flex-end":Ee.FlexEnd,"space-between":Ee.SpaceBetween,"space-around":Ee.SpaceAround,"space-evenly":Ee.SpaceEvenly},ql={visible:ji.Visible,hidden:ji.Hidden,scroll:ji.Scroll},Xl={static:Zi.Static,relative:Zi.Relative,absolute:Zi.Absolute},jl={"border-box":Hr.BorderBox,"content-box":Hr.ContentBox};class Kr{constructor(t){this._element=t}static _yoga;static async load(){this._yoga=await np()}_node=Kr._yoga.Node.create();get _style(){return this._element.style}get offsetLeft(){return this._node.getComputedLeft()}get offsetTop(){return this._node.getComputedTop()}get offsetWidth(){return this._node.getComputedWidth()}get offsetHeight(){return this._node.getComputedHeight()}calculateLayout(t,e,i){return this._node.calculateLayout(t,e,i)}getComputedLayout(){return this._node.getComputedLayout()}updateStyleProperty(t,e,i,A){switch(t){case"alignContent":this._node.setAlignContent(e?tA[e]:tA["flex-start"]);break;case"alignItems":this._node.setAlignItems(e?tA[e]:tA["flex-start"]);break;case"alignSelf":this._node.setAlignSelf(e?tA[e]:tA["flex-start"]);break;case"aspectRatio":this._node.setAspectRatio(e);break;case"borderTop":this._node.setBorder(ft.Top,this._style.borderWidth);break;case"borderBottom":this._node.setBorder(ft.Bottom,this._style.borderWidth);break;case"borderLeft":this._node.setBorder(ft.Left,this._style.borderWidth);break;case"borderRight":this._node.setBorder(ft.Right,this._style.borderWidth);break;case"border":this._node.setBorder(ft.All,this._style.borderWidth);break;case"direction":this._node.setDirection(e?Yl[e]:Yl.inherit);break;case"display":this._node.setDisplay(e?Kl[e]:Kl.flex);break;case"flex":this._node.setFlex(this._style.flex);break;case"flexBasis":this._node.setFlexBasis(this._style.flexBasis);break;case"flexDirection":this._node.setFlexDirection(e?Vl[e]:Vl.row);break;case"flexGrow":this._node.setFlexGrow(this._style.flexGrow);break;case"flexShrink":this._node.setFlexShrink(this._style.flexShrink);break;case"flexWrap":this._node.setFlexWrap(e?zl[e]:zl.wrap);break;case"height":this._node.setHeight(this._style.height);break;case"justifyContent":this._node.setJustifyContent(e?Wl[e]:Wl["flex-start"]);break;case"gap":e!==void 0&&this._node.setGap(Jr.All,e);break;case"marginTop":this._node.setMargin(ft.Top,e);break;case"marginBottom":this._node.setMargin(ft.Top,e);break;case"marginLeft":this._node.setMargin(ft.Left,e);break;case"marginRight":this._node.setMargin(ft.Top,e);break;case"margin":this._node.setMargin(ft.All,e);break;case"maxHeight":this._node.setMaxHeight(e);break;case"maxWidth":this._node.setMaxWidth(e);break;case"minHeight":this._node.setMinHeight(this._style.minHeight);break;case"minWidth":this._node.setMinWidth(this._style.minWidth);break;case"overflow":this._node.setOverflow(e?ql[e]:ql.visible);break;case"paddingTop":this._node.setPadding(ft.Top,this._style.paddingTop);break;case"paddingBottom":this._node.setPadding(ft.Bottom,this._style.paddingBottom);break;case"paddingLeft":this._node.setPadding(ft.Left,this._style.paddingLeft);break;case"paddingRight":this._node.setPadding(ft.Right,this._style.paddingRight);break;case"padding":this._node.setPadding(ft.All,this._style.padding);break;case"top":this._node.setPosition(ft.Top,this._style.top);break;case"bottom":this._node.setPosition(ft.Bottom,this._style.bottom);break;case"left":this._node.setPosition(ft.Left,this._style.left);break;case"right":this._node.setPosition(ft.Right,this._style.right);break;case"position":this._node.setPositionType(e?Xl[e]:Xl.static);break;case"boxSizing":this._node.setBoxSizing(e?jl[e]:jl["content-box"]);break;case"width":this._node.setWidth(this._style.width);break}}}var op=Object.getOwnPropertyDescriptor,ap=(r,t,e,i)=>{for(var A=i>1?void 0:i?op(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.FlexElement2D=class extends g.BaseElement2D{get style(){return this._style}set style(t){const e=(...i)=>{this.emit("updateStyleProperty",...i),this._updateStyleProperty(i[0],i[1],i[2],i[3])};t.on("updateProperty",e),this._style?.off("updateProperty",e),this._style=t}_layout=new Kr(this);get offsetLeft(){return this._layout.offsetLeft}get offsetTop(){return this._layout.offsetTop}get offsetWidth(){return this._layout.offsetWidth}get offsetHeight(){return this._layout.offsetHeight}constructor(t,e=[]){super(),this.style=new Jl,this.setProperties(t).append(e)}_parented(t){super._parented(t),t._layout&&this._layout._node&&t._layout._node.insertChild(this._layout._node,t._layout._node.getChildCount())}_unparented(t){super._unparented(t),t._layout?._node&&t._layout._node.removeChild(this._layout._node)}_updateStyleProperty(t,e,i,A){super._updateStyleProperty(t,e,i,A),this._layout.updateStyleProperty(t,e,i,A),this._layout._node.isDirty()&&this.requestRelayout()}updateTransform(){this.calculateLayout(void 0,void 0,hi.LTR);const{left:t,top:e,width:i,height:A}=this._layout.getComputedLayout();this.position.x=t,this.position.y=e,this.size.x=i,this.size.y=A,super.updateTransform()}calculateLayout(t,e,i){const A=this.getParent();A?._layout?.calculateLayout?A?._layout.calculateLayout(t,e,i):this._layout.calculateLayout(t,e,i)}},g.FlexElement2D=ap([nt("FlexElement2D")],g.FlexElement2D);var lp=Object.defineProperty,cp=Object.getOwnPropertyDescriptor,WA=(r,t,e,i)=>{for(var A=i>1?void 0:i?cp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&lp(t,e,A),A};g.Image2D=class extends g.Element2D{get currentFrameTexture(){return this.texture?.frames[this._frameIndex]?.texture}get textureDuration(){return this.texture?.duration??0}get naturalWidth(){return this.currentFrameTexture?.realWidth??0}get naturalHeight(){return this.currentFrameTexture?.realHeight??0}get complete(){return this._complete}_frameIndex=0;_complete=!1;_wait=Promise.resolve();constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"src":this._wait=this._load(e);break;case"srcRect":this.requestRedraw();break}}decode(){return this._wait}setResource(t){let e;if(t instanceof cr?e=t:e=new cr(t),this.texture=e.updateDuration(),this.currentFrameTexture&&(!this.style.width||!this.style.height)){const i=this.currentFrameTexture;this.style.width=i.realWidth,this.style.height=i.realHeight}return this}async _load(t){if(this._complete=!1,t)try{this.setResource(this.gif||t?.includes(".gif")?await Ne.gif.load(t):await Ne.texture.load(t)),this.requestRedraw(),this.emit("load")}catch(e){console.warn(e),this.emit("error",e)}else this.texture=void 0;this._complete=!0}_getFrameCurrentTime(){const t=this.textureDuration;if(!t||!this._tree)return 0;const e=this._currentTime;return e<0?0:e%t}_updateFrameIndex(){if(!this.texture)return this;const t=this._getFrameCurrentTime(),e=this.texture.frames,i=e.length;if(i<=1&&this._frameIndex===0)return this;let A=i-1;for(let s=0,n=0;n<i;n++)if(s+=e[n].duration??0,s>=t){A=n;break}return this._frameIndex!==A&&(this._frameIndex=A,this.requestRedraw()),this}_process(t){this._updateFrameIndex(),super._process(t)}_drawContent(){const t=this.currentFrameTexture;if(t?.valid){const{left:e=0,top:i=0,right:A=0,bottom:s=0}=this.srcRect??{},{width:n,height:o}=this.size;this.context.fillStyle=t;const a=Math.abs(1+(e+A))*n,l=Math.abs(1+(i+s))*o,c=1/a,h=1/l,u=e*n*c,d=i*o*h;this.context.uvTransform=new Vt().scale(c,h).translate(u,d),this.shape.draw(),this.context.fill()}}_repaint(t){return super._repaint(t).map(e=>({...e,disableWrapMode:!0}))}},WA([_({protected:!0})],g.Image2D.prototype,"texture",2),WA([_({fallback:""})],g.Image2D.prototype,"src",2),WA([_()],g.Image2D.prototype,"srcRect",2),WA([_({fallback:!1})],g.Image2D.prototype,"gif",2),g.Image2D=WA([nt("Image2D")],g.Image2D);class Yr extends g.Element2D{texture;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_drawContent(){if(this.texture?.valid){const{width:t,height:e}=this.size;this.context.fillStyle=this.texture,this.context.uvTransform=new Vt().scale(1/t,1/e),this.shape.drawRect(),this.context.fill()}}}var hp=Object.defineProperty,gp=Object.getOwnPropertyDescriptor,Zl=(r,t,e,i)=>{for(var A=i>1?void 0:i?gp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&hp(t,e,A),A};g.Lottie2D=class extends Yr{texture=new uA;animation;constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"src":this._load();break}}_updateStyleProperty(t,e,i){switch(super._updateStyleProperty(t,e,i),t){case"width":this.texture.width=this.style.width;break;case"height":this.texture.height=this.style.height;break}}async _load(){this.animation=await Ne.lottie.load(this.src,this.texture.source),this.duration=this.animation.getDuration(!1)*1e3,this.texture.requestUpload(),this.requestRedraw()}_process(t){this.animation?.goToAndStop(this.currentTime,!1),this.texture.requestUpload(),this.requestRedraw(),super._process(t)}},Zl([_({fallback:""})],g.Lottie2D.prototype,"src",2),g.Lottie2D=Zl([nt("Lottie2D")],g.Lottie2D);var up=Object.defineProperty,fp=Object.getOwnPropertyDescriptor,eA=(r,t,e,i)=>{for(var A=i>1?void 0:i?fp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&up(t,e,A),A};const dp=new Set(Object.keys(Nn));g.Text2D=class extends Yr{texture=new uA;base=new Ll;measureResult;_subTextsCount=0;constructor(t,e=[]){super(),this.setProperties(t),this.append(e),t?.plugins&&t.plugins.forEach(i=>{this.base.use(i)})}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"content":case"effects":case"measureDOM":case"fonts":case"split":this._updateSplit(),this.requestRedraw();break}this._subTextsCount&&t==="effects"&&this._getSubTexts().forEach(s=>{s.setProperties({[t]:e})})}_updateBase(){this.base.style=this.style.toJSON(),this.emit("updateBase",this.base),this.base.requestUpdate()}_updateStyleProperty(t,e,i){switch(t){case"left":case"top":case"width":case"height":this.requestRedraw();break;default:super._updateStyleProperty(t,e,i);break}switch(t){case"width":this.split&&this._updateSubTexts();break}typeof t=="string"&&dp.has(t)&&(this._subTextsCount&&t!=="width"&&t!=="height"&&this._getSubTexts().forEach(A=>{A.style.setProperties({[t]:e})}),this.requestRedraw())}_getSubTexts(){return this.children.front.filter(t=>t instanceof g.Text2D)}_updateSubTexts(){const t=this._getSubTexts();let e=0;this.split&&this.updateMeasure().measureResult?.paragraphs.forEach(i=>{i.fragments.forEach(A=>{A.characters.forEach(s=>{const n=t[e];n&&(n.style.left=s.inlineBox.left,n.style.top=s.inlineBox.top),e++})})})}measure(){return this._updateBase(),this.base.measure()}updateMeasure(){this.measureResult=this.measure();const{boundingBox:t}=this.measureResult,{left:e,top:i}=this.style;return this.position.x=e+Math.min(0,t.left),this.position.y=i+Math.min(0,t.top),this.size.width=t.width,this.size.height=t.height,this}_updateSplit(){this._subTextsCount&&(this.children.front.forEach(t=>this.removeChild(t)),this._subTextsCount=0),this.split&&this.measure().paragraphs.forEach(t=>{t.fragments.forEach(e=>{e.characters.forEach(i=>{this.append(new g.Text2D({internalMode:"front",style:{...i.computedStyle,left:i.inlineBox.x,top:i.inlineBox.y,width:0,height:0},content:i.content,effects:this.effects,fonts:this.fonts})),this._subTextsCount++})})})}_redraw(){return this.updateMeasure(),super._redraw()}_drawContent(){this.split||(this.base.render({pixelRatio:this.texture.pixelRatio,view:this.texture.source}),this.texture.requestUpload(),super._drawContent())}},eA([_({fallback:!1})],g.Text2D.prototype,"split",2),eA([_({alias:"base.content"})],g.Text2D.prototype,"content",2),eA([_({alias:"base.effects"})],g.Text2D.prototype,"effects",2),eA([_({protected:!0,alias:"base.measureDOM"})],g.Text2D.prototype,"measureDOM",2),eA([_({protected:!0,alias:"base.fonts"})],g.Text2D.prototype,"fonts",2),g.Text2D=eA([nt("Text2D")],g.Text2D);var Ip=Object.defineProperty,pp=(r,t,e,i)=>{for(var A=void 0,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(t,e,A)||A);return A&&Ip(t,e,A),A};class Gn extends g.Element2D{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":case"height":this.requestRedraw();break}}_drawCircle(t,e){this.context.arc(t,e,this.handleSize,0,Math.PI*2,!0),this.context.fillStyle=mt.WHITE,this.context.fill(),this.context.arc(t,e,this.handleSize,0,Math.PI*2,!0),this.context.strokeStyle="rgba(0, 0, 0, 0.2)",this.context.stroke()}_drawEllipse(t,e){this.context.roundRect(t-this.handleSize,e-this.handleSize*2,this.handleSize*2,this.handleSize*4,this.handleSize),this.context.fillStyle=mt.WHITE,this.context.fill(),this.context.roundRect(t-this.handleSize,e-this.handleSize*2,this.handleSize*2,this.handleSize*4,this.handleSize),this.context.strokeStyle="rgba(0, 0, 0, 0.2)",this.context.stroke()}_draw(){const{width:t,height:e}=this.getRect();this.context.rect(0,0,t,e),this.context.strokeStyle="#00FF00",this.context.stroke(),this._drawCircle(0,0),this._drawCircle(t,e),this._drawCircle(0,e),this._drawEllipse(0,e/2),this._drawCircle(t,0),this._drawEllipse(t,e/2)}}pp([_({fallback:6})],Gn.prototype,"handleSize");var Ep=Object.defineProperty,Bp=Object.getOwnPropertyDescriptor,$l=(r,t,e,i)=>{for(var A=i>1?void 0:i?Bp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Ep(t,e,A),A};g.Video2D=class extends Yr{get videoDuration(){return(this.texture?.duration??0)*1e3}_wait=Promise.resolve();constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"src":this._wait=this._load(e);break}}waitLoad(){return this._wait}async _load(t){this.texture=await Ne.video.load(t),(!this.style.width||!this.style.height)&&(this.style.width=this.texture.width,this.style.height=this.texture.height),this.requestRedraw()}_updateVideoCurrentTime(){let t=this._currentTime;if(t<0)return;const e=this.texture;if(!e)return;const i=e.duration;t=i?t%(i*1e3):0,!e.isPlaying&&!e.seeking&&(t=~~t/1e3,e.currentTime!==t&&(e.currentTime=t))}_process(t){this._updateVideoCurrentTime(),super._process(t)}},$l([_({fallback:""})],g.Video2D.prototype,"src",2),g.Video2D=$l([nt("Video2D")],g.Video2D);var Cp=Object.defineProperty,Qp=Object.getOwnPropertyDescriptor,qA=(r,t,e,i)=>{for(var A=i>1?void 0:i?Qp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Cp(t,e,A),A};const tc=r=>r,ec=iA(.25,.1,.25,1),ic=iA(.42,0,1,1),Ac=iA(0,0,.58,1),rc=iA(.42,0,.58,1);function iA(r,t,e,i){const s=3*r-3*e+1,n=3*e-6*r,o=3*r,a=3*t-3*i+1,l=3*i-6*t,c=3*t,h=B=>(3*s*B+2*n)*B+o,u=B=>((s*B+n)*B+o)*B,d=B=>((a*B+l)*B+c)*B;function f(B){let p=B,R,P;for(let Q=0;Q<8;Q++){if(P=u(p)-B,Math.abs(P)<1e-6)return p;if(R=h(p),Math.abs(R)<1e-6)break;p-=P/R}let y=1,S=0;for(p=B;y>S;){if(P=u(p)-B,Math.abs(P)<1e-6)return p;P>0?y=p:S=p,p=(y+S)/2}return p}return B=>d(f(B))}const Vr={linear:tc,ease:ec,easeIn:ic,easeOut:Ac,easeInOut:rc};g.Animation=class extends g.TimelineNode{_keyframes=[];_isFirstUpdatePosition=!1;_cachedProps=new uo;_stoped=!1;constructor(t,e=[]){super(),this.setProperties(t).append(e)}_parented(t){super._parented(t),this._updateCachedProps()}_unparented(t){super._unparented(t),this.cancel()}_process(){this.canProcess()&&this.commitStyles()}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"effectMode":case"keyframes":this._updateKeyframes();break}}_getTargets(){let t;switch(this.effectMode){case"sibling":t=this.getParent()?.children.internal.filter(e=>e instanceof g.CanvasItem)??[];break;case"parent":default:t=[this.getParent()].filter(Boolean);break}return t.map(e=>e.style)}_updateKeyframes(){const t=[],e=this.keyframes;for(let s=e.length,n=0;n<s;n++){const{offset:o=n===0?0:n/(s-1),easing:a="linear",...l}=e[n];t.push({offset:o,easing:this._parseEasing(a),props:l})}const i=t[0],A=t[t.length-1];i&&i.offset!==0&&t.unshift({offset:0,easing:this._parseEasing("linear"),props:{}}),A&&A.offset!==1&&t.push({offset:1,easing:this._parseEasing("linear"),props:{}}),this._keyframes=t,this._updateCachedProps()}commitStyles(){if(!this.keyframes.length)return;if(this._updateCurrentTime(),this.isInsideTimeRange())this._isFirstUpdatePosition||(this._isFirstUpdatePosition=!0,this._updateCachedProps());else{if(!this._isFirstUpdatePosition)return;this._isFirstUpdatePosition=!1}const t=this._getTargets(),e=1/t.length,i=this.currentTimeProgress;t.forEach((A,s)=>{const n=e===1?i:Ke(0,Math.max(0,i-e*s)/e,1),o=this._cachedProps.get(A);if(!o)return;const a=this._parseKeyframes(n,o);a?.length&&this._commitStyle(n,A,o,a[0],a[1])})}_updateCachedProps(){this.cancel(),this._getTargets().forEach(t=>{const e=new Map,i=this._keyframes;for(let A=i.length,s=0;s<A;s++)Object.keys(i[s].props).forEach(n=>{e.set(n,t[n])});this._cachedProps.set(t,e)})}_parseEasing(t){if(!t)return Vr.linear;if(t in Vr)return Vr[t];const e=t.replace(/cubic-bezier\((.+)\)/,"$1").split(",").map(i=>Number(i));return iA(e[0],e[1],e[2],e[3])}_parseKeyframes(t,e){let i;const A=this._keyframes;for(let s=A.length,n=0;n<s;n++){const o=A[n],{offset:a,easing:l}=o,c={...o.props};if(i&&t<=a){const{offset:h,easing:u}=i,d={...i.props};return e.forEach((f,B)=>{(!(B in d)||d[B]===null)&&(d[B]=f),(!(B in c)||c[B]===null)&&(c[B]=f)}),[{offset:h,easing:u,props:d},{offset:a,easing:l,props:c}]}i=o}return null}_commitStyle(t,e,i,A,s){const{offset:n,easing:o,props:a}=A,{offset:l,props:c}=s,h=l-n,u=o((t-n)/h),d={width:e.width,height:e.height,fontSize:e.fontSize};i.forEach((f,B)=>{e[B]=this._getDiffValue(B,a[B],c[B],u,d)})}_getDiffValue(t,e,i,A,s){let n,o;if(e==="none"&&(e=void 0),i==="none"&&(i=void 0),e===void 0||i===void 0)if(e!==void 0)n=aA(t,String(e),s),o=Cs(n);else if(i!==void 0)o=aA(t,String(i),s),n=Cs(o);else return;else n=aA(t,String(e),s),o=aA(t,String(i),s);if(Array.isArray(n)&&Array.isArray(o)){const a=new Set,l={},c={};n.forEach(({name:u,args:d})=>{l[u]=d,a.add(u)}),o.forEach(({name:u,args:d})=>{c[u]=d,a.add(u)});let h="";return a.forEach(u=>{const d=Math.max(l[u]?.length??0,c[u]?.length??0),f=l[u],B=c[u];h+=`${u}(${Array.from({length:d},(p,R)=>{const P=f?.[R],y=B?.[R],S=P?.normalizedIntValue??0,Q=y?.normalizedIntValue??0;return Number.isNaN(S)||Number.isNaN(Q)?y?.value??0:Dt(S,Q,A)}).join(", ")}) `}),h}else if(!Array.isArray(n)&&!Array.isArray(o))return Number.isNaN(n.normalizedIntValue)||Number.isNaN(o.normalizedIntValue)?o.value:Dt(n.normalizedIntValue,o.normalizedIntValue,A)}isPlaying(){return!this.paused&&this.isInsideTimeRange()}play(){return this._stoped?(this._stoped=!1,this.startTime=this.timelineCurrentTime):this.startTime=this.timelineCurrentTime-this.currentTime,this.paused=!1,!0}pause(){return this.paused=!0,!0}stop(){return this._stoped=!0,this.paused=!0,this._currentTime=0,!0}cancel(){this._getTargets().forEach(t=>{this._cachedProps.get(t)?.forEach((e,i)=>{t[i]=e}),this._cachedProps.delete(t)})}},qA([_()],g.Animation.prototype,"effectMode",2),qA([_()],g.Animation.prototype,"loop",2),qA([_()],g.Animation.prototype,"keyframes",2),qA([_()],g.Animation.prototype,"easing",2),g.Animation=qA([nt("Animation",{renderMode:"disabled",processMode:"pausable",processSortMode:"parent_before",duration:2e3})],g.Animation);class zr extends Ge{static _instance;static get instance(){return this._instance||(this._instance=new zr),this._instance}playbackRate=1;muted=!1;volume=1;paused=!1;refresh(){this.emit("refresh")}refreshPaused(){this.emit("refreshPaused")}get processors(){return console.warn("HTML Audio does not support processors"),[]}set processors(t){console.warn("HTML Audio does not support processors")}get audioContext(){return console.warn("HTML Audio does not support audioContext"),null}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this.paused}free(){this.removeAllListeners()}}class XA extends Ge{static PADDING=.1;_source=null;_audio=null;_end=0;_pausedReal=!1;_duration=0;_start=0;_playing=!1;get progress(){return(this._source?.currentTime??0)/this._duration}_paused=!1;get paused(){return this._paused}set paused(t){this._paused!==t&&(this._paused=t,this.refreshPaused())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh())}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}set(t,e){if(this[t]===void 0)throw new Error(`Property with name ${t} does not exist.`);switch(t){case"playbackRate":this.playbackRate=e;break;case"volume":this.volume=e;break;case"paused":this.paused=e;break;case"loop":this.loop=e;break;case"muted":this.muted=e;break}return this}_onPlay(){this._playing=!0}_onPause(){this._playing=!1}init(t){this._playing=!1,this._duration=t.source.duration;const e=this._source=t.source.cloneNode(!1);return e.src=t.parent.src,e.onplay=this._onPlay.bind(this),e.onpause=this._onPause.bind(this),t.context.on("refresh",this.refresh),t.context.on("refreshPaused",this.refreshPaused),this._audio=t,this}_stop(){this._source&&this._playing&&(this._source.onended=null,this._source.pause())}stop(){this._stop(),this._source&&this.emit("stop")}get processors(){return console.warn("HTML Audio does not support processors"),[]}set processors(t){console.warn("HTML Audio does not support processors")}refresh(){if(!this._audio||!this._source)return;const t=this._audio.context,e=this._audio.parent;this._source.loop=this._loop||e.loop;const i=t.volume*(t.muted?0:1),A=e.volume*(e.muted?0:1),s=this._volume*(this._muted?0:1);this._source.volume=s*i*A,this._source.playbackRate=this._playbackRate*t.playbackRate*e.playbackRate}refreshPaused(){if(!this._source||!this._audio)return;const t=this._paused||this._audio.parent.paused||this._audio.context.paused;t!==this._pausedReal&&(this._pausedReal=t,t?(this._stop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._source.currentTime,end:this._end,volume:this._volume,playbackRate:this._playbackRate,loop:this._loop})),this.emit("pause",t))}play(t={}){if(!this._source)return;const{start:e=0,end:i=0}=t;i&&console.assert(i>e,"End time is before start time"),t.playbackRate!==void 0&&(this._playbackRate=t.playbackRate),t.volume!==void 0&&(this._volume=t.volume),t.loop!==void 0&&(this._loop=t.loop),t.muted!==void 0&&(this._muted=t.muted),this.refresh(),this.loop&&i!==null&&(console.warn('Looping not support when specifying an "end" time'),this.loop=!1),this._start=e,this._end=i||this._duration,this._start=Math.max(0,this._start-XA.PADDING),this._end=Math.min(this._end+XA.PADDING,this._duration),this._source.onloadedmetadata=()=>{this._source&&(this._source.currentTime=e,this._source.onloadedmetadata=null,this.emit("progress",e,this._duration),Yt.on(this._onUpdate))},this._source.onended=this._onComplete.bind(this),this._source.play(),this.emit("start")}_onUpdate=()=>{this._source&&(this.emit("progress",this.progress,this._duration),this._source.currentTime>=this._end&&!this._source.loop&&this._onComplete())};_onComplete(){Yt.off(this._onUpdate),this._stop(),this.emit("progress",1,this._duration),this.emit("end",this)}free(){Yt.off(this._onUpdate),this.removeAllListeners();const t=this._source;t&&(t.onended=null,t.onplay=null,t.onpause=null,this._stop()),this._source=null,this._playbackRate=1,this._volume=1,this._loop=!1,this._end=0,this._start=0,this._duration=0,this._playing=!1,this._pausedReal=!1,this._paused=!1,this._muted=!1,this._audio&&(this._audio.context.off("refresh",this.refresh),this._audio.context.off("refreshPaused",this.refreshPaused),this._audio=null)}}class sc{constructor(t){this.parent=t}source=new globalThis.Audio;_src="";get src(){return this._src}set src(t){this._src!==t&&(this._src=t,this.load())}get duration(){return this.source.duration}get isPlayable(){return!!this.source&&this.source.readyState===4}get context(){return zr.instance}async load(){return new Promise(t=>{this.source.onload=()=>t(this),this.source.src=this._src,this.source.load()})}createSound(){return new XA}}class On extends Ge{constructor(t,e){super(),this._input=t,this._output=e}_processers=[];get processors(){return this._processers}set processors(t){if(this._processers.forEach(e=>e.disconnect()),this._processers.length=0,this._input.connect(this._output),t.length){this._processers=t.slice(0),this._input.disconnect();let e;t.forEach(i=>{e?e.connect(i.destination):this._input.connect(i.destination),e=i}),e.connect(this._output)}}get destination(){return this._input}}class yp{constructor(t,e=null){this.destination=t,this.source=e}connect(t){this.source?.connect(t)}disconnect(){this.source?.disconnect()}}function mp(){if(ys)return new AudioContext;if(ms){const r=globalThis.webkitAudioContext;return new r}else throw new Error("Failed to createAudioContext")}function wp(r,t,e){if(ws)return new OfflineAudioContext(r,t,e);if(xo){const i=globalThis.webkitOfflineAudioContext;return new i(r,t,e)}else throw new Error("Failed to createOfflineAudioContext")}class ui extends On{static _instance;static get instance(){return this._instance||(this._instance=new ui),this._instance}static get audioContext(){return this.instance.audioContext}static get offlineContext(){return this.instance.offlineContext}static setParamValue(t,e){this.instance.setParamValue(t,e)}static decode(t){return this.instance.decode(t)}_context;_offlineContext;get audioContext(){return this._context}get offlineContext(){return this._offlineContext}_locked;muted=!1;volume=1;playbackRate=1;autoPause=!0;_paused=!1;_pausedOnBlur=!1;get paused(){return this._paused}set paused(t){t&&this._context.state==="running"?this._context.suspend():!t&&this._context.state==="suspended"&&this._context.resume(),this._paused=t}_compressor;_analyser;constructor(){const t=mp(),e=wp(1,2,ws?Math.max(8e3,Math.min(96e3,t.sampleRate)):44100),i=t.createDynamicsCompressor(),A=t.createAnalyser();A.connect(i),i.connect(t.destination),super(A,i),this._context=t,this._offlineContext=e,this._compressor=i,this._analyser=A,this._locked=t.state==="suspended"&&(Oe||Do),cA&&(this._locked&&(this._unlock(),document.addEventListener("mousedown",this._unlock,!0),document.addEventListener("touchstart",this._unlock,!0),document.addEventListener("touchend",this._unlock,!0)),globalThis.addEventListener("focus",this._onFocus),globalThis.addEventListener("blur",this._onBlur))}_onFocus(){if(!this.autoPause)return;const t=this._context.state;(t==="suspended"||t==="interrupted"||!this._locked)&&(this.paused=this._pausedOnBlur,this.refreshPaused())}_onBlur(){this.autoPause&&(this._locked||(this._pausedOnBlur=this._paused,this.paused=!0,this.refreshPaused()))}_unlock=()=>{this._locked&&(this.playEmptySound(),this._context.state==="running"&&(document.removeEventListener("mousedown",this._unlock,!0),document.removeEventListener("touchend",this._unlock,!0),document.removeEventListener("touchstart",this._unlock,!0),this._locked=!1))};playEmptySound(){const t=this._context.createBufferSource();t.buffer=this._context.createBuffer(1,1,22050),t.connect(this._context.destination),t.start(0,0,0),t.context.state==="suspended"&&t.context.resume()}refresh(){this.emit("refresh")}refreshPaused(){this.emit("refreshPaused")}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this._paused}decode(t){return new Promise((e,i)=>{const A=n=>{i(new Error(n?.message||"Unable to decode file"))},s=this._offlineContext.decodeAudioData(t,e,A);s&&s.catch(A)})}setParamValue(t,e){t.setValueAtTime?t.setValueAtTime(e,this._context.currentTime):t.value=e}}class nc extends Ge{_audio=null;_sourceNode=null;_gain=null;_progress=0;get progress(){return this._progress}_pausedReal=!1;_paused=!1;get paused(){return this._paused}set paused(t){this._paused!==t&&(this._paused=t,this.refreshPaused())}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh(),this._update(!0))}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}_duration=0;_end=0;_elapsed=0;_lastUpdate=this._now();_processors=[];init(t){return this._audio=t,t.context.on("refresh",this.refresh),t.context.on("refreshPaused",this.refreshPaused),this}_now(){return this._audio?.context.audioContext.currentTime??0}play(t={}){if(!this._audio)return;const{end:e=0,start:i=0}=t;e&&console.assert(e>i,"End time is before start time"),this._end=e,this._elapsed=i,t.volume!==void 0&&(this._volume=t.volume),t.playbackRate!==void 0&&(this._playbackRate=t.playbackRate),t.muted!==void 0&&(this._muted=t.muted),t.loop!==void 0&&(this._loop=t.loop),t.processors!==void 0&&(this._processors=t.processors),this._paused=!1;const{source:A,gain:s}=this._audio.cloneSource();this._sourceNode=A,this._gain=s,this.refresh(),A.onended=this._onComplete.bind(this),this._duration=A.buffer?.duration??0,this._lastUpdate=this._now(),this._loop?(A.loopStart=i,A.loopEnd=e,A.start(0,i)):e?A.start(0,i,e-i):A.start(0,i),this.emit("start"),this._update(!0),this._enableTicker(!0)}_stop(){if(this._sourceNode){this._enableTicker(!1),this._sourceNode.onended=null,this._sourceNode.stop(0),this._sourceNode.disconnect();try{this._sourceNode.buffer=null}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t)}this._sourceNode=null}}stop(){this._sourceNode&&(this._stop(),this.emit("stop"))}_update(t=!1){if(this._sourceNode){const e=this._now(),i=e-this._lastUpdate;if(i>0||t){this._elapsed+=i*this._sourceNode.playbackRate.value,this._lastUpdate=e;const A=this._duration;let s;if(this._sourceNode.loopStart){const n=this._sourceNode.loopEnd-this._sourceNode.loopStart;s=(this._sourceNode.loopStart+this._elapsed%n)/A}else s=this._elapsed%A/A;this._progress=s,this.emit("progress",s,A)}}}refresh(){if(!this._audio||!this._sourceNode)return;const t=this._audio.context,e=this._audio.parent;this._sourceNode.loop=this._loop||e.loop,t.setParamValue(this._gain.gain,this._volume*(this._muted?0:1)*e.volume*(e.muted?0:1)*t.volume*(t.muted?0:1)),t.setParamValue(this._sourceNode.playbackRate,this._playbackRate*e.playbackRate*t.playbackRate),this.applyProcessors()}applyProcessors(){if(this._sourceNode&&this._processors.length){this._sourceNode.disconnect();let t=this._sourceNode;this._processors.forEach(e=>{t.connect(e.destination),t=e}),t.connect(this._gain)}}refreshPaused(){if(!this._audio)return;const t=this._paused||this._audio.parent.paused||this._audio.context.paused;t!==this._pausedReal&&(this._pausedReal=t,t?(this._stop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._elapsed%this._duration,end:this._end,playbackRate:this._playbackRate,loop:this._loop,volume:this._volume})),this.emit("pause",t))}_onComplete=()=>{if(this._sourceNode){this._enableTicker(!1),this._sourceNode.onended=null,this._sourceNode.disconnect();try{this._sourceNode.buffer=null}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t)}}this._sourceNode=null,this._progress=1,this.emit("progress",1,this._duration),this.emit("end",this)};_updateListener=()=>this._update();_enableTicker(t){Yt.off(this._updateListener),t&&Yt.on(this._updateListener)}free(){this.removeAllListeners(),this._stop(),this._gain?.disconnect(),this._gain=null,this._audio?.context.off("refresh",this.refresh),this._audio?.context.off("refreshPaused",this.refreshPaused),this._audio=null,this._processors.forEach(t=>t.disconnect()),this._processors.length=0,this._end=0,this._playbackRate=1,this._volume=1,this._loop=!1,this._elapsed=0,this._duration=0,this._paused=!1,this._muted=!1,this._pausedReal=!1}}class oc extends On{constructor(t){const e=ui.audioContext,i=e.createBufferSource(),A=e.createGain(),s=e.createAnalyser();i.connect(s),s.connect(A),A.connect(ui.instance.destination),super(s,A),this.parent=t,this._sourceNode=i,this.gain=A,this.analyser=s}_sourceBuffer;_sourceNode;_sourceLoad;gain;analyser;get context(){return ui.instance}get isPlayable(){return!!this._sourceNode.buffer}get duration(){return this._sourceNode.buffer?.duration??0}get buffer(){return this._sourceNode.buffer}set buffer(t){this._sourceNode.buffer=t}async load(){return this._sourceLoad||(this._sourceLoad=new Promise(t=>{this._sourceBuffer?this._decode(this._sourceBuffer).then(()=>t(this)):this.parent.src?this._loadUrl(this.parent.src).then(()=>t(this)):t(this)})),this._sourceLoad}_loadUrl(t){return new Promise(e=>{fetch(t).then(i=>i.arrayBuffer()).then(i=>this._decode(i)).finally(()=>e(this))})}_decode(t){return Promise.resolve(t instanceof AudioBuffer?t:ui.decode(t)).then(e=>(this.parent.isLoaded=!0,this.buffer=e,e))}cloneSource(){const t=this.context,e=this._sourceNode,i=t.audioContext.createBufferSource(),A=t.audioContext.createGain();return i.buffer=e.buffer,i.loop=e.loop,t.setParamValue(i.playbackRate,e.playbackRate.value),i.connect(A),A.connect(this.destination),{source:i,gain:A}}createSound(){return new nc}}var vp=Object.defineProperty,_p=Object.getOwnPropertyDescriptor,bp=(r,t,e)=>t in r?vp(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Dp=(r,t,e,i)=>{for(var A=i>1?void 0:i?_p(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A},xp=(r,t,e)=>bp(r,t+"",e);g.Audio=class extends g.TimelineNode{_sounds=[];_platformAudio=So?new oc(this):new sc(this);get platformAudio(){return this._platformAudio}_src;get src(){return this._src}set src(t){this._src!==t&&(this._src=t,this.load())}isLoaded=!1;get isPlayable(){return this.isLoaded&&this._platformAudio.isPlayable}get audioDuration(){return this._platformAudio.duration*1e3}_volume=1;get volume(){return this._volume}set volume(t){this._volume!==t&&(this._volume=t,this.refresh())}_muted=!1;get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this.refresh())}_loop=!1;get loop(){return this._loop}set loop(t){this._loop!==t&&(this._loop=t,this.refresh())}_playbackRate=1;get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate!==t&&(this._playbackRate=t,this.refresh())}_isPlaying=!1;get isPlaying(){return this._isPlaying}multiple=!1;start=0;end=0;constructor(t=""){super(),this.src=t}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"paused":this.refreshPaused();break}}async load(){return await this._platformAudio.load(),this}pause(){return this._isPlaying=!1,this.paused=!0,this}resume(){return this._isPlaying=this._sounds.length>0,this.paused=!1,this}stop(){if(!this.isPlayable)return this;this._isPlaying=!1;for(let t=this._sounds.length-1;t>=0;t--)this._sounds[t].stop();return this}play(t={}){if(!this.isLoaded)return;this.multiple||this._removeSounds(),this._isPlaying=!0;const e=this._createSound();this._sounds.push(e),e.once("end",()=>{t.complete?.(),this._onComplete(e)}),e.once("stop",()=>this._onComplete(e));const i=(t?.start??this.start)/1e3,A=(t?.end??this.end)/1e3;return e.play({...t,start:i,end:A}),e}_removeSounds(){for(let t=this._sounds.length-1;t>=0;t--)this._recycleSound(this._sounds[t]);this._sounds.length=0}_createSound(){return g.Audio._soundPool.length>0?g.Audio._soundPool.pop().init(this._platformAudio):this._platformAudio.createSound().init(this._platformAudio)}refresh(){for(let t=this._sounds.length,e=0;e<t;e++)this._sounds[e].refresh()}refreshPaused(){for(let t=this._sounds.length,e=0;e<t;e++)this._sounds[e].refreshPaused()}_onComplete=t=>{if(this._sounds){const e=this._sounds.indexOf(t);e>-1&&this._sounds.splice(e,1),this._isPlaying=this._sounds.length>0}this._recycleSound(t)};_recycleSound(t){t.free(),g.Audio._soundPool.includes(t)||g.Audio._soundPool.push(t)}_prevTime=0;_timer=0;_process(t){if(super._process(t),this.canProcess()){const e=this._tree?.timeline.currentTime??0;e-this._prevTime>0&&(this._timer||(this._setTimeStop(),this.play({start:this.start+(e-this.delay)%this.duration})),this._isPlaying&&this._setTimeStop()),this._prevTime=e}}_setTimeStop(){this._timer&&clearTimeout(this._timer),this._timer=setTimeout(()=>{this.stop(),this._timer=0},100)}},xp(g.Audio,"_soundPool",[]),g.Audio=Dp([nt("Audio")],g.Audio);class Sp extends g.Node2D{}var Mp=Object.defineProperty,Rp=Object.getOwnPropertyDescriptor,Wr=(r,t,e,i)=>{for(var A=i>1?void 0:i?Rp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Mp(t,e,A),A};g.AudioWaveform=class extends g.Element2D{_audioBuffer;_src=cA?new mt(document.createElement("canvas")):void 0;_needsUpdateTexture=!1;constructor(t={}){super(),this.setProperties(t)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"src":this._loadSrc(e);break;case"gap":case"color":case"width":case"height":this._needsUpdateTexture=!0;break}}async _loadSrc(t){await globalThis.fetch(t).then(e=>e.arrayBuffer()).then(e=>ui.decode(e)).then(e=>{this._audioBuffer=e,this.syncTexture(!0)})}syncTexture(t=!1){const e=this._audioBuffer;if(!e||!t&&!this._needsUpdateTexture)return;this._needsUpdateTexture=!1;const i=this._src?.source;if(!i)return;const{width:A=0,height:s=0}=this.style;i.width=A,i.height=s;const n=i.getContext("2d");if(!n){console.warn("Failed to getContext('2d') in syncTexture");return}n.fillStyle=this.color;const o=e.getChannelData(0),a=Math.ceil(o.length/A),l=s/2;for(let c=1,h=-1,u=0;u<A;u++){for(let d=0;d<a;d++){const f=o[u*a+d];f<c&&(c=f),f>h&&(h=f)}if(!this.gap||u%(this.gap*2)===0){const d=u,f=(1+c)*l,B=this.gap||1,p=Math.max(1,(h-c)*l);n.fillRect(d,f,B,p),c=1,h=-1}}this._src?.requestUpload(),this.requestRedraw()}_process(t){this.syncTexture(),super._process(t)}_drawSrc(){const t=this._src;t?.valid&&(this.context.fillStyle=t,this.context.uvTransform=new Vt().scale(1/this.style.width,1/this.style.height))}},Wr([_()],g.AudioWaveform.prototype,"src",2),Wr([_()],g.AudioWaveform.prototype,"gap",2),Wr([_()],g.AudioWaveform.prototype,"color",2),g.AudioWaveform=Wr([nt("AudioWaveform")],g.AudioWaveform);var kp=Object.getOwnPropertyDescriptor,Pp=(r,t,e,i)=>{for(var A=i>1?void 0:i?kp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.Control=class extends g.Element2D{constructor(t,e=[]){super(),this._parentUpdateRect=this._parentUpdateRect.bind(this),this.setProperties(t),this.append(e)}_parented(t){super._parented(t),t.on("updateRect",this._parentUpdateRect)}_unparented(t){super._unparented(t),t.off("updateRect",this._parentUpdateRect)}_parentUpdateRect(){const t=this._parent.getRect();this.style.left=t.left,this.style.top=t.top,this.style.width=t.width,this.style.height=t.height}_input(t,e){super._input(t,e),this._guiInput(t,e)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":case"height":case"left":case"top":this.emit("updateRect");break}}_guiInput(t,e){}},g.Control=Pp([nt("Control")],g.Control);var Up=Object.defineProperty,Np=Object.getOwnPropertyDescriptor,fi=(r,t,e,i)=>{for(var A=i>1?void 0:i?Np(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Up(t,e,A),A};g.Range=class extends g.Control{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"allowGreater":case"allowLesser":case"page":case"minValue":case"maxValue":case"step":case"value":this.requestRedraw();break}}},fi([_({fallback:!1})],g.Range.prototype,"allowGreater",2),fi([_({fallback:!1})],g.Range.prototype,"allowLesser",2),fi([_({fallback:1})],g.Range.prototype,"page",2),fi([_({fallback:0})],g.Range.prototype,"minValue",2),fi([_({fallback:100})],g.Range.prototype,"maxValue",2),fi([_({fallback:.01})],g.Range.prototype,"step",2),fi([_({fallback:0})],g.Range.prototype,"value",2),g.Range=fi([nt("Range")],g.Range);var Fp=Object.defineProperty,Tp=Object.getOwnPropertyDescriptor,Ue=(r,t,e,i)=>{for(var A=i>1?void 0:i?Tp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Fp(t,e,A),A};g.Ruler=class extends g.Control{texture=new uA;constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"offsetX":case"offsetY":case"thickness":case"markHeight":case"color":case"markBackgroundColor":case"markColor":case"gap":case"scale":this.requestRedraw();break}}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":case"height":this.texture[t]=e,this.requestRedraw();break}}_drawTexture(){const{width:t,height:e}=this.size,{offsetX:i,offsetY:A,thickness:s,markHeight:n,markBackgroundColor:o,markColor:a,color:l,gap:c,gapScale:h}=this,d=this.texture.source.getContext("2d");d.reset(),d.scale(this.texture.pixelRatio,this.texture.pixelRatio);const f=Math.round(i),B=Math.round(A);d.beginPath(),d.fillStyle=o||"#EEE",d.fillRect(0,0,t,s),d.fillRect(0,0,s,e),d.fill(),d.strokeStyle=a||"#000",d.moveTo(s,0),d.lineTo(s,e),d.moveTo(0,s),d.lineTo(t,s),d.stroke();const p=c,R=c*h;let P,y,S,Q,m;for(p>=R?(P=p/R,y=Math.floor(P)*p/20,S=p/20*Math.floor(P)/P):(P=R/p,y=Math.floor(p/20/P),y>=2?y=Math.floor(y/2)*2:y=1,S=y*P),d.fillStyle=d.strokeStyle,Q=f,m=0;Q<t;m++,Q+=S)d.moveTo(Q,s-(m%5?n:2*n)),d.lineTo(Q,s);for(Q=f,m=0;Q>s;m++,Q-=S)d.moveTo(Q,s-(m%5?n:2*n)),d.lineTo(Q,s);let M=0;for(Q=B,m=0;Q>s;m++,Q-=S)d.moveTo(s-(m%5?n:2*n),Q),d.lineTo(s,Q);for(Q=B,m=0;Q<e;m++,Q+=S)d.moveTo(s-(m%5?n:2*n),Q),d.lineTo(s,Q);for(d.save(),d.fillStyle=l,d.scale(.8,.8),M=s-8,Q=f,m=0;Q<t;m++,Q+=S)m%10===0&&d.fillText(String(Math.ceil(y*m)),Q*1.25-3,M*1.25);for(Q=f,m=0;Q>s;m++,Q-=S)m%10===0&&d.fillText(String(Math.ceil(-y*m)),Q*1.25-3,M*1.25);for(M=0,Q=B,m=0;Q>s;m++,Q-=S)m%10===0&&d.fillText(String(Math.ceil(y*m)),M*1.25,Q*1.25+3);for(Q=B,m=0;Q<e;m++,Q+=S)m%10===0&&d.fillText(String(Math.ceil(-y*m)),M*1.25,Q*1.25+3);d.restore(),d.stroke(),this.texture.requestUpload()}_draw(){this._drawTexture();const t=this.texture;t?.valid&&(this.context.fillStyle=t,this.context.uvTransform=new Vt().scale(1/this.size.width,1/this.size.height),this.context.rect(0,0,t.width,t.height),this.context.fill())}},Ue([_({fallback:0})],g.Ruler.prototype,"offsetX",2),Ue([_({fallback:0})],g.Ruler.prototype,"offsetY",2),Ue([_({fallback:20})],g.Ruler.prototype,"thickness",2),Ue([_({fallback:3})],g.Ruler.prototype,"markHeight",2),Ue([_({fallback:"#b2b6bc"})],g.Ruler.prototype,"color",2),Ue([_({fallback:"#f9f9fa"})],g.Ruler.prototype,"markBackgroundColor",2),Ue([_({fallback:"#b2b6bc"})],g.Ruler.prototype,"markColor",2),Ue([_({fallback:300})],g.Ruler.prototype,"gap",2),Ue([_({fallback:1})],g.Ruler.prototype,"gapScale",2),g.Ruler=Ue([nt("Ruler")],g.Ruler);var Lp=Object.defineProperty,Gp=Object.getOwnPropertyDescriptor,ac=(r,t,e,i)=>{for(var A=i>1?void 0:i?Gp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Lp(t,e,A),A};g.ScrollBar=class extends g.Range{constructor(t,e=[]){super(),this.setProperties(t).append(e)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":case"height":case"left":case"top":this.requestRedraw();break}}_rect(){const{size:t,position:e}=this;let i,A,s,n,o;return this.direction==="vertical"?(s=10,n=t.height*(this.page/(this.maxValue-this.minValue)),i=e.left+t.width-s,A=t.height*(this.value/(this.maxValue-this.minValue)),o=s/2):(s=t.width*(this.page/(this.maxValue-this.minValue)),n=10,i=t.width*(this.value/(this.maxValue-this.minValue)),A=e.top+t.height-n,o=n/2),{left:i,top:A,width:s,height:n,radii:o}}_draw(){const{left:t,top:e,width:i,height:A,radii:s}=this._rect();this.context.roundRect(t,e,i,A,s),this.context.fillStyle=34,this.context.fill()}_pointerInput(t,e){const{left:i,top:A,width:s,height:n}=this._rect(),o=t.x>=i&&t.x<i+s&&t.y>=A&&t.y<A+n;switch(e){case"pointerdown":case"pointermove":o?this._tree?.input.setCursor("pointer"):this._tree?.input.setCursor(void 0);break}return!1}},ac([_({fallback:"vertical"})],g.ScrollBar.prototype,"direction",2),g.ScrollBar=ac([nt("ScrollBar")],g.ScrollBar);var Op=Object.getOwnPropertyDescriptor,Hp=(r,t,e,i)=>{for(var A=i>1?void 0:i?Op(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.XScrollBar=class extends g.ScrollBar{constructor(t,e=[]){super(),this.setProperties(t).append(e)}},g.XScrollBar=Hp([nt("XScrollBar",{direction:"horizontal"})],g.XScrollBar);var Jp=Object.getOwnPropertyDescriptor,Kp=(r,t,e,i)=>{for(var A=i>1?void 0:i?Jp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A};g.YScrollBar=class extends g.ScrollBar{constructor(t,e=[]){super(),this.setProperties(t).append(e)}},g.YScrollBar=Kp([nt("YScrollBar",{direction:"vertical"})],g.YScrollBar);var Yp=Object.defineProperty,Vp=Object.getOwnPropertyDescriptor,qr=(r,t,e,i)=>{for(var A=i>1?void 0:i?Vp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=(i?n(t,e,A):n(A))||A);return i&&A&&Yp(t,e,A),A};g.Scaler=class extends g.Node{get target(){if(this.parent?.style)return this.parent}constructor(t,e=[]){super(),this.setProperties(t),this.append(e)}_updateProperty(t,e,i,A){switch(super._updateProperty(t,e,i,A),t){case"value":case"min":case"max":{this.value=Ke(this.minValue,this.value,this.maxValue),this._updateScale();break}}}_updateScale(){const t=this.target;t&&(t.style.scaleX=this.value,t.style.scaleY=this.value,this.emit("updateScale",this.value))}_onWheel(t){if(!this.target)return;if(t.preventDefault(),!(t.wheelDeltaY?Math.abs(Math.abs(t.wheelDeltaY)-Math.abs(3*t.deltaY))<3:t.deltaMode===0)&&t.ctrlKey){t.preventDefault();let A=t.deltaY/(t.ctrlKey?1:100);A*=-.015,this.value+=A}}_input(t,e){switch(super._input(t,e),e){case"wheel":this._onWheel(t);break}}},qr([_()],g.Scaler.prototype,"value",2),qr([_()],g.Scaler.prototype,"minValue",2),qr([_()],g.Scaler.prototype,"maxValue",2),g.Scaler=qr([nt("Scaler",{processMode:"disabled",renderMode:"disabled"})],g.Scaler);var zp=Object.defineProperty,Wp=Object.getOwnPropertyDescriptor,qp=(r,t,e)=>t in r?zp(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Xp=(r,t,e,i)=>{for(var A=i>1?void 0:i?Wp(t,e):t,s=r.length-1,n;s>=0;s--)(n=r[s])&&(A=n(A)||A);return A},jp=(r,t,e)=>qp(r,t+"",e);g.KawaseTransition=class extends g.Transition{blur=10;quality=10;apply(t,e){const i=this.currentTimeProgress;let A,s;i<.5?(A=0,s=(.5-i)/.5):(A=1,s=(i-.5)/.5);const n=this.blur,o=this.quality,a=e.width,l=e.height,c=[],h=[n];if(n>0){let R=n;const P=n/o;for(let y=1;y<o;y++)R-=P,h.push(R)}const u=1/a,d=1/l,f=[];let B;const p=o-1;for(let R=0;R<p;R++)B=h[R]+.5,f[0]=B*u,f[1]=B*d,c.push({offset:f});B=h[p]+.5,f[0]=B*u,f[1]=B*d,c.push({offset:f}),c.forEach(R=>{gt.draw(t,g.KawaseTransition.material,{sampler:A,progress:s,...R})})}},jp(g.KawaseTransition,"material",new Bt({vert:`attribute vec2 position;
|
|
866
866
|
attribute vec2 uv;
|
|
867
867
|
varying vec2 vUv;
|
|
868
868
|
void main() {
|
|
@@ -998,4 +998,4 @@ void main(void) {
|
|
|
998
998
|
coord = twist(coord, radius - (progress * radius));
|
|
999
999
|
coord = unmapCoord(coord);
|
|
1000
1000
|
gl_FragColor = texture2D(sampler, coord);
|
|
1001
|
-
}`})),g.TwistTransition=hE([nt("TwistTransition")],g.TwistTransition);class lc extends ii{install(t){const e=async i=>{const{decodeFrames:A}=await import("modern-gif");return await t.fetch(i).then(s=>s.arrayBuffer()).then(s=>A(s)).then(s=>new cr(s.map(n=>({duration:n.delay,texture:new Ps(n.data,n.width,n.height)}))))};return this.load=i=>t.loadBy(i,()=>e(i)),["image/gif"].forEach(i=>{t.register(i,e)}),t.gif=this,this}}class cc extends ii{install(t){const e=i=>t.fetch(i).then(A=>A.json());return this.load=i=>t.loadBy(i,()=>e(i)),["json"].forEach(i=>{t.register(i,e)}),t.json=this,this}}class hc extends ii{install(t){const e=async(i,A)=>(await import("lottie-web").then(n=>n.default)).loadAnimation({container:null,renderer:"canvas",rendererSettings:{context:A.getContext("2d")},loop:!1,autoplay:!1,animationData:await t.fetch(i).then(n=>n.json())});return this.load=(i,A)=>t.loadBy(i,()=>e(i,A)),["lottie"].forEach(i=>{t.register(i,e)}),t.lottie=this,this}}class gc extends ii{install(t){const e=async i=>await t.fetch(i).then(A=>A.text());return this.load=i=>t.loadBy(i,()=>e(i)),t.text=this,this}}class uc extends ii{install(t){const e=i=>t.fetchImageBitmap(i,{premultiplyAlpha:"premultiply"}).then(A=>new mt(A));return this.load=i=>t.loadBy(i,()=>e(i)),["image/gif","image/jpeg","image/png","image/tiff","image/vnd.wap.wbmp","image/x-icon","image/x-jng","image/x-ms-bmp","image/svg+xml","image/webp"].forEach(i=>{t.register(i,e)}),t.texture=this,this}}class fc extends ii{install(t){const e=i=>new fa(i).load();return this.load=i=>t.loadBy(i,()=>e(i)),["video/3gpp","video/mpeg","video/quicktime","video/x-flv","video/x-mng","video/x-ms-asf","video/x-ms-wmv","video/x-msvideo","video/mp4"].forEach(i=>{t.register(i,e)}),t.video=this,this}}const uE=Object.entries({"text/html":["html","htm","shtml"],"text/css":["css"],"text/xml":["xml"],"image/gif":["gif"],"image/jpeg":["jpeg","jpg"],"application/x-javascript":["js"],"application/atom+xml":["atom"],"application/rss+xml":["rss"],"text/mathml":["mml"],"text/plain":["txt"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/x-component":["htc"],"image/png":["png"],"image/tiff":["tif","tiff"],"image/vnd.wap.wbmp":["wbmp"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-ms-bmp":["bmp"],"image/svg+xml":["svg"],"image/webp":["webp"],"application/java-archive":["jar","war","ear"],"application/mac-binhex40":["hqx"],"application/msword":["doc"],"application/pdf":["pdf"],"application/postscript":["ps","eps","ai"],"application/rtf":["rtf"],"application/vnd.ms-excel":["xls"],"application/vnd.ms-powerpoint":["ppt"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/x-7z-compressed":["7z"],"application/x-cocoa":["cco"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-makeself":["run"],"application/x-perl":["pl","pm"],"application/x-pilot":["prc","pdb"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-sea":["sea"],"application/x-shockwave-flash":["swf"],"application/x-stuffit":["sit"],"application/x-tcl":["tcl","tk"],"application/x-x509-ca-cert":["der","pem","crt"],"application/x-xpinstall":["xpi"],"application/xhtml+xml":["xhtml"],"application/zip":["zip"],"application/octet-stream":["bin","exe","dll","deb","dmg","eot","iso","img","msi","msp","msm"],"audio/midi":["mid","midi","kar"],"audio/mpeg":["mp3"],"audio/ogg":["ogg"],"audio/x-realaudio":["ra"],"video/3gpp":["3gpp","3gp"],"video/mpeg":["mpeg","mpg"],"video/quicktime":["mov"],"video/x-flv":["flv"],"video/x-mng":["mng"],"video/x-ms-asf":["asx","asf"],"video/x-ms-wmv":["wmv"],"video/x-msvideo":["avi"],"video/mp4":["m4v","mp4"]});function fE(r){for(const[t,e]of uE)if(e.includes(r))return t}async function dE(r){let t;if(r.startsWith("data:"))t=r.match(/^data:(.+?);/)?.[1];else if(r.startsWith("http")){const e=r.split(/[#?]/)[0].split(".").pop()?.trim();e&&(t=fE(e))}return t??await fetch(r).then(e=>e.headers.get("Content-Type"))??""}const Xr="WeakRef"in globalThis;class dc{defaultHandler=t=>this.fetch(t);_handlers=new Map;_handleing=new Map;_handled=new Map;_gc=Xr?new FinalizationRegistry(t=>{const e=this.get(t);e&&"free"in e&&e.free(),this._handled.delete(t)}):void 0;constructor(){Xr||Yt.on(this.gc.bind(this),{sort:2})}use(t){return t.install(this),this}register(t,e){return this._handlers.set(t,e),this}fetch(t){return fetch(t)}_fixSVG(t){let e;t.includes(";base64,")?e=atob(t.split(",")[1]):e=decodeURIComponent(t.split(",")[1]);const i=new DOMParser().parseFromString(e,"image/svg+xml").documentElement,A=i.getAttribute("width"),s=i.getAttribute("height"),n=A&&/^[\d.]+$/.test(A),o=s&&/^[\d.]+$/.test(s);if(!n||!o){const a=i.getAttribute("viewBox")?.split(" ").map(l=>Number(l));n||i.setAttribute("width",String(a?a[2]-a[0]:512)),o||i.setAttribute("height",String(a?a[3]-a[1]:512))}return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i.outerHTML)}`}async fetchImageBitmap(t,e){return t.startsWith("http")?await this.fetch(t).then(i=>i.blob()).then(i=>i.type==="image/svg+xml"?i.text().then(A=>this.fetchImageBitmap(this._fixSVG(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(A)}`),e)):createImageBitmap(i,e)):(t.startsWith("data:image/svg+xml;")&&(t=this._fixSVG(t)),new Promise(i=>{const A=new Image;A.src=t,A.onload=()=>{A.decode().finally(()=>{i(A)})}}).then(i=>createImageBitmap(i,e)))}get(t){let e=this._handled.get(t);return Xr&&e instanceof WeakRef&&(e=e.deref(),e||this._handleing.delete(t)),e}set(t,e){let i=e;Xr&&typeof e=="object"&&(this._gc.register(e,t),i=new WeakRef(e)),this._handled.set(t,i)}async loadBy(t,e){const i=this.get(t)??this._handleing.get(t);if(i)return i;const A=e().then(s=>(this.set(t,s),s)).finally(()=>{this._handleing.delete(t)});return this._handleing.set(t,A),A}async load(t,e){return this.loadBy(t,async()=>{const i=await dE(t);return(this._handlers.get(i)??this.defaultHandler)(t,e)})}async waitUntilLoad(){await Promise.all(Array.from(this._handleing.values()))}gc(){this._handled.forEach((t,e)=>{const i=this.get(e);i&&"free"in i&&i.free()}),this._handled.clear()}}const Ne=new dc().use(new sa).use(new lc).use(new cc).use(new hc).use(new gc).use(new uc).use(new fc);class IE extends g.Control{_pointerStart;_pointerOffset;selected;dragging;hovered;hover=new g.Element2D({name:"hover",internalMode:"back",style:{visibility:"hidden",outlineStyle:"solid",outlineColor:"#00FF00FF",outlineWidth:2,pointerEvents:"none"}});transformRect=new Gn({name:"transformRect",internalMode:"back",style:{visibility:"hidden",pointerEvents:"none"}});scaler=new g.Scaler({internalMode:"back"}).on("updateScale",t=>{this.ruler.gapScale=t,this._updateScrollbars(),this._updateSelectionRect()});xScrollBar=new g.XScrollBar({internalMode:"back",style:{visibility:"hidden"}});yScrollBar=new g.YScrollBar({internalMode:"back",style:{visibility:"hidden"}});drawboard=new g.Element2D({name:"drawboard",style:{width:500,height:500,backgroundColor:"#FFFFFFFF",overflow:"hidden",pointerEvents:"none",boxShadow:"2px 2px 2px 1px rgba(0, 0, 0, 0.2)"}},[this.scaler]);ruler=new g.Ruler({name:"ruler",offsetX:100,offsetY:100,style:{pointerEvents:"none"}},[this.drawboard,this.hover,this.transformRect,this.xScrollBar,this.yScrollBar]);constructor(){super(),this._onPointerdown=this._onPointerdown.bind(this),this._onPointermove=this._onPointermove.bind(this),this._onPointerup=this._onPointerup.bind(this),this.append(this.ruler)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":this.drawboard.style.left=(this.size.width-this.drawboard.size.width)/2,this.ruler.offsetX=this.drawboard.style.left;break;case"height":this.drawboard.style.top=(this.size.height-this.drawboard.size.height)/2,this.ruler.offsetY=this.drawboard.style.top;break}}_guiInput(t,e){switch(super._guiInput(t,e),e){case"pointerdown":this._onPointerdown(t);break;case"pointermove":this._onPointermove(t);break;case"pointerup":this._onPointerup();break}}_onPointerdown(t){let e=t.target;e?.is(this)&&(e=void 0),e?.is(this.transformRect)&&(e=this.selected),this._pointerOffset={x:t.offsetX,y:t.offsetY},this.selected=e,this.dragging=e,e instanceof g.Element2D?this._pointerStart=e.style.clone():this._pointerStart=void 0,this._updateHover(),this._updateSelectionRect()}_onPointermove(t){let e=t.target;e?.is(this)&&(e=void 0),e?.is(this.transformRect)&&(e=this.selected);const{selected:i,dragging:A,_pointerStart:s,_pointerOffset:n}=this;i&&e?.is(i)?this.hovered=void 0:this.hovered=e;const o=n?{x:t.offsetX-n.x,y:t.offsetY-n.y}:{x:0,y:0};A&&s&&(A.style.left=s.left+o.x/this.scaler.value,A.style.top=s.top+o.y/this.scaler.value,A.update()),this._updateHover(),this._updateSelectionRect()}_onPointerup(){this.dragging=void 0,this._updateHover(),this._updateSelectionRect()}_copyGlobalTransform(t,e){t.style.visibility="visible",t.style.width=e.globalScale.x*e.size.x,t.style.height=e.globalScale.y*e.size.y,t.style.left=e.globalPosition.x,t.style.top=e.globalPosition.y,t.style.rotate=e.globalRotation,t.update()}_updateHover(){const t=this.hovered;t instanceof g.Element2D?(this.hover.style.visibility="visible",this._copyGlobalTransform(this.hover,t),this.hover.requestRedraw()):this.hover.style.visibility="hidden"}_updateSelectionRect(){this.selected?(this.transformRect.style.visibility="visible",this._copyGlobalTransform(this.transformRect,this.selected)):this.transformRect.style.visibility="hidden"}_updateScrollbars(){const t=this.ruler.gapScale,e=this.drawboard.size.height*t,i=this.drawboard.size.width*t;e>this.size.height?(this.yScrollBar.style.visibility="visible",this.yScrollBar.maxValue=e,this.yScrollBar.page=this.size.height):this.yScrollBar.style.visibility="hidden",i>this.size.width?(this.xScrollBar.style.visibility="visible",this.xScrollBar.maxValue=i,this.xScrollBar.page=this.size.width):this.xScrollBar.style.visibility="hidden"}}const Ic={alpha:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default"};class pc extends _A{renderer;get view(){return this.renderer.view}get gl(){return this.renderer.gl}get screen(){return this.renderer.screen}get width(){return this.screen.width}get height(){return this.screen.height}get pixelRatio(){return this.renderer.pixelRatio}set pixelRatio(t){this.renderer.pixelRatio=t,this.resize(this.width,this.height),this.view&&(this.view.dataset.pixelRatio=String(t))}_resizeObserver=_o?new ResizeObserver(t=>{const e=t[0];if(e.target===this.view){const{inlineSize:i,blockSize:A}=Array.isArray(e.contentBoxSize)?e.contentBoxSize[0]:e.contentBoxSize;this.resize(i,A)}}):void 0;constructor(t={}){const{debug:e=!1,view:i,width:A,height:s,pixelRatio:n=vs,backgroundColor:o=0,autoResize:a,autoStart:l,timeline:c,...h}=t;super(c),this.debug=e,this.renderer=new ra(i,{...Ic,...h}),this._setupInput(),this.pixelRatio=n,this.backgroundColor=o,a?(!i&&this.renderer.view&&(this.renderer.view.style.width="100%",this.renderer.view.style.height="100%"),this.enableAutoResize(a)):this.resize(A||this.gl.drawingBufferWidth||this.view?.clientWidth||200,s||this.gl.drawingBufferHeight||this.view?.clientHeight||200,!i),l&&this.start()}_setupInput(){return this.view&&(this.input.setTarget(this.view),["pointerdown","pointerover","pointermove","pointerup","wheel"].forEach(t=>{this.input.on(t,e=>{this.root.input(e,t),this.emit(t,e)})})),this}enableAutoResize(t=!0){return this.view&&(t?this._resizeObserver?.observe(this.view):this._resizeObserver?.unobserve(this.view)),this}resize(t,e,i=!1){return this.renderer.resize(t,e,i),this.root.width=t,this.root.height=e,this.root.requestUpload(),this.render(),this}nextTick(){return Es()}async waitUntilLoad(){await Ne.waitUntilLoad(),await this.nextTick()}async waitAndRender(t=0){await Ne.waitUntilLoad(),this._process(t),await this.nextTick(),this._render(this.renderer)}render(t=0){this._process(t),this._render(this.renderer)}async start(){await this.waitAndRender(),super.start(t=>{this._process(t),this._render(this.renderer)})}free(){super.free(),this.enableAutoResize(!1),this.renderer.free()}toPixels(){return this.renderer.toPixels()}toImageData(){return new ImageData(this.toPixels(),this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}toCanvas2D(){const t=this.toImageData(),e=document.createElement("canvas");e.width=t.width,e.height=t.height,e.getContext("2d")?.putImageData(t,0,0);const i=document.createElement("canvas");return i.width=this.width,i.height=this.height,i.getContext("2d")?.drawImage(e,0,0,e.width,e.height,0,0,i.width,i.height),i}}let Fe;const Hn=[];let Jn=!1;async function pE(r=100){if(!Jn){for(Jn=!0;Hn.length;){const t=Hn.shift();if(t)try{await t()}catch(e){console.error(e)}else await new Promise(e=>setTimeout(e,r))}Jn=!1}}async function EE(r){const{data:t,width:e,height:i,debug:A=!1,time:s=0}=r;return Fe??=new pc({width:1,height:1,preserveDrawingBuffer:!0}),Fe.debug=A,Fe.root.removeChildren(),Fe.timeline.currentTime=s,Fe.resize(e,i,!0),(Array.isArray(t)?t:[t]).forEach(n=>{n instanceof g.Node?(n.parent=void 0,Fe.root.appendChild(n)):Fe.root.appendChild(g.Node.parse(n))}),await r.onBeforeRender?.(Fe),await Fe.waitAndRender(),Fe.toCanvas2D()}async function BE(r){return new Promise(t=>{Hn.push(async()=>t(await EE(r))),pE()})}g.AnimatedTexture=cr,g.Assets=dc,g.AudioPipeline=On,g.AudioProcessor=yp,g.AudioSpectrum=Sp,g.BaseElement2DBackground=en,g.BaseElement2DFill=zt,g.BaseElement2DForeground=An,g.BaseElement2DOutline=DA,g.BaseElement2DShadow=mi,g.BaseElement2DShape=wi,g.BaseElement2DStyle=MA,g.BaseElement2DText=Si,g.CanvasContext=qa,g.CanvasItemEditor=IE,g.CanvasTexture=uA,g.Color=Je,g.ColorMatrix=xs,g.ColorTexture=ga,g.CoreObject=ei,g.DEG_TO_RAD=Oo,g.DEVICE_PIXEL_RATIO=vs,g.EffectMaterial=hA,g.Element2DStyle=Tn,g.Engine=pc,g.EventEmitter=Ge,g.FlexElement2DStyle=Jl,g.FlexLayout=Kr,g.FontLoader=sa,g.GIFLoader=lc,g.Geometry=lr,g.GradientTexture=hr,g.HTMLAudio=sc,g.HTMLAudioContext=zr,g.HTMLSound=XA,g.IN_BROWSER=cA,g.ImageTexture=ag,g.IndexBuffer=Pi,g.Input=Lo,g.InputEvent=or,g.JSONLoader=cc,g.Loader=ii,g.LottieLoader=hc,g.MainLoop=ar,g.Material=Bt,g.Matrix=be,g.Matrix2=Yh,g.Matrix3=Ss,g.Matrix4=Go,g.MouseInputEvent=Ds,g.PI=nr,g.PI_2=ae,g.PixelsTexture=Ps,g.PointerInputEvent=Fo,g.Projection2D=Jo,g.QuadGeometry=$h,g.QuadUvGeometry=gt,g.RAD_TO_DEG=Jh,g.RawWeakMap=bs,g.Rect2=Ms,g.RefCounted=Qo,g.Renderer=Yo,g.Resource=He,g.SUPPORTS_AUDIO_CONTEXT=ys,g.SUPPORTS_CLICK_EVENTS=Do,g.SUPPORTS_CREATE_IMAGE_BITMAP=Qs,g.SUPPORTS_IMAGE_BITMAP=vo,g.SUPPORTS_MOUSE_EVENTS=Lh,g.SUPPORTS_OFFLINE_AUDIO_CONTEXT=ws,g.SUPPORTS_POINTER_EVENTS=Ri,g.SUPPORTS_RESIZE_OBSERVER=_o,g.SUPPORTS_TOUCH_EVENTS=Oe,g.SUPPORTS_WEBGL2=wo,g.SUPPORTS_WEBKIT_AUDIO_CONTEXT=ms,g.SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT=xo,g.SUPPORTS_WEB_AUDIO=So,g.SUPPORTS_WHEEL_EVENTS=bo,g.SceneTree=_A,g.TextLoader=gc,g.Texture2D=mt,g.TextureLoader=uc,g.TextureRect2D=Yr,g.Ticker=Yt,g.Transform2D=Vt,g.TransformRect2D=Gn,g.UvGeometry=Ag,g.UvMaterial=gA,g.Vector=Ce,g.Vector2=le,g.Vector3=Vh,g.Vector4=Ho,g.VertexAttribute=ce,g.VertexBuffer=Ye,g.VideoLoader=fc,g.VideoTexture=fa,g.ViewportTexture=Ns,g.WebAudio=oc,g.WebAudioContext=ui,g.WebGLBatch2DModule=Wo,g.WebGLBlendMode=ki,g.WebGLBufferModule=qo,g.WebGLFramebufferModule=Xo,g.WebGLMaskModule=jo,g.WebGLModule=Ie,g.WebGLProgramModule=Zo,g.WebGLRenderer=ra,g.WebGLScissorModule=$o,g.WebGLState=Bi,g.WebGLStateModule=zo,g.WebGLStencilModule=ta,g.WebGLTextureModule=ea,g.WebGLVertexArrayModule=ia,g.WebGLViewportModule=Aa,g.WebSound=nc,g.WheelInputEvent=To,g.assets=Ne,g.clamp=Ke,g.clampFrag=sl,g.createHTMLCanvas=Po,g.createNode=Rh,g.crossOrigin=No,g.cubicBezier=iA,g.curves=Kh,g.customNode=nt,g.customNodes=sr,g.defaultOptions=Ic,g.determineCrossOrigin=Uo,g.ease=ec,g.easeIn=ic,g.easeInOut=rc,g.easeOut=Ac,g.frag=rl,g.getDefaultCssPropertyValue=Cs,g.isCanvasElement=Ro,g.isElementNode=_s,g.isImageElement=Gh,g.isPow2=Bs,g.isVideoElement=Mo,g.isWebgl2=ko,g.lerp=Dt,g.linear=tc,g.log2=ks,g.mapWebGLBlendModes=Vo,g.nextPow2=Rs,g.nextTick=Es,g.parseCSSFilter=oa,g.parseCSSTransform=aa,g.parseCSSTransformOrigin=la,g.parseCssFunctions=lA,g.parseCssProperty=aA,g.render=BE,g.timingFunctions=Vr,g.uid=yo,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
|
|
1001
|
+
}`})),g.TwistTransition=hE([nt("TwistTransition")],g.TwistTransition);class lc extends ei{install(t){const e=async i=>{const{decodeFrames:A}=await import("modern-gif");return await t.fetch(i).then(s=>s.arrayBuffer()).then(s=>A(s)).then(s=>new cr(s.map(n=>({duration:n.delay,texture:new Ps(n.data,n.width,n.height)}))))};return this.load=i=>t.loadBy(i,()=>e(i)),["image/gif"].forEach(i=>{t.register(i,e)}),t.gif=this,this}}class cc extends ei{install(t){const e=i=>t.fetch(i).then(A=>A.json());return this.load=i=>t.loadBy(i,()=>e(i)),["json"].forEach(i=>{t.register(i,e)}),t.json=this,this}}class hc extends ei{install(t){const e=async(i,A)=>(await import("lottie-web").then(n=>n.default)).loadAnimation({container:null,renderer:"canvas",rendererSettings:{context:A.getContext("2d")},loop:!1,autoplay:!1,animationData:await t.fetch(i).then(n=>n.json())});return this.load=(i,A)=>t.loadBy(i,()=>e(i,A)),["lottie"].forEach(i=>{t.register(i,e)}),t.lottie=this,this}}class gc extends ei{install(t){const e=async i=>await t.fetch(i).then(A=>A.text());return this.load=i=>t.loadBy(i,()=>e(i)),t.text=this,this}}class uc extends ei{install(t){const e=i=>t.fetchImageBitmap(i,{premultiplyAlpha:"premultiply"}).then(A=>new mt(A));return this.load=i=>t.loadBy(i,()=>e(i)),["image/gif","image/jpeg","image/png","image/tiff","image/vnd.wap.wbmp","image/x-icon","image/x-jng","image/x-ms-bmp","image/svg+xml","image/webp"].forEach(i=>{t.register(i,e)}),t.texture=this,this}}class fc extends ei{install(t){const e=i=>new fa(i).load();return this.load=i=>t.loadBy(i,()=>e(i)),["video/3gpp","video/mpeg","video/quicktime","video/x-flv","video/x-mng","video/x-ms-asf","video/x-ms-wmv","video/x-msvideo","video/mp4"].forEach(i=>{t.register(i,e)}),t.video=this,this}}const uE=Object.entries({"text/html":["html","htm","shtml"],"text/css":["css"],"text/xml":["xml"],"image/gif":["gif"],"image/jpeg":["jpeg","jpg"],"application/x-javascript":["js"],"application/atom+xml":["atom"],"application/rss+xml":["rss"],"text/mathml":["mml"],"text/plain":["txt"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/x-component":["htc"],"image/png":["png"],"image/tiff":["tif","tiff"],"image/vnd.wap.wbmp":["wbmp"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-ms-bmp":["bmp"],"image/svg+xml":["svg"],"image/webp":["webp"],"application/java-archive":["jar","war","ear"],"application/mac-binhex40":["hqx"],"application/msword":["doc"],"application/pdf":["pdf"],"application/postscript":["ps","eps","ai"],"application/rtf":["rtf"],"application/vnd.ms-excel":["xls"],"application/vnd.ms-powerpoint":["ppt"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/x-7z-compressed":["7z"],"application/x-cocoa":["cco"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-makeself":["run"],"application/x-perl":["pl","pm"],"application/x-pilot":["prc","pdb"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-sea":["sea"],"application/x-shockwave-flash":["swf"],"application/x-stuffit":["sit"],"application/x-tcl":["tcl","tk"],"application/x-x509-ca-cert":["der","pem","crt"],"application/x-xpinstall":["xpi"],"application/xhtml+xml":["xhtml"],"application/zip":["zip"],"application/octet-stream":["bin","exe","dll","deb","dmg","eot","iso","img","msi","msp","msm"],"audio/midi":["mid","midi","kar"],"audio/mpeg":["mp3"],"audio/ogg":["ogg"],"audio/x-realaudio":["ra"],"video/3gpp":["3gpp","3gp"],"video/mpeg":["mpeg","mpg"],"video/quicktime":["mov"],"video/x-flv":["flv"],"video/x-mng":["mng"],"video/x-ms-asf":["asx","asf"],"video/x-ms-wmv":["wmv"],"video/x-msvideo":["avi"],"video/mp4":["m4v","mp4"]});function fE(r){for(const[t,e]of uE)if(e.includes(r))return t}async function dE(r){let t;if(r.startsWith("data:"))t=r.match(/^data:(.+?);/)?.[1];else if(r.startsWith("http")){const e=r.split(/[#?]/)[0].split(".").pop()?.trim();e&&(t=fE(e))}return t??await fetch(r).then(e=>e.headers.get("Content-Type"))??""}const Xr="WeakRef"in globalThis;class dc{defaultHandler=t=>this.fetch(t);_handlers=new Map;_handleing=new Map;_handled=new Map;_gc=Xr?new FinalizationRegistry(t=>{const e=this.get(t);e&&"free"in e&&e.free(),this._handled.delete(t)}):void 0;constructor(){Xr||Yt.on(this.gc.bind(this),{sort:2})}use(t){return t.install(this),this}register(t,e){return this._handlers.set(t,e),this}fetch(t){return fetch(t)}_fixSVG(t){let e;t.includes(";base64,")?e=atob(t.split(",")[1]):e=decodeURIComponent(t.split(",")[1]);const i=new DOMParser().parseFromString(e,"image/svg+xml").documentElement,A=i.getAttribute("width"),s=i.getAttribute("height"),n=A&&/^[\d.]+$/.test(A),o=s&&/^[\d.]+$/.test(s);if(!n||!o){const a=i.getAttribute("viewBox")?.split(" ").map(l=>Number(l));n||i.setAttribute("width",String(a?a[2]-a[0]:512)),o||i.setAttribute("height",String(a?a[3]-a[1]:512))}return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i.outerHTML)}`}async fetchImageBitmap(t,e){return t.startsWith("http")?await this.fetch(t).then(i=>i.blob()).then(i=>i.type==="image/svg+xml"?i.text().then(A=>this.fetchImageBitmap(this._fixSVG(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(A)}`),e)):createImageBitmap(i,e)):(t.startsWith("data:image/svg+xml;")&&(t=this._fixSVG(t)),new Promise(i=>{const A=new Image;A.src=t,A.onload=()=>{A.decode().finally(()=>{i(A)})}}).then(i=>createImageBitmap(i,e)))}get(t){let e=this._handled.get(t);return Xr&&e instanceof WeakRef&&(e=e.deref(),e||this._handleing.delete(t)),e}set(t,e){let i=e;Xr&&typeof e=="object"&&(this._gc.register(e,t),i=new WeakRef(e)),this._handled.set(t,i)}async loadBy(t,e){const i=this.get(t)??this._handleing.get(t);if(i)return i;const A=e().then(s=>(this.set(t,s),s)).finally(()=>{this._handleing.delete(t)});return this._handleing.set(t,A),A}async load(t,e){return this.loadBy(t,async()=>{const i=await dE(t);return(this._handlers.get(i)??this.defaultHandler)(t,e)})}async waitUntilLoad(){await Promise.all(Array.from(this._handleing.values()))}gc(){this._handled.forEach((t,e)=>{const i=this.get(e);i&&"free"in i&&i.free()}),this._handled.clear()}}const Ne=new dc().use(new sa).use(new lc).use(new cc).use(new hc).use(new gc).use(new uc).use(new fc);class IE extends g.Control{_pointerStart;_pointerOffset;selected;dragging;hovered;hover=new g.Element2D({name:"hover",internalMode:"back",style:{visibility:"hidden",outlineStyle:"solid",outlineColor:"#00FF00FF",outlineWidth:2,pointerEvents:"none"}});transformRect=new Gn({name:"transformRect",internalMode:"back",style:{visibility:"hidden",pointerEvents:"none"}});scaler=new g.Scaler({internalMode:"back"}).on("updateScale",t=>{this.ruler.gapScale=t,this._updateScrollbars(),this._updateSelectionRect()});xScrollBar=new g.XScrollBar({internalMode:"back",style:{visibility:"hidden"}});yScrollBar=new g.YScrollBar({internalMode:"back",style:{visibility:"hidden"}});drawboard=new g.Element2D({name:"drawboard",style:{width:500,height:500,backgroundColor:"#FFFFFFFF",overflow:"hidden",pointerEvents:"none",boxShadow:"2px 2px 2px 1px rgba(0, 0, 0, 0.2)"}},[this.scaler]);ruler=new g.Ruler({name:"ruler",offsetX:100,offsetY:100,style:{pointerEvents:"none"}},[this.drawboard,this.hover,this.transformRect,this.xScrollBar,this.yScrollBar]);constructor(){super(),this._onPointerdown=this._onPointerdown.bind(this),this._onPointermove=this._onPointermove.bind(this),this._onPointerup=this._onPointerup.bind(this),this.append(this.ruler)}_updateStyleProperty(t,e,i,A){switch(super._updateStyleProperty(t,e,i,A),t){case"width":this.drawboard.style.left=(this.size.width-this.drawboard.size.width)/2,this.ruler.offsetX=this.drawboard.style.left;break;case"height":this.drawboard.style.top=(this.size.height-this.drawboard.size.height)/2,this.ruler.offsetY=this.drawboard.style.top;break}}_guiInput(t,e){switch(super._guiInput(t,e),e){case"pointerdown":this._onPointerdown(t);break;case"pointermove":this._onPointermove(t);break;case"pointerup":this._onPointerup();break}}_onPointerdown(t){let e=t.target;e?.is(this)&&(e=void 0),e?.is(this.transformRect)&&(e=this.selected),this._pointerOffset={x:t.offsetX,y:t.offsetY},this.selected=e,this.dragging=e,e instanceof g.Element2D?this._pointerStart=e.style.clone():this._pointerStart=void 0,this._updateHover(),this._updateSelectionRect()}_onPointermove(t){let e=t.target;e?.is(this)&&(e=void 0),e?.is(this.transformRect)&&(e=this.selected);const{selected:i,dragging:A,_pointerStart:s,_pointerOffset:n}=this;i&&e?.is(i)?this.hovered=void 0:this.hovered=e;const o=n?{x:t.offsetX-n.x,y:t.offsetY-n.y}:{x:0,y:0};A&&s&&(A.style.left=s.left+o.x/this.scaler.value,A.style.top=s.top+o.y/this.scaler.value,A.update()),this._updateHover(),this._updateSelectionRect()}_onPointerup(){this.dragging=void 0,this._updateHover(),this._updateSelectionRect()}_copyGlobalTransform(t,e){t.style.visibility="visible",t.style.width=e.globalScale.x*e.size.x,t.style.height=e.globalScale.y*e.size.y,t.style.left=e.globalPosition.x,t.style.top=e.globalPosition.y,t.style.rotate=e.globalRotation,t.update()}_updateHover(){const t=this.hovered;t instanceof g.Element2D?(this.hover.style.visibility="visible",this._copyGlobalTransform(this.hover,t),this.hover.requestRedraw()):this.hover.style.visibility="hidden"}_updateSelectionRect(){this.selected?(this.transformRect.style.visibility="visible",this._copyGlobalTransform(this.transformRect,this.selected)):this.transformRect.style.visibility="hidden"}_updateScrollbars(){const t=this.ruler.gapScale,e=this.drawboard.size.height*t,i=this.drawboard.size.width*t;e>this.size.height?(this.yScrollBar.style.visibility="visible",this.yScrollBar.maxValue=e,this.yScrollBar.page=this.size.height):this.yScrollBar.style.visibility="hidden",i>this.size.width?(this.xScrollBar.style.visibility="visible",this.xScrollBar.maxValue=i,this.xScrollBar.page=this.size.width):this.xScrollBar.style.visibility="hidden"}}const Ic={alpha:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default"};class pc extends _A{renderer;get view(){return this.renderer.view}get gl(){return this.renderer.gl}get screen(){return this.renderer.screen}get width(){return this.screen.width}get height(){return this.screen.height}get pixelRatio(){return this.renderer.pixelRatio}set pixelRatio(t){this.renderer.pixelRatio=t,this.resize(this.width,this.height),this.view&&(this.view.dataset.pixelRatio=String(t))}_resizeObserver=_o?new ResizeObserver(t=>{const e=t[0];if(e.target===this.view){const{inlineSize:i,blockSize:A}=Array.isArray(e.contentBoxSize)?e.contentBoxSize[0]:e.contentBoxSize;this.resize(i,A)}}):void 0;constructor(t={}){const{debug:e=!1,view:i,width:A,height:s,pixelRatio:n=vs,backgroundColor:o=0,autoResize:a,autoStart:l,timeline:c,...h}=t;super(c),this.debug=e,this.renderer=new ra(i,{...Ic,...h}),this._setupInput(),this.pixelRatio=n,this.backgroundColor=o,a?(!i&&this.renderer.view&&(this.renderer.view.style.width="100%",this.renderer.view.style.height="100%"),this.enableAutoResize(a)):this.resize(A||this.gl.drawingBufferWidth||this.view?.clientWidth||200,s||this.gl.drawingBufferHeight||this.view?.clientHeight||200,!i),l&&this.start()}_setupInput(){return this.view&&(this.input.setTarget(this.view),["pointerdown","pointerover","pointermove","pointerup","wheel"].forEach(t=>{this.input.on(t,e=>{this.root.input(e,t),this.emit(t,e)})})),this}enableAutoResize(t=!0){return this.view&&(t?this._resizeObserver?.observe(this.view):this._resizeObserver?.unobserve(this.view)),this}resize(t,e,i=!1){return this.renderer.resize(t,e,i),this.root.width=t,this.root.height=e,this.root.requestUpload(),this.render(),this}nextTick(){return Es()}async waitUntilLoad(){await Ne.waitUntilLoad(),await this.nextTick()}async waitAndRender(t=0){await Ne.waitUntilLoad(),this._process(t),await this.nextTick(),this._render(this.renderer)}render(t=0){this._process(t),this._render(this.renderer)}async start(){await this.waitAndRender(),super.start(t=>{this._process(t),this._render(this.renderer)})}free(){super.free(),this.enableAutoResize(!1),this.renderer.free()}toPixels(){return this.renderer.toPixels()}toImageData(){return new ImageData(this.toPixels(),this.gl.drawingBufferWidth,this.gl.drawingBufferHeight)}toCanvas2D(){const t=this.toImageData(),e=document.createElement("canvas");e.width=t.width,e.height=t.height,e.getContext("2d")?.putImageData(t,0,0);const i=document.createElement("canvas");return i.width=this.width,i.height=this.height,i.getContext("2d")?.drawImage(e,0,0,e.width,e.height,0,0,i.width,i.height),i}}let Fe;const Hn=[];let Jn=!1;async function pE(r=100){if(!Jn){for(Jn=!0;Hn.length;){const t=Hn.shift();if(t)try{await t()}catch(e){console.error(e)}else await new Promise(e=>setTimeout(e,r))}Jn=!1}}async function EE(r){const{data:t,width:e,height:i,debug:A=!1,time:s=0}=r;return Fe??=new pc({width:1,height:1,preserveDrawingBuffer:!0}),Fe.debug=A,Fe.root.removeChildren(),Fe.timeline.currentTime=s,Fe.resize(e,i,!0),(Array.isArray(t)?t:[t]).forEach(n=>{n instanceof g.Node?(n.parent=void 0,Fe.root.appendChild(n)):Fe.root.appendChild(g.Node.parse(n))}),await r.onBeforeRender?.(Fe),await Fe.waitAndRender(),Fe.toCanvas2D()}async function BE(r){return new Promise(t=>{Hn.push(async()=>t(await EE(r))),pE()})}g.AnimatedTexture=cr,g.Assets=dc,g.AudioPipeline=On,g.AudioProcessor=yp,g.AudioSpectrum=Sp,g.BaseElement2DBackground=en,g.BaseElement2DFill=zt,g.BaseElement2DForeground=An,g.BaseElement2DOutline=DA,g.BaseElement2DShadow=mi,g.BaseElement2DShape=wi,g.BaseElement2DStyle=MA,g.BaseElement2DText=Si,g.CanvasContext=qa,g.CanvasItemEditor=IE,g.CanvasTexture=uA,g.Color=Je,g.ColorMatrix=xs,g.ColorTexture=ga,g.CoreObject=ti,g.DEG_TO_RAD=Oo,g.DEVICE_PIXEL_RATIO=vs,g.EffectMaterial=hA,g.Element2DStyle=Tn,g.Engine=pc,g.EventEmitter=Ge,g.FlexElement2DStyle=Jl,g.FlexLayout=Kr,g.FontLoader=sa,g.GIFLoader=lc,g.Geometry=lr,g.GradientTexture=hr,g.HTMLAudio=sc,g.HTMLAudioContext=zr,g.HTMLSound=XA,g.IN_BROWSER=cA,g.ImageTexture=ag,g.IndexBuffer=Pi,g.Input=Lo,g.InputEvent=or,g.JSONLoader=cc,g.Loader=ei,g.LottieLoader=hc,g.MainLoop=ar,g.Material=Bt,g.Matrix=be,g.Matrix2=Yh,g.Matrix3=Ss,g.Matrix4=Go,g.MouseInputEvent=Ds,g.PI=nr,g.PI_2=ae,g.PixelsTexture=Ps,g.PointerInputEvent=Fo,g.Projection2D=Jo,g.QuadGeometry=$h,g.QuadUvGeometry=gt,g.RAD_TO_DEG=Jh,g.RawWeakMap=bs,g.Rect2=Ms,g.RefCounted=Qo,g.Renderer=Yo,g.Resource=He,g.SUPPORTS_AUDIO_CONTEXT=ys,g.SUPPORTS_CLICK_EVENTS=Do,g.SUPPORTS_CREATE_IMAGE_BITMAP=Qs,g.SUPPORTS_IMAGE_BITMAP=vo,g.SUPPORTS_MOUSE_EVENTS=Lh,g.SUPPORTS_OFFLINE_AUDIO_CONTEXT=ws,g.SUPPORTS_POINTER_EVENTS=Ri,g.SUPPORTS_RESIZE_OBSERVER=_o,g.SUPPORTS_TOUCH_EVENTS=Oe,g.SUPPORTS_WEBGL2=wo,g.SUPPORTS_WEBKIT_AUDIO_CONTEXT=ms,g.SUPPORTS_WEBKIT_OFFLINE_AUDIO_CONTEXT=xo,g.SUPPORTS_WEB_AUDIO=So,g.SUPPORTS_WHEEL_EVENTS=bo,g.SceneTree=_A,g.TextLoader=gc,g.Texture2D=mt,g.TextureLoader=uc,g.TextureRect2D=Yr,g.Ticker=Yt,g.Transform2D=Vt,g.TransformRect2D=Gn,g.UvGeometry=Ag,g.UvMaterial=gA,g.Vector=Ce,g.Vector2=le,g.Vector3=Vh,g.Vector4=Ho,g.VertexAttribute=ce,g.VertexBuffer=Ye,g.VideoLoader=fc,g.VideoTexture=fa,g.ViewportTexture=Ns,g.WebAudio=oc,g.WebAudioContext=ui,g.WebGLBatch2DModule=Wo,g.WebGLBlendMode=ki,g.WebGLBufferModule=qo,g.WebGLFramebufferModule=Xo,g.WebGLMaskModule=jo,g.WebGLModule=Ie,g.WebGLProgramModule=Zo,g.WebGLRenderer=ra,g.WebGLScissorModule=$o,g.WebGLState=Bi,g.WebGLStateModule=zo,g.WebGLStencilModule=ta,g.WebGLTextureModule=ea,g.WebGLVertexArrayModule=ia,g.WebGLViewportModule=Aa,g.WebSound=nc,g.WheelInputEvent=To,g.assets=Ne,g.clamp=Ke,g.clampFrag=sl,g.createHTMLCanvas=Po,g.createNode=Rh,g.crossOrigin=No,g.cubicBezier=iA,g.curves=Kh,g.customNode=nt,g.customNodes=sr,g.defaultOptions=Ic,g.determineCrossOrigin=Uo,g.ease=ec,g.easeIn=ic,g.easeInOut=rc,g.easeOut=Ac,g.frag=rl,g.getDefaultCssPropertyValue=Cs,g.isCanvasElement=Ro,g.isElementNode=_s,g.isImageElement=Gh,g.isPow2=Bs,g.isVideoElement=Mo,g.isWebgl2=ko,g.lerp=Dt,g.linear=tc,g.log2=ks,g.mapWebGLBlendModes=Vo,g.nextPow2=Rs,g.nextTick=Es,g.parseCSSFilter=oa,g.parseCSSTransform=aa,g.parseCSSTransformOrigin=la,g.parseCssFunctions=lA,g.parseCssProperty=aA,g.render=BE,g.timingFunctions=Vr,g.uid=yo,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});
|